مطالب وبلاگ
اخبار، اطلاعیه ها و...
جبرخطی در متلب
توابع داخلی متلب در جبر خطی
حل دستگاههای معادلات خطی:
برای حل دستگاه معادلات خطی AX=B می توانیم از دستور C=A\B استفاده کنیم.
A=[2,1,4;1,5,6;3,1,2]
A = 3×3
2 1 4
1 5 6
3 1 2
B=[1;2;1]
b = 3×1
1
2
1
C=A\B
C = 3×1
0.1875
0.2500
0.0938
A*C
ans = 3×1
1
2
1
تابع linsolve:
همچنین برای حل دستگاه AX=B می توان از دستور linsolve(A,B) کمک بگیریم.
C=linsolve(A,B)
C = 3×1
0.1875
0.2500
0.0938
برخی توابع مهم:
تابع :diag(A) عناصر روی قطر اصلی ماتریس A را استخراج می کند.
diag(A)
ans = 3×1
2
5
2
دستور transpose(A): ترانهاده یک ماتریس را بدون مزدوج گیری انجام میدهد.
transpose(A)
ans = 3×3
2 1 3
1 5 1
4 6 2
دستور :ctranspose(A) ترانهاده مزدوج ماتریس A را محاسبه می کند:
A=[1-i 2i 5-6i; 2, 3+i,4+7i;2+i, 4-i,8+3i]
A = 3×3 complex
1.0000 - 1.0000i 0.0000 + 2.0000i 5.0000 - 6.0000i
2.0000 + 0.0000i 3.0000 + 1.0000i 4.0000 + 7.0000i
2.0000 + 1.0000i 4.0000 - 1.0000i 8.0000 + 3.0000i
Ctranspose(A)
ans = 3×3 complex
1.0000 + 1.0000i 2.0000 + 0.0000i 2.0000 - 1.0000i
0.0000 - 2.0000i 3.0000 - 1.0000i 4.0000 + 1.0000i
5.0000 + 6.0000i 4.0000 - 7.0000i 8.0000 - 3.0000i
تابع trace(A): این دستور اثر ماتریس A (جمع عناصر روی قطر اصلی) را محاسبه می کند.
A=magic(3)
A = 3×3
8 1 6
3 5 7
4 9 2
trace(A)
ans = 15
تابع rank(A): این تابع رتبه ماتریس A ،تعداد سطرها یا به صورت معادل تعداد ستونهای مستقل خطی، را بر می گرداند.
m=rank(A)
m = 3
تابع det(A): این تابع دترمینان ماتریس A را محاسبه می کند.
det(A)
ans = -360
تابع inv(A): معکوس ماتریس A را محاسبه می کند.
inv(A)
ans = 3×3
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028
تابع pinv(A): جهت محاسبه شبه معکوس ماتریس A از دستور pinv(A) استفاده می شود.
C=[1,2,3,2;2,4,1,5;3,2,1,7]
C = 3×4
1 2 3 2
2 4 1 5
3 2 1 7
pinv(C)
ans = 4×3
0.0150 -0.0697 0.0972
-0.0425 0.4085 -0.2763
0.3900 -0.2113 0.0350
-0.0500 -0.0567 0.1751
تابع eig(A): دستور D=eig(A) مقادیر ویژه ماتریس A را به صورت یک بردار ستونی در D بر می گرداند. اگر بخواهیم بردار های ویژه را هم محاسبه کنیم از دستور [V,D]=eig(A) استفاده می کنیم. در اینجا V یک ماتریس است که ستون های آن بردارهای ویژه A هستند و D هم یک ماتریس قطری است که عناصر روی قطر اصلی آن مقادیر ویژه نظیر بردار های ویژه در ستون های ماتریس V می باشند.
یادآوری: اگر یک بردار غیر صفر باشد و
گوییم
یک بردار ویژه نظیر مقدار ویژه
ماتریس
است.
D=eig(A)
D = 3×1
15.0000
4.8990
-4.8990
[V,D]=eig(A)
V = 3×3
-0.5774 -0.8131 -0.3416
-0.5774 0.4714 -0.4714
-0.5774 0.3416 0.8131
D = 3×3
15.0000 0 0
0 4.8990 0
0 0 -4.8990
تابع norm: جهت محاسبه نرم یک بردار یا ماتریس از دستور norm(A) استفاده می کنیم که نرم 2 ماتریس را بر می گرداند. برای محاسبه نرم p از دستور norm(A,p) کمک می گیریم.
norm(A)
ans = 15
v=[1,2,5,2];
norm(v,inf)
ans = 5
دستورcond(A): جهت محاسبه عدد شرطی یک ماتریس که به نوعی نشان دهنده بد وضعی یا خوش وضعی ماتریس است از این دستور استفاده می شود.
cond(A)
ans = 4.3301
تجزیه ماتریس:
تابع lu(A): دستور [L,U]=lu(A) عمل تجزیه ماتریس A را به ماتریس بالا مثلثی U ماتریس پایین مثلثی L چنان انجام می دهد که A=L*U.
[L,U]=lu(A)
L = 3×3
1.0000 0 0
0.3750 0.5441 1.0000
0.5000 1.0000 0
U = 3×3
8.0000 1.0000 6.0000
0 8.5000 -1.0000
0 0 5.2941
L*U
ans = 3×3
8 1 6
3 5 7
4 9 2
تابع qr: دستور [Q,R]=qr(A) عمل تجزیه ماتریس A به ماتریس های متعامد Q و بالا مثلثی R چنان انجام می دهد که A=Q*R.
توجه: یک ماتریس مانند متعامد است هر گاه
.
[Q,R]=qr(A)
Q = 3×3
-0.8480 0.5223 0.0901
-0.3180 -0.3655 -0.8748
-0.4240 -0.7705 0.4760
R = 3×3
-9.4340 -6.2540 -8.1620
0 -8.2394 -0.9655
0 0 -4.6314
Q*R
ans = 3×3
8.0000 1.0000 6.0000
3.0000 5.0000 7.0000
4.0000 9.0000 2.0000
Q*Q'
ans = 3×3
1.0000 -0.0000 -0.0000
-0.0000 1.0000 0
-0.0000 0 1.0000
تابع svd(A): به کمک این تابع می توان تجزیه منفرد ماتریس A را انجام داد. دستور [U,S,V]=svd(A) ماتریس U، S، و V را چنان می یابدکه A=USV’ باشد. در اینجا U و V ماتریس های یکانی و S یک ماتریس قطری است که عناصر روی قطر اصلی آن ریشه های دوم مثبت مقادیر ویژه AA’ است.
[U,S,V]=svd(A)
U = 3×3
-0.5774 0.7071 0.4082
-0.5774 0.0000 -0.8165
-0.5774 -0.7071 0.4082
S = 3×3
15.0000 0 0
0 6.9282 0
0 0 3.4641
V = 3×3
-0.5774 0.4082 0.7071
-0.5774 -0.8165 -0.0000
-0.5774 0.4082 -0.7071
تابع chol(A) : اگر A یک ماتریس معین مثبت باشد، این دستور تجزیه چولسکی آنرا بر می گرداند. اگر R=chol(A) آنگاه A=R*R’.
B=A'*A %تعریف یک ماتریس معین مثبت
B = 3×3
89 59 77
59 107 59
77 59 89
R=chol(B)
R = 3×3
9.4340 6.2540 8.1620
0 8.2394 0.9655
0 0 4.6314