حاصل ضرب یک ماتریس و یک بردار. ضرب ماتریس: مثال ها، الگوریتم اقدامات، خواص محصول

تعریف 1

حاصلضرب ماتریس ها (C=AB) تنها عملیاتی برای ماتریس های سازگار A و B است که در آن تعداد ستون های ماتریس A برابر با تعداد ردیف های ماتریس B است:

C ⏟ m × n = A ⏟ m × p × B ⏟ p × n

مثال 1

داده های ماتریسی:

  • A = a (i j) ابعاد m × n;
  • B = b (i j) p × n

ماتریس C که عناصر آن c i j با فرمول زیر محاسبه می شود:

c i j = a i 1 × b 1 j + a i 2 × b 2 j + . . . + a i p × b p j , i = 1 , . . . m , j = 1 , . . . متر

مثال 2

بیایید محصولات AB=BA را محاسبه کنیم:

A = 1 2 1 0 1 2، B = 1 0 0 1 1 1

حل با استفاده از قانون ضرب ماتریس:

A ⏟ 2 × 3 × B ⏟ 3 × 2 = 1 2 1 0 1 2 × 1 0 0 1 1 1 = 1 × 1 + 2 × 0 + 1 × 1 1 × 0 + 2 × 1 + 1 × 1 0 × 1 + 1 × 0 + 2 × 1 0 × 0 + 1 × 1 + 2 × 1 = = 2 3 2 3 ⏟ 2 × 2

B ⏟ 3 × 2 × A ⏟ 2 × 3 = 1 0 0 1 1 1 × 1 2 1 0 1 2 = 1 × 1 + 0 × 0 1 × 2 + 0 × 1 1 × 1 + 0 × 2 0 × 1 + 1 × 0 0 × 2 + 1 × 1 0 × 1 + 1 × 2 1 × 1 + 1 × 0 1 × 2 + 1 × 1 1 × 1 + 1 × 2 = 1 2 1 0 1 2 1 3 3 ⏟ 3×3

حاصل ضرب A B و B A یافت می شوند، اما ماتریس هایی با اندازه های مختلف هستند: A B برابر با B A نیست.

خواص ضرب ماتریس

خواص ضرب ماتریس:

  • (A B) C = A (B C) - تداعی ضرب ماتریس.
  • A (B + C) \u003d A B + A C - ضرب توزیعی.
  • (A + B) C \u003d A C + B C - توزیع ضرب.
  • λ (A B) = (λ A) B
مثال 1

ویژگی شماره 1 را بررسی کنید: (A B) C = A (B C):

(A × B) × A = 1 2 3 4 × 5 6 7 8 × 1 0 0 2 = 19 22 43 50 × 1 0 0 2 = 19 44 43 100،

A (B × C) = 1 2 3 4 × 5 6 7 8 1 0 0 2 = 1 2 3 4 × 5 12 7 16 = 19 44 43 100 .

مثال 2

ویژگی شماره 2 را بررسی می کنیم: A (B + C) \u003d A B + A C:

A × (B + C) = 1 2 3 4 × 5 6 7 8 + 1 0 0 2 = 1 2 3 4 × 6 6 7 10 = 20 26 46 58،

A B + A C \u003d 1 2 3 4 × 5 6 7 8 + 1 2 3 4 × 1 0 0 2 \u003d 19 22 43 50 + 1 4 3 8 \u003d 20 26 46 58.

محصول سه ماتریس

حاصل ضرب سه ماتریس A B C به دو صورت محاسبه می شود:

  • A B را پیدا کنید و در C ضرب کنید: (A B) C;
  • یا ابتدا B C را پیدا کنید و سپس A (B C) را ضرب کنید.
مثال 3

ماتریس ها را به دو روش ضرب کنید:

4 3 7 5 × - 28 93 38 - 126 × 7 3 2 1

الگوریتم اقدام:

  • حاصل ضرب 2 ماتریس را پیدا کنید.
  • سپس دوباره حاصل ضرب 2 ماتریس را پیدا کنید.

یک). AB \u003d 4 3 7 5 × - 28 93 38 - 126 \u003d 4 (- 28) + 3 × 38 4 × 93 + 3 (- 126) 7 (- 28) + 5 × 38 7 × 5-93 + 126 ) = 2 - 6 - 6 21

2). A B C = (A B) C = 2 - 6 - 6 21 7 3 2 1 = 2 × 7 - 6 × 2 2 × 3 - 6 × 1 - 6 × 7 + 21 × 2 - 6 × 3 + 21 × 1 = 2 0 0 3 .

ما از فرمول A B C \u003d (A B) C استفاده می کنیم:

یک). B C = - 28 93 38 - 126 7 3 2 1 = - 28 × 7 + 93 × 2 - 28 × 3 + 93 × 1 38 × 7 - 126 × 2 38 × 3 - 126 × 1 = 14 - 1

2). A B C \u003d (A B) C \u003d 7 3 2 1 - 10 9 14 - 12 \u003d 4 (- 10) + 3 × 14 4 × 9 + 3 (- 12) 7 (- 10) + 5 × 14 7 9 + 5 (- 12) = 2 0 0 3

پاسخ: 4 3 7 5 - 28 93 38 - 126 7 3 2 1 = 2 0 0 3

ضرب یک ماتریس در یک عدد

تعریف 2

حاصل ضرب ماتریس A با عدد k ماتریس B \u003d A k با همان اندازه است که با ضرب در تعداد معینی از همه عناصر آن از اصلی بدست می آید:

b i، j = k × a i، j

خواص ضرب یک ماتریس در عدد:

  • 1 × A = A
  • 0 × A = ماتریس صفر
  • k(A + B) = kA + kB
  • (k + n) A = k A + n A
  • (k×n)×A = k(n×A)
مثال 4

حاصل ضرب ماتریس A \u003d 4 2 9 0 در 5 را پیدا کنید.

5 A = 5 4 2 9 0 5 × 4 5 × 2 5 × 9 5 × 0 = 20 10 45 0

ضرب یک ماتریس در یک بردار

تعریف 3

برای پیدا کردن حاصل ضرب یک ماتریس و یک بردار، باید طبق قانون سطر به ستون ضرب کنید:

  • اگر یک ماتریس را در بردار ستون ضرب کنید، تعداد ستون‌های ماتریس باید با تعداد ردیف‌های بردار ستون مطابقت داشته باشد.
  • حاصل ضرب یک بردار ستونی فقط بردار ستونی است:

A B = a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ ⋯ a m 1 a m 2 ⋯ a mnb 1 b 2 ⋯ b 1 n = a 11 × b 1 × b + 1 a 1 n × bna 21 × b 1 + a 22 × b 2 + ⋯ + a 2 n × bn ⋯ ⋯ ⋯ ⋯ am 1 × b 1 + am 2 × b 2 + ⋯ + amn × bn = c 1 c 2 ⋯ ج 1 متر

  • اگر یک ماتریس را در یک بردار ردیف ضرب کنید، ماتریسی که باید ضرب شود باید منحصراً یک بردار ستونی باشد و تعداد ستون‌ها باید با تعداد ستون‌های بردار ردیف مطابقت داشته باشد:

A B = a ⋯ a bb ⋯ b = a 1 × b 1 a 1 × b 2 ⋯ a 1 × bna 2 × b 1 a 2 × b 2 ⋯ a 2 × bn ⋯ ⋯ ⋯ ⋯ an × b 1 an × b ⋯ an × bn = c 11 c 12 ⋯ c 1 nc 21 c 22 ⋯ c 2 n ⋯ ⋯ ⋯ ⋯ cn 1 cn 2 ⋯ cnn

مثال 5

حاصل ضرب ماتریس A و بردار ستون B را پیدا کنید:

AB \u003d 2 4 0 - 2 1 3 - 1 0 1 1 2 - 1 \u003d 2 × 1 + 4 × 2 + 0 × (- 1) - 2 × 1 + 1 × 2 + 3 × (- 1) - 1 × 1 + 0 × 2 + 1 × (- 1) = 2 + 8 + 0 - 2 + 2 - 3 - 1 + 0 - 1 = 10 - 3 - 2

مثال 6

حاصل ضرب ماتریس A و بردار ردیف B را پیدا کنید:

A \u003d 3 2 0 - 1، B \u003d - 1 1 0 2

A B = 3 2 0 1 × - 1 1 0 2 = 3 × (- 1) 3 × 1 3 × 0 3 × 2 2 × (- 1) 2 × 1 2 × 0 2 × 2 0 × (- 1) 0 × 1 0 × 0 0 × 2 1 × (- 1) 1 × 1 1 × 0 1 × 2 = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

پاسخ: A B \u003d - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

اگر متوجه اشتباهی در متن شدید، لطفاً آن را برجسته کرده و Ctrl+Enter را فشار دهید

سیستم MatLab به سادگی عملیات ریاضی را روی ماتریس ها و بردارها انجام می دهد. ابتدا عملیات ساده جمع و ضرب ماتریس ها و بردارها را در نظر بگیرید. بگذارید دو بردار داده شود

a = درصد بردار ردیف
b = ; درصد بردار ستون

سپس ضرب این دو بردار را می توان به صورت نوشتاری نوشت

c = a*b; %c=1+2+3+4+5=16
d = b*a; %d - ماتریسی از عناصر 5x5

با توجه به عملیات روی بردارها، از ضرب یک بردار ردیف در بردار ستونی یک عدد به دست می‌آید و از ضرب یک بردار ستون در یک بردار ردیف، یک ماتریس دو بعدی به دست می‌آید که حاصل محاسبات مثال بالا است.

جمع و تفریق دو بردار به صورت نوشته می شود

a1 = ;
a2 = ;
c = a1+a2; % c = ;
c = a2-a1; % c = ;

توجه داشته باشید که عملیات جمع و تفریق را می توان بین دو بردار ستونی یا دو بردار ردیفی انجام داد. در غیر این صورت، MatLab یک پیغام خطا صادر می کند، زیرا بردارهای انواع مختلف را نمی توان اضافه کرد. این مورد در مورد تمام عملیات حسابی غیرقانونی است: اگر نمی توان آنها را محاسبه کرد، سیستم MatLab یک خطا را گزارش می کند و برنامه در خط مربوطه به پایان می رسد.

به طور مشابه، عملیات ضرب و جمع بین ماتریس ها انجام می شود:

A =
B = ones(3);
C=A+B; % جمع دو ماتریس هم اندازه
D=A+5; % جمع ماتریس و عدد
E=A*B; درصد ضرب ماتریس A در B
F=B*A; درصد ضرب ماتریس B در A
G=5*A; درصد ضرب یک ماتریس در یک عدد

عملیات محاسبه ماتریس معکوس و همچنین جابجایی ماتریس ها و بردارها به صورت زیر نوشته می شود:

a = درصد بردار ردیف
b = a'; درصد بردار ستون تشکیل شده توسط
% انتقال بردار ردیف a.
A = ٪ عناصر ماتریس 3x3
B = a * A; %b= - بردار ردیف
C=A*b; % C = - بردار ستون
D = a*A*a'; % D = 45 – عدد، مجموع ماتریس A
E = A'; % E ماتریس انتقال یافته A است
F = inv(A); % F - ماتریس معکوس A
G = A^-1; % G - ماتریس معکوس A

از مثال بالا می توان دریافت که عمل جابجایی ماتریس ها و بردارها با نماد (آپوستروف) که بعد از نام بردار یا ماتریس قرار می گیرد نشان داده می شود. محاسبه ماتریس معکوس را می توان با فراخوانی تابع inv() یا با بالا بردن ماتریس به توان -1 انجام داد. نتیجه در هر دو حالت یکسان خواهد بود و دو روش محاسبه برای سهولت استفاده هنگام اجرای الگوریتم های مختلف ساخته شده است.

اگر در طول محاسبات لازم باشد که عناصر یک عنصر بردار یا ماتریس را به عنصر ضرب، تقسیم یا افزایش دهیم، از عملگرهای زیر برای این کار استفاده می شود:

.* - ضرب از نظر عنصر.
./ و .\ - تقسیمات عنصری.
.^ - توان عنصری.

عملکرد این عملگرها را در مثال زیر در نظر بگیرید.

a = درصد بردار ردیف
b = ; درصد بردار ردیف
c = a.*b; %c=
A = ones (3); % 3x3 ماتریس متشکل از یک
B = ; ماتریس ٪ 3x3
C = A.*B; % ماتریس 3x3، متشکل از
D = A./B; % ماتریس 3x3، متشکل از
E = A.\B; % ماتریس 3x3، متشکل از
F = A.^2; درصد مربع شدن عناصر ماتریس A

برای نتیجه گیری این بخش، چند توابع را در نظر بگیرید که هنگام کار با بردارها و ماتریس ها مفید هستند.

برای یافتن حداکثر مقدار یک عنصر برداری، از تابع استاندارد max() استفاده می شود که حداکثر مقدار یافت شده عنصر و موقعیت آن (شاخص) را برمی گرداند:

a =
= max(a); % v = 6، i = 2;

v = max(a); %v = 6;

مثال بالا دو روش مختلف برای فراخوانی تابع max() را نشان می دهد. در حالت اول هم حداکثر مقدار عنصر و هم شاخص آن در بردار مشخص می شود و در حالت دوم فقط حداکثر مقدار عنصر تعیین می شود.

در مورد ماتریس ها، عملکرد داده شدههمانطور که در مثال زیر نشان داده شده است، حداکثر مقادیر موجود در ستون ها را تعریف می کند:

A =
= حداکثر (A)؛ % V=، I=
V = حداکثر (A); %V=

سینتکس کامل تابع max() را می توان با تایپ دستور در پنجره فرمان MatLab پیدا کرد.

کمک<название функции>

تابع min() به روشی مشابه کار می کند، که حداقل مقدار یک عنصر بردار یا ماتریس و شاخص آن را تعیین می کند.

یکی دیگر از تابع های مفید برای کار با ماتریس ها و بردارها، تابع sum() است که مجموع مقادیر عناصر یک بردار یا ستون های یک ماتریس را محاسبه می کند:

a =
s = جمع (a); %s = 3+5+4+2+1=15
A =
S1 = جمع (A); %S1=
S2 = sum(sum(A)); % S2=39

هنگام محاسبه مجموع S2، مجموع مقادیر عناصر ماتریس A ابتدا توسط ستون ها و سپس توسط ردیف ها محاسبه می شود. در نتیجه، متغیر S2 حاوی مجموع مقادیر تمام عناصر ماتریس A است.

برای مرتب کردن مقادیر عناصر یک بردار یا ماتریس به ترتیب صعودی یا نزولی، از تابع sort() به صورت زیر استفاده کنید:

a =

b1 = مرتب سازی (a); %b1=
b2 = مرتب سازی (a، 'نزول'); %b2=
b3 = مرتب سازی (a، 'صعود'); %b3=

برای ماتریس ها

A =
B1 = مرتب سازی (A); %B1=
B2 = مرتب سازی (A، 'نزول'); %B2=

در بسیاری از مسائل عملی، اغلب نیاز به یافتن یک عنصر خاص در یک بردار یا ماتریس است. این را می توان با استفاده از تابع ()find استاندارد انجام داد، که به عنوان آرگومان شرطی را در نظر می گیرد که طبق آن عناصر مورد نیاز پیدا می شوند، به عنوان مثال:

a =
b1 = find(a == 2); %b1 = 4 - شاخص عنصر 2
b2 = find(a ~= 2); ٪ b2 = - شاخص های بدون 2
b3 = find(a > 3); %b3=

در مثال بالا، نماد "==" به معنای بررسی برابری است و نماد "~=" نابرابری مقادیر عناصر بردار a را بررسی می کند. جزئیات بیشتر در مورد این عملگرها در بخش عملگرهای شرطی توضیح داده خواهد شد.

تابع مفید دیگر برای کار با بردارها و ماتریس ها تابع mean() برای محاسبه میانگین است مقدار حسابی، که به این صورت عمل می کند:

a =
m = mean(a); %m = 3
A =
M1 = میانگین (A); %M1=
M2 = mean(mean(A)); % M2 = 4.333


هر بردار را می توان به عنوان یک ماتریس یک ستونی یا یک ردیفی مشاهده کرد. ماتریس تک ستونی بردار ستونی و ماتریس یک ردیفی بردار سطر نامیده می شود.

اگر A ماتریسی به اندازه m*n باشد، بردار ستون b دارای اندازه n و بردار ردیف b دارای اندازه m است.

بنابراین، برای ضرب یک ماتریس در یک بردار، باید بردار را به عنوان بردار ستونی در نظر گرفت. هنگام ضرب یک بردار در یک ماتریس، باید به عنوان یک بردار ردیف در نظر گرفته شود.

ماتریس ضرب

به بردار مختلط

نتیجه را می گیریم

همانطور که می بینید، با تغییر ابعاد بردار، می توانیم دو راه حل داشته باشیم.

توجه شما را به این نکته جلب می کنم که ماتریس در نسخه اول و دوم با وجود مقادیر یکسان کاملاً متفاوت است (ابعاد متفاوتی دارند)

در حالت اول بردار به عنوان یک ستون در نظر گرفته می شود و سپس لازم است ضرب ماتریس در بردار، و در حالت دوم یک بردار ردیف داریم و سپس داریم حاصل ضرب یک بردار و یک ماتریس

این ربات همچنین بردارها و ماتریس هایی را که مقادیر پیچیده دارند ضرب می کند. بر اساس یک ماشین حساب کامل تر ضرب ماتریس ها با مقادیر پیچیده به صورت آنلاین

خواص ضرب ماتریس بردار

ماتریکس

ستون برداری

وکتور ردیف

شماره دلخواه

1. حاصل ضرب یک ماتریس با مجموع بردارهای ستون برابر است با مجموع حاصلضرب ماتریس توسط هر یک از بردارها.

2. حاصل ضرب مجموع بردارهای ردیف توسط ماتریس برابر است با مجموع حاصلضرب بردارهای ماتریس.

3. ضریب مشترک یک بردار را می توان از حاصل ضرب یک ماتریس توسط یک بردار / یک بردار توسط یک ماتریس خارج کرد.

4. حاصلضرب یک بردار ردیف از حاصل ضرب یک ماتریس و یک بردار ستونی معادل حاصلضرب یک بردار ردیف توسط یک ماتریس و یک بردار ستونی است.

بنابراین، در درس قبل، قوانین جمع و تفریق ماتریس ها را تحلیل کردیم. اینها به قدری عملیات ساده هستند که اکثر دانش‌آموزان آن‌ها را به معنای واقعی کلمه بلافاصله درک می‌کنند.

با این حال، شما زود خوشحال می شوید. رایگان به پایان رسید - بیایید به ضرب حرکت کنیم. من فوراً به شما هشدار می دهم: ضرب دو ماتریس به هیچ وجه به معنای ضرب کردن اعداد در سلول ها با مختصات یکسان نیست، همانطور که ممکن است فکر کنید. اینجا همه چیز بسیار سرگرم کننده تر است. و باید با تعاریف اولیه شروع کنید.

ماتریس های سازگار

یکی از مهمترین ویژگی های ماتریس اندازه آن است. قبلاً صد بار در مورد این موضوع صحبت کرده‌ایم: $A=\left[ m\times n \right]$ به این معنی است که ماتریس دقیقاً دارای ردیف‌های $m$ و ستون‌های $n$ است. قبلاً در مورد اینکه چگونه سطرها را با ستون ها اشتباه نگیریم صحبت کرده ایم. حالا چیز دیگری مهم است.

تعریف. ماتریس هایی به شکل $A=\left[ m\times n \right]$ و $B=\left[n\times k \right]$ که در آن تعداد ستون های ماتریس اول برابر است. به تعداد ردیف های دوم، ثابت می گویند.

بار دیگر: تعداد ستون‌های ماتریس اول برابر است با تعداد ردیف‌های ماتریس دوم! از این به طور همزمان دو نتیجه می گیریم:

  1. ما به ترتیب ماتریس ها اهمیت می دهیم. برای مثال، ماتریس‌های $A=\left[ 3\times 2 \right]$ و $B=\left[ 2\times 5 \right]$ سازگار هستند (2 ستون در ماتریس اول و 2 ردیف در ماتریس دوم) ، اما برعکس - ماتریس های $B=\left[ 2\times 5 \right]$ و $A=\left[ 3\times 2 \right]$ دیگر سازگار نیستند (5 ستون در ماتریس اول مانند این بود، نه 3 ردیف در دوم).
  2. اگر تمام ابعاد را یکی پس از دیگری بنویسید، بررسی سازگاری آسان است. با استفاده از مثال پاراگراف قبلی: "3 2 2 5" - اعداد یکسان در وسط هستند، بنابراین ماتریس ها سازگار هستند. اما "2 5 3 2" موافقت نمی شود، زیرا اعداد مختلفی در وسط وجود دارد.

علاوه بر این، به نظر می‌رسد کاپیتان اشاره می‌کند که ماتریس‌های مربعی با اندازه یکسان $\left[n\times n \right]$ همیشه سازگار هستند.

در ریاضیات، وقتی ترتیب شمارش اشیاء مهم است (مثلاً در تعریفی که در بالا مورد بحث قرار گرفت، ترتیب ماتریس ها مهم است)، اغلب از جفت های مرتب شده صحبت می شود. ما آنها را در مدرسه ملاقات کردیم: فکر می‌کنم این که مختصات $\left(1;0 \right)$ و $\left(0;1 \right)$ نقاط مختلفی را در هواپیما تعریف می‌کنند، بی‌معنی است.

بنابراین: مختصات نیز جفت های مرتب شده ای هستند که از اعداد تشکیل شده اند. اما هیچ چیز مانع از ساخت چنین جفت ماتریس نمی شود. سپس می توان گفت: "یک جفت مرتب شده از ماتریس $\left(A;B \right)$ سازگار است اگر تعداد ستون های ماتریس اول با تعداد ردیف های ماتریس دوم برابر باشد. "

خب پس چی؟

تعریف ضرب

دو ماتریس ثابت را در نظر بگیرید: $A=\left[m\times n \right]$ و $B=\left[n\times k \right]$. و برای آنها عمل ضرب را تعریف می کنیم.

تعریف. حاصل ضرب دو ماتریس ثابت $A=\left[m\times n \right]$ و $B=\left[n\times k \right]$ ماتریس جدید $C=\left[ m\times k \ است. right] $، که عناصر آن طبق فرمول محاسبه می شوند:

\[\begin(align) & ((c)_(i;j))=((a)_(i;1))\cdot ((b)_(1;j))+((a)_ (i;2))\cdot ((b)_(2;j))+\ldots +((a)_(i;n))\cdot ((b)_(n;j))= \\ & =\sum\limits_(t=1)^(n)(((a)_(i;t))\cdot ((b)_(t;j))) \پایان(تراز)\]

چنین محصولی به روش استاندارد نشان داده می شود: $C=A\cdot B$.

برای کسانی که برای اولین بار این تعریف را می بینند، بلافاصله دو سوال پیش می آید:

  1. این چه نوع بازی وحشی است؟
  2. چرا این، این قدر سخت است؟

خوب، اول چیزها. بیایید با سوال اول شروع کنیم. همه این شاخص ها به چه معناست؟ و چگونه هنگام کار با ماتریس های واقعی اشتباه نکنیم؟

اول از همه، توجه می کنیم که خط طولانی محاسبه $((c)_(i;j))$ (مخصوصاً یک نقطه ویرگول بین شاخص ها قرار دهید تا گیج نشوید، اما نیازی به قرار دادن آنها نیست. کلی - من خودم از تایپ فرمول در تعریف خسته شدم) واقعاً به یک قانون ساده خلاصه می شود:

  1. ردیف $i$-th در ماتریس اول را در نظر بگیرید.
  2. ستون $j$-th را در ماتریس دوم بگیرید.
  3. دو دنباله اعداد بدست می آوریم. عناصر این دنباله ها را با اعداد یکسان ضرب می کنیم و سپس محصولات حاصل را اضافه می کنیم.

این فرآیند از روی تصویر به راحتی قابل درک است:


طرحی برای ضرب دو ماتریس

یک بار دیگر: ردیف $i$ را در ماتریس اول ثابت می کنیم، ستون $j$ را در ماتریس دوم، عناصر را با اعداد یکسان ضرب می کنیم و سپس محصولات حاصل را اضافه می کنیم - $((c)_(ij) می گیریم. )) دلار. و بنابراین برای همه $1\le i\le m$ و $1\le j\le k$. آن ها چنین "انحرافاتی" در مجموع $m\times k$ وجود خواهد داشت.

در واقع، ما قبلاً با ضرب ماتریس در مواجه شده ایم برنامه آموزشی مدرسه، فقط به شکل بسیار کاهش یافته است. بگذارید بردارها داده شوند:

\[\begin(align) & \vec(a)=\left(((x)_(a));((y)_(a));((z)_(a)) \right); \\ & \overrightarrow(b)=\left(((x)_(b));((y)_(b));((z)_(b)) \راست). \\ \پایان (تراز کردن)\]

سپس حاصل ضرب اسکالر آنها دقیقاً مجموع حاصلضرب های زوجی خواهد بود:

\[\overrightarrow(a)\times \overrightarrow(b)=((x)_(a))\cdot ((x)_(b))+((y)_(a))\cdot ((y )_(ب))+((ز)_(الف))\cdot ((ز)_(ب))\]

در واقع، در آن سال‌های دور، زمانی که درختان سبزتر و آسمان روشن‌تر بودند، به سادگی بردار ردیف $\overrightarrow(a)$ را در بردار ستون $\overrightarrow(b)$ ضرب کردیم.

امروز هیچ چیز تغییر نکرده است. فقط الان تعداد این بردارهای سطر و ستون بیشتر شده است.

اما تئوری بس است! بیایید به نمونه های واقعی نگاه کنیم. و بیایید با ساده ترین حالت - ماتریس های مربعی شروع کنیم.

ضرب ماتریس های مربع

وظیفه 1. ضرب را انجام دهید:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end (آرایه) \راست]\]

راه حل. بنابراین، ما دو ماتریس داریم: $A=\left[ 2\times 2 \right]$ و $B=\left[ 2\times 2 \right]$. واضح است که آنها سازگار هستند (ماتریس های مربعی با اندازه یکسان همیشه سازگار هستند). پس ضرب را انجام می دهیم:

\[\begin(align) & \left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \ Begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot \left(-2 \right)+2\cdot 3 & 1\cdot 4+2\cdot 1 \\ -3\cdot \left(-2 \right)+4\cdot 3 & -3\cdot 4+4\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 4 & 6 \\ 18 & -8 \\\ end(array)\right]. \پایان (تراز کردن)\]

همین!

پاسخ: $\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(array) \right]$.

وظیفه 2. ضرب را انجام دهید:

