كتاب MATLAB - جامعة بابل - الفصل 2

Document Details

DashingRaleigh

Uploaded by DashingRaleigh

جامعة بابل

2024

د. محمد غانم مردان & د. فؤاد حمزة عبد

Tags

MATLAB الرياضيات الجبر الخطي برمجة

Summary

هذا الفصل من كتاب مختبر الحاسبات لعلم الفيزياء في جامعة بابل المرحلة الثانية العام الدراسي 2023-2024. يتناول الفصل المتجهات والمصفوفات في MATLAB، مع شرح مبسط لتعريفها وأنواعها وأمثلة عملية لتحويلها.

Full Transcript

‫جامعة بابل – كلية العلوم – قسم الفيزياء – الفصل الدراسي االول ‪ -‬محاضرات مختبر الحاسبات‬ ‫المرحلة الثانية ‪ -‬العام الدراسي ‪ – ) 4 ( 2024 – 2023‬م‪.‬د محمد غانم مردان & م‪.‬د فؤاد حمزة عبد‬ ‫الفصل الثاني‬...

‫جامعة بابل – كلية العلوم – قسم الفيزياء – الفصل الدراسي االول ‪ -‬محاضرات مختبر الحاسبات‬ ‫المرحلة الثانية ‪ -‬العام الدراسي ‪ – ) 4 ( 2024 – 2023‬م‪.‬د محمد غانم مردان & م‪.‬د فؤاد حمزة عبد‬ ‫الفصل الثاني‬ ‫‪ 1‬المتجهات والمصفوفات‬ ‫المقدمة‬ ‫لقد تم اعداد الماتالب بطريقة تمكن المتخصصون في الرياضيات والمهندسون والمجاالت العلمية األخرى في‬ ‫التعامل مع الجبر الخطي ‪ linear algebra‬بسهولة ونظم الصفوف ‪. array‬قد يتبادر الى ذهن الطالب ان المتجهات‬ ‫هنا هي فقط تلك التي تصف حركة االجسام في االبعاد الثالثة‪ ،‬نعم ممكن ان تكون كذلك ولكن المتجهات هنا اكثر‬ ‫عمومية كما سنتعرف على ذلك في الفقرات الالحقة‪.‬‬ ‫المتجهات ‪Vectors‬‬ ‫المتجهات في الماتالب هي عبارة عن ارقام مرتبة بطريقة متسلسلة ‪ array‬اما بصورة افقية او عمودية‪.‬‬ ‫‪ 1.2.1‬أنواع المتجهات ‪:‬‬ ‫‪( Row Vector‬متجه مكون من صف واحد)‬ ‫‪ -1‬متجه صفي‬ ‫يمكننا برنامج ‪ MATLAB‬من تعريف المتجه الصفي من خالل كتابة اسم المتغير (الذي سنخزن فيه القيم العددية)‬ ‫ثم عالمة (=) ثم قوس مربع أيسر ([) ثم قيم عناصر المتجه ويتم الفصل بين كل عنصر والعنصر الذي يليه في‬ ‫المتجه إما بإستخدام مسافة ‪ Space‬أو فاصلة )‪ Comma (,‬من لوحة المفاتيح وبعد اإلنتهاء من إدخال جميع عناصر‬ ‫المتجه نضع قوس مربع أيمن (]) فمثال لكتابة المتجه الصفي ‪ x‬والمتكون من االعداد من ‪ 1‬الى ‪: 5‬‬ ‫‪% Defining x as A Row Vector‬‬ ‫]‪>> x=[1 2 3 4 5‬‬ ‫= ‪x‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫هذا ويمكنك وضع عالمة الفاصلة (‪ ),‬بين عناصر المتجه الصفي بدال من المسافة ‪ Space‬وكالهما يستخدم للتعبير عن‬ ‫المتجه الصفي ‪. Row Vector‬‬ ‫]‪>> x=[1,2,3,4,5‬‬ ‫= ‪x‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫مالحظة ‪ :‬إذا كان هناك اشارات سالبة أو موجبة في القيم الخاصة بمتجه معين فيجب عدم وضع فراغات بين اإلشارة‬ ‫والرقم التابع لها ألن برنامج ‪ MATLAB‬سيعتبرها مسألة طرح أو جمع‪(.‬تأكد من ذلك بأخذ مثال)‪.‬‬ ‫‪19‬‬ ‫جامعة بابل – كلية العلوم – قسم الفيزياء – الفصل الدراسي االول ‪ -‬محاضرات مختبر الحاسبات‬ ‫المرحلة الثانية ‪ -‬العام الدراسي ‪ – ) 4 ( 2024 – 2023‬م‪.‬د محمد غانم مردان & م‪.‬د فؤاد حمزة عبد‬ ‫‪ -2‬متجه عمودي ‪( Column Vector‬متجه مكون من عمود واحد)‬ ‫ويتم انشاءه بوضع الفارزة المنقوطة (;) بين القيم فمثال لكتابة متجه عمودي لالعداد من ‪ 1‬الى ‪:3‬‬ ‫‪>> % Defining A as a Column Vector‬‬ ‫]‪>> A=[1;2;3‬‬ ‫= ‪A‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫مع مالحظة أن عالمة الفارزة المنقوطة تستخدم للفصل بين كل عنصر من عناصر المتجه العمودي وهي تدل على ان‬ ‫كل عنصر من عناصر المتجه يقع في صف منفصل أي ان هذا المتجه مكون من عمود واحد ( متجه عمودي) ‪.‬‬ ‫الحظ ان المتجه الصفي ‪ x‬الذي تم انشاءه سابقا من خالل إدخال قيمة كل عنصر من عناصره بشكل صريح ألن المتجه‬ ‫يتكون من ‪ 5‬عناصر فقط‪ ،‬ولكن إذا كان لدينا ‪ 100‬عنصر في المتجه ‪ A‬مثال‪ ،‬يوفر لنا برنامج ‪MATLAB‬‬ ‫طريقتين بسيطتين إلدخال ‪ 100‬عنصر أو أي عدد من العناصر في المتجه الصفي‪. A‬‬ ‫‪A=first_value : step:last_value‬‬ ‫الطريقة األولى ‪ :‬صيغتها العامة ‪:‬‬ ‫وتستخدم هذه الطريقة إلنشاء متجه صفي يبدأ من القيمة العددية ‪ ( firt_value‬الموجودة على الطرف األيسر من‬ ‫العالقة ) ويعد بخطوة مقدارها ‪ step‬تصاعديا أو تنازليا (حسب اشارة الخطوة) حتى يصل إلى القيمة النهائية‬ ‫‪ ( last_value‬الموجودة على الطرف األيمن من العالقة ) مع مالحظة أنه عند عدم تعريف الخطوة بين العنصر‬ ‫األول والعنصر األخير يعتبرها البرنامج واحد ألن الخطوة اإلفتراضية ‪ Default step‬في برنامج ‪ MATLAB‬هي‬ ‫الخطوة (‪. )+1‬فعلى سبيل المثال إلنشاء متجه تبدأ عناصره بواحد وتنتهي بــ ‪ 100‬وبخطوة قيمتها ‪ 1‬نقوم بتحرير‬ ‫أحد األمرين التاليين ‪:‬‬ ‫;‪>> A=1:100‬‬ ‫;‪>> A=1:1:100‬‬ ‫هنا وضعنا الفارزة المنقوطة لعدم رغبتنا باظهار االرقام من ‪ 1‬الى ‪ 100‬كونها تأخذ مساحة كبيرة‪.‬‬ ‫وإلنشاء متجه تبدأ قيم عناصره بــ ‪ 1‬وتنتهي بـــ ‪ 100‬بخطوة قيمتها ‪ 10‬نقوم بتحرير األمر التالي‪:‬‬ ‫‪>> A=1:10:100‬‬ ‫= ‪A‬‬ ‫‪1‬‬ ‫‪11‬‬ ‫‪21‬‬ ‫‪31‬‬ ‫‪41‬‬ ‫‪51‬‬ ‫‪61‬‬ ‫‪71‬‬ ‫‪81‬‬ ‫‪91‬‬ ‫‪20‬‬ ‫جامعة بابل – كلية العلوم – قسم الفيزياء – الفصل الدراسي االول ‪ -‬محاضرات مختبر الحاسبات‬ ‫المرحلة الثانية ‪ -‬العام الدراسي ‪ – ) 4 ( 2024 – 2023‬م‪.‬د محمد غانم مردان & م‪.‬د فؤاد حمزة عبد‬ ‫مثال‪ :1‬قم بانشاء متجه صفي لالعداد من ‪ 1‬الى ‪ 100‬والتي تقبل القسمة على ‪10‬‬ ‫الحظ هنا ان اول عدد يقبل القسمة على ‪ 10‬هو العدد ‪ 10‬لذا سنبدأ به‬ ‫‪>> A=10:10:100‬‬ ‫=‪A‬‬ ‫‪10‬‬ ‫‪20‬‬ ‫‪30‬‬ ‫‪40‬‬ ‫‪50‬‬ ‫‪60‬‬ ‫‪70‬‬ ‫‪80‬‬ ‫‪90‬‬ ‫‪100‬‬ ‫مثال‪ :2‬قم بانشاء متجه صفي لالعداد الزوجية الموجبة االكبر من ‪ 0‬واالقل من ‪15‬‬ ‫الحظ هنا اول عدد زوجي اكبر من الصفر هو ‪2‬‬ ‫‪>> A=2:2:15‬‬ ‫=‪A‬‬ ‫‪2‬‬ ‫‪4‬‬ ‫‪6‬‬ ‫‪8‬‬ ‫‪10‬‬ ‫‪12‬‬ ‫‪14‬‬ ‫‪>> A=2:2:14‬‬ ‫يمكن كتابة المثال بالصورة‬ ‫مثال‪ :3‬رتب االعداد الزوجية االصغر من ‪ 21‬واألكبر من ‪ 1‬ترتيبا تنازليا بمتجه صفي‬ ‫‪>> A=20:-2:2‬‬ ‫=‪A‬‬ ‫‪20‬‬ ‫‪18‬‬ ‫‪16‬‬ ‫‪14‬‬ ‫‪12‬‬ ‫‪10‬‬ ‫‪8‬‬ ‫‪6‬‬ ‫‪4‬‬ ‫‪2‬‬ ‫تمرين‪.1 :‬قم بانشاء متجه صفي لالعداد الفردية الموجبة االكبر من ‪ 0‬واالقل من ‪.15‬‬ ‫‪.2‬قم بانشاء متجه صفي لالعداد الموجبة التي تقبل القسمة على ‪ 3‬االكبر من ‪ 0‬واقل من ‪ 15‬مرتبة ترتيبا تنازليا‬ ‫الطريقة الثانية ‪ :‬وصيغتها العامة‪A= linspace (first_value,last_value,N) :‬‬ ‫تستخدم هذه الطريقة إلنشاء متجه صفي به عدد محدد من العناصر قيمهم عشوائية موزعة بالتساوي بين قيمتين‬ ‫محددتين‪.‬حيث تستخدم الدالة ‪ linspace‬إلنشاء متجه عشوائي به عدد محدد من العناصر قيمهم عشوائية موزعة‬ ‫بالتساوي بين قيمتين محددتين عن طريق تحديد الرقم األصغر والرقم األكبر وعدد النقط المرغوبة بين هذين الرقمين‬ ‫وهذا ما يسمي بالنظام العشوائي لـ ‪. Randomization System in MATLAB‬حيث تقوم هذه الصورة بإنشاء‬ ‫عدد ‪ N‬من النقاط المتساوية االبعاد ما بين القيمتين ‪ last_value , first_value‬مع مالحظة أنه في حالة عدم تحديد‬ ‫قيمة ‪ N‬فسوف يعتبرها البرنامج تلقائيا مساوية لـ ‪(.100‬تأكد بنفسك من ذلك)‪.‬‬ ‫‪21‬‬ ‫جامعة بابل – كلية العلوم – قسم الفيزياء – الفصل الدراسي االول ‪ -‬محاضرات مختبر الحاسبات‬ ‫المرحلة الثانية ‪ -‬العام الدراسي ‪ – ) 4 ( 2024 – 2023‬م‪.‬د محمد غانم مردان & م‪.‬د فؤاد حمزة عبد‬ ‫مثال‪ :4‬قم بانشاء متجه صفي يتكون من سبع عناصر بين العددين ‪ 1‬و ‪ 12‬مقربا النتائج الى اقرب مرتبتين عشريتين‬ ‫‪>> format bank‬‬ ‫(‪>> x=linspace)1,12,7‬‬ ‫=‪x‬‬ ‫‪1.00‬‬ ‫‪2.83‬‬ ‫‪4.67‬‬ ‫‪6.50‬‬ ‫‪8.33‬‬ ‫‪10.17‬‬ ‫‪12.00‬‬ ‫مثال‪ :5‬قم بانشاء متجه صفي يتكون من سبع عناصر بين العددين ‪ 11‬و ‪ 60‬مرتبة ترتيبا تنازليا‬ ‫(‪>> x=linspace)60,11,7‬‬ ‫=‪x‬‬ ‫‪60.0000‬‬ ‫‪51.8333‬‬ ‫‪43.6667‬‬ ‫‪35.5000‬‬ ‫‪27.3333‬‬ ‫‪19.1667‬‬ ‫‪11.0000‬‬ ‫أن الفرق بين الطريقتين السابقتين إلنشاء المتجهات الصفية هو ان الطريقة االولى تسمح لنا بتحديد الخطوة ‪step‬‬ ‫مباشرة بين قيمتين محددتين ولكن ال تسمح بتحديد عدد النقاط بين هاتين القيمتين بينما تسمح لنا الطريقة الثانية بتحديد‬ ‫عدد النقاط بين قيمتين محددتين لكن دون تحديد الخطوة بين هاتين القيمتين ‪.‬‬ ‫مع مالحظة أنه اذا رغبنا إنشاء متجه عمودي من متجه افقي اومن إحدى الصيغتين ‪:‬‬ ‫‪x=linspace (first,last,N), x=first : step : last‬‬ ‫فإنه يمكننا ذلك باستخدام مدور (مبدل) المتجه الصفي ‪ Row Vector Transpose‬الناتج من احدى هذه العمليات‬ ‫السابقة بإستخدام عالمة الفاصلة العليا (عالمة االقتباس) ‪ )'( apostrophe‬بعد اسم المصفوفة أو المتجه ومثال ذلك‬ ‫;]‪>> A=[1 3 7‬‬ ‫'‪>> B=A‬‬ ‫= ‪B‬‬ ‫‪1‬‬ ‫‪3‬‬ ‫‪7‬‬ ‫مثال‪ :6‬انشيء متجه عمودي لخمسة اعداد بين ‪ ln 5‬و ‪ ln 150‬مرتبة ترتيبا تنازليا‪.‬‬ ‫;)‪>> x=linspace (log(150),log(5),5‬‬ ‫'‪>> y=x‬‬ ‫= ‪y‬‬ ‫‪5.0106‬‬ ‫‪4.1603‬‬ ‫‪3.3100‬‬ ‫‪2.4597‬‬ ‫‪1.6094‬‬ ‫تمرين‪.1 :‬قم بانشاء متجه عمودي يتكون من سبعة عناصر بين العددين ‪ 6‬و ‪.50‬‬ ‫‪.2‬انشيء متجه عمودي لست زوايا بين ‪ sin−1 0.5‬و ‪ sin−1 1‬على ان تكون الزوايا بالتقدير الستيني‪.‬‬ ‫‪22‬‬

Use Quizgecko on...
Browser
Browser