عمليات ماتريسي روي آرايه‌ها در متلب matlab

عمليات ماتريسي روي آرايه‌ها

در MATLAB مي توان دو نوع عمليات روي آرايه‌ها انجــام داد كـه بـه آنـها عمليـات ماتريسـي و عمليات عضو به عضو مي گويند.  عمليات ماتريسي شامل محاسبه ترانهاده، ضرب ماتريسي، جمـع و تفريق آرايـه‌هاي هم اندازه و غيره مي شود.  ترانهاده يك ماتـريـس با كمك علامـت پريـم بدسـت مي آيد:

» r=rand(2,4)

r =     0.9501    0.6068    0.8913    0.4565

    0.2311    0.4860    0.7621    0.0185

» r’ ans =     0.9501    0.2311

    0.6068    0.4860

    0.8913    0.7621

    0.4565    0.0185

 

ضرب ماتريسي با استفاده از علامت * و جمع و تفريق ماتريسها بـا اسـتفاده از علامتـهاي مربوطـه انجام مي گيرند:

» v=[1:4];

» r*v’ ans =     6.6636

    3.5634

» s=[0:3; 2:-.5:.5];

» s+r ans =     0.9501    1.6068    2.8913    3.4565

    2.2311    1.9860    1.7621    0.5185

 

تعدادي از توابع ماتريسي در زير آورده شده اند :
 det(a) دترمينان ماتريس مربعي
 inv(a) ماتريس وارون
 eig(a) مقادير و بردارهاي ويژه ماتريس مربعي
 poly(a) چند جمله اي مشخصه ماتريس

 

٢-٤   عمليات عضو به عضو روي آرايه‌ها

انجام عمليات جبري روي آرايه‌ها در MATLAB نيازمند دقت است.  بطور كلــي دو نـوع عمليـات مي توان روي آرايه‌ها انجام داد: ١-عمليات عضو به عضــو، ٢-عمليـات بـرداري-ماتريسـي.  اشـتباه گرفتن اين دو نوع عمليات باعث بروز مشكل در محاسبات مي گردد.  دو بردار زير را در نظر بگيريد:

» a=[1 2 3];

» b=[2 -1 0];

 

فرض كنيد كه مي خواهيد اين دو را در هم ضرب كنيد:

» a*b

??? Error using ==> *

Inner matrix dimensions must agree.

 

دليل گرفتن پيام خطا از عمل فوق اين است كه در MATLAB استفاده از علامت ضرب به تنـهايي به معناي ضرب ماتريسي است.  بنابراين عمل بالا را مي توان با ترانهاده بردار دوم به انجام رسانيد:

» a*b’

ans =

     0

 

اين عمل در حقيقت ضرب اسكالر دو ماتريس است، يعني:  ٠=٠*٣+(١-)*٢+٢*١

 

حال اگر بخواهيد ضرب عضو به عضو اين دو بردار را به دست آوريد بايد يك نقطــه قبـل از علامـت ضرب بگذاريد:

» a.*b

ans =

     2    -2     0

 

همين دستورالعمل را مي توان براي تقسيم و به توان رساندن آرايه‌ها بكار بست:

» a.^2 ans =

     1     4     9

 

در صورت فراموش كردن نقطه قبل از علامت توان:

» a^2

??? Error using ==> ^

Matrix must be square.

دیدگاه‌ خود را بیان کنید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

seventy two + = seventy three