\[\left[ \begin(ماتریس) 1 & 3 \\ 2 & 6 \\\ end (ماتریس) \ right]\cdot \left[ \begin(array)(*(35)(r))9 & 6 \\ -3 و -2 \\\پایان(آرایه) \راست]\]

راه حل. باز هم ماتریس های سازگار، بنابراین ما اقدامات زیر را انجام می دهیم:\[\]

\[\begin(align) & \left[ \begin(matrix) 1 & 3 \\ 2 & 6 \\\end (matrix) \right]\cdot \left[ \begin(array)(*(35)( r)) 9 & 6 \\ -3 & -2 \\\ end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot 9+3\cdot \ چپ(-3 \راست) & 1\cdot 6+3\cdot \left(-2 \right) \\ 2\cdot 9+6\cdot \left(-3 \راست) & 2\cdot 6+6\ cdot \left(-2 \right) \\\end (آرایه) \right]= \\ & =\left[ \begin(ماتریس) 0 & 0 \\ 0 & 0 \\\end (ماتریس) \راست] . \پایان (تراز کردن)\]

همانطور که می بینید، نتیجه یک ماتریس پر از صفر است

پاسخ: $\left[ \begin(ماتریس) 0 & 0 \\ 0 & 0 \\\end(ماتریس) \راست]$.

از مثال‌های بالا، واضح است که ضرب ماتریس چندان پیچیده نیست. حداقل برای ماتریس های 2 در 2 مربع.

در فرآیند محاسبات، ما یک ماتریس میانی را گردآوری کردیم، جایی که مستقیماً رنگ آمیزی کردیم که چه اعدادی در یک سلول خاص گنجانده شده است. این دقیقاً همان کاری است که هنگام حل مشکلات واقعی باید انجام شود.

خواص اساسی محصول ماتریس

به طور خلاصه ضرب ماتریس:

  1. غیر جایگزین: $A\cdot B\ne B\cdot A$ به طور کلی. البته، ماتریس‌های خاصی وجود دارند که برابری $A\cdot B=B\cdot A$ (مثلاً اگر $B=E$ ماتریس هویت باشد)، اما در اکثر موارد این کار نمی‌کند. ;
  2. انجمنی: $\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)$. در اینجا هیچ گزینه ای وجود ندارد: ماتریس های مجاور را می توان بدون نگرانی در مورد آنچه در سمت چپ و راست این دو ماتریس قرار دارد ضرب کرد.
  3. به صورت توزیعی: $A\cdot \left(B+C \right)=A\cdot B+A\cdot C$ و $\left(A+B \right)\cdot C=A\cdot C+B\cdot C $

و اکنون - همه یکسان، اما با جزئیات بیشتر.

ضرب ماتریسی بسیار شبیه ضرب اعداد کلاسیک است. اما تفاوت هایی وجود دارد که مهمترین آنها این است ضرب ماتریس، به طور کلی، غیر تعویضی است.

دوباره ماتریس های مسئله 1 را در نظر بگیرید. ما از قبل محصول مستقیم آنها را می دانیم:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\پایان(آرایه) \راست]\]

اما اگر ماتریس ها را عوض کنیم، نتیجه کاملاً متفاوتی به دست می آید:

\[\left[ \begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) 1 & 2 \\ -3 & 4 \\\end(آرایه) \right]=\left[ \begin(ماتریس) -14 & 4 \\ 0 & 10 \\\end (ماتریس )\درست]\]

معلوم می شود که $A\cdot B\ne B\cdot A$. همچنین، عملیات ضرب فقط برای ماتریس‌های ثابت $A=\left[m\times n \right]$ و $B=\left[n\times k \right]$ تعریف شده است، اما هیچ‌کس تضمین نمی‌کند که آنها باقی بمانند. اگر تعویض شوند ثابت باشند. برای مثال، ماتریس‌های $\left[ 2\times 3 \right]$ و $\left[ 3\times 5 \right]$ در این ترتیب کاملاً سازگار هستند، اما همان ماتریس‌های $\left[ 3\times 5 \ راست] $ و $\ چپ[ 2\times 3 \right]$ نوشته شده است به صورت برعکسدیگر مورد توافق قرار نمی گیرند. غمگینی :(

در میان ماتریس های مربع اندازه داده شده$n$ همیشه کسانی هستند که نتیجه یکسانی را هم به ترتیب مستقیم و هم به ترتیب معکوس می‌دهند. نحوه توصیف همه این ماتریس ها (و تعداد آنها به طور کلی) موضوعی برای یک درس جداگانه است. امروز در مورد آن صحبت نمی کنیم. :)

با این حال، ضرب ماتریس ارتباطی است:

\[\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \راست)\]

بنابراین، هنگامی که نیاز دارید چندین ماتریس را در یک ردیف به طور همزمان ضرب کنید، اصلاً لازم نیست این کار را از قبل انجام دهید: کاملاً ممکن است که برخی از ماتریس های مجاور، هنگام ضرب، نتیجه جالبی به دست آورند. به عنوان مثال، یک ماتریس صفر، مانند مسئله 2 که در بالا مورد بحث قرار گرفت.

در مسائل واقعی، اغلب باید ماتریس های مربعی با اندازه $\left[n\times n \راست]$ را ضرب کرد. مجموعه همه این ماتریس‌ها با $((M)^(n))$ نشان داده می‌شود (یعنی ورودی‌های $A=\left[n\times n \right]$ و \ به معنای یکسان هستند) قطعاً حاوی ماتریس $E$ است که به آن ماتریس هویت می گویند.

تعریف. ماتریس هویت با اندازه $n$ یک ماتریس $E$ است به طوری که برای هر ماتریس مربع $A=\left[n\times n \right]$ برابری برقرار است:

چنین ماتریسی همیشه یکسان به نظر می رسد: در مورب اصلی آن واحدها و در تمام سلول های دیگر صفر وجود دارد.

\[\begin(align) & A\cdot \left(B+C \right)=A\cdot B+A\cdot C; \\ & \چپ(A+B \راست)\cdot C=A\cdot C+B\cdot C. \\ \انتها (تراز کردن)\]

به عبارت دیگر، اگر نیاز دارید که یک ماتریس را در مجموع دو ماتریس دیگر ضرب کنید، می توانید آن را در هر یک از این دو ماتریس ضرب کنید و سپس نتایج را اضافه کنید. در عمل، معمولاً باید عملیات معکوس را انجام دهید: ما متوجه همان ماتریس می شویم، آن را از براکت خارج می کنیم، جمع را انجام می دهیم و در نتیجه زندگی خود را ساده می کنیم. :)

توجه داشته باشید که برای توصیف توزیع، باید دو فرمول می نوشتیم: جایی که مجموع در فاکتور دوم و جایی که مجموع در عامل اول است. این دقیقاً به این دلیل است که ضرب ماتریس غیرقابل جابه‌جایی است (و به طور کلی در جبر غیر تعویضی، انواع جوک‌های زیادی وجود دارد که حتی هنگام کار با اعداد معمولی به ذهن نمی‌رسند). و اگر مثلاً در طول امتحان نیاز به یادداشت این ویژگی دارید، حتماً هر دو فرمول را بنویسید، در غیر این صورت ممکن است معلم کمی عصبانی شود.

خوب، همه اینها افسانه هایی درباره ماتریس های مربعی بود. در مورد مستطیل ها چطور؟

مورد ماتریس های مستطیلی

اما هیچ چیز - همه چیز مانند مربع است.

وظیفه 3. ضرب را انجام دهید:

\[\ چپ[ \ آغاز (ماتریس) \ آغاز (ماتریس) 5 \\ 2 \\ 3 \\\ پایان (ماتریس) & \ آغاز (ماتریس) 4 \\ 5 \\ 1 \\\ پایان (ماتریس) \ \\end(ماتریس) \راست]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]\]

راه حل. ما دو ماتریس داریم: $A=\left[ 3\times 2 \right]$ و $B=\left[ 2\times 2 \right]$. بیایید اعداد نشان دهنده اندازه ها را در یک ردیف بنویسیم:

همانطور که می بینید، دو عدد مرکزی یکسان هستند. این بدان معنی است که ماتریس ها سازگار هستند و می توان آنها را ضرب کرد. و در خروجی ماتریس $C=\left[ 3\times 2 \right]$ را دریافت می کنیم:

\[\begin(align) & \left[ \begin(Matrix) \begin(Matrix) 5 \\ 2 \\ 3 \\\end (ماتریس) & \begin (ماتریس) 4 \\ 5 \\ 1 \\ \end(ماتریس) \\\پایان(ماتریس) \راست]\cdot \چپ[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end (آرایه) \right]=\left[ \begin(array)(*(35)(r)) 5\cdot \left(-2 \right)+4\cdot 3 & 5\cdot 5+4\cdot 4 \\ 2 \cdot \left(-2 \right)+5\cdot 3 & 2\cdot 5+5\cdot 4 \\ 3\cdot \left(-2 \right)+1\cdot 3 & 3\cdot 5+1 \cdot 4 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 2 & 41 \\ 11 & 30 \\ -3 & 19 \ \\پایان(آرایه)\راست]. \پایان (تراز کردن)\]

