You are on page 1of 18

‫(‪ )1-1‬استخدام ‪:MATLAB‬‬

‫برنامج ‪ MATLAB‬يستخدم إلجراء الحسابات التقنية المتقدمة ويتميز ‪ MATLAB‬بكونه برنامجا ً متخصصا ً‬
‫ييسر عمل الباحثين والدارسين في مختلف مجاالت الدراسات العليا و ما قبلها ‪ ،‬فهو يتعامل مع المعادالت‬
‫الرياضية ‪،‬والتكامالت ‪،‬والتفاضالت ‪ ،‬والمصفوفات المختلفة بسرعة وسهولة ‪ ،‬ويعامل األعداد المركبة بنفس‬
‫الطريقة التي يعامل بها األعداد العادية ‪ .‬ويمكن ‪ MATLAB‬المستخدم من رسم المعادالت الرياضية في‬
‫اإلحداثيات المختلفة ‪ ،‬ويضم المئات من الدوال الجاهزة التي توفر للمبرمج وقتا ً وجهداً عند إنشاء البرامج ‪.‬‬
‫وتعني كلمة ‪ MATLAB‬معمل المصفوفات (‪ )Matrix Laboratory‬ويمكن استخدامه مثل اآللة الحاسبة‬
‫المتطورة أو تشغيل برامج رياضية معقدة ‪ .‬ويمكن تحميل البرنامج على الكمبيوتر الشخصي و استخدامه مباشرة‬
‫مع نظام ‪ Windows‬وهو سهل األستخدام كما يوضح الشكل(‪)1-1‬‬

‫الشكل (‪ :)1-1‬واجهة البرنامج‬

‫(‪ )2-1‬استخدام ‪ MATLAB‬للحسابات البسيطة‪:‬‬


‫تجرى العمليات الحسابية البسيطة على ‪ MATLAB‬باستخدام‪ g‬الجدول (‪.)1-1‬‬

‫األمثلة‬ ‫الرمز‬ ‫العمليات‬


‫‪3+22=25‬‬ ‫‪+‬‬ ‫عملية الجمع‬
‫‪90-54=36‬‬ ‫‪-‬‬ ‫عملية الطرح‬
‫‪3.14*0.85=2.669‬‬ ‫*‬ ‫عملية الضرب‬
‫‪56/8=7‬‬ ‫\‪/or‬‬ ‫عملية القسمة‬
‫‪2^8=256‬‬ ‫^‬ ‫عملية األس‬
‫الجدول (‪)1-1‬‬
‫بعض األمثلة‪:‬‬
‫‪>> 2/3^2‬‬
‫= ‪ans‬‬
‫‪0.2222‬‬
‫‪>> (2/3) ^2‬‬
‫= ‪ans‬‬
‫‪0.4444‬‬
‫‪>> 2+3*4-4‬‬
‫= ‪ans‬‬
‫‪10‬‬
‫‪>> 2^2*3/4‬‬
‫= ‪ans‬‬
‫‪3‬‬
‫)‪>> 2^(2*3)/(3+4‬‬
‫= ‪ans‬‬
‫‪9.1429‬‬

‫(‪)3-1‬المتجهات و المصفوفات‪g:‬‬
‫في هذا الفصل نقوم بتناول المتجهات والمصفوفات وما يتعلق بهما من دوال وعملي‪g‬ات حس‪g‬ابية‪ .‬المص‪g‬فوفات هي‬
‫أس‪gg‬اس اإلدخ‪gg‬ال في البرن‪gg‬امج فكل ع‪gg‬دد يتم إدخاله هو بالنس‪gg‬بة لـ ‪ MATLAB‬مص‪gg‬فوفة قي‪gg‬اس ‪ 1x1‬فيجب أن‬
‫نراعي قواعد المصفوفات الحسابية‪.‬‬
‫‪ ‬المتجهات ‪:Vectors‬‬
‫المتجة هو عب‪gg‬ارة عن مجموعة من األع‪gg‬داد توضع في صف واحد أو عم‪gg‬ود واحد ويتم اس‪gg‬تخدامها في‬
‫إدخال البيانات أو الحصول على المخرجات‪.‬‬
‫أي أنه يوجد لدينا نوعين من المتجهات‪:‬‬
‫متجه صفي ‪:‬‬ ‫‪.1‬‬
‫والصورة العامة لكتابته كالتالي‪:‬‬

‫>> ‪]11,8,2,5,3[=x‬‬
‫‪=x‬‬
‫‪11 8‬‬ ‫‪2‬‬ ‫‪5‬‬ ‫‪3‬‬
‫ويمكن وضع مسافة بدالً من عالمة الفاص‪gg‬لة وكالهما يوضح أن جميع عناصر المتجه مرتبة‬
‫كصف واحد‪.‬‬
‫متجه عمودي‪:‬‬ ‫‪.2‬‬

‫>> ‪]11;8;2;5;3[=x‬‬
‫‪=x‬‬
‫‪3‬‬
‫‪5‬‬
‫‪2‬‬
‫‪8‬‬
‫‪11‬‬
‫وكما نرى فإن العالمة ال‪g‬تي تفصل بين كل عنصر والت‪gg‬الي له هي الفاص‪g‬لة المنقوطة (;) وهي ال‪gg‬تي تش‪g‬ير إلى أن‬
‫كل عنصر من عناصر المتجهة في صف بمفرده‪.‬‬
‫التعامل مع المتجهات ‪:‬‬
‫]‪>> v=[0 1 2 3‬‬

‫=‪v‬‬
‫‪0 1‬‬ ‫‪2‬‬ ‫‪3‬‬
‫وألضافة عنصر للمتجه ‪:‬‬
‫‪>> v(4)=5‬‬

‫=‪v‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪5‬‬
‫ولسحب عنصر من المتجه ‪:‬‬
‫)‪>> x=v(2‬‬

‫=‪x‬‬
‫‪1‬‬

‫وألخذ فقط عناصر المتجه من الثاني إلى الرابع ‪:‬‬


‫)‪>> x=v(2:4‬‬

‫=‪x‬‬
‫‪1‬‬ ‫‪2‬‬ ‫‪5‬‬
‫وألخذ فقط عناصر المتجه من الثاني إلى الرابع مع أثنان أثنان ‪:‬‬
‫)‪>> x=v(2:2:4‬‬

‫=‪x‬‬
‫‪1‬‬ ‫‪5‬‬
‫وألخذ عناصر المتجه من العنصر الثالث بالسالب مع واحد واحد‪:‬‬
‫)‪>> x=v(3:-1:1‬‬

‫=‪x‬‬
‫‪2‬‬ ‫‪1‬‬ ‫‪0‬‬
‫وألضافة عنصر للمتجه ‪:‬‬
‫]‪>> v=[v(1:4),4‬‬

‫=‪v‬‬
‫‪0 1 2 5‬‬ ‫‪4‬‬
‫])‪>> v=[-1,v(1:5‬‬

‫=‪v‬‬
‫‪-1 0 1 2 5 4‬‬
‫])‪>> v=[v(1:2),10,v(3:4‬‬

‫=‪v‬‬
‫‪-1‬‬ ‫‪0‬‬ ‫‪10‬‬ ‫‪1‬‬ ‫‪2‬‬

‫العمليات األساسية والدوال الخاصة بالمتجهات‪:‬‬


‫هناك العديد من الدوال التي يتم تنفيذها على المتجهات وتزيد من أهميتها واستخداماتها وسوف نقوم اآلن بش‪gg‬رح‬
‫معظم هذه العمليات والدوال من خالل األمثلة التالية‪:‬‬
‫الدالة ‪ :Length‬تقوم بحساب عدد عناصر المتجه كما في المثال‪:‬‬ ‫‪.1‬‬
‫]‪>> v=[2 5 0 1 4 -1‬‬

‫=‪v‬‬
‫‪2 5 0‬‬ ‫‪1‬‬ ‫‪4‬‬ ‫‪-1‬‬
‫)‪>> length(v‬‬

‫= ‪ans‬‬
‫‪6‬‬
‫الدالة ‪ :Sum‬تقوم هذه الدالة بإيج‪gg‬اد حاصل جمع عناصر المتجه كما في‬ ‫‪.2‬‬
‫المثال‪:‬‬

‫)‪>> w=sum(v‬‬

‫=‪w‬‬
‫‪11‬‬
‫الدالة ‪:Max‬تقوم هذه الدالة بإيجاد أكبر عناصر المتجه من حيث القيمة كما في المثال‪:‬‬ ‫‪.3‬‬

‫)‪>> w=max(v‬‬

‫=‪w‬‬
‫‪5‬‬
‫الدالة ‪ :Min‬تقوم هذه الدالة بإيجاد أصغر عناصر المتجه من حيث القيمة كما في المثال‪:‬‬ ‫‪.4‬‬

‫)‪>> w=min(v‬‬

‫=‪w‬‬
‫‪-1‬‬
‫الدالة ‪ :Size‬تعطي قياس المتجة أو المصفوفة‬ ‫‪.5‬‬

‫]‪>> Matrix=[1,2,3,;4,5,6‬‬

‫= ‪Matrix‬‬

‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬


‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬

‫)‪>> [Matrix]=size(Matrix‬‬

‫= ‪Matrix‬‬

‫‪2‬‬ ‫‪3‬‬

‫الدالة ‪:Sort‬تقوم هذه الدالة بترتيب عناصر المتجه ترتيبا ً تصاعديا ً‬ ‫‪.6‬‬

‫]‪>> r=[9 7 5 8 3‬‬

‫=‪r‬‬
‫‪9 7 5‬‬ ‫‪8‬‬ ‫‪3‬‬
‫)‪>> s=sort(r‬‬
‫=‪s‬‬
‫‪3 5 7 8 9‬‬
‫الدالة ‪ :Range‬تقوم ه‪gg‬ذه الدالة بحس‪gg‬اب الف‪gg‬رق بين أك‪gg‬بر قيمة في المتجة‬ ‫‪.7‬‬
‫وأصغر قيمة فيه‬

‫)‪>> range(r‬‬

‫= ‪ans‬‬
‫‪6‬‬

‫العمليات الحسابية ال‪g‬تي يتم إجراؤها على المتجه‪g‬ات‪ :‬وتش‪g‬مل ه‪g‬ذه العملي‪g‬ات الحس‪g‬ابية عملي‪g‬ات الجمع والط‪g‬رح‬
‫والضرب والرفع إلى أس ولكن يجب اإلشارة هنا أن هذه العمليات تتبع جميعها ما يسمى بجبر المصفوفات‪.‬‬
‫بعض األمثلة للتوضيح‪:‬‬
‫;]‪>> x=[1,3,5‬‬
‫;]‪>> y=[2,4,6‬‬
‫‪>> z=x+y‬‬
‫=‪z‬‬
‫‪3 7 11‬‬
‫‪>> m=y-x‬‬
‫=‪m‬‬
‫‪1 1 1‬‬
‫‪>> p=x.*y‬‬
‫=‪p‬‬
‫‪2 12 30‬‬
‫‪>> p=x.^2‬‬
‫=‪p‬‬
‫‪1 9 25‬‬

‫‪ ‬المصفوفات ‪:Matrices‬‬
‫ً‬
‫المصفوفات هي عبارة عن ترتيب معين لبيانات معينه وعادة ما تكون هذه البيانات أرقاما‪ ،‬والمصفوفة تتكون من‬
‫صفوف وأعمدة وعادة ما نقول من النظام (‪ )mxn‬حيث أن ‪ m‬هو عدد الصفوف و ‪ n‬هو عدد األعمدة‪.‬‬
‫]‪>> Matrix=[1,2,3,;4,5,6;7,8,9‬‬

‫= ‪Matrix‬‬

‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬


‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬
‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬
‫كذلك إذا كان لدينا مصفوفة فأننا نستطيع إيجاد الصف الثاني أو الثالث من المصفوفة‪.‬‬
‫)‪>> Matrix(2,:‬‬

‫= ‪ans‬‬
‫‪4 5‬‬ ‫‪6‬‬

‫وكذلك نستطيع إيجاد العمود الثاني أو الثالث من المصفوفة‪.‬‬


‫)‪>> Matrix(:,2‬‬

‫= ‪ans‬‬
‫‪2‬‬
‫‪5‬‬
‫‪8‬‬

‫إذ أردنا جميع عناصر المصفوفة بترتيب األعمدة‬


‫)‪>> Matrix(:‬‬

‫= ‪ans‬‬
‫‪1‬‬
‫‪4‬‬
‫‪7‬‬
‫‪2‬‬
‫‪5‬‬
‫‪8‬‬
‫‪3‬‬
‫‪6‬‬
‫‪9‬‬
‫أما إذا أردنا العنصر الواقع في الصف األول والعامود الثاني‪:‬‬
‫)‪>> Matrix(1,2‬‬

‫= ‪ans‬‬
‫‪2‬‬
‫ونحذف صف أو عمود من المصفوفة‪:‬‬
‫] [ = )‪>> Matrix(:,2‬‬
‫= ‪Matrix‬‬
‫‪1 3‬‬
‫‪4 6‬‬
‫‪7 9‬‬
‫] [ = )‪>> Matrix(2,:‬‬
‫= ‪Matrix‬‬
‫‪1 2 3‬‬
‫‪7 8 9‬‬
‫ونضيف صف أو عمود للمصفوفة‪:‬‬
‫]‪>> Matrix=[1,2,3,;4,5,6;7,8,9;10,11,12‬‬
‫= ‪Matrix‬‬
‫‪1 2 3‬‬
‫‪4 5 6‬‬
‫‪7 8 9‬‬
‫‪10 11 12‬‬
‫ونجد قطر المصفوفة‪:‬‬
‫)‪>> diag(Matrix‬‬
‫= ‪ans‬‬
‫‪1‬‬
‫‪5‬‬
‫‪9‬‬

‫‪ ‬منقول المصفوفة (‪:)Transpose‬‬


‫‪n m ‬‬ ‫‪m‬‬
‫يعرف المنقول للمصفوفة ‪ A‬بأنه المص‪gg‬فوفة من الدرجة‬‫‪n‬‬ ‫‪‬‬ ‫لتكن ‪a A]  [ ji‬‬
‫مصفوفة من الدرجة‬
‫ال‪gg‬تي نحصل عليها من ‪ A‬بحيث تك‪gg‬ون ص‪gg‬فوفها هي أعم‪gg‬دة ‪ A‬وأعم‪gg‬دتها هي ص‪gg‬فوف ‪ A‬على الت‪gg‬والي نرمز‬
‫للمنقول ‪ A‬بالرمز ‪.A T‬‬
‫]‪>> A=[1 3 5; 2 4 6‬‬

‫=‪A‬‬

‫‪1‬‬ ‫‪3‬‬ ‫‪5‬‬


‫‪2‬‬ ‫‪4‬‬ ‫‪6‬‬

‫'‪>> A‬‬

‫= ‪ans‬‬

‫‪1 2‬‬
‫‪3 4‬‬
‫‪5 6‬‬
‫[ ‪a A] ‬‬
‫مصفوفة مربعة من الدرجة ‪ n‬يعرف محدد المصفوفة ويرمز له بالرمز‬ ‫‪ji‬‬ ‫‪ ‬المحددات‪ :‬لتكن‬
‫‪) (ted A‬‬
‫استقرائيا ً كالتالي‪:‬‬
‫‪1‬‬ ‫‪n ) (ted‬‬
‫‪a A ‬‬ ‫‪11‬‬ ‫‪ .1‬إذا كان‬
‫‪2‬‬ ‫‪n‬‬ ‫‪a‬‬ ‫‪a12 21A 22‬‬
‫‪a ) a(ted‬‬ ‫‪11‬‬ ‫‪ .2‬إذا كان‬
‫‪n‬‬
‫‪2‬‬ ‫‪nted  A )1 (a‬‬ ‫‪) (ted A ‬‬ ‫‪1j‬‬
‫‪j1‬‬
‫‪1j‬‬ ‫‪ .3‬إذا كان‬
‫‪j1‬‬

‫مثال يوضح المحددات‪:‬‬


‫]‪>> A=[1 0 3 ; 4 5 0; 7 8 9‬‬

‫=‪A‬‬

‫‪1 0 3‬‬
‫‪4 5 0‬‬
‫‪7 8 9‬‬
‫)‪>> det(A‬‬
‫= ‪ans‬‬
‫‪36‬‬
‫وهنا يجب اإلشارة إلى بعض أنواع المصفوفات ذات الحاالت الخاصة التي سوف نوضحها فيما يلي‪:‬‬
‫‪ .1‬المصفوفة الصفرية‪ :‬وهي التي تكون كل عناص‪gg‬رها عب‪gg‬ارة عن أص‪gg‬فار وتعت‪gg‬بر ه‪gg‬ذه المص‪gg‬فوفة هي المحايد‬
‫الجمعي للمصفوفات‪.‬‬

‫)‪>> x=zeros(3,2‬‬

‫=‪x‬‬

‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬

‫مصفوفة التي جميع عناصرها الواحد الصحيح‪ :‬وهي المص‪gg‬فوفة ال‪gg‬تي تتك‪gg‬ون جميع‬ ‫‪.2‬‬
‫عناصرها من الرقم واحد‪.‬‬

‫)‪>> x=ones(3,2‬‬
‫=‪x‬‬

‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬

‫‪ .3‬مص‪gg‬فوفة الوح‪gg‬دة ‪ :‬وهي مص‪gg‬فوفة مربعة تك‪gg‬ون جميع عناصر القطر الرئيسي لها الواحد الص‪gg‬حيح وب‪gg‬اقي‬
‫عناصرها األخرى أصفار‪.‬‬
‫)‪>> id=eye(4‬‬

‫= ‪id‬‬

‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬


‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫(‪)4-1‬جبر المصفوفات ‪:Matrix Algebra‬‬
‫يعتمد ج‪gg‬بر المص‪gg‬فوفات على قواعد غ‪gg‬ير القواعد المعه‪gg‬ودة في العملي‪gg‬ات الحس‪gg‬ابية العادية ال‪gg‬تي يتم تطبيقها على‬
‫األعداد‪ ،‬وسوف نحاول فيما يلي توضيح هذه القواعد بقدر اإلمكان‪:‬‬
‫‪ ‬الدوال الخاصة بالمصفوفات‪:‬‬
‫دالة ‪ :Sum‬وهي تق‪gg‬وم بجمع عناصر كل عم‪gg‬ود من أعم‪gg‬دة المص‪gg‬فوفة كل على ح‪gg‬دة كما في‬ ‫‪.1‬‬
‫المثال‪:‬‬
‫]‪>> x=[1,2,3;4,5,6;7,8,9‬‬

‫=‪x‬‬

‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬


‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬
‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬

‫)‪>> A=sum(x‬‬

‫=‪A‬‬

‫‪12‬‬ ‫‪15‬‬ ‫‪18‬‬

‫)'‪>> A=sum(x‬‬

‫=‪A‬‬

‫‪6‬‬‫‪15 24‬‬
‫الدالة ‪ :Max‬وهي تقوم بعرض أكبر رقم موجود في كل عمود من أعمدة المصفوفة كما في المثال‪:‬‬ ‫‪.2‬‬
‫)‪>> B=max(x‬‬

‫=‪B‬‬

‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬

‫)'‪>> B=max(x‬‬
‫=‪B‬‬
‫‪3‬‬ ‫‪6‬‬ ‫‪9‬‬
‫الدالة ‪ :Size‬تقوم هذه الدالة بعرض أبعاد المصفوفة كما في المثال ‪:‬‬ ‫‪.3‬‬
‫)‪>> [C,D]=size(x‬‬

‫=‪C‬‬

‫‪3‬‬

‫=‪D‬‬

‫‪3‬‬
‫إجراء العمليات الحسابية على المصفوفات‪:‬‬ ‫‪‬‬
‫الجم‪gg‬ع‪:‬تتم عملية الجمع بجمع كل عنصر من عناصر المص‪gg‬فوفة األولى مع العنصر المن‪gg‬اظر‬ ‫‪.1‬‬
‫له من عناصر المصفوفة الثانية كما في المثال‪:‬‬
‫;]‪>> A=[1,3;5,7‬‬
‫;]‪>> B=[2,4;6,8‬‬
‫‪>> C=A+B‬‬

‫=‪C‬‬

‫‪3‬‬ ‫‪7‬‬
‫‪11‬‬ ‫‪15‬‬

‫‪>> C=A+3‬‬

‫=‪C‬‬

‫‪4‬‬ ‫‪6‬‬
‫‪8‬‬ ‫‪10‬‬

‫الط‪ggg‬رح‪ :‬تتم عملية الط‪ggg‬رح بط‪ggg‬رح كل عنصر من عناصر المص‪ggg‬فوفة األولى مع العنصر‬ ‫‪.2‬‬
‫المناظر له من عناصر المصفوفة الثانية كما في المثال‪:‬‬
‫‪>> C=A-B‬‬

‫=‪C‬‬

‫‪-1‬‬ ‫‪-1‬‬
‫‪-1‬‬ ‫‪-1‬‬
‫الضرب‪ :‬تتم عملية الضرب بضرب عناصر المصفوفة ببعض كما في المثال‪:‬‬ ‫‪.3‬‬
‫‪>> C=A*B‬‬

‫=‪C‬‬

‫‪20 28‬‬
‫‪52 76‬‬
‫رفع المص‪ggg‬فوفة إلى ق‪ggg‬وة(أس)‪ :‬كما يمكننا رفع المص‪ggg‬فوفة المربعة إلى أس أو ق‪ggg‬وة كما في‬ ‫‪.4‬‬
‫المثال‪:‬‬
‫‪>> C=A^2‬‬
‫=‪C‬‬

‫‪16‬‬ ‫‪24‬‬
‫‪40‬‬ ‫‪64‬‬

‫‪>> C=A.^2‬‬

‫=‪C‬‬

‫‪1‬‬ ‫‪9‬‬
‫‪25‬‬ ‫‪49‬‬
‫(‪)5-1‬الدوال المخزنة على ‪: MATLAB‬‬
‫الدوال هي عبارة عن أكواد برمجة سابقة اإلعداد أو التجهيز ت‪gg‬ؤدي لنا وظ‪gg‬ائف متنوعة ولكل دالة اسم خ‪gg‬اص بها‬
‫ال يتشابه مع غيرها إال أنه ينبغي التنوية إلى أنه يجب التمييز بين نوعين من الدوال‪:‬‬
‫ال‪gg‬دوال ال‪gg‬تي نق‪gg‬وم بكتابتها بنفس‪gg‬نا من خالل ملف من الن‪gg‬وع ‪ M-File‬وتخزينها باسم معين‬ ‫‪.1‬‬
‫الستخدامها فيما بعد‪.‬‬
‫فإن برنامج الـ ‪ Matlab‬يتيح لنا إمكانية كتابة وأض‪gg‬افة دوال إلى ال‪gg‬دوال األساس‪gg‬ية الموج‪gg‬ودة في‪gg‬ه‪،‬‬
‫وذلك عن طريق إعداد هذه الدوال كملفات ‪ M-File‬من خالل النافذة وحفظها بإسم معين‪.‬‬
‫يتم حفظ الدالة في ‪ m-files‬ويجب تعريف الدالة في أول سطر مع مراعاة التالي ‪:‬‬
‫أن يكون اسم الدالة الموجود في تعريف الدالة هو نفسه الذي يتم به حفظ الدالة‪.‬‬ ‫‪‬‬
‫أن يكون اسم الدالة مكون من مقطع واحد ال يفصل بينه مسافات ‪.‬‬ ‫‪‬‬
‫أن ال يتجاوز اسم الدالة ‪ 31‬حرف ‪.‬‬ ‫‪‬‬
‫أن يبدأ اسم الدالة بحرف ويمكن إتباعه برمز ‪.‬‬ ‫‪‬‬
‫وعند الحاجة للبرنامج يتم كتابة اسم البرنامج ثم استخدامه ‪ ،‬أو يمكن تش‪gg‬غيله من أمر ‪ Run‬الموج‪gg‬ود على شاشة‬
‫الملف مباشرة‪.‬‬
‫حفظ دالة بسيطة في ‪: m-file‬‬
‫نفتح ‪ new m-file‬ثم نقوم بكتابة البرنامج التالي ‪:‬‬
‫)‪function y = sample(x‬‬
‫‪x.^4-y=x+x.^2‬‬
‫الشكل (‪m-file :)1-2‬‬

‫ثم نستخدمه لحساب قيمة ‪ y‬عند ‪: x=3‬‬


‫)‪>> sample(3‬‬
‫= ‪ans‬‬
‫‪-69‬‬
‫كما نستخدمه لرسم منحنى الدالة في الفترة [‪: ]2,2-‬‬
‫;‪>> x = -2:.01:2‬‬
‫;))‪>> plot(x,sample(x‬‬

‫‪2‬‬

‫‪0‬‬

‫‪-2‬‬

‫‪-4‬‬

‫‪-6‬‬
‫‪y-axsis‬‬

‫‪-8‬‬

‫‪-10‬‬

‫‪-12‬‬

‫‪-14‬‬
‫‪-2‬‬ ‫‪-1.5‬‬ ‫‪-1‬‬ ‫‪-0.5‬‬ ‫‪0‬‬ ‫‪0.5‬‬ ‫‪1‬‬ ‫‪1.5‬‬ ‫‪2‬‬
‫‪x-axis‬‬

‫الشكل (‪ :)1-3‬رسم الدالة ‪y = x+x.^2-x.^4‬‬

‫الدوال المخزنة في برنامج الـ ‪ Matlab‬وهي دوال مع‪gg‬دة بواس‪gg‬طة الش‪gg‬ركة المنتجة للبرن‪gg‬امج‬ ‫‪.2‬‬
‫ويمكننا استخدامها مباشرة دون الحاجة لمعرفة الكود المكتوب لها‪.‬‬
‫هناك الكثير من الدوال المخزنة على ‪ Matlab‬ويبين الجدول التالي بعضاً منها ‪:‬‬
‫دوال التقريب‪:‬‬ ‫‪‬‬
‫الوظيفة‬ ‫الدالة‬
‫‪.‬تقوم بإخراج الباقي الصحيح لعملية القسمة‬ ‫‪Rem‬‬
‫‪ ∞-‬تقريب الرقم العشري أو المصفوفة باتجاه‬ ‫‪Floor‬‬
‫∞ تقريب الرقم العشري أو المصفوفة باتجاه‬ ‫‪Ceil‬‬
‫تقريب الرقم العشري باتجاه الصفر‬
‫‪Fix‬‬
‫‪.‬يعني تقوم بالغاء الكسر والحصول على الرقم الصحيح فقط‬
‫تقريب الرقم العشري باتجاه أقرب رقم صحيح‬ ‫‪Round‬‬
‫الجدول (‪)1-2‬‬
‫الدوال المثلثية‪:‬‬ ‫‪‬‬
‫الوظيفة‬ ‫الدالة‬
‫لحساب جيب الزاوية‪.‬‬ ‫‪Sin‬‬
‫لحساب جيب التمام للزاوية‪.‬‬ ‫‪Cos‬‬
‫لحساب ظل الزاوية‪.‬‬ ‫‪Tan‬‬
‫لحساب ظل التمام للزاوية‪.‬‬ ‫‪Cot‬‬
‫دالة ‪ces x ‬‬ ‫‪Sec‬‬
‫دالة ‪csc x ‬‬ ‫‪Csc‬‬
‫لمعرفة قيمة الزاوية بالتقدير الدائري بمعلومية جيب الزاوية‪.‬‬ ‫‪Asin‬‬
‫لمعرفة قيمة الزاوية بالتقدير الدائري بمعلومية جيب تمام الزاوية‪.‬‬ ‫‪Acos‬‬

‫لمعرفة قيمة الزاوية بالتقدير الدائري بمعلومية ظل الزاوية‪.‬‬ ‫‪Atan‬‬

‫لمعرفة قيمة الزاوية بالتقدير الدائري بمعلومية تمام ظل الزاوية‪.‬‬ ‫‪Acot‬‬

‫معكوس ‪csc‬‬ ‫‪Acsc‬‬

‫معكوس ‪sec‬‬ ‫‪Asec‬‬

‫دالة الزائدية ‪sin‬‬ ‫‪Sinh‬‬

‫دالة الزائدية ‪cos‬‬ ‫‪Cosh‬‬

‫معكوس ‪sinh‬‬ ‫‪Asinh‬‬

‫معكوس ‪cosh‬‬ ‫‪Acosh‬‬


‫الجدول (‪)1-3‬‬
‫الدوال الحسابية األولية‪:‬‬ ‫‪‬‬
‫الوظيفة‬ ‫الدالة‬
‫‪x‬‬
‫‪e‬‬ ‫‪Exp‬‬
‫إليجاد الجذر التربيعي‬ ‫‪Sqrt‬‬
‫إليجاد القيمة المطلقة‬ ‫‪Abs‬‬
‫القاسم المشترك األعظم‬ ‫‪Gcd‬‬
‫المضاعف المشترك األصغر‬ ‫‪Lcm‬‬
‫إليجاد القيمة العظمى‬ ‫‪Max‬‬
‫إليجاد القيمة الصغرى‬ ‫‪Min‬‬
‫‪.‬القيمة المطلقة للباقي الصحيح للقسمة‬ ‫‪Mod‬‬
‫‪.‬لحساب الباقي الصحيح للقسمة‬ ‫‪Rem‬‬
‫‪=e‬اللوغاريتم الطبيعي‪ :‬ذو األساس الطبيعي ‪2.7183‬‬ ‫‪Log‬‬
‫‪.‬اللوغاريتم ذو األساس ‪2‬‬ ‫‪log2‬‬
‫اللوغاريتم ذو األساس العشري(ذو األساس‪)10‬‬ ‫‪log10‬‬
‫‪.‬لحساب المضروب‬ ‫‪Factorial‬‬
‫‪.‬لتكوين أعداد مركبة من أعداد حقيقية وأعداد تخيلية يتم تمريرها للدالة‬ ‫‪Complex‬‬
‫‪.‬لمعرفة المرافق للعدد‪ g‬التخيلي‬ ‫‪Conj‬‬
‫إليجاد الجزء التخيلي من العدد المركب‬ ‫‪Imag‬‬
‫إليجاد الجزء الحقيقي من العدد المركب‬ ‫‪Real‬‬
‫الجدول (‪)1-4‬‬

‫(‪)6-1‬الرسم على ‪:MATLAB‬‬


‫الرسم إما ثنائي و ثالثي األبعاد ‪:‬‬
‫يمتلك برن‪gg‬امج ‪ Matlab‬ق‪gg‬درة كب‪gg‬يرة وإمكاني‪gg‬ات عالية في ع‪gg‬رض المتجه‪gg‬ات والمص‪gg‬فوفات وال‪gg‬دوال كرس‪gg‬ومات‬
‫بيانية‪ ،‬كما يمكنه من رسم األشكال ثالثية األبعاد باإلضافة إلى تحريك تلك األشكال الرسومية‪ ،‬وهذا باإلضافة إلى‬
‫إمكانية إدراج أية تعليقات نص‪gg‬ية على الرس‪g‬ومات وطباعته‪g‬ا‪ ،‬وب‪g‬ذلك تك‪g‬ون إمكاني‪g‬ات رسم المنحني‪gg‬ات الرياض‪g‬ية‬
‫والمصفوفات في ‪ Matlab‬من أهم اإلمكانيات المميزة فيه‪ .‬ويقدم لنا برنامج ‪ Matlab‬وسائل تساعدنا على الرسم‬
‫مثل تغير لون الخط‪ ،‬وتسمية المحاور‪ ،‬وتسمية الرسمة‪ ،‬وتسمية المتغيرات‪ ،‬وتقسيمها ومنها‪:‬‬

‫الوظيفة‬ ‫الدالة‬
‫‪-D .‬يستخدم للرسم الخطية ثنائية األبعاد‪2‬‬ ‫‪plot‬‬
‫‪.‬تستخدم للرسم ثالثي األبعاد‬ ‫‪Plot3‬‬
‫لكن مع تلوين الرسم وبالتالي تلوين الشكل كامالً وهوللرسم ثالثي ‪ mesh‬مشابة لـ‬
‫‪surf‬‬
‫‪-D.‬األبعاد ‪3‬‬
‫لكن مع تلوين الرسم وبالتالي تلوين الشكل كامالً وهو للرسم ثالثي ‪ meshc‬مشابة لـ‬
‫‪Surfc‬‬
‫‪-D.‬األبعاد ‪3‬‬
‫‪.‬على شكل شبكة ‪-D‬للرسم على المحاور االحداثية الثالثة ‪3‬‬ ‫‪mesh‬‬
‫‪.‬تقوم بالرسم على المحاور الثنائية ضمن مجال يمكن تحديده ولعالقة بمتحول أو متحولين‬ ‫‪ezplot‬‬
‫‪-D.‬تعريف المحاور ألستخدامها في الرسم ثالثي األبعاد ‪3‬‬ ‫‪meshgrid‬‬
‫ورسم ‪ hold on‬تقدم هذه التعليمة امكانية رسم اكثر من منحنى حيث يتم تفعيلها ب‬
‫‪hold‬‬
‫‪ hold off‬مانشاء وبعد ذلك يتم ايقافها ب‬
‫‪ .‬لكتابة عنوان على الرسم‬ ‫‪Title‬‬
‫‪ .‬لتسمية المحور األفقي للرسم‬ ‫‪Xlabel‬‬
‫‪ .‬لتسمية المحور العمودي للرسم‬ ‫‪Ylabel‬‬
‫‪.‬لتسمية محور البعد الثالث للرسم‬ ‫‪Zlabel‬‬
‫‪.‬لرسم شبكة على الرسم (أو لتقسيم الرسم )‬ ‫‪grid on‬‬
‫‪ .‬لعرض عدة رسومات منفصلة في إطار واحد‬ ‫‪subplot‬‬
‫‪ .‬لكتابة أي تعليق على الرسم‬ ‫‪Text‬‬
‫‪ .‬مفتاح الرسم (أسماء المتغيرات)‬ ‫‪Legend‬‬
‫‪.‬لتحديد من أي إتجاه يرسم الشكل‬ ‫‪view‬‬
‫‪.‬لتحديد أطوال المحاور‬ ‫‪axis‬‬
‫‪.‬لعمل تخطيط للرسم في بعدين او ثالثة أبعاد‬ ‫‪contour‬‬
‫الجدول (‪)1-5‬‬
‫لرسم أكثر من دالة نستخدم األلوان التالية ‪:‬‬

‫أزرق داكن‬ ‫أزرق‬ ‫أرجواني‬ ‫أخضر‬ ‫أصفر‬ ‫أسود‬ ‫أبيض‬ ‫أحمر‬ ‫اللون‬

‫‪B‬‬ ‫‪C‬‬ ‫‪M‬‬ ‫‪G‬‬ ‫‪Y‬‬ ‫‪K‬‬ ‫‪W‬‬ ‫‪R‬‬ ‫الرمز‬


‫الجدول (‪)1-6‬‬
‫أو يمكن التميز بين الدوال بنوع خطوط الرسم كما يلي‪:‬‬

‫‪--‬‬ ‫‪.-‬‬ ‫‪:‬‬ ‫‪-‬‬ ‫الرمز‬


‫‪Dashed‬‬ ‫‪Dash dot‬‬ ‫‪Dotted‬‬ ‫‪Solid‬‬ ‫نوع الخط‬
‫الجدول (‪)1-7‬‬
‫أنواع األخطاء‪:‬‬
‫‪ ‬الخطأ المطلق(‪:)Absolute Error‬‬
‫تعريف ‪:‬الخطأ المطلق هو القيمة المطلقة للفرق ما بين الرقم وتقريبة‪ ،‬ويرمز له بالرمز ‪ A.E‬وبالرموز‪:‬‬

‫‪)1(.......................p | p‬‬ ‫‪E| A . ‬‬ ‫*‬

‫العدد‪g‬‬
‫‪p‬‬
‫تقريب العدد‬
‫‪p* ‬‬
‫‪ ‬الخطأ النسبي(‪:)Relative Error‬‬
‫ً‬
‫تعريف ‪:‬الخطأ النسبي هو القيمة المطلقة للفرق ما بين الرقم وتقريبة مقسوما على الرقم نفسه ويرمز له بالرمز‬
‫‪R.E‬وبالرموز‪:‬‬
‫‪|* P P‬‬ ‫‪| ‬‬
‫بشرط أن ‪P.  0‬‬ ‫‪ER . ‬‬
‫‪| P‬‬‫|‬

‫مثال(‪: )1‬‬
‫‪x x2:1.0 x: 2‬‬ ‫؟‪y 2x, nis x‬‬
‫‪2‬‬
‫‪y 1, soc‬‬
‫‪2‬‬
‫ارسمي الدالتين التالية بنفس الرسم‬
‫الحل‪:‬‬
‫;‪>> x=-2:0.1:2‬‬
‫;)‪>> y1=x.^2.*cos(x);y2=x.^2.*sin(x‬‬
‫;)‪>> plot(x,y1‬‬
>> hold on
>> plot(x,y2);
>> hold off
>> xlabel('x-axis')
>> ylabel('y-axis')
>> grid on
)1( erugif :‫يظهر لنا الرسم التالي‬
4

0
sixa y

1-

2-

3-
1y
2y
4-
2- 5.1- 1- 5.0- 0 5.0 1 5.1 2
sixa x

x x y 2x nis
2
x y 1, soc
2
‫ رسم الدالتين‬:)1-4( ‫الشكل‬

: )2(‫مثال‬
‫ ؟‬x=-4:0.1:4 , y=x^2 ‫ارسمي الدالة‬
:‫الحل‬
>> x=-4:.1:4;
>> y=x.^2;
>> plot(x,y,'o')
2 reugif :‫يظهر لنا الرسم التالي‬
61

41

21

01

8
Y

0
4- 3- 2- 1- 0 1 2 3 4
X

y=x.^2 ‫ رسم الدالة‬: )1-5( ‫الشكل‬


: )3(‫مثال‬
:1
na , x rof
,3 :1.0 :1 y, x yx
,) ‫؟‬z  2
(/ 2 2
‫ارسمي الدالة‬
:‫الحل‬
>> [x,y]=meshgrid(1:0.1:3,1:0.1:3);
>> z=2*x*y/(x^2+y^2);
>> surf(x,y,z);
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
:‫يظهر لنا الرسم التالي‬
3 erugif

1
z

1-

2-
3
5.2 3
2 5.2
2
5.1 5.1
y 1 1
x

y x) yx (/z  2 2 2
‫ رسم‬: )1-6( ‫الشكل‬
>>contour(x,y,z)
>> xlabel('x')
>> ylabel('y') 1.3 erugif
3

8.2

6.2

4.2

2.2

2
y

8.1

6.1

4.1

2.1

1
1 2.1 4.1 6.1 8.1 2 2.2 4.2 6.2 8.2 3
x

y x) yx (/z  2 2 2
‫ مخطط الدالة‬: )1-7( ‫الشكل‬

:)4(‫مثال‬
‫ وحاصل جمعهما وحاصل الطرح والدالتين مع بعضهما في نفس الرسم؟‬cosn(x),sin(x ) ‫ارسمي الدالة‬
:‫الحل‬
x=-10:.01:10;
y1=sin(x);
subplot(3,2,1)
plot(x,y1);xlabel('x');ylabel('y');title('sin(x)')
subplot(3,2,2)
y2=cos(x);
plot(x,y2,'r');xlabel('x');ylabel('y');title('cos(x)')
subplot(3,2,3)
plot(x,y1+y2,'k');xlabel('x');ylabel('y');title('sin(x)+cos(x)')
y4=y2-y1;
subplot(3,2,4)
plot(x,y1,x,y4);xlabel('x');ylabel('y');title('cos(x)-sin(x)')
y5=sin(x);
y6=cos(x);
subplot(3,2,5)
plot(x,y5,'r',x,y6,'k');xlabel('x');ylabel('y');title('sin(x) and cos(x)')
)x(nis )x(soc
1 1

0 0
y

1- 1-
01- 5- 0 5 01 01- 5- 0 5 01
x x
)x(soc+)x(nis )x(nis-)x(soc
2 2

0 0
y

2- 2-
01- 5- 0 5 01 01- 5- 0 5 01
x x
)x(soc dna )x(nis
1

0
y

1-
01- 5- 0 5 01
x

cosn(x),sin(x ) ‫ رسم للدالتين‬:)1-8( ‫الشكل‬


:)5( ‫مثال‬
) (nis R
‫؟‬Z  y x  ‫ و‬R 2 2
‫ارسمي الدالة‬
R
:‫الحل‬
>> [X,Y] = meshgrid(-8:.5:8);
>> R = sqrt(X.^2 + Y.^2);
>> Z = sin(R)./R;
>> surf(X,Y,Z)
4 erugif

5.0

Z
0

5.0-
01
5 01
0 5
0
5- 5-
y 01- 01-
x

You might also like