ضرب ماتریس ها در متلب
ضرب ماتریس ها به معنی ضرب جمله به جمله ی آنها نمی باشد. ضرب ماتریس ها معنی و مفهوم خاصی دارد.
اگر بخواهیم ماتریس A را در ماتریس B ضرب کنیم تا ماتریسی به نام C ایجاد شود، تعداد ستون های A باید با تعداد سطرهای B برابر باشد.
اگر ماتریس A دارای ابعاد \(m\times n\) باشد، آنگاه ماتریس B باید دارای ابعاد \(n\times ...\) باشد.مثلا تعداد ستون های B را p در نظر می گیریم.
به طور کلی می توان گفت که ابعاد درونی این دو ماتریس (یعنی nها) باید با یکدیگر برابر باشند.
پس از ضرب، تعداد سطرهای ماتریس C از A گرفته می شود و تعداد ستون های ماتریس C از B گرفته می شود. به عبارت دیگر، ابعاد بیرونی، یعنی \(m\times p\) ابعاد ماتریس C را نشان می دهند. این موضوع در تساوی زیر نشان داده شده است:
$${ [A] }_{ m\times n }{ [B] }_{ n\times p }={ [C] }_{ m\times p }$$
تساوی بالا تنها ابعاد ماتریس C را نشان می دهد. و روش محاسبه ی عناصر C را نشان نمی دهد.
اگر ابتدا عناصر سطرهای ماتریس A را در عناصر متناظر آنها در ستون های ماتریس B ضرب کنیم و سپس آنچه به دست می آید را با یکدیگر جمع کنیم، حاصل ضرب دو ماتریس مورد نظر خواهد بود. به عبارت دیگر ضرب دو ماتریس a و b با فرمول زیر به دست می آید:
$${ c }_{ ij }=\sum _{ k=1 }^{ n }{ { a }_{ ik }{ b }_{ kj } } $$
به مثال زیر توجه کنید:
مثال(ضرب ماتریس ها در متلب)
در مثال بالا، ابعاد ماتریس A به صورت \(2\times 3\) است و ماتریس B نیز \(3\times 4\) است. همان طور که مشاهده می کنید، ابعاد درونی یعنی اعداد 3، با یکدیگر برابر هستند. پس ضرب \(A\times B\) امکان پذیر است.
اما توجه کنید که ضرب \(B\times A\) امکان پذیر نیست. ابعاد بردار C با ابعاد بیرونی یعنی \(2\times 4\) برابر است.
عناصر بردار C با روشی که گفته شد قابل محاسبه هستند. اولین سطر از ماتریس C از ضرب سطر اول ماتریس A در ستون های ماتریس B به صورت پی در پی به دست می آید.
بعنوان مثال داریم:
\(C(1,1)=3*1+8*4+0*0=35\)
\(C(1,2)=3*2+8*5+0*2=46\)
حال اگر بخواهیم در متلب، ماتریس ها را ضرب کنیم، می توانیم از نماد * استفاده کنیم. به مثال زیر توجه کنید:
مثال(ضرب ماتریس ها در متلب)
تمرین 2.5
هر وقت که دو ماتریس دارای ابعاد یکسانی باشند و مربعی باشند، می توان بر روی آنها ضرب آرایه ای و ضرب ماتریسی انجام داد. بر روی دو ماتریس زیر، مقادیر A*B و B*A را بصورت دستی محاسبه کنید و سپس نتیجه ها را در متلب محاسبه کنید و مورد مقایسه قرار دهید.
- نوشته شده توسط احسان عباسی
- بازدید: 41296