۷.۰۱.۱۳۸۸

عمليات ماتريسی مقدماتی

در ابتدا می توان بردار ساده ای با 9 عنصر ساخت.

a = [1 2 3 4 6 4 3 4 5]

a =
1 2 3 4 6 4 3 4

حالا می شود 2 را به هر یک از عناصر بردار اضافه و نتيجه را در یک بردار جدید ذخیره کنیم


b = a + 2

b =
3 4 5 6 8 6 5 6 7


یکی از زمینه های برتری مطلب محاسبه ماتريسی آن است ساختن یک ماتریس به سادگی ساختن یک بردار است با استفاده از سمیکالن می توان سطرهای یک ما تریس را جدا کرد .

A = [1 2 0;2 5 -1;4 10 -1]
A =
1 2 0
2 5 -1
4 10 -1

ما به سادگی می توانیم وارون(ترانهاده) ماتریس را بیابیم .

B = A'
B =
1 2 4
2 5 10
0 -1 -1

حال می توان این دو ماتریس را در هم ضرب کنيم. باز هم توجه کنید که نرم افزارمطلب حق ندارد ماتربس را به عنوان جمعی از اعداد در نظر بگیرد مطلب می داند شما چه وقت با ماتریس سروکار دارید واز این رو محاسبات شما را تطبیق می دهد .

C = A * B

C =
5 12 24 12 30 59 24 59 117


در هنگام ضرب ماتریس با استفاده از عملگر(*) می توان دو ماتریس یا دو بردار را در هم ضرب نمود .

C = A .* B

C =
1 4 0 4 25 -10 0 -10 1

بیایید معکوس ماتریس را پیدا کنیم .

X = inv(A)

X =
5 2 -2
-2 -1 1
0 -2 1

این واقعیت را که ضرب یک ماتریس در خودش ,ماتریس واحد است را نشان میدهیم .

I = inv(A) * A

I =
1 0 0 0 1 0 0

مطلب برای اکثر محاسبات عمومی ماتریس ,تابع دارد در اینجا توابعی برای بدست آوردن مقادیر ویژه وجود دارد .

eig(A)

ans =
3.7321 0.2679 1.0000


svd(A)

ans = 12.3171 0.5149 0.1577

ما به راحتی میتوانیم ریشه های یک کثیرالجمله ای را با استفاده از تابع"roots" پیدا کنیم .این در حقیقت مقادیر ویژه ماتریس اصلی هستند .

roots(p)

ans =
3.7321 1.0000 0.2679

نرم افزار "Matlab" کاربرد های زیادی ماورای محاسبات ماتریسی دارد .

برای محاسبه "کانولوشن"دو بردار:

q = conv(p,p)

q =
1 -10 35 -52 35 -10 1

یا به منظور بدست آوردن کانولوشن دوباره و رسم نتیجه محاسبه

r = conv(p,q)

r =
1 -15 90 -278 480 -480 278 -90 15 -1

در هر زمان ما می توانیم فهرستی از متغیرهای ذخیره شده در حافظه را با استفاده از دستور "whos"یا"who" بدست آوریم.

whos

Name Size Bytes Class

A 3x3 72 double array

B 3x3 72 double array

C 3x3 72 double array

Grand total is 488 elements using 3904 bytes

شما می توانید مقدار یک متغیر خاص را با تایپ نمودن نام آن دریافت کنید.

A

A =
1 2 0
2 5 -1
4 10 -1

می توانید بیش از یک دستور را در یک خط با تفکیک نمودن هر دستور توسط کاما یا سمیکالن داشته باشیم .اگر شما یک متغیر را برای ذخیره شدن نتیجه یک عملیات انتخاب نکنید نتیجه در یک متغیر بنام "ans" ذخیره می شود .

sqrt(-1), log(0)

ans =
0 + 1.0000i
Warning: Log of zero.

ans =
-Inf

در اين مورد چون ما دستورات را با کاما تفکیک نمودیم نتیجه هر عملیات روی صفحه نمایش منعکس شده است همان طور که می بینیم نرم افزار مطلب براحتی با اعداد مختلط و بینهایت در محاسبات کار ميكند.

sqrt(-1), log(0)

ans =
0 + 1.0000i
Warning: Log of zero.
ans = -Inf

اميدوارم اين برنامه به شما برای شروع کار برنامه نويسی با matlab کمک کافی کرده باشه .

هیچ نظری موجود نیست:

http://up.iranblog.com/images/0z5dgraxwa4j49a5ts77.gif http://up.iranblog.com/images/gv83ah5giec9g8jkopmc.gif