نرم افزار مطلب
مقدمه:
Matlab نرم افزاری است که براساس مجموعه ای اصول عملیاتی که بر ماتریس ها عمل می کند بنا نهاده شده است.Matlab بر گرفته از "آزمایشگاه ماتریس" است .زبانی بسیار قدرتمند جهت پردازش داده ها است که امروزه بسیاریاز رشته های مهندسی را کنترل کرده و کار مهندسان را تا نوشتن چند برنامه ساده آسان نموده است.محاسباتی که تصور حل کردن آنها با استفاده از روشهای سنتی لرزه بر اندام هر مهندسی می اندازدتوسط Matlab کاملا انعطاف پذیر ، و آسان حل می شوند.
از دیگر خصوصیات Matlab اینست که می تواند تابع ها و روتین های نوشته شده در زبانهای دیگر مثل C++ و Java را قبول و به کمک آنها مسائل را حل کند.این خصوصیت قدرت پردازش و طرفداران آن را نیز چند برابر کرده است.
امروزه شرکت ها و گروههای نرم افزاری زیادی سعی دارند تا برنامه های اضافی را برای رشته های بخصوصی مانندمهندسی کنترل ، مهندسی قدرت ،... به محیط مطلب اضافه کنند این برنامه ها اصطلاحا Toolbox یا جعبه ابزار نامیده می شوند .
در این سری مقالات سعی می کنیم تا به صورت خودآموز مطالب راارائه دهیم و بیشتر مطالبی را ارائه دهیم که برای یک دانشجوی مهندسی برق دارای کاربرد باشد.و بتواند به فهم مساله علاوه بر حل آن بیفزاید در این صورت است که لذت حل مساله دو چندان می شود.
MATLAB چیست؟
رایانه شما را به یک آزمایشگاه تبدیل می کند .
مخفف کلمات MATRIX LABORATORY است یعنی آزمایشگاه ماتریس ها.
تمام مساءل را با علایم آشنای ریاضی بیان می کند
قابلیت ها:
1)ریاضیات و محاسبات
2)ایجاد الگوریتم
3)مدل سازی
4)تجزیه تحلیل اطلاعات
5)شناسایی و تصویر سازی
6)رسم فنی و مهندسی
7)GUI ----------->graphical user interface
MATLABایجاد ماتریس در
در این درس شما دوستان را با ایجاد ماتریس در مطلب آشنا می کنیم.
: MATLABایجاد یک ماتریس در
فقط کافیست عناصر ماتریس را داخل کروشه گذاشتهMATLABبرای ایجاد یک ماتریس در
و برای ایجاد ستون در ماتریس درایه ها را با سمیکالن از هم جدا می کنیم:
>> A=[1 2 3]
A =
1 2 3
>> B=[5 12 14;12 9 65;171 65 36]
B =
5 12 14
12 9 65
171 65 36
برای ایجاد ترانهاده ماتریس بایستی از کوتیشن استفاده کنید:
به مثال زیر توجه کنید:
>> A=[4 5 6]
A =
4 5 6
>> A'
ans =
4
5
6
جمع ماتریس ها:
جمع دو ماتریس با درایه های برابر به راحتی با علامت جمع قابل استفاده است :
>> A=[1 2 3];
>> B=[4 5 6];
>> C=A+B
C =
5 7 9
ضرب ماتریس ها:
ضرب در ماتریس ها به راحتی جمع آنهاست ولی حتما از ضرب پذیری آنها اطمینان داشته باشید:
>> A=[1 2 3];
>> B=[5;6;3];
>> C=A*B
C =
26
نکته مهم :اگر قرار باشد تک تک عناصر دو ماتریس را در هم ضرب یا بر هم تقسیم کنیم از یک علامت نقطه قبل از عملگر بهره می بریم:
>> A=[1 2 3;4 5 6;7 8 9];
>> B=[3 2 1;6 5 4;9 8 7];
>> C=A.*B
C =
3 4 3
24 25 24
63 64 63
آشنا می کنم:MATLABدر ادمه شما را با چند ماتریس پیش ساخته در
ماتریس صفر:
می توان ماتریس با تمام درایه های صفر ایجاد کرد.zeros(n)با استفاده از تابع
به مثال توجه کنید :
>> A=zeros(3)
A =
0 0 0
0 0 0
0 0 0
>> B=zeros(2,3)
B =
0 0 0
0 0 0
ماتریس همانی:
ماتریس همانی ایجاد کنید:eye(n)با استفاده از تابع
>> A=eye(3)
A =
1 0 0
0 1 0
0 0 1
>> A=eye(2,3)
A =
1 0 0
0 1 0
ما تریس یک:
ماتریس با تمام اعضای یک ایجاد کنید:ones(n)با استفاده از تابع
>> A=ones(3)
A =
1 1 1
1 1 1
1 1 1
>> B=ones(2,3)
B =
1 1 1
1 1 1
برای دسترسی به یک عضو ماتریس می توان با اندیس به آن دسترسی داشت:
>> A=[1 2 3;4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> B=A(2,3)
B =
6
>> C=A(1,1)
C =
1
می توان هر عضو ماتریس را به راحتی تغییر داد برای مثال در ماتریس بالا سطر دوم و ستون اول را به 10 تغییر می دهیم.
>> A(2,1)=10
A =
1 2 3
10 5 6
7 8 9
ایجاد بردار:
با علامت کولن می توان به راحتی بردار ایجاد کرد:
بردار=ابتدای بردار:گام حرکت:انتهای بردار
>> i=1:2:10
i =
1 3 5 7 9
اگر گام حرکت را مشخص نکنید به صورت پیش فرض مقدار یک را خواهد داشت:
>> j=-3:3
j =
-3 -2 -1 0 1 2 3
در اینجا نیز ترانهاده را می توان به راحتی ایجاد کرد:
>> u=(1:3)'
u =
1
2
3
انتخاب سطر ها و ستون ها:
از دو نقطه به راحتی می توان برای انتخاب سطر یا ستون بهره برد:
انتخاب ستون:
>> s=[10 15 26;54 36 65;98 32 98]
s =
10 15 26
54 36 65
98 32 98
>> s(:,1)
ans =
10
54
98
انتخاب سطر:
>> s(1,:)
ans =
10 15 26
انتخاب سطر و ستون خاص:
>> s(1:2,2:3)
ans =
15 26
36 65
:sumتا بع
این تابع جمع ستون ها را می دهد:
داریم:sبرای ماتریس
>> sum(s)
ans =
162 83 189
:repmatتابع
برای تولید یک ماتریس که کلیه سطر ها و ستون های آن تکراری است بکار می رود:
سطر ها را دو بار و ستون ها را سه بار تکرار می کنیم:
>> B=[1 2 3 4]
B =
1 2 3 4
>> BB=repmat(B,3,2)
BB =
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
1 2 3 4 1 2 3 4
حذف عناصر از ماتریس
فرض کنید می خواهیم یک عضو از یک بردار و یا ماتریس را حذف کنیم:در این صورت از علامت کروشه باز و بسته استفاده می کنیم.
مثال:
>> a=1:2:10
a =
1 3 5 7 9
>> a(3)=[]
a =
1 3 7 9
باید توجه داشته باشید که در صورتی که که یک عنصر را حذف می کنید آن ماتریس قابل ایجاد باشد و گرنه با خطا مواجه خواهید شد.
>> a=[1 2 3;4 5 6;7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> a(2,2)=[]
??? Indexed empty matrix assignment is not allowed.
تغییر شکل ماتریس ها:
:reshapeدستور
می توان ماتریس دیگری ایجاد کنیم که تعداد سطر و ستون آن را مشخص کرده ایم:reshapeبا دستور
>> a=[1 2 3;4 5 6;7 8 9;10 11 12]
a =
1 2 3
4 5 6
7 8 9
10 11 12
>> b=reshape(a,2,6)
b =
1 7 2 8 3 9
4 10 5 11 6 12
>> b=reshape(a,1,12)
b =
1 4 7 10 2 5 8 11 3 6 9 12
و یا داریم
>> w=1:6;
>> z=reshape(w,2,3)
z =
1 3 5
2 4 6
ماتریس های خاص:
:magic(n)تابع
n(n^2+1)ی ایجاد می کند بطوری که مجموع سطر ها و ستون های ماتریس مساوی و برابر n ماتریس مرتبه
است:
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
:pascal(n)تابع
جدول پاسکال راتولید می کند:
>> pascal(4)
ans =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
:hilb(n)تابع
را ایجاد می کند:nماتریس هیلبرت مرتبه
>> hilb(4)
ans =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
ماتریس بالا و پایین مثلثی:
:trilتابع
با استفاده از تابع بالا می توان ماتریس پایین مثلثی ایجاد کرد:
>> a=[1 2 3;4 5 6;7 8 9;10 11 12]
a =
1 2 3
4 5 6
7 8 9
10 11 12
>> tril(a)
ans =
1 0 0
4 5 0
7 8 9
10 11 12
:triuتا بع
با استفاده از تابع بالا می توان ماتریس بالا مثلثی ایجاد کرد:
>> triu(a)
ans =
1 2 3
0 5 6
0 0 9
0 0 0
:rand(n)تابع
برای ایجاد مقادیر تصادفی بین صفر و یک بکار می رود:
>> rand(3)
ans =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
>> rand(2,3)
ans =
0.4447 0.7919 0.7382
0.6154 0.9218 0.1763
MATLABاعداد مختلط در
اعداد مختلط رادر matlab به راحتی می توان ایجاد کرد.برای این کار کافیست ازj وi استفاده کرد به مثال زیر توجه کنید:
>> a=1+2j
a =
1.0000 + 2.0000i
>> b=2-3i
b =
2.0000 - 3.0000i
می بینید که به به راحتی می توان عدد مختلط ساخت توجه کنید که1+j2 درست نیست مگر اینکه از علامت * استفاده کنیم.
>> 1+i2
??? Undefined function or variable 'i2'.
>> 1+i*2
ans =
1+ 2.0000i
چند تابع برای کار با اعداد مختلط:
:absتابع
این تابع برای بدست آوردن اندازه در اعداد مختلط بکار می رود:
>> a=1+2j
a =
1.0000 + 2.0000i
>> abs(a)
ans =
2.2361
:angleتابع
اندازه عدد مختلط را بر حسب رادیان می دهد:
>> a=1+2j;
>> angle(a)
ans =
1.1071
:conjتابع
مزدوج مختلط را محاسبه می کند:
>> conj(a)
ans =
1.0000 - 2.0000i
:imagتابع
قسمت موهومی عدد مختلط را می دهد:
1.0000 - 2.0000i
>> imag(a)
ans =
2
:realتابع
قسمت حقیقی عدد مختلط را می دهد:
>> real(a)
ans =
1
:isrealتابع
اگر متغیر حقیقی باشد عدد یک و اگر موهومی باشد صفر را بر می گرداند:
>> a=1+2j;
>> b=6;
>> isreal(a)
ans =
0
>> isreal(b)
ans =
1
:complexتابع
یک عدد مختلط ایجاد می کند:
>> complex(5,10)
ans =
5.0000 +10.0000i
عدد اول در پرانتز قسمت حقیقی و عدد دوم قسمت موهومی است.
matlabچند جمله ایها در
ایجاد چند جمله ای :
فرض کنید می خواهیم چند جمله ای زیر را در مطلب ایجاد کنیم:
x4-12x3+25x+116
برای شناساندن این چند جمله ای به مطلب کافیست یک بردار از ضرایب این چند جمله ای در مطلب تشکیل دهیم .
p=[1 -12 0 25 116];
بهره ببرید:rootاگر بخواهید ریشه های این چند جمله ای را در مطلب بدست آورید کافیست از دستور
:rootدستور
در زیر با استفاده ازاین دستور ریشه های چند جملهای را بدست آورده ایم