المصفوفات في برنامج ال matlab


(system) #1

[CENTER]المصفوفات والتعامل معها في برنامج MATLAB

[/center]

مقدمة :
تعد المصفوفات مفهوماً رياضياً أساسياً من مفاهيم الجبر الخطي، ومن ناحية أخرى، فهي أداة أساسية لتوصيف كثير من الظواهر والتطبيقات الهندسية، فهي تستخدم في حل جمل المعادلات الخطية المعبرة عن خصائص نظام ما، وتستخدم لتوصيف الإشارات الميكانيكية أو الكهربائية، وتستخدم في تطبيقات معالجة الصورة ، وغيرها من التطبيقات الأخرى.
أما برنامج الماتلاب فقد صمم في أساسه لمعالجة المصفوفات وحل مسائلها، إذ سبق وذكر في موضوع عن برنامج الماتلاب بأن تسميته قد أتت من MATrixLABoratory أو مختبر المصفوفات، وهو يتعامل مع المصفوفة كأحد شكلين:

  1. مفهوم رياضي لتمثيل البيانات بأسطر وأعمدة، وتحكمه قوانين الجبر الخطي في العمليات والعلاقة بين المصفوفات، وتطبق عليها عمليات الضرب والجمع والمقلوب ويحسب محددها Determinant.

  2. ترتيب معين لبيانات على شكل جدول من أعمدة وصفوف، ولا يقصد بها المفهوم الرياضي للمصفوفة، بل تجري عليها عمليات إحصائية وتمثيلات رسومية بيانية لهذه البيانات.
    سنتناول في هذا الموضوع خليطاً من العمليات على عناصر المصفوفة في كلتا الحالتين، ونأمل الاستمرار للانتقال إلى مراحل أخرى من الموضوع.

  3. بفرض أن إدارة الموقع قد رغبت بحساب التكلفة الإجمالية لتكريم مشرفي أفضل 3 أقسام في الموقع، فتقوم بإحصاء عدد المواضيع في القسم العلمي والمراجع العلمي وغرفة المناقشة لكل من هذه الأقسام الثلاثة، فرتبت البيانات في جدول على الشكل التالي:

فأجريت إحصائية أخرى لقيمة الجائزة النقدية التي يستحقها كل موضوع في الأقسام السابقة (باليورو)، فكانت كما يلي:

فكيف يمكن للإدارة حساب التكلفة الإجمالية لعملية التكريم هذه ؟

نعم، ستضرب كل عنصر من الجدول الأول ( ولنسمّه بالمصفوفة A ) مع ما يقابله من الجدول الثاني ( ولنسمّه بالمصفوفة B ) فتنشأ مصفوفة جديدة ( ولتكن C ) تعبر عن تكلفة كل قسم:

أما التكلفة الإجمالية فتساوي مجموع العناصر السابقة في الجدول، أي يمكن التعبير عنها بالشكل:
240x1+30x1+400x2+….55x7

فتكون التكلفة الإجمالية هي : 2091

كيف يمكن تحقيق هذه العملية في برنامج ماتلاب ؟

أ. الضرب عنصراً إلى عنصر: ويتحقق باستخدام النقطة ( . ) مع إشارة العملية الحسابية ( * )
CODE: تحديد الكل
C = A .* B

ب. المجموع : تعليمة sum
CODE: تحديد الكل
Total = sum©

فستعطي هذه التعليمة مجموع العناصر في كل عمود من المصفوفة C، ولإيجاد المجموع كاملاً نكتب ما يلي:
CODE: تحديد الكل
Total = sum(sum©)

لن نسهب في الشرح التفصيلي في العمليات التالية، وسنكتفي بذكر العملية ومثالٍ عليها للتدرب على قواعد الكتابة الخاصة بالبرنامج.

جـ. بناء المصفوفة:
يتم تشكيل المصفوفات في برنامج الماتلاب كما يلي:
لتشكيل مصفوفة بسطر واحد وأكثر من عمود ( مصفوفة سطرية) ولنفرض اسمها A:
CODE: تحديد الكل
A = [ 0 3 5 3 5]

لتشكيل مصفوفة بأكثر سطر بعمود واحد، إما كتابتها بالشكل التالي:
CODE: تحديد الكل
B =[0; 3; 5; 3; 5]

أو :
CODE: تحديد الكل
B = A’

وهي منقول المصفوفة A، أي تبديل الأسطر بالأعمدة والأعمدة بالأسطر.

كما يمكن تضمين أكثر من مصفوفة في مصفوفة واحدة ( بشرط التوافق بين المصفوفتين في الأسطر في حال تضمينها في سطر واحد، والتوافق بالأعمدة في حال وضعها في عمود واحد):
CODE: تحديد الكل
C = [ A A]
C = [B; B]

د.التعامل مع عناصر المصفوفة بأدلتها:
تستخدم الأقواس الهلالية ( ) بشكل عام للتعامل مع العناصر ضمن المصفوفة الواحدة، فمثلاً:
CODE: تحديد الكل
A(1, 3)

يدل على العنصر من المصفوفة A في السطر الأول والعمود الثالث، أي 5.
CODE: تحديد الكل
A(5)

يعطي العنصر الخامس في المصفوفة في عملية مسح كامل لها عموداً عموداً، ومن الأعلى إلى الأسفل، وفي حال طلب العنصر بدليل خاطئ أي غير منتمٍ للمصفوفة فإن البرنامج سيعطي رسالة خطأ، أما في حالة الإسناد إلى العنصر ذي الدليل الخاطئ فسيتم إضافة أسطر وأعمدة للمصفوفة عناصرها أصفاراً عدا العنصر المضاف الذي سيحمل القيمة المسندة من قبل المستخدم.

هـ. النقطتان الرأسيتان( : ) – colon - :
تدل هذه الأداة بشكل عام على الفترة أو المجال، فمثلاً:
CODE: تحديد الكل
1:5 = 1 2 3 4 5

وفي أدلة المصفوفات كذلك، ففي حال استدعاء عناصر المصفوفة باستخدام أدلتها كم يلي:
CODE: تحديد الكل
A(1:3)

فسيتم استعراض العناصر في الصف الأول بدءاً من العنصر الأول وحتى الثالث، وفي حال مصفوفة مستطيلة من الشكل:
CODE: تحديد الكل
R = [3 5 6; 2 5 6]
R(1:2, 2:3)

فإن هذا الاستدعاء سيعطي:
CODE: تحديد الكل
3 5
5 6

أي ، عناصر الصف الأول من العنصر الأول إلى العنصر الثاني، والسطر الثاني من العنصر الثاني إلى العنصر الثالث.

وفي حال الرغبة باستدعاء جميع عناصر السطر الثاني مثلاً ، فنكتب :
CODE: تحديد الكل
A(2,:slight_smile:

وفي حال العمود الثالث:
CODE: تحديد الكل
A(:,3)

ويمكن بالتأكيد إجراء التعديلات على عناصر المصفوفة باستخدام أدلتها وإسناد قيم جديدة لها، كالمثال التالي:
سنقوم بتربيع جميع عناصر السطر الثاني من المصفوفة A وإضافتها إلى نصف قيمها السابقة:
CODE: تحديد الكل
A(2,:)= A(2,:).^2 + A./2;

قد يبدو الدرس جافاً قليلاً، ولكن سيخولنا التمكن من هذه المهارات من الانتقال إلى مراحل أخرى سواءً على صعيد الجبر الخطي أو تطبيقاته الهندسية في البرنامج.