همه چیز واضح است: ماتریس نهایی 3 سطر و 2 ستون دارد. کاملاً $=\ چپ[ 3 \ بار 2 \ راست] $.

پاسخ: $\left[ \begin(array)(*(35)(r)) \begin(array)(*(35)(r)) 2 \\ 11 \\ -3 \\\end(array) & \ آغاز (ماتریس) 41 \\ 30 \\ 19 \\\ پایان (ماتریس) \\\ پایان (آرایه) \راست]$.

بیایید نگاهی به یکی از بهترین ها بیندازیم وظایف آموزشیبرای کسانی که تازه شروع به کار با ماتریس کرده اند. در آن نه تنها باید دو لوح را ضرب کنید، بلکه ابتدا باید مشخص کنید که آیا چنین ضربی جایز است؟

مسئله 4. تمام حاصل ضرب های زوجی ممکن ماتریس ها را پیدا کنید:

\\]; $B=\left[ \begin(ماتریس) \begin(ماتریس) 0 \\ 2 \\ 0 \\ 4 \\\end (ماتریس) & \begin(ماتریس) 1 \\ 0 \\ 3 \\ 0 \ \\پایان(ماتریس) \\\پایان(ماتریس) \راست]$; $C=\left[ \begin(ماتریس)0 & 1 \\ 1 & 0 \\\end(ماتریس) \راست]$.

راه حل. ابتدا ابعاد ماتریس ها را می نویسیم:

\;\ B=\ چپ[ 4 \ بار 2 \ راست]؛ \ C=\ چپ[ 2 \ بار 2 \ راست]\]

دریافتیم که ماتریس $A$ را می توان تنها با ماتریس $B$ مطابقت داد، زیرا تعداد ستون های $A$ 4 است و فقط $B$ دارای چنین تعداد ردیف است. بنابراین، ما می توانیم محصول را پیدا کنیم:

\\cdot \left[ \begin(array)(*(35)(r)) 0 & 1 \\ 2 & 0 \\ 0 & 3 \\ 4 & 0 \\\ end(array) \right]=\ چپ[ \شروع(آرایه)(*(35)(r))-10 & 7 \\ 10 & 7 \\\پایان(آرایه) \راست]\]

من به خواننده پیشنهاد می کنم که مراحل میانی را به تنهایی انجام دهد. فقط اشاره می کنم که بهتر است اندازه ماتریس حاصل را از قبل تعیین کنید، حتی قبل از هر گونه محاسبه:

\\cdot \left[ 4\times 2 \right]=\left[ 2\times 2 \right]\]

به عبارت دیگر، ما به سادگی ضرایب "انتقالی" را حذف می کنیم که ثبات ماتریس ها را تضمین می کند.

چه گزینه های دیگری ممکن است؟ مطمئناً می توان $B\cdot A$ را پیدا کرد، زیرا $B=\left[ 4\times 2 \right]$, $A=\left[ 2\times 4 \right]$، بنابراین جفت مرتب شده $\ left(B ;A \right)$ سازگار است و بعد محصول به صورت زیر خواهد بود:

\\cdot \left[ 2\times 4 \right]=\left[ 4\times 4 \right]\]

به طور خلاصه، خروجی یک ماتریس $\left[4\times 4 \right]$ خواهد بود که محاسبه ضرایب آن آسان است:

\\cdot \left[ \begin(array)(*(35)(r)) 1 & -1 & 2 & -2 \\ 1 & 1 & 2 & 2 \\\end(array) \right]=\ چپ[ \begin(آرایه)(*(35)(r))1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 و -8 \\\پایان(آرایه) \راست]\]

بدیهی است که می توانید $C\cdot A$ و $B\cdot C$ را نیز مطابقت دهید، و تمام. بنابراین، ما به سادگی محصولات حاصل را می نویسیم:

آسون بود. :)

پاسخ: $AB=\left[ \begin(array)(*(35)(r)) -10 & 7 \\ 10 & 7 \\\end(array) \right]$; $BA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(آرایه) \right]$; $CA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 1 & -1 & 2 & -2 \\\end(array) \right]$; $BC=\left[ \begin(array)(*(35)(r))1 & 0 \\ 0 & 2 \\ 3 & 0 \\ 0 & 4 \\\end(array) \right]$.

به طور کلی، من به شدت توصیه می کنم این کار را خودتان انجام دهید. و کار مشابه دیگری که در مشق شب. این افکار به ظاهر ساده به شما کمک می کند تا تمام مراحل کلیدی ضرب ماتریس را انجام دهید.

اما داستان به همین جا ختم نمی شود. بیایید به موارد خاص ضرب برویم. :)

بردارهای ردیف و بردار ستون

یکی از رایج ترین عملیات ماتریس ضرب در ماتریسی است که دارای یک سطر یا یک ستون است.

تعریف. بردار ستونی یک ماتریس $\left[ m\times 1 \right]$ است، یعنی. متشکل از چندین ردیف و تنها یک ستون.

یک بردار ردیف ماتریسی به اندازه $\left[ 1\times n \right]$ است، یعنی. متشکل از یک سطر و چندین ستون

در واقع، ما قبلاً با این اشیاء ملاقات کرده ایم. برای مثال، یک بردار سه بعدی معمولی از استریومتری $\overrightarrow(a)=\left(x;y;z \right)$ چیزی نیست جز یک بردار ردیف. از نقطه نظر نظری، تقریباً هیچ تفاوتی بین سطرها و ستون ها وجود ندارد. فقط هنگام هماهنگی با ماتریس های ضرب کننده اطراف باید مراقب باشید.

وظیفه 5. ضرب کنید:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\ end (array) \راست] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]\]

راه حل. ما حاصل ضرب ماتریس‌های ثابت داریم: $\left[ 3\times 3 \right]\cdot \left[ 3\times 1 \right]=\left[3\times 1 \right]$. این قطعه را پیدا کنید:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\ end (array) \راست] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]=\left[ \begin(array)(*(35 )(r)) 2\cdot 1+\left(-1 \right)\cdot 2+3\cdot \left(-1 \راست) \\ 4\cdot 1+2\cdot 2+0\cdot 2 \ \ -1\cdot 1+1\cdot 2+1\cdot \left(-1 \right) \\\end(array) \right]=\left[ \begin(array)(*(35)(r) ) -3 \\ 8 \\ 0 \\\ پایان (آرایه) \راست]\]

پاسخ: $\left[ \begin(array)(*(35)(r))-3 \\ 8 \\ 0 \\\end(array) \right]$.

وظیفه 6. ضرب را انجام دهید:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end (array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\ end (آرایه) \راست]\]

راه حل. دوباره همه چیز ثابت است: $\left[ 1\times 3 \right]\cdot \left[ 3\times 3 \right]=\left[ 1\times 3 \right]$. ما کار را در نظر می گیریم:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end (array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(array) \right]=\left[ \begin(array)(*(35)( r)) 5 و -19 و 5 \\\end(آرایه) \راست]\]

پاسخ: $\left[ \begin(ماتریس) 5 & -19 & 5 \\\end (ماتریس) \right]$.

همانطور که می بینید، هنگام ضرب یک بردار سطر و یک بردار ستون در یک ماتریس مربع، خروجی همیشه یک سطر یا ستون با همان اندازه است. این واقعیت کاربردهای زیادی دارد، از حل کردن معادلات خطیبه انواع تبدیل مختصات (که در نهایت به سیستم معادلات نیز می رسد، اما اجازه دهید در مورد چیزهای غم انگیز صحبت نکنیم).

فکر می کنم اینجا همه چیز واضح بود. بیایید به قسمت پایانی درس امروز برویم.

توان ماتریسی

در بین تمام عملیات ضرب، توان سزاوار توجه ویژه است - این زمانی است که یک شیء را چندین بار در خودش ضرب می کنیم. ماتریس ها نیز از این قاعده مستثنی نیستند، همچنین می توان آنها را به درجات مختلفی ارتقا داد.

چنین کارهایی همیشه هماهنگ هستند:

\\cdot \left[n\times n \راست]=\چپ[n\times n \راست]\]

و آنها به همان ترتیب درجات معمولی تعیین می شوند:

\[\begin(align) & A\cdot A=((A)^(2)); \\ & A\cdot A\cdot A=((A)^(3)); \\ & \underbrace(A\cdot A\cdot \ldots \cdot A)_(n)=((A)^(n)). \\ \پایان (تراز کردن)\]

در نگاه اول همه چیز ساده است. بیایید ببینیم در عمل چگونه به نظر می رسد:

وظیفه 7. ماتریس را به توان مشخص شده بالا ببرید:

$((\left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\end(ماتریس) \راست])^(3))$

راه حل. باشه بیا بسازیم بیایید ابتدا آن را مربع کنیم:

\[\begin(تراز کردن) & ((\left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\end(ماتریس) \راست])^(2))=\چپ[ \begin(ماتریس ) 1 و 1 \\ 0 و 1 \\\ پایان (ماتریس) \راست]\cdot \چپ[ \شروع (ماتریس) 1 & 1 \\ 0 & 1 \\\پایان (ماتریس) \راست]= \\ & =\left[ \begin(array)(*(35)(r)) 1\cdot 1+1\cdot 0 & 1\cdot 1+1\cdot 1 \\ 0\cdot 1+1\cdot 0 & 0\cdot 1+1\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \ \\پایان (آرایه) \راست] \پایان (تراز کردن)\]

\[\begin(تراز کردن) & ((\left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\end(ماتریس) \راست])^(3))=((\چپ[ \شروع (ماتریس) 1 و 1 \\ 0 و 1 \\\پایان(ماتریس) \راست])^(3))\cdot \left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\end( ماتریس) \راست]= \\ & =\چپ[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \\\ end(array) \right]\cdot \left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\end(ماتریس) \راست]= \\ & =\چپ[ \begin(آرایه)(*(35)(r)) 1 & 3 \\ 0 و 1 \\\ پایان (آرایه) \راست] \پایان (تراز کردن)\]

همین. :)

پاسخ: $\left[ \begin(ماتریس)1 & 3 \\ 0 & 1 \\\end(ماتریس) \راست]$.

مشکل 8. ماتریس را به توان مشخص شده بالا ببرید:

\[((\چپ[ \شروع(ماتریس) 1 و 1 \\ 0 & 1 \\\پایان(ماتریس) \راست])^(10))\]

راه حل. فقط در مورد این واقعیت که "مدرک تحصیلی خیلی بالاست"، "دنیا عادلانه نیست" و "معلمان کاملاً بانک خود را از دست داده اند" گریه نکنید. در واقع، همه چیز آسان است:

\[\begin(align) & ((\left[ \begin(Matrix) 1 & 1 \\ 0 & 1 \\\end(Matrix) \right])^(10))=((\left[ \begin (ماتریس) 1 و 1 \\ 0 و 1 \\\پایان(ماتریس) \راست])^(3))\cdot ((\چپ[ \شروع(ماتریس) 1 و 1 \\ 0 و 1 \\\ پایان(ماتریس) \راست])^(3))\cdot ((\چپ[ \شروع(ماتریس) 1 & 1 \\ 0 & 1 \\\پایان (ماتریس) \راست])^(3))\ cdot \left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\ end (ماتریس) \ راست]= \\ & =\left(\left[ \begin(ماتریس) 1 & 3 \\ 0 & 1 \\\پایان (ماتریس) \راست]\cdot \چپ[ \شروع(ماتریس) 1 و 3 \\ 0 & 1 \\\پایان (ماتریس) \راست] \راست)\cdot \چپ(\چپ[ \ آغاز (ماتریس) 1 و 3 \\ 0 و 1 \\\پایان (ماتریس) \راست]\cdot \چپ[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\پایان (ماتریس) \راست ] \راست)= \\ & =\چپ[ \شروع (ماتریس) 1 و 6 \\ 0 & 1 \\\پایان (ماتریس) \\راست]\cdot \چپ[ \شروع (ماتریس) 1 و 4 \\ 0 و 1 \\\پایان (ماتریس) \راست]= \\ & =\چپ[ \شروع (ماتریس) 1 و 10 \\ 0 & 1 \\\پایان (ماتریس) \راست] \پایان (تراز کردن)\ ]

توجه داشته باشید که در خط دوم از تداعی ضرب استفاده کردیم. در واقع، ما از آن در کار قبلی استفاده کردیم، اما در آنجا ضمنی بود.

پاسخ: $\left[ \begin(ماتریس) 1 & 10 \\ 0 & 1 \\\end (ماتریس) \راست]$.

همانطور که می بینید، هیچ چیز پیچیده ای در بالا بردن یک ماتریس به توان وجود ندارد. مثال آخر را می توان خلاصه کرد:

\[((\left[ \begin(ماتریس) 1 & 1 \\ 0 & 1 \\\end(ماتریس) \راست])^(n))=\left[ \begin(آرایه)(*(35) (ر)) 1 و n \\ 0 و 1 \\\ انتهای (آرایه) \راست]\]

اثبات این واقعیت از طریق استقراء ریاضی یا ضرب مستقیم آسان است. با این حال، گرفتن چنین الگوهایی در هنگام بالا بردن قدرت همیشه امکان پذیر نیست. بنابراین، مراقب باشید: اغلب آسان‌تر و سریع‌تر است که چندین ماتریس را «خالی» ضرب کنیم تا اینکه در آنجا به دنبال برخی الگوها بگردیم.

به طور کلی، جایی که وجود ندارد، به دنبال معنای بالاتر نباشید. در نهایت، اجازه دهید قدرت یک ماتریس بزرگتر را در نظر بگیریم - به اندازه $\left[ 3\times 3 \right]$.

مشکل 9. ماتریس را به توان مشخص شده بالا ببرید:

\[((\left[ \begin(ماتریس) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\ end (ماتریس) \راست])^(3))\]

راه حل. به دنبال الگوها نباشیم. ما "از طریق" کار می کنیم:

" \left[ \begin(ماتریس) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end (ماتریس) \راست])^(2))\cdot \\ چپ[ \شروع (ماتریس) 0 و 1 و 1 \\ 1 و 0 و 1 \\ 1 و 1 و 0 \\\ انتهای (ماتریس) \\ راست]\]

بیایید با مربع کردن این ماتریس شروع کنیم:

\[\begin(تراز کردن) & ((\left[ \begin(ماتریس) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end (ماتریس) \راست])^( دو ) 0 و 1 و 1 \\ 1 و 0 و 1 \\ 1 و 1 و 0 \\\پایان(ماتریس) \راست]= \\ & =\چپ[ \begin(array)(*(35)(r )) 2 و 1 و 1 \\ 1 و 2 و 1 \\ 1 و 1 و 2 \\\ پایان (آرایه) \راست] \پایان (تراز کردن)\]

حالا بیایید آن را مکعب کنیم:

\[\begin(تراز کردن) & ((\left[ \begin(ماتریس) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end (ماتریس) \راست])^( 3))=\left[ \begin(array)(*(35)(r)) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\ end (array) \راست] \cdot \left[ \begin(ماتریس) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(ماتریس) \راست]= \\ & =\چپ[ \begin( آرایه)(*(35)(r)) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\ end (array) \ right] \end (align)\]

همین. مشکل حل شد.

پاسخ: $\left[ \begin(ماتریس) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end (ماتریس) \راست]$.

همانطور که می بینید، مقدار محاسبات بزرگتر شده است، اما معنی به هیچ وجه تغییر نکرده است. :)

این درس می تواند تمام شود. دفعه بعد عمل معکوس را در نظر می گیریم: با استفاده از حاصلضرب موجود به دنبال ضریب اصلی خواهیم بود.

همانطور که احتمالاً قبلاً حدس زده اید، ما در مورد آن صحبت می کنیم ماتریس معکوسو روشهای یافتن آن

سخنرانی 6. الگوریتم های عددی موازی برای حل مسائل معمولی ریاضیات محاسباتی: ضرب ماتریس.

ضرب یک ماتریس در یک بردار. به بالاترین سرعت ممکن دست پیدا کنید. استفاده از توازی سطح متوسط. سازماندهی محاسبات موازی برای p = n. استفاده از مجموعه محدودی از پردازنده ها. ضرب ماتریس تحلیل کلان عملیاتی الگوریتم های حل مسئله. سازماندهی موازی بر اساس اشتراک داده ها.

ضرب یک ماتریس در یک بردار

مسئله ضرب یک ماتریس در یک بردار با روابط تعریف می شود

بنابراین، به دست آوردن بردار حاصل شامل تکرار همان نوع عملیات برای ضرب ردیف های ماتریس و بردار است. به دست آوردن هر یک از این عملیات شامل ضرب عنصر به عنصر عناصر ردیف ماتریس و بردار و جمع متعاقب حاصل از آن است. تعداد کل عملیات اسکالر مورد نیاز با مقدار تخمین زده می شود

همانطور که از اقدامات انجام شده هنگام ضرب یک ماتریس و یک بردار به شرح زیر است، روش های موازی برای حل مسئله را می توان بر اساس الگوریتم های جمع موازی به دست آورد (به بند 4.1 مراجعه کنید). در این بخش، تجزیه و تحلیل روش های موازی سازی با در نظر گرفتن سازماندهی محاسبات موازی بسته به تعداد پردازنده های موجود برای استفاده تکمیل می شود. علاوه بر این، با استفاده از مثال مسئله ضرب یک ماتریس در یک بردار، توجه به لزوم انتخاب مناسب ترین توپولوژی یک سیستم محاسباتی (کانال های ارتباطی موجود بین پردازنده ها) به منظور کاهش هزینه ها برای سازماندهی تعامل بین پردازنده ها جلب می شود. .

دستیابی به سریعترین عملکرد ممکن ()

بیایید تجزیه و تحلیل وابستگی های اطلاعات را در الگوریتم ضرب یک ماتریس در یک بردار برای انتخاب انجام دهیم. راه های ممکنموازی سازی همانطور که می بینید، عملیات ضرب ردیف های جداگانه یک ماتریس در بردار انجام شده در طول محاسبات مستقل هستند و می توانند به صورت موازی انجام شوند.



