كتاب MATLAB - جامعة بابل - الفصل 2
Document Details
Uploaded by DashingRaleigh
جامعة بابل
2024
د. محمد غانم مردان & د. فؤاد حمزة عبد
Tags
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