توابع اسکالر :
گروهی از توابع Matlab ، لزوما روی مقادیر اسکالر عمل می کنند و در صورتی که بردار یا ماتریس اعمال شوند، به صورت درایه عمل می کنند.
متداول ترین این توابع عبارتند از :
abs ceil log eye
acos cos log10 sin
asin exp rem sqrt
atan floor round tan
به عنوان مثال دستورات زیرجدول سینوسی تولید می کنند.
x = ( 0 : 0.1 : 2 )'
y = sin ( x )
[ x , y ]
توابع بردار :
دیگر توابع Matlab، لزوما بر روی بردار (سطری یا ستونی ) عمل می کنند و در صورتی که به یک ماتریس m*n ( m > 2 ) اعمال شوند، به صورت ستون به ستون عمل کرده و برداری سطری را ایجاد می کنند که هر درایه آن حاصل اعمال سطر به سطر تابع می توان از ترانهاده ( مثلا mean (A')' ) استفاده کرد یا این که سطر مورد نظر را مشخص کرد ( مثلا mean (A , 2 ) ) چند نمونه از این توابع عبارتند از :
max sum median any std
sort mean min prob all
بزرگترین دارایه ماتریس A با دستور max ( max (A) ) حاصل می شود نه max ( A ) .
توابع ماتریسی :
بیشتر توانی های مطلب از توابع ماتریسی آن ناشی می شود که سودمندترین آنها عبارتند از :
|
مقادیر ویژه و بردارهای ویژه |
eig |
|
فاکتورگیری ( تجزیه به عوامل ) به روش cholesky |
chol |
|
تجزیه مقدار منفرد(single value decomposition) |
svd |
|
معکوس |
inv |
|
فاکترگیری LU |
lu |
|
فاکتور گیری QR |
qr |
|
فرم hessenberg |
hess |
|
تجزیه schur |
schur |
|
صورت پلکانی یا سطر کاهش یافته |
rref |
|
تابع نمایی ماتریسی |
expm |
|
جذر ماتریسی |
sqrtm |
|
چند جمله ای |
ploy |
|
دترمینان |
det |
|
اندازه آرایه |
size |
|
طول بردار |
length |
|
رتبه |
rank |
|
ضرب تانسوری Kronecker |
kron |
|
پیدا کردن اندیس درایه های غیر صفر |
find |
توابع Matlab می توانند یک یا چند آرگومان خروجی داشته باشند.
y = eig ( a )
بردار ستونی شامل مقادیر ویژه A تولید می کند در حالی که
[ u , d ] = eig( a )
منجر به ایجاد ماتریس های U و D می شود ؛ U ماتریسی است که ستونی های آن بردار ویژه A است و D ماتریسی است قطری که مقادیر ویژه A قطر آن را تشکیل می دهند.
اجرا شده دستورات را در ادامه مطلب خواهید دید.
ادامه مطلب
ایجاد ماتریس:
|
ماتریس همانی |
eye |
|
ماتریس صفرها |
zeros |
|
ماتریس یک ها |
ones |
|
ایجاد ماتریس های قطری یا استخراج قطرها |
diag |
|
بخش بالا مثلثی ماتریس |
triu |
|
بخش پایین مثلثی ماتریس |
tril |
|
ایجاد ماتریس تصادفی |
rand |
|
ماتریس Hilbert |
hild |
|
ماتریس مربع جادویی |
magic |
|
ماتریس Toeplitz |
toeplitz |
دستور rand(n) ماتریس n * n تصادفی ایجاد می کند که درارایه های آن به صورت تصادفی ایجاد شده اند.
این درایه ها به صورت بی نظم بین صفر و یک توزیع شده اند در حالی که rand ( n , m ) ماتریسی m * n ایجاد می کند ( البته n و m نشانگر اعداد مثبت می باشند) امتحان کنید.
A = rand ( 3 );
Zeros (m, n) ماتریسی m * n از صفر ها و zeros(n) ماتریسی n * n از صفر ها را تولید می کند. اگر A یک ماتریس باشد، دستورzeros ( size(A)) ماترسی صفری با ابعاد A تولید می نماید. اگر x یک بردار باشد diag(x) ماتریسی است که x قطر آن را تشکیل می دهد و اگر A یک ملتریس باشد ، diag(A) برداری شامل قطرA می باشد.
مثال :
x = 1 : 3
diag(x)
diag(a)
diag(size(A))
ماتریس ها را می توان با استفاده از بکوک ها ایجاد نمود. ایجاد ماتریس 5*5 :
B = [ A, (zeros ( 3,2)) ; ( pi * ones (2,3)) , (eye (2) ) ]
همان طور ک ه گفته شد magic(n) ماتریسی n*n ایجاد می کند که مربع جادویی نامیده می شود (سطرها، ستون ها و قطر ها دارای مجموعه یکسانی می باشند ). Hilb(n) یک ماتریس Hilbert و n * n ایجاد می کند ؛ ماتریس Hilbert یکی از انواع ماتریس های ناموزون (ill-conditioned)است . ماتریس ها را به کمک حلقه for نیز می توان ایجاد کرد .
Triu و tril به ترتیب بخش بالا مثلثی و پایین مثلثی را استخراج می کنند.
triu (a)
triu ( a) == a
اجرا شده دستورات را در ادامه مطلب خواهید دید.
ادامه مطلب
دسترسی به زیر ماتریس ها :
از نماد (:) می توان برای دسترسی به زیرماتریس های یک ماتریس استفاده نمود. برای آزمودن آن ابتدا دستورات
A = rand ( 6 , 6 );
B = rand ( 6 , 4 );
که ماتریس های A 6*6 و B 6*4 را تولید می کند را تایپ کنید.
A (1:4,3) بردار ستونی شامل چهار درایه اول ستون سوم A می باشد.
نماد (:) به تنهایی نشاندهنده کل سطر یا ستون است : A(:,3) ستون سوم و A(1:4,:) چهار سطر اول A می باشند.
می توان از بردارهای کامل دلخواه به عنوان زیرنویس استفاده نمود.
A (: ; [2 4] ) شامل ستون های دوم و چهارم A می باشد . این گونه زیرنویس ها را می توان در هر دو طرف عبارت تخصیص دهی استفاده نمود :
A( : ; [ 2 4 5 ] ) = B ( : ; 1 : 3 )
ستون های 2 و 4 و 5 را با ستون اول ماتریس B جایگزین می کند. ستون دوم و جهارم ماتریس A را می توان د رماتریس 2*2 ی [1 2 ; 3 4 ] ضرب نمود :
A ( : ; [2 4 ] ) = A ( : ; [2 ; 4] ) * [1 2 ; 3 4 ]
زیر ماتریس روش بسیار ساده ای برای انجام بسیاری از محاسبات است مثلا چرخش Givens سطرهای سوم و پنجم ماتریس برای صفر کردن درایه A ( 3 , 1 ) را می توان به صورت زیر نوشت (با فرض غیر صفر بودن norm([a b]) :
a = A ( 5 , 1 );
b = B ( 3 , 1 );
G = [ a b ; -b a ] / norm([a b])
A ( [5 3] , : ) = G * A( [ 5 3] , : )
همچنین می توانید به تمام درایه های یک زیر ماتریس، مقداری اسکالر تخصیص دهید.
A ( : ; [2 4] ) = 99
برای حذف کردن سطر و ستون های یک ماتریس می توانید به آن ها ماتریس تهی نسبت دهید:
A ( : ; [2 4] ) = []
در یک ماتریس، end اندیس آخرین مولفه است.
x = rand (1 , 5);
x = x (end :-1 : 1 );
توابع MATLAB :
عملگرهای قیاسی
عملگرهای قیاسی که عبارتند از:
کوچکتر از >
بزرگتر از <
کوچکتر مساوی =>
بزرگتر مساوی =<
مساوی = =
نامساوی ~ =
که همه آنها به صورت درایه ای عمل می کنند.دقت کنید که عملگر (=) assignment در عبارت های نسبت دهی استفاده می شود در حالی که (= =) عملگر قیاسی است. عملگر های قیاسی را می توان با عملگرهای منطقی and ,or,&,| ترکیب نمود.
همان طور که می دانید وقتی این عملگرها به مقادیر اسکالر اعمال می گردند نتیجه بسته به درست یا غلط بودن 0 یا 1 است.3>5 و 5>3و 3= = 5 و 3= =3 را وارد کرده و نتیجه را ببینید.وقتی عملگرهای منطقی به ماتریس های هم اندازه اعمال شوند نتیجه ماتریسی از صفرها و یک هاست که مقدار عبارت برای درایه های متناظر را نشان می دهد. همچنین می توان مولفه های ماتریس را با مقداری اسکالر مقایسه نمایید.
A = [1 2; 3 4] A>=2
B = [1 3; 4 2] A<B
در عبارت های منطقی مقدار غیرصفر به عنوان درستو صفر به عنوان غلط تعبیر می گردد.
عنوان نمونه ~ 0 , 1 است و ~3 , 0 است و 5 & 4 ,1 است.
اعداد مختلط
در اکثر عمل ها و توابع matlab می توان از اعداد مختلط استفاده نمود.دو شکل متداول ماتریسهای مختلط عبارتند از :
A= [1 2 ; 3 4 ] + i * [ 5 6 ; 7 8 ]
B= [1+5i; 2+6i; 3+7i; 4+8i]
