جداء مصفوفتين
سنكتشف في هذا المقالة التعليمية كيفية كتابة خوارزمية وبرنامج يطلب من المستخدم إدخال مصفوفتين ثم حساب جداء هاتين المصفوفتين ، كالمثال المذكور أدناه.
.png)
المطلوب منا وضع خوارزمية تمكننا من إيجاد حاصل ضرب مصفوفتين
1- المتغيرات والثوابت أي مدخلات ومخرجات الخوارزمية
.png)
المصفوفة هي جدول من الأعداد الحقيقية تحتوي على صفوف وأعمدة ، كل عدد من هذه الأعداد هو عنصر أو معامل للمصفوفة.
حسب التعريف الرياضي، إذا كانت المصفوفة Tab تحتوي على صفوف m وأعمدة n ، يُقال أنها ذات أبعاد m × n (بهذا الترتيب).
كل عنصر من عناصر مصفوفة الجداء هو ناتج ضرب أحد صفوف المصفوفة الأولى بأحد أعمدة المصفوفة الثانية.
لكي يتم تحديد حاصل جداء مصفوفتين ، يجب أن يكون عدد أعمدة المصفوفة الأولى مساويًا لعدد صفوف المصفوفة الثانية ، أي Tab1[m,n] و Tab2[n,m] والناتج يكون Tab[n,n].
خوارزمية جداء مصفوفتين
المطلوب منا وضع خوارزمية تمكننا من إيجاد حاصل ضرب مصفوفتين
1- المتغيرات والثوابت أي مدخلات ومخرجات الخوارزمية
- المتغيرالأول هوTab1 المصفوفة الأولى.
- المتغير الثاني هو Tab2 المصفوفة الثانية.
- المتغيرالثالث نرمزله ب m عدد أعمدة المصفوفة الأولى وعدد صفوف المصفوفة الثانية.
- المتغير الرابع نرمز له ب n عدد صفوف المصفوفة الأولى وعدد أعمدة المصفوفة الثانية.
- المتغير الخامس نرمز له ب Tab تمثل المصفوفة الناتجة من جداء Tab1 و Tab2.
- المتغيرالثالث نرمزله ب m عدد أعمدة المصفوفة الأولى وعدد صفوف المصفوفة الثانية.
- المتغير الرابع نرمز له ب n عدد صفوف المصفوفة الأولى وعدد أعمدة المصفوفة الثانية.
- المتغير الخامس نرمز له ب Tab تمثل المصفوفة الناتجة من جداء Tab1 و Tab2.
- المتغير السادس نرمز له ب j يعتبر عددا في البرنامج.
- المتغير السابع نرمز له ب i يعتبر عددا في البرنامج.
- المتغير الثامنن نرمز له ب k يعتبر عددا في الخوارزمية
2- العمليات والإجراءات
- j = 0 ، i = 0
- إدخال m وn عدد أعمدة وصفوف المصفوفتين.
- إدخال عناصر المصفوفتين Tab1 و Tab2
- نقرأ في المرة الأولى كل عناصر الصف الأول من المصفوفة الأولى ونقوم بضربها مع عناصر العمود الأول من المصفوفة الثانية ، وهكذا دواليك حتى نتم العملية ، ونحصل على المصفوفة الجديدة حاصل جداء المصفوفتين Tab1 و Tab2.
3- مخرجات الخوارزمية
- الحصول على مصفوفة جديدة Tab[n,n]
وتكون الخوارزمية على الشكل التالي :
برنامج الخوارزمية بلغة Python
لكتابة برنامج Python لجداء مصفوفتين ، هناك عدة طرق ، لكن سنتطرق فقط لطريقتين:
- الطريقة الأولى إستعمال الدالة ()dot من مكتبة numpy من لغة Python ويكون البرنامج كالتالي للمثال المذكور أعلاه:
>>> import numpy as np>>> Tab1 = np.array([[1,2,3],[4,5,6]])>>> Tab1.shape(2, 3)>>> Tab2 = np.array([[1,2],[3,4],[5,6]])>>> Tab2.shape(3, 2)>>> Tab=Tab1.dot(Tab2)>>>Tabarray([[ 22, 28],[49, 64]])
الطريقة الثانية : نكتب دالة لجداء مصفوفتين وتكون على الشكل التالي :
def product_matrix(Tab1,Tab2):
global Tab
if Tab1.shape[1] == Tab2.shape[0]:
Tab = np.zeros((Tab1.shape[0],Tab2.shape[1]),dtype = int)
for i in range(rows):
for j in range(cols):
for k in range(len(Tab2)):
Tab[i, j] += Tab1[i, k] * Tab2[k, j]
return Tab
else:
return "Can not multiply Tab1 & Tab2."يمكنك استعمال هذه الدالة في برنامج رئيسي يقرأ المصفوفتين Tab1 و Tab2 وينادي على الدالة product_matrix لحساب جداء المصفوفتين.

.png)