بخشی از مقاله
نرم افزار متلب
مقدمه:
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دستور
در زیر با استفاده ازاین دستور ریشه های چند جملهای را بدست آورده ایم:
>> r=roots(p)
r =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
همانطور که می بینید دو تا از ریشه ها مختلط هستند.
فرض کنید می خواهیم چند جمله ای های زیر را ضرب کنیم:
x3+2x2+3x+4
x3+4x2+9x+16
:convدستور
این دستوررا برای ضرب چند جمله ای ها استفاده می کنیم:
نتایج را در زیر مشاهده می کنیم: