ضرب بردارها در متلب
چون که بردارها نمونه های خاصی از ماتریس ها هستند، عملیاتی که در مقاله ی قبل گفته شد(یعنی جمع و تفریق و ضرب اسکالر و ضرب و ترانهاده) تا زمانی که ابعاد آنها صحیح باشند، بر روی آنها به درستی کار خواهد کرد.
قبلا در بردارها مشاهده کردیم که ترانهاده ی یک بردار سطری، یک بردار ستونی است و ترانهاده ی یک بردار ستونی، یک بردار سطری است.
برای ضرب کردن بردارها در یکدیگر، تعداد عناصر آنها باید با یکدیگر برابر باشند. و یکی از آنها باید برداری سطری باشد و دیگری باید برداری ستونی باشد. بعنوان مثال، برای بردار ستونی 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 دارد که این کار را به راحتی برای ما انجام می دهد:
مثال
- نوشته شده توسط احسان عباسی
- بازدید: 20728