سبد خرید (0)

ضرب بردارها در متلب

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

قبلا در بردارها مشاهده کردیم که ترانهاده ی یک بردار سطری، یک بردار ستونی است و ترانهاده ی یک بردار ستونی، یک بردار سطری است. 

برای ضرب کردن بردارها در یکدیگر، تعداد عناصر آنها باید با یکدیگر برابر باشند. و یکی از آنها باید برداری سطری باشد و دیگری باید برداری ستونی باشد. بعنوان مثال، برای بردار ستونی c و بردار سطری r داریم: 

$$c=\begin{bmatrix} 5 \\ 3 \\ 7 \\ 1 \end{bmatrix}\quad r=\begin{bmatrix} 6 & 2 & 3 & 4 \end{bmatrix}$$

 توجه کنید که r دارای ابعاد 4×1 است و c دارای ابعاد 1×4 بنابراین داریم: 

$${ \left[ r \right]  }_{ 1\times 4 }{ \left[ c \right]  }_{ 4\times 1 }={ \left[ s \right]  }_{ 1\times 1 }$$

یعنی در این ضرب، یک عدد اسکالر به دست می آوریم. به صورت زیر:

$$\begin{bmatrix} 6 & 2 & 3 & 4 \end{bmatrix}\begin{bmatrix} 5 \\ 3 \\ 7 \\ 1 \end{bmatrix}=6*5+2*3+3*7+4*1=61$$

 در حالی که اگر ترتیب ضرب را عوض کنیم، یک ماتریس 4×4 به دست می آوریم: 

$${ \left[ c \right]  }_{ 4\times 1 }{ \left[ r \right]  }_{ 1\times 4 }={ \left[ M \right]  }_{ 4\times 4 }$$

 یعنی داریم: 

$$\begin{bmatrix} 5 \\ 3 \\ 7 \\ 1 \end{bmatrix}\begin{bmatrix} 6 & 2 & 3 & 4 \end{bmatrix}=\begin{bmatrix} 30 & 10 & 15 & 20 \\ 18 & 6 & 9 & 12 \\ 42 & 14 & 21 & 28 \\ 6 & 2 & 3 & 4 \end{bmatrix}$$

 این عملیات را در متلب می توان با استفاده از عملگر * انجام داد. با استفاده از این عملگر می توان عملیات ضرب را انجام داد. ابتدا بردار ستونی c و سپس بردار سطری r را ایجاد می کنیم: 

 

 


برای بردارها عملیات های خاصی نیز وجود دارند: ضرب نقطه ای و ضرب خارجی.

ضرب نقطه ای (یا همان ضرب داخلی) دو بردار a و b به صورت \(a\bullet b\) نوشته می شود و به صورت زیر تعریف می شود:  

 $${ a }_{ 1 }{ b }_{ 1 }+{ a }_{ 2 }{ b }_{ 2 }+{ a }_{ 3 }{ b }_{ 3 }+...+{ a }_{ n }{ b }_{ n }=\sum _{ i=1 }^{ n }{ { a }_{ i }{ b }_{ i } } $$

 به طوری که a و b هرکدام n عنصر دارند و \(\quad { a }_{ i }\) و \(\quad { b }_{ i }\) عناصر درون این بردارها هستند. به عبارت دیگر، این ضرب مشابه با ضرب ماتریس ها به هنگام ضرب بردار سطری a در بردار ستونی b است. و حاصل یک عدد اسکالر خواهد بود. 

 برای انجام ضرب نقطه ای در متلب، می توانیم با استفاده از علامت * ماتریس اول را در ترانهاده ی ماتریس دوم ضرب کنیم. و یا اینکه می توانیم از تابع ()dot در متلب استفاده کنیم: 

مثال

 


ضرب داخلی دو بردار a و b یعنی \(a\times b\) تنها زمانی تعریف می شود که  هر دوی a و b تنها سه عنصر داشته باشند. برای انجام این کار می توانیم از ضرب دو ماتریس استفاده کنیم به طوری که ماتریس اول(به شیوه ای خاص) شامل عناصر بردار a و ماتریس دوم شامل عناصر بردار b باشد: 

 $$a\times b=\begin{bmatrix} 0 & { -a }_{ 3 } & { a }_{ 2 } \\ { a }_{ 3 } & 0 & { -a }_{ 1 } \\ { -a }_{ 2 } & { a }_{ 1 } & 0 \end{bmatrix}\begin{bmatrix} { b }_{ 1 } \\ { b }_{ 2 } \\ { b }_{ 3 } \end{bmatrix}=\begin{bmatrix} { a }_{ 2 }{ b }_{ 3 }-{ a }_{ 3 }{ b }_{ 2 }, & { a }_{ 3 }{ b }_{ 1 }-{ a }_{ 1 }{ b }_{ 3 }, & { a }_{ 1 }{ b }_{ 2 }-{ a }_{ 2 }{ b }_{ 1 } \end{bmatrix}$$

 متلب یک تابع داخلی به نام cross دارد که این کار را به راحتی برای ما انجام می دهد: 

مثال