ضرب هر ردیف در یک بردار شامل ضرب های مستقل از نظر عنصر است و همچنین می تواند به صورت موازی انجام شود.

مجموع محصولات حاصل در هر عملیات ضرب ردیفی از یک ماتریس در یک بردار را می توان با استفاده از یکی از انواع الگوریتم جمع بندی که قبلاً در نظر گرفته شده بود (الگوریتم سریال، طرح های آبشاری معمولی و اصلاح شده) انجام داد.

بنابراین، حداکثر تعداد مورد نیاز پردازنده با مقدار تعیین می شود

استفاده از چنین تعدادی از پردازنده ها را می توان به صورت زیر نشان داد. مجموعه پردازنده ها به گروه هایی تقسیم می شوند

,

که هر کدام مجموعه ای از پردازنده ها را برای انجام عملیات ضرب یک ردیف از یک ماتریس در یک بردار نشان می دهد. در ابتدای محاسبات، هر پردازنده گروه یک عنصر از ردیف ماتریس و عنصر مربوط به بردار را دریافت می کند. در مرحله بعد، هر پردازنده عملیات ضرب را انجام می دهد. سپس محاسبات بعدی بر اساس طرح جمع بندی آبشاری انجام می شود. برای نشان دادن در شکل 6.1 طرح محاسباتی پردازنده های گروه را با بعد ماتریس نشان می دهد.

برنج. 6.1. طرح محاسباتی برای ضرب یک ردیف ماتریس در یک بردار

زمان اجرای یک الگوریتم موازی هنگام استفاده از پردازنده ها با زمان اجرای عملیات ضرب موازی و زمان اجرای طرح آبشاری تعیین می شود.

در نتیجه، شاخص های عملکرد الگوریتم با روابط زیر تعیین می شود:

برای مسئله در نظر گرفته شده ضرب یک ماتریس در یک بردار، مناسب ترین توپولوژی ها ساختارهایی هستند که در آنها انتقال سریعداده ها (مسیرهای طول واحد) در یک مدار جمع آبشاری (شکل 4.5 را ببینید). چنین توپولوژی ها ساختاری با یک سیستم کامل از اتصالات ( نمودار کامل) و هایپر مکعب. توپولوژی های دیگر باعث افزایش زمان ارتباط به دلیل مسیرهای داده طولانی تر می شوند. بنابراین، با ترتیب خطی پردازنده‌ها با سیستم اتصالات فقط با نزدیک‌ترین همسایگان در سمت چپ و راست ( خط کشیا حلقه) برای طرح آبشاری، طول مسیر انتقال هر مجموع جزئی دریافتی در تکرار، برابر است با. اگر بپذیریم که انتقال داده در طول یک مسیر در توپولوژی های با ساختار خطی مستلزم اجرای عملیات انتقال داده است، تعداد کل عملیات موازی (طول کل مسیرها) انتقال داده ها با مقدار تعیین می شود.

(به استثنای انتقال داده برای پردازنده های بوت استرپینگ).

کاربرد یک سیستم محاسباتی با توپولوژی مستطیل شکل شبکه دو بعدیاندازه منجر به تفسیر ساده و بصری محاسبات انجام شده می شود (ساختار شبکه با ساختار داده های پردازش شده مطابقت دارد). برای چنین توپولوژی، بهتر است ردیف های ماتریس را در امتداد خطوط افقی شبکه قرار دهیم. در این حالت، عناصر بردار باید در امتداد عمودهای سیستم محاسباتی ارسال شوند. اجرای محاسبات با این ترتیب داده ها را می توان به صورت موازی در امتداد خطوط شبکه انجام داد. در نتیجه، تعداد کل انتقال داده ها با نتایج مربوط به () خط کش یکسان است.

اقدامات ارتباطی انجام شده در حل مشکل انتقال داده بین جفت پردازنده MCS است. تحلیل تفصیلیمدت اجرای چنین عملیاتی در بند 3.3 انجام می شود.

4. توصیه هایی برای اجرای الگوریتم موازی. هنگام اجرای یک الگوریتم موازی، توصیه می شود مرحله اولیه بارگیری پردازنده های مورد استفاده با داده های اولیه را مشخص کنید. چنین مقداردهی اولیه به سادگی برای توپولوژی یک سیستم محاسباتی با توپولوژی در فرم ارائه می شود نمودار کامل(بارگیری با یک عملیات انتقال داده موازی ارائه می شود). هنگام سازماندهی مجموعه ای از پردازنده ها در فرم هایپر مکعبممکن است داشتن یک کنترل دو سطحی برای فرآیند راه‌اندازی مفید باشد، که در آن پردازشگر کنترل مرکزی، ردیف‌های ماتریس و برداری را بین پردازنده‌های کنترل گروه‌های پردازنده توزیع می‌کند، که به نوبه خود، عناصر ماتریس را توزیع می‌کند و ردیف های برداری به پردازنده های اجرایی برای توپولوژی ها در فرم حاکمانیا حلقهعملیات انتقال متوالی داده با کاهش متوالی مقدار داده های منتقل شده از عناصر به عناصر مورد نیاز است.

استفاده از موازی سازی سطح متوسط ​​()

1. انتخاب روش محاسبات موازی. با کاهش تعداد موجود پردازنده های مورد استفاده () ، طرح معمول جمع بندی آبشاری هنگام انجام عملیات ضرب ردیف های ماتریس در یک بردار غیر قابل اجرا می شود. برای سادگی ارائه مطالب، یک طرح آبشاری اصلاح شده را فرض کرده و از آن استفاده می کنیم. بار اولیه هر پردازنده در این حالت افزایش می یابد و پردازنده توسط بخش هایی از ردیف های ماتریس و بردار بارگذاری می شود. زمان اجرای عملیات ضرب یک ماتریس در یک بردار را می توان به عنوان مقدار تخمین زد

هنگام استفاده از تعداد پردازنده های مورد نیاز برای اجرای طرح آبشاری اصلاح شده، به عنوان مثال. در ، این عبارت تخمینی از زمان اجرا می دهد (در).

با تعداد پردازنده ها، زمانی که زمان اجرای الگوریتم به صورت تخمین زده می شود، می توان طرح جدیدی برای اجرای موازی محاسبات پیشنهاد کرد که در آن برای هر تکرار از جمع آبشاری استفاده می شود. مجموعه های پردازنده های غیر همپوشانی. با این رویکرد، تعداد پردازنده های موجود برای اجرای تنها یک عملیات ضرب ردیفی از یک ماتریس و یک بردار کافی است. علاوه بر این، هنگام انجام تکرار بعدی جمع بندی آبشاری، پردازنده های مسئول اجرای تمام تکرارهای قبلی آزاد هستند. با این حال، این نقطه ضعف رویکرد پیشنهادی را می توان با استفاده از پردازنده های بیکار برای پردازش ردیف های بعدی ماتریس به یک مزیت تبدیل کرد. در نتیجه می توان طرح زیر را شکل داد نوار نقالهضرب ماتریس و برداری را انجام دهید:

مجموعه پردازنده ها به گروه های پردازشگر غیر همپوشانی تقسیم می شوند

,

گروه , , متشکل از پردازنده هاست و برای تکرار الگوریتم آبشاری استفاده می شود (گروه برای اجرای ضرب المان استفاده می شود). تعداد کل پردازنده ها؛

مقداردهی اولیه محاسبه شامل بارگذاری عنصر به عنصر پردازنده های گروه با مقادیر 1 ردیف ماتریس و بردار است. پس از بوت استرپ، عملیات موازی ضرب عنصر و اجرای بعدی مدار جمع بندی آبشاری معمولی انجام می شود.

هنگام انجام محاسبات، هر بار پس از اتمام عملیات ضرب المان، پردازنده های گروه با عناصر ردیف بعدی ماتریس بارگذاری می شوند و فرآیند محاسبه برای داده های تازه بارگذاری شده آغاز می شود.

در نتیجه اعمال الگوریتم توصیف شده، تعداد زیادی از پردازنده ها خط لوله ای را برای انجام عملیات ضرب یک ردیف ماتریس در یک بردار پیاده سازی می کنند. در چنین خط لوله ای، چندین ردیف جداگانه از ماتریس می توانند به طور همزمان در مراحل مختلف پردازش باشند. به عنوان مثال، پس از ضرب عنصری عناصر ردیف اول و بردار، پردازنده های گروه اولین تکرار الگوریتم آبشار را برای ردیف اول ماتریس انجام می دهند و پردازنده های گروه انجام می دهند. ضرب عنصری مقادیر ردیف دوم ماتریس و غیره. برای نشان دادن در شکل 6.2 وضعیت فرآیند محاسبات را پس از 2 تکرار خط لوله در نشان می دهد.

برنج. 6.2. وضعیت خط لوله برای عملیات ضرب یک ردیف از یک ماتریس در یک بردار پس از انجام 2 تکرار

2. ارزیابی شاخص های عملکرد الگوریتم. ضرب ردیف اول در بردار طبق طرح آبشاری طبق معمول پس از اجرای عملیات موازی () تکمیل خواهد شد. برای سایر ردیف ها، مطابق با طرح خط لوله سازماندهی محاسبات، نتایج ضرب هر ردیف متوالی پس از اتمام هر تکرار بعدی خط لوله ظاهر می شود. در نتیجه، کل زمان اجرای عملیات ضرب ماتریس-بردار را می توان به صورت بیان کرد

این تخمین کمی بیشتر از زمان اجرای الگوریتم موازی شرح داده شده در پاراگراف قبلی () است، با این حال، روش پیشنهادی جدید نیاز به ارسال داده های کمتری دارد (بردار فقط یک بار ارسال می شود). علاوه بر این، استفاده از طرح خط لوله منجر به ظهور زودتر برخی از نتایج محاسباتی می شود (که می تواند در تعدادی از موقعیت های پردازش داده مفید باشد).

در نتیجه، شاخص های عملکرد الگوریتم با روابط زیر تعیین می شود:

3. انتخاب توپولوژی سیستم کامپیوتری. توپولوژی مناسب یک سیستم محاسباتی کاملاً توسط طرح محاسباتی تعیین می شود - این یک کامل است درخت دوتاییارتفاع . تعداد انتقال داده با چنین توپولوژی شبکه ای با تعداد کل تکرارهای انجام شده توسط خط لوله تعیین می شود، یعنی.

مقداردهی اولیه محاسبات از برگ درخت شروع می شود، نتایج حاصل در پردازشگر ریشه جمع می شود.

تجزیه و تحلیل پیچیدگی اقدامات ارتباطی انجام شده برای سیستم های محاسباتی با توپولوژی های دیگر ارتباطات بین پردازنده ای به عنوان انجام می شود. وظیفه مستقل(به بخش 3.4 نیز مراجعه کنید).

سازمان محاسبات موازی با

1. انتخاب روش محاسبات موازی. هنگام استفاده از پردازنده‌ها برای ضرب یک ماتریس در یک بردار، می‌توان از الگوریتم ضرب موازی ردیف به ردیف که قبلاً در کتابچه راهنما بحث شده است استفاده کرد، که در آن ردیف‌های ماتریس ردیف به ردیف بین پردازنده‌ها توزیع می‌شوند و هر پردازنده عملیات را اجرا می‌کند. ضرب هر ردیف منفرد از ماتریس در بردار . راه ممکن دیگر برای سازماندهی محاسبات موازی می تواند ساختن باشد طرح خط لوله برای عملیات ضرب یک ردیف از یک ماتریس در یک بردار(حاصل ضرب نقطه ای بردارها) با مرتب کردن تمام پردازنده های موجود در یک دنباله خطی ( حاکمان).

چنین طرح محاسباتی را می توان به صورت زیر تعریف کرد. بیایید مجموعه پردازنده ها را به صورت یک دنباله خطی نشان دهیم (شکل 4.7 را ببینید):

هر پردازنده، برای ضرب عناصر ستون ماتریس و عنصر برداری استفاده می شود. اجرای محاسبات روی هر پردازنده، شامل موارد زیر است:

عنصر بعدی ستون ماتریس درخواست می شود.

عناصر و چند برابر می شوند;

نتیجه محاسبات پردازنده قبلی درخواست می شود.

ارزش ها اضافه می شود؛

نتیجه به پردازنده بعدی ارسال می شود.

برنج. 6.3. وضعیت خط لوله خطی برای عملیات ضرب یک ردیف از یک ماتریس در یک بردار پس از انجام دو تکرار

هنگام تنظیم اولیه طرح توصیف شده، لازم است تعدادی از اقدامات اضافی انجام شود:

در طول اولین تکرار، هر پردازنده علاوه بر این یک عنصر از بردار را درخواست می کند.

برای همگام سازی محاسبات (در طول اجرای تکرار بعدی مدار، نتیجه محاسبه پردازنده قبلی درخواست می شود) در مرحله اولیه سازی، پردازنده، , () یک حلقه انتظار را اجرا می کند.

علاوه بر این، برای یکنواختی طرح توصیف شده برای اولین پردازنده، که پردازنده قبلی ندارد، توصیه می شود یک عملیات اضافه خالی ارائه شود ( ).

برای نشان دادن در شکل 6.3 وضعیت فرآیند محاسبات را پس از تکرار دوم خط لوله در نشان می دهد.

2. ارزیابی شاخص های عملکرد الگوریتم. ضرب ردیف اول در بردار طبق طرح خط لوله توصیف شده پس از اجرای عملیات موازی () تکمیل می شود. نتیجه ضرب ردیف های زیر پس از اتمام هر تکرار بعدی خط لوله رخ می دهد (به یاد بیاورید، تکرار هر پردازنده شامل اجرای عملیات ضرب و جمع است). در نتیجه، کل زمان اجرای عملیات ضرب ماتریس-بردار را می توان به صورت زیر بیان کرد:

این امتیاز نیز بیشتر از حداقل است زمان ممکناجرای الگوریتم موازی برای . سودمندی استفاده از یک طرح محاسباتی خط لوله، همانطور که در پاراگراف قبل ذکر شد، در کاهش مقدار داده های ارسالی و در ظاهر اولیه بخشی از نتایج محاسبات است.

شاخص های عملکرد این طرح محاسباتی با روابط زیر تعیین می شود:

, ,

3. انتخاب توپولوژی سیستم کامپیوتری. توپولوژی مورد نیاز سیستم محاسباتی برای اجرای الگوریتم توصیف شده به طور منحصر به فرد توسط طرح محاسباتی پیشنهادی تعیین می شود - این مجموعه ای از پردازنده های مرتب شده به صورت خطی است ( خط کش).

استفاده از مجموعه محدودی از پردازنده ها ()

1. انتخاب روش محاسبات موازی. هنگامی که تعداد پردازنده ها به یک مقدار کاهش می یابد، می توان یک طرح محاسباتی موازی برای ضرب ماتریس-بردار در نتیجه تطبیق الگوریتم ضرب ردیف به ردیف به دست آورد. در این حالت، طرح آبشاری برای جمع نتایج حاصل از ضرب عنصری منحط می‌شود و عملیات ضرب یک ردیف ماتریس در یک بردار به طور کامل روی یک پردازنده انجام می‌شود. طرح محاسباتی به دست آمده با این رویکرد را می توان به صورت زیر مشخص کرد:

یک ردیف بردار و ماتریس به هر یک از پردازنده های موجود ارسال می شود.

عملیات ضرب ردیف های یک ماتریس در یک بردار با استفاده از الگوریتم متوالی معمول انجام می شود.

لازم به ذکر است که اندازه ماتریس ممکن است مضربی از تعداد پردازنده ها نباشد و سپس ردیف های ماتریس را نمی توان به طور مساوی بین پردازنده ها تقسیم کرد. در این شرایط، می‌توان از الزام یکنواختی بار پردازنده منحرف شد و برای به دست آوردن یک طرح محاسباتی ساده‌تر، این قانون را پذیرفت که داده‌ها فقط ردیف به ردیف روی پردازنده‌ها قرار می‌گیرند (یعنی عناصر یک ردیف از یک ماتریس). نمی توان بین چندین پردازنده به اشتراک گذاشت). تعداد متفاوتی از ردیف ها منجر به بار محاسباتی متفاوت بر روی پردازنده ها می شود. بنابراین، تکمیل محاسبات (مدت کل حل مشکل) با زمان کارکرد پردازنده با بیشترین بارگذاری تعیین می شود (در این حالت ممکن است برخی از پردازنده ها به دلیل تمام شدن سهم خود از محاسبات بیکار باشند). بارگذاری ناهموار پردازنده ها کارایی استفاده از MCS را کاهش می دهد و در نتیجه توجه این مثالمیتوتیم نتیجه بگیریم که مشکل تعادل

3. انتخاب توپولوژی سیستم کامپیوتری. مطابق با ماهیت تعاملات بین پردازنده ای انجام شده در طرح محاسباتی پیشنهادی، سازماندهی پردازنده ها به شکل ستاره ها(شکل 1.1 را ببینید). یک پردازنده کنترلی از چنین توپولوژی می تواند برای بارگذاری پردازنده های محاسباتی با داده های اولیه و دریافت نتایج محاسبات انجام شده استفاده شود.

ضرب ماتریس

مشکل ضرب یک ماتریس در یک ماتریس توسط روابط تعریف می شود

.

(برای سادگی، فرض می کنیم که ماتریس های ضرب شده و مربع هستند و دارای ترتیب هستند).

تجزیه و تحلیل راه های ممکن برای اجرای موازی این کار را می توان با قیاس با در نظر گرفتن مسئله ضرب یک ماتریس در یک بردار انجام داد. ترک این تحلیل برای خودخوان، ما با استفاده از مثال مسئله ضرب ماتریس، استفاده از چندین رویکرد کلی را نشان خواهیم داد که به ما امکان می دهد روش های موازی را برای حل مسائل پیچیده تشکیل دهیم.

با دوستان به اشتراک بگذارید یا برای خود ذخیره کنید:

بارگذاری...