MATLAB Lecture 3: Vectors and Matrices PDF
Document Details
Tags
Summary
This document explains the concept of vectors and matrices in MATLAB programming, including different types of vectors, basic operations like addition, subtraction, and multiplication. It also covers creating and manipulating vectors, matrices in MATLAB and providing examples for each.
Full Transcript
MATLAB المحاضرة الثالثة األشعة والمصفوفات و األعداد العقدية Mathworks األشعة والمصفوفات MATLAB اختصار لكلمتين matrix laboratoryوهي بيئة معتمدة على المصفوفات وعملياتها والتي تعتبر أساسا ً رئيسا ً في عمليات النمذجة...
MATLAB المحاضرة الثالثة األشعة والمصفوفات و األعداد العقدية Mathworks األشعة والمصفوفات MATLAB اختصار لكلمتين matrix laboratoryوهي بيئة معتمدة على المصفوفات وعملياتها والتي تعتبر أساسا ً رئيسا ً في عمليات النمذجة والتطبيقات الهندسية ،وبالتالي عملية اإلدخال الرئيسة في MATLAB هي إدخال المصفوفات ،وإن األشعة وحتى األعداد هي حاالت خاصة من المصفوفة ،فمثلً: الرقم 5هو مصفوفة بحجم (.)1x1 تعريف األشعة األشعة حالة خاصة من المصفوفات ،وهي نوعان: أ -سطرية :تعرف بوضع فاصلة عادية بين عناصرها ووضعها بين قوسين متوسطين [ ]. ]>> X=[1,2,3,4,5 =X 1 2 3 4 5 كما يمكن كتابة عناصر الشعاع السطري بدون فاصلة ]>> X=[1 2 3 4 5 =X 1 2 3 4 5 تعريف األشعة ب -عمودية :تعرف بوضع فاصلة نقطية بين عناصرها ووضعها بين قوسين متوسطين [ ]. ]>> y=[1;2;3;4;5 =y 1 2 3 4 5 تعريف األشعة كما يمكن تعريف األشعة السطرية ذات العناصر المتسلسلة وبتزايد ثابت باستخدام النقطتين ( ):كما في المثال: ]>> t=[1:2:10 =t 1 3 5 7 9 في هذا المثال تم تحديد القيمة االبتدائية للشعاع tومن ثم مقدار التزايد (الخطوة) ،وأخيرا ً القيمة النهائية ويفصل بين كل منها نقطتين. تعريف األشعة في حال لم يتم تحديد مقدار التزايد يعتبر MATLABأن قيمة التزايد االفتراضية وهي 1 ]>> t=[1:10 =t 1 2 3 4 5 6 7 8 9 10 هذا في حالة أن الشعاع سطري ،أما للحصول على الشعاع العمودي نستخدم المنقول (‘) كما يلي: تعريف األشعة ‘>> t = ans 1 2 3 4 5 6 7 8 9 10 التعامل مع األشعة استبدال عناصر الشعاع السطري (عمودي) :يتم بوضع اسم الشعاع متبوعا بقوسين صغيرين () يتضمن ترتيب العنصر المراد استبداله ثم إشارة = وقيمة العنصر المطلوبة بالنسبة للمصفوفة xوالتي سنستبدل الرقم 3بالرقم 6يتم باألمر: >> X(3)=6 =X 1 2 6 4 5 التعامل مع األشعة إضافة عناصر جديدة للشعاع السطري (عمودي) :تتم بنفس طريقة االستبدال إال أن الترتيب يجب أن يكون أكبر من ترتيب أكبر عدد في الشعاع. >> y(8)=12 =y 1 2 3 4 5 0 0 12 مالحظة :كل قيمة غير موجودة في الشعاع يعتبرها MATLABصفرا التعامل مع األشعة استدعاء عنصر من الشعاع السطري (عمودي) :يتم بطريقة تشبه االستبدال ولكن بدون = والرقم الذي يليها. )>> y(3 = ans 3 استدعاء أكثر من عنصر بترتيب متتالي: )>> y(3:6 = ans 3 4 5 0 العمليات والتوابع األساسية الخاصة باألشعة لدينا الشعاع Xكما يلي: X=[ 1 2 6 ]4 5 التابع maxيرجع أكبر عنصر في الشعاع )>> max(X = ans 6 التابع minيرجع أصغر عنصر في الشعاع )>> min(y = ans 0 العمليات والتوابع األساسية الخاصة باألشعة التابع lengthيرجع عدد عناصر الشعاع )>> length(X = ans 5 التابع sumيقوم بحساب مجموع عناصر الشعاع. )>> sum(y = ans 27 العمليات والتوابع األساسية الخاصة باألشعة التابع sortيقوم بترتيب عناصر الشعاع ترتيبا تصاعديا )>> sort(y = ans 0 0 1 2 3 4 5 12 العمليات والتوابع األساسية الخاصة باألشعة التابع rangeيقوم بحساب الفرق بين أكبر عنصر وأصغر عنصر من عناصر الشعاع )>> range(X = ans 5 العمليات الحسابية على األشعة نعرف الشعاعين التاليين: ]>> a=[1 2 3 4 5 =a 1 2 3 4 5 ]>> b=[6 7 8 9 10 =b 6 7 8 9 10 العمليات الحسابية على األشعة -1الجمع: >> a+b = ans 7 9 11 13 15 العمليات الحسابية على األشعة -2الطرح: >> a-b = ans -5 -5 -5 -5 -5 العمليات الحسابية على األشعة -3الجداء: >> a*b * Error using Inner matrix dimensions must agree. هنا خصوصية المصفوفات فإلجراء عملية الجداء البد من االلتزام بجبر المصفوفات حيث يجب أن يتم الجداء بين شعاع سطري وشعاع عمودي. '>> a*b = ans 130 العمليات الحسابية على األشعة يمكن استخدام العملية *.لتنفيذ عملية الجداء لكل عنصر في الشعاع األول بالعنصر المقابل في الشعاع اآلخر ،ويكون الشعاعان من نفس الحجم والشعاع الناتج أيضا من نفس الحجم. >> a.*b = ans 6 14 24 36 50 تعريف األشعة األشعة حالة خاصة من المصفوفات ،وهي نوعان: أ -سطرية :تعرف بوضع فاصلة عادية بين عناصرها ووضعها بين قوسين متوسطين ] [. ]>> X=[1,2,3,4,5 =X 1 2 3 4 5 كما يمكن كتابة عناصر الشعاع السطري بدون فاصلة ]>> X=[1 2 3 4 5 =X 1 2 3 4 5 تعريف األشعة ب -عمودية :تعرف بوضع فاصلة نقطية بين عناصرها ووضعها بين قوسين متوسطين ] [. ]>> y=[1;2;3;4;5 =y 1 2 3 4 5 تعريف األشعة يمكن تعريف األشعة السطرية والتي عناصرها متسلسلة وبتزايد ثابت باستخدام النقطتين ( ):كما في المثال: ]>> t=[1:2:10 =t 1 3 5 7 9 يظهر في المثال أنه تم تحديد القيمة األدنى للشعاع tوبعد النقطتين األوليتين مقدار التزايد (الخطوة) ،وبعد النقطتين الثانيتين توضع القيمة النهائية. تعريف األشعة ملحظة :في حال لم يتم تحديد مقدار التزايد يعتبر MATLABأن التزايد بقيمة 1افتراضيا ً ]>> t=[1:10 =t 1 2 3 4 5 6 7 8 9 10 يمكن الحصول على الشعاع العمودي بهذه الطريقة عن طريق ايجاد المنقول (‘) تعريف األشعة ‘>> t = ans 1 2 3 4 5 6 7 8 9 10 التعامل مع األشعة استبدال عناصر الشعاع السطري (أو العمودي) بقيم أخرى :يتم ذلك بوضع اسم الشعاع متبوعا ً بقوسين صغيرين () يتضمنان ترتيب العنصر المراد استبداله ثم إشارة = وقيمة العنصر المطلوبة. مثال :نعتبر المصفوفة xوالتي سنستبدل فيها الرقم 3بالرقم 6 يتم ذلك باألمر: >> X(3)=6 =X 1 2 6 4 5 التعامل مع األشعة إضافة عناصر جديدة للشعاع السطري (عمودي) :يتم بنفس طريقة االستبدال إال أن الترتيب يجب أن يكون أكبر من ترتيب أكبر عدد في الشعاع. >> y(8)=12 =y 1 2 ملحظة :كل قيمة غير معرفة القيمة في الشعاع يعتبرها MATLAB صفرا ً 3 4 5 0 0 12 التعامل مع األشعة استدعاء عنصر من الشعاع السطري (عمودي) :يتم بنفس طريقة اإلستبدال بدون إشارة = والرقم الذي بعدها. )>> y(3 = ans 3 استدعاء أكثر من عنصر بترتيب متتالي: )>> y(3:6 = ans 3 4 5 0 العمليات والتوابع الحسابيةالخاصة باألشعة التابع :lengthيرجع عدد عناصر الشعاع. فمثلً بالنسبة للمصفوفة :X )>> length(X = ans 5 التابع :sumيقوم بحساب عناصر الشعاع. )>> sum(y = ans 27 العمليات والتوابع الحسابيةالخاصة باألشعة التابع :maxيرجع أكبر عنصر في الشعاع ,فمثلً بالنسبة للمصفوفة :X )>> max(X = ans 6 التابع :minيرجع أصغر عنصر في الشعاع )>> min(y = ans 0 العمليات والتوابع الحسابيةالخاصة باألشعة التابع :sortيقوم بترتيب عناصر الشعاع ترتيبا ً تصاعديا ً )>> sort(y = ans 0 0 1 2 3 4 5 12 العمليات والتوابع الحسابيةالخاصة باألشعة التابع :rangeيقوم بحساب الفرق بين أكبر عنصر وأصغر عنصر من عناصر الشعاع )>> range(X = ans 5 العمليات الحسابية على األشعة ليكن لدينا الشعاعين التاليين: ]>> a=[1 2 3 4 5 =a 1 2 3 4 5 ]>> b=[6 7 8 9 10 =b 6 7 8 9 10 العمليات الحسابية على األشعة -1الجمع: >> a+b = ans 7 9 11 13 15 العمليات الحسابية على األشعة -2الطرح: >> a-b = ans -5 -5 -5 -5 -5 العمليات الحسابية على األشعة -3الجداء: >> a*b * Error using Inner matrix dimensions must agree. هنا خصوصية المصفوفات فإلجراء عملية الجداء البد من االلتزام بجبر المصفوفات حيث يجب أن يتم الجداء بين شعاع سطري وشعاع عمودي. '>> a*b = ans 130 العمليات الحسابية على األشعة يمكن استخدام العملية *.لتنفيذ عملية الجداء الجبري حيث يتم الجداء لكل عنصر من الشعاع بمقابله من الشعاع اآلخر والنتيجة بشعاع من نفس القياس. >> a.*b = ans 6 14 24 36 50 العمليات الحسابية على األشعة يمكن استخدام العملية *.لتنفيذ عملية الجداء الجبري حيث يتم الجداء لكل عنصر من الشعاع بمقابله من الشعاع اآلخر والنتيجة بشعاع من نفس القياس. >> a.*b = ans 6 14 24 36 50 المصفوفات المصفوفات هي مجموعة من البيانات والتي يتم وضعها في صورة أسطر وأعمدة ،وتأخذ الشكل التالي : وتستخدم المصفوفات في حل كثيرات الحدود Polynomialsوفي حل مجموعة من المعادالت وغيرها من التطبيقات. )Matrixname (m,n ويرمز عادة للمصفوفة في الرياضيات: mعدد األسطر (الصفوف) و nعدد األعمدة حيث : كتابة المصفوفات في MATLAB يتم إدخال المصفوفة بكتابة عناصر السطراألول ثم الثاني ...إلخ، فمثلً لكتابة المصفوفة التالية في :MATLAB يتم الفصل بين أرقام السطر األول إما بفاصلة ) Comma (,أو بترك فراغ بين األرقام. يتم فصل عناصر السطر األول عن عناصر السطر الثاني بالضغط على مفتاح Enterأو باستخدام الفاصلة المنقوطة Semicolon ) ;) كما يلي: كتابة المصفوفات في MATLAB مصفوفات خاصة – 1 المصفوفة الواحدية :هي مصفوفة من mسطر و nعمود كل عناصرها واحدات ).ones(m,n -2 المصفوفة الصفرية :هي مصفوفة من mسطر و nعمود كل عناصرها أصفار ).zeros(m,n -3 مصفوفة الهوية :Iوهي مصفوفة جميع عناصرها أصفار ما عدا عناصر القطر الرئيسي واحدات ).eye(m,n العمليات األساسية على المصفوفات هناك العديد من العمليات األساسية التي يمكن تطبيقها على المصفوفات في MATLABوذلك لجعل التعامل مع المصفوفات مرنا ً. -1 االستدعاء: يمكن استدعاء عنصر من المصفوفة aعن طريق: أ -رقم السطر ورقم العمود a(2,3) :يستدعي العنصر في السطر 2والعمود 3من المصفوفة .a ب -ترتيب العنصر a(8) :استدعاء العنصر الذي ترتيبه 8في المصفوفة ويحسب هذا الترتيب من العنصر ( )1x1باتجاه اليمين. كما يمكن استدعاء عناصر سطر أو عناصر عمود معين أو حتى مصفوفة جزئية من خلل استخدام المؤثر (.): مثال a(2:4,1:2) :استدعاء مصفوفة جزئية عناصرها هي األسطر 2,3,4واألعمدة 1,2 العمليات األساسية على المصفوفات -2اإلضافة :يمكن إضافة أعمدة أو أسطر أو مصفوفة جزئية للمصفوفة من خلل تحديد الموقع المراد إضافته وتحديد قيم اإلضافة مثال: ] A(:,5)=[1;2;3;4;5إضافة عمود خامس للمصفوفة .A -3التعديل على العناصر في المصفوفة ويتم من خلل تحدي موقع العنصر بنفس آليات االستدعاء وإسناد القيمة الجديدة لهذا العنصر. مثال a(1,2)=5 :تعديل العنصر ذي الترتيب 1x2بالعدد 5 -4الحذف :يمكن حذف عناصر من المصفوفة من خلل استدعائها وإسنادها للمؤثر ] [ مثال ] [=( a):,5يحذف عناصر العمود الخامس العمليات األساسية على المصفوفات -5 منقول المصفوفة والذي يعني استبدال أسطر المصفوفة بأعمدتها ويستخدم المؤثر (‘) إليجاد المنقول. -6 مقلوب المصفوفة :يتم إيجاده من خلل التعليمة ).inv(a بعض التوابع المستخدمة مع المصفوفات يوجد في MATLABالعديد من التوابع التي تستخدم مع المصفوفات والتي تساعد في استخدام المصفوفات بشكل فعال لحل مختلف المسائل العلمية منها: .1التابع ) :size(aيستخدم هذا التابع للحصول على أبعاد المصفوفة .a .2التابع ) :diag(aيستخدم إليجاد القطر الرئيسي للمصفوفة المربعة .a .3التابع ) :max(aيعيد شعاع يحتوي على العنصر األكبر لكل عمود في المصفوفة .a بعض التوابع المستخدمة مع المصفوفات .4التابع ) :min(aيعيد شعاع يحتوي على العنصر األصغر لكل عمود في المصفوفة .a .5التابع ) :sum(aيعيد شعاع يحتوي على مجموع عناصر كل عمود في المصفوفة .a .6التابع ) :prod(aيعيد شعاع يحتوي على جداء عناصر كل عمود في المصفوفة .a العمليات الحسابية على المصفوفات الجمع والطرح: شرط جمع مصفوفتين وطرحهما :شرط جمع (طرح) مصفوفتين أن يكون لكليهما نفس عدد الصفوف mوكذلك نفس عدد األعمدة n وتتم عملية الجمع (الطرح) بجمع (طرح) كل عنصرين متقابلين ووضعهما بالمصفوفة الناتجة. مثال المصفوفتان التاليتان يمكن جمعهما (طرحهما) ألنها يحملن نفس عدد الصفوف واألعمدة . العمليات الحسابية على المصفوفات يستخدم مؤثرا الجمع ( )+والطرح ( )-لتنفيذ عمليتي الجمع والطرح على التوالي كما في المثال التالي: العمليات الحسابية على المصفوفات ضرب المصفوفات : شرط ضرب أي مصفوفتين هو أن يكون عدد أعمدة المصفوفة األولى n1مساويا ً لعدد الصفوف في المصفوفة الثانية m2وتكون النتيجة مصفوفة لها عدد سطور األولى m1وأعمدة الثانية n2 مثال :ضرب المصفوفتين التاليتين: ينتج: العمليات الحسابية على المصفوفات العمليات الحسابية على المصفوفات يتم تنفيذ الضرب في MATLAB بمؤثر الضرب (*) مع االنتباه لتحقق شرط الضرب. هناك المؤثر السلمي للضرب (*). والذي يقوم بضرب كل عنصر من المصفوفة األولى بمقابله من المصفوفة الثانية. إن ضرب عدد سلمي بالمصفوفة هو مصفوفة ناتجة عن ضرب كل عنصر من عناصرها بهذا العدد. العمليات الحسابية على المصفوفات قسمة المصفوفات: قسمة المصفوفات a/bعمليا ً هو ضرب المصفوفة aبمقلوب المصفوفة .b وبالتالي فإن شرط القسمة هو عدد أعمدة المصفوفتين متساويتين. هناك نوعين من القسمة في MATLAهما القسمة من اليمين a/bوهنا يتم قسمة المصفوفة aعلى المصفوفة ،bوالقسمة من اليسار a\bويعني قسمة المصفوفة bعلى .a يجب االنتباه إلى أن المصفوفة المقسوم عليها والتي سيستخدم مقلوبها يجب أن تكون مربعة. وبشكل مشابه للضرب فإن استخدام المؤثر السلمي للقسمة ( ).\,./والعدد السلمي سينفذ كما في الضرب أي قسمة كل عنصر من المصفوفة األولى على العنصر المقابل له في المصفوفة الثانية أو قسمة عناصر المصفوفة على العدد السلمي. العمليات الحسابية على المصفوفات )^( مؤثر الرفع إلى قوة: لمؤثر الرفع إلى قوة معاملن.ويعمل مع األعداد السلمية عمل المعامل )^(. والذي يعني رفع كل عنصر من عناصر المصفوفة لألس المحدد. لكن إن كان أحد معامليه عدد سلمي واآلخر مصفوفة فإنه ينجز عملية مختلفة حسب ترتيب معامليه. إن كان المعامل اليساري مصفوفة واليميني عدد فإنه يرفع المصفوفة للقوة العدد o بضرب المصفوفة بنفسها عدد من المرات يساوي العدد (إذا كانت القوة عدد صحيح موجب) وهنا يجب أن تكون المصفوفة مربعة.وإن كانت القوة عدداً صحيحا ً سالبا ً تقلب المصفوفة ثم تنجز عملية الرفع للقيمة المطلقة للقوة.ويمكن أن تكون القوة عدد حقيقي أو عقدي. كما يمكن رفع عدد للقوة مصفوفة ويشترط أيضا ً أن تكون المصفوفة مربعة. o ال يمكن استخدام مؤثر الرفع إلى قوة إن كان معامليه مصفوفة. o األعداد العقدية يحتوي MATLABعلى العديد من التوابع المخصصة للتعامل مع األعداد العقدية ،والتي تتكون كما هو معلوم من قسم حقيقي وقسم عقدي. مثلً العدد العقدي 3+i5يتكون من جزأين حقيقي 3وتخيلي (عقدي) 5إلدخال هذا العدد في MATLABنستخدم أسلوبين: .1اإلدخال المباشر باستخدام الرمز iأو jالدال على القسم التخيلي في MATLABكما في المثال: >>a = 5+3*iأو >>a = 5 + 3i .2باستخدام التابع ) comlex (Re,Imكما في المثال: )>>a = complex(5,3 الذي يعطي الخرج التالي: >>a = 5.0000 + 3.0000i األعداد العقدية إن التمثيل السابق للعدد العقدي يدعى بالتمثيل الديكارتي حيث يمثل بمستوي محوره األفقي هو المحور الحقيقي والمحور الشاقولي هو المحور التخيلي. هناك تمثيل آخر للعدد العقدي هو التمثيل القطبي والذي يستخدم الزاوية ونصف القطر( No)r,θوالذي يمكن أن نسمي مركباته بطويلة وزاوية.تستخدم التوابع التالية للتمثيل القطبي للعدد العقدي: :abs(No) -1تستخدم لحساب طويلة العدد العقدي. :angle(No) -2تستخدم لحساب زاوية العدد العقدي بالراديان. األعداد العقدية طويلة العدد العقدي a )>> abs(a = ans 5.8310 زاوية العدد العقدي a )>> angle(a = ans 1.0304 األعداد العقدية برنامج MATLABمزود بالعديد من التوابع التي تستخدم مع األعداد العقدية من هذه التوابع: :real(No)-1يستخدم إلخراج الجزء الحقيقي من العدد العقدي. :imag(No) -2يستخدم إلخراج الجزء التخيلي من العدد العقدي. :conj(No) -3إليجاد المرافق العقدي للعدد العقدي ،كما يمكن استخدام الرمز (‘) إليجاد المرافق العقدي بالشكل ’.No :isreal(No)-4يستخدم لتحديد فيما إذا كان المتحول الموجود عقديا ً أم ال ،حيث يرجع القيمة 1إذا كان العدد حقيقي ،و 0إذا كان العدد عقديا ً. األعداد العقدية MATLAB مزود بالعديد من التوابع التي تستخدم مع األعداد العقدية من هذه التوابع: :real(No)-1 يستخدم الستخراج الجزء الحقيقي من العدد العقدي. :imag(No) -2 يستخدم الستخراج الجزء التخيلي من العدد العقدي. )>> real(a = ans 5 )>> imag(a = ans 3 األعداد العقدية :conj(No) -3 إليجاد المرافق العقدي للعدد العقدي ,كما يمكن استخدام الرمز (‘) إليجاد المرافق العقدي بالشكل ’.No :isreal(No)-4 يستخدم لتحديد فيما إذا كان المتحول الموجود عقديا أم ال ,حيث يرجع القيمة 1إذا كان العدد حقيقي ,و 0إذا كان العدد عقديا. )>> conj(a = ans 5.0000 - 3.0000i )>> isreal(a = ans 0 األعداد العقدية إدخال العدد العقدي بشكل مباشر >> a=5+3i =a 5.0000 + 3.0000i استخدام التابع complexلتعريف العدد العقدي )>> a=complex(3,5 =a 5.0000 + 3.0000i إيجاد مرافق العدد العقدي ‘>> a = ans 5.0000 - 3.0000i األعداد العقدية التحويل من االحداثيات الديكارتية إلى القطبية )[theta,rho] = cart2pol(x,y التحويل من اإلحداثيات القطبية إلى اإلحداثيات الديكارتية )[x,y] = pol2cart(theta,rho