يساوي7
أهلا وسهلا بك عزيزي الزائر في منتدى يساوي7 للرياضيات
يمكنك التسجيل لدينا من خلال هذه النافذة لتستفيد أكثر من المواضيع المطروحة
وشكرا جزيلا لك

قسمة المصفوفات (2)

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

قسمة المصفوفات (2)

مُساهمة من طرف محمد جهاد الجبارين في الأحد ديسمبر 01, 2013 9:40 am

قسمة المصفوفات :
يمكننا برنامج MATLAB من إجراء عملية القسمة بين مصفوفتين بشرط أن يكون كلا المصفوفتين مربعتين أو أن يكون أحدهما قيمة عددية مفردة ونقوم بإجراء عملية القسمة بإستخدام المؤثرين الرياضيين ("/" و "\" )حيث يستخدم "/" وسمي slash لإجراء عملية القسمة اليسارية ( من اليسار إلي اليمين ) كما يستخدم المؤثر "\" ويسمي Backslash لإجراء عملية القسمة اليمينية (من اليمين إلي اليسار ) أو العكسية حيث يتم فيها قسمة المقام علي البسط .
ولتوضيح كيفية إجراء عملية قسمة مصفوفتين تابع معي الأمثلة التالية :
- قم بتعريف المصفوفتين المربعتين A,B كما يلي :
[ltr]>> % Defining a square matrix [A][/ltr]
[ltr]>> A=[4  6 ;8  10] ;[/ltr]
[ltr]        >> % Defining a square matrix [B][/ltr]
[ltr]                        >> B= [2         3;     4      5] ;[/ltr]
- قم بإجراء عملية القسمة (بإستخدام الرمز "/" ) كما يلي :
[ltr]>> % C=A/B[/ltr]
[ltr]>> C=A/B[/ltr]
[ltr]C =[/ltr]
[ltr]        2      0[/ltr]
[ltr]        0      2[/ltr]
لنلاحظ أن البرنامج قد قام بقسمة المصفوفة A كوحدة واحدة علي المصفوفة B كوحدة واحدة ولم يقم بقسمة كل عنصر من عناصر المصفوفة A علي العناصر المناظر له في المصفوفة B .
ملحوظة : يستخدم معاملي القسمة الأيمن أو الأيسر للمصفوفة في حل المعادلات الخطية Solutions of system of linear equations  كما يلي :
[ltr]A X =B[/ltr]
[ltr]X=B/A[/ltr]
[ltr]X = A\B[/ltr]
- كما يمكننا الحصول علي نفس ناتج القسمة السابقة بإستخدام دالة المعكوس inv أو برفع المصفوفة الي القوة (-1)كما يلي :
[ltr]>> % A/B = A*inv (B) = A*B^-1[/ltr]
[ltr]>> D=A*inv (B)[/ltr]
[ltr]D =[/ltr]
[ltr]        2      0[/ltr]
[ltr]        0      2[/ltr]
[ltr]>> E=A*B^-1[/ltr]
[ltr]E =[/ltr]
[ltr]        2      0[/ltr]
[ltr]        0      2[/ltr]
مع ملاحظة أن هذه العلاقات لا تتحقق إلا في حالة المصفوفات المربعة فقط ( المصفوفات التي يكون عدد صفوفها يساوي عدد أعمدتها ) ذات المعكوس .
- قم بإجراء عملية القسمة العكسية (بإستخدام الرمز "\" ) كما يلي :
[ltr]>> F=A\B[/ltr]
[ltr]F =[/ltr]
[ltr]        0.5000             0[/ltr]
[ltr]                0              0.5000[/ltr]
لنلاحظ أن البرنامج قد قام بالقسمة العكسية للمصفوفة A كوحدة واحدة علي المصفوفة B كوحدة واحدة ولم يقوم بالقسمة العكسية لكل عنصر من عناصر المصفوفة A علي العناصر المناظرة لها في المصفوفة B .
- كما يمكننا الحصول علي نفس ناتج القسمة العكسية السابقة بإستخدام دالة المعكوس inv أو برفع المصفوفة إلي القوة (1-) كما يلي :
[ltr]>> % A\B = inv (A) *B = A^-1*B[/ltr]
[ltr]>> G=inv (A) *B[/ltr]
[ltr]G =[/ltr]
[ltr]        0.5000             0[/ltr]
[ltr]                0      0.5000[/ltr]
[ltr]>> H=A^-1*B[/ltr]
[ltr]H =[/ltr]
[ltr]        0.5000             0[/ltr]
[ltr]                0      0.5000[/ltr]
مع ملاحظة ان هذه العلاقات لا تتحقق إلا في حالة المصفوفات المربعة فقط (المصفوفات التي يكون عدد صفوفها يساوي عدد أعمدتها ) ذات المعكوس .
قسمة مصفوفتين عنصرا بعنصر :
في كثير من الأحيان قد يكون هدف المستخدم هو قسمة كل عنصر من عناصر المصفوفة الأولي علي العنصر المناظر له في المصفوفة الثانية ويتحقق هذا بشرط هو أن يتساوي أبعاد المصفوفتين المراد قسمة عناصرهما المتقابلة (مع عدم ضرورة توافر شرط أن يكونا كلا المصفوفتين مربعتين ) أو أن يكون أحدهما قيمة عددية مفردة Scalar وتتحقق هذه العملية بإضافة نقطة Dot(.) قبل علامتي عملية القسمة (/) أو (\) وتستخدم كما في المثال التالي :
[ltr]>> % Defining a non square Matrix [A][/ltr]
[ltr]>> A=[4          9      64;16       25    81][/ltr]
[ltr]A=[/ltr]
[ltr]        4      9      64[/ltr]
[ltr]        16    25    81[/ltr]
[ltr]>> % Defining a non square Matrix [B][/ltr]
[ltr]>> B=[2          3      8;4           5      9][/ltr]
[ltr]B=[/ltr]
[ltr]        2      3      8[/ltr]
[ltr]        4      5      9[/ltr]
[ltr]>> % C=A./B (Dividing element by element)[/ltr]
[ltr]>> C=A./B[/ltr]
[ltr]C =[/ltr]
[ltr]        2      3      8[/ltr]
[ltr]        4      5      9[/ltr]
[ltr]>> % C=A.\B (Dividing element by element)[/ltr]
[ltr]>> D=A./B[/ltr]
[ltr]D =[/ltr]
[ltr]        0.5000     0.3333     0.1250[/ltr]
[ltr]        0.2500     0.2000     0.1111[/ltr]
مع ملاحظة أن النقطة Dot(.) التي تسبق معاملي القسمة ( الأمامية / أو العكسية \) تخبر برنامج MATLAB بأن يقوم بالقسمة عنصرا بعنصر element by element أما عملية القسمة دون استخدام نقطة فتعني قلب المصفوفات (إيجاد مقلوبها أو معكوسها ) كما تحثنا سابقا .
قسمة متجهين عنصرا بعنصر :
يمكننا برنامج MATLAB من قسمة كل عنصر من عناصر المتجه الأول علي العنصر المناظر له في المتجه الثاني ويتحقق هذا بشرط هو أن يتساوي عدد العناصر المتجهين المراد قسمة عناصرهما المتقابلة أو أن يكون أحدهما قيمة عددية مفردة Scalar    ويتم ذلك بإضافة نقطة Dot(.) قبل علامتي عملية القسمة (/) أو (\) تماما مثل عملية قسمة مصفوفتين عنصرا بعنصر وبنفس هذه الطريقة يمكننا إجراء عملية قسمة متجهين عموديين عنصرا بعنصر بشرط تساوي عدد عناصر المتجهين المراد قسمة عناصرهما المتقابلة أو أن يكون أحدهما قيمة عددية مفردة Scalar .
ملحوظة : وجه الإختلاف بين المعاملات الحسابية Arithmetic operators للمصفوفات Matrices والمتجهات Vectors هو أن المعاملات الحسابية للمتجهات تسبقها علامة النقطة (.) Dot (لتدل هذه العلامة علي تنفيذ العملية عنصرا بعنصر element by element ) ماعدا معاملات عمليات الجمع والطرح .
avatar
محمد جهاد الجبارين
عضو متقدم
عضو متقدم

عدد المساهمات : 1448
تاريخ التسجيل : 11/11/2013
العمر : 16
الموقع : الدوارة\سعير \ الخليل
العمل/الترفيه العمل/الترفيه : طالب مجتهد
المزاج المزاج : ممتاز

معاينة صفحة البيانات الشخصي للعضو

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى