TAHA
09-23-2009, 08:46 PM
چکیده مقاله : Matlab نرم افزاري است که براساس مجموعه اي اصول عملياتي که بر ماتريس ها عمل مي کند بنا نهاده شده است.Matlab بر گرفته از "آزمايشگاه ماتريس" است .
متن کامل مقاله :
Matlab نرم افزاري است که براساس مجموعه اي اصول عملياتي که بر ماتريس ها عمل مي کند بنا نهاده شده است.Matlab بر گرفته از "آزمايشگاه ماتريس" است .زباني بسيار قدرتمند جهت پردازش داده ها است که امروزه بسيارياز رشته هاي مهندسي را کنترل کرده و کار مهندسان را تا نوشتن چند برنامه ساده آسان نموده است.محاسباتي که تصور حل کردن آنها با استفاده از روشهاي سنتي لرزه بر اندام هر مهندسي مي اندازدتوسط Matlab کاملا انعطاف پذير ، و آسان حل مي شوند.
از ديگر خصوصيات Matlab اينست که مي تواند تابع ها و روتين هاي نوشته شده در زبانهاي ديگر مثل C++ و Java را قبول و به کمک آنها مسائل را حل کند.اين خصوصيت قدرت پردازش و طرفداران آن را نيز چند برابر کرده است.
امروزه شرکت ها و گروههاي نرم افزاري زيادي سعي دارند تا برنامه هاي اضافي را براي رشته هاي بخصوصي مانندمهندسي کنترل ، مهندسي قدرت ،... به محيط مطلب اضافه کنند اين برنامه ها اصطلاحا Toolbox يا جعبه ابزار ناميده مي شوند .
در اين سري مقالات سعي مي کنيم تا به صورت خودآموز مطالب راارائه دهيم و بيشتر مطالبي را ارائه دهيم که براي يک دانشجوي مهندسي برق داراي کاربرد باشد.و بتواند به فهم مساله علاوه بر حل آن بيفزايد در اين صورت است که لذت حل مساله دو چندان مي شود.
محيط مطلب:
محيط نرم افزار Matlab متشکل از هفت پنجره مي باشد.پنجره ها مانند: پنجره راهنما يا کمک ، پنجره فرمان ،پنجره تاريخچه ، دايرکتوري جاري ، محيط کار ،profiler، launch Pad
ما بيشتر کارمان با پنجره فرمان است .Matlab با استفاده از يک علامت << آمادگي خود را جهت ورود فرمان و اجراي آنها اعلام ميکند .هر دستوري که مي خواهيد به Matlab بدهيد در جلوي اين علامت تايپ مي کنيد و سپس کليد Enter را جهت دريافت جواب فشار مي دهيد.
در انتهاي دستورات Matlab ، هم مي توانيم از سمي کالن" ; " استفاده کنيم و هم ميتوانيم دستور را بدون سمي کالن تايپ کنيم .در صورتي که دستور را بدون سمي کالن بنويسيم Matlab دستور را اجرا کرده و جواب را بلافاصله نمايش مي دهد اما چنانچه از سمي کالن استفاده کنيم Matlab دستور را اجرا کرده ، منتها نتيجه را در حافظه نگه مي دارد و آنرا نمايش نمي دهد.
ماتريس ها :
گفتيم که Matlab بر اساس محاسبات ماتريسها بنا نهاده شده است .ماتريس خانه هاي متوالي حافظه ميباشند که به همه ي آنها يک نام تخصيص داده مي شود منتها علاوه برنام براي دستيابي به محتويات يک خانه از شماره آن خانه هم استفاده مي شود . اين تعريف نرم افزاري ماتريس مي باشد .
ماتريس ها مي توانند داراي بعد باشند مثلا ماتريس هاي يک بعدي که به آنها بردار هم گفته مي شود و همچنين ماتريس هاي 2 بعدي که متشکل از سطر و ستون هستند و دقيقا همانند يک جدول مي توان با آنها رفتار کرد .در کامپيوتر مي توان ماتريس هاي با ابعاد بزرگتر از دو را هم تعريف کرد اما چون تصور اين ماتريس خيلي مشکل است استفاده اي از آنها نمي شود.
در Matlab مي توان ماتريس هارا به چند شيوه تعريف کرد :
1 در اين روش از سمت چپ عناصر ماتريس را مي نويسيم و عناصر هر سطر را با استفاده از يک فاصله يا يک کاما از هم جدا مي کنيم به محض پايان يافتن يک سطر از يک سمي کالن براي نمايش ابتداي سطر بعدي استفاده مي کنيم و عناصر سطر بعدي را هم به وسيله فاصله يا کاما از هم جدا مي کنيم و .....
2 در اين روش مي توانيم به جاي سمي کالن";" براي مشخص کردن انتهاي سطر از کليد Enter استفاده کنيم .
3 در اين روش از يک فرمت Matlab استفاده مي کنيم . اين فرمت به صورت x:y:z است که x عدد ابتدائي و y گام حرکت و z عدد انتهايي مي باشد .در اين روش Matlab از x شروع کرده و هر بار به اندازه ي y به x اضافه مي کند تا وقتي که مقدار آن از z بيشتر شود براي مثال دستور 1:2:9 اعداد 1 3 5 7 9 براي ما نشان مي دهد.
>> a=[1:2:9]
a =
1 3 5 7 9
توجه : در روشهاي بالا ابتدا و انتهاي ماتريس با استفاده از [] مشخص خواهد شد .
Matlab جواب هر دستور محاسباتي را نيز در يک ماتريس بر مي گرداند.زيرا عملوند ها در يک عبارت محاسبه اي همگي ماتريس هستند طبيعتا جواب مساله هم بايد يک ماتريس باشد. توجه داشته باشيد که يک عدد تنها هم يک ماتريس 1*1 است.
حال مي خواهيم با توابع مربوط با ماتريسها هم تا اندازه اي آشنا شويم .هدف ما فقط آشنايي است و تسلط کامل فقط به تمرين دانشجو بستگي دارد.
هر ماتريس داراي تعدادي سطر وستون است .براي بدست آوردن سطر و ستون يک ماتريس مشخص از دستور size() استفاده مي کنيم.
شکل دستور بدين صورت است :
[m,n]=size(a)
در اين دستور با فرض اينکه ماتريس a داراي 2 سطر و 3 ستون باشد تعداد سطر ها و ستون هاي ماتريس هاي a در ماتريس سطري دو عضوي قرار مي گيرد.تعداد سطر ها در m و تعداد ستون ها در n قرار مي گيرد .
مي توانيم از شکل ديگر دستور هم استفاده کنيم اين فرمتبراي دستورات ديگر هم قابل استفاده است .
B=size(a)
در اينجا ما به جاي مشخص کردن ماتريس با استفاده از [m,n] نام b را قرار داده ايم در اينجا Matlab ماتريسي با نام b مي سازد و سپس جواب را در آن ذخيره مي کند.
>> a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
>> b=size(a)
b =
2 3
ماتريس قطري :
فرض کنيد ماتريس a بدين صورت تعريف شود:
a=[1 2 3 ];
اگر a يک ماتريس سطري و داراي n عنصر باشد مي توان با استفاده از دستور diag(a) اين ماتريس را به يک ماتريس قطري تبديل کرد که ماتريس حاصل يک ماتريس n*n خواهد بود . در اين مثال ماتريس قطري بدست آمده 3*3 خواهد بود.
>> a=[1 2 3]
a =
1 2 3
>> diag(a)
ans =
1 0 0
0 2 0
0 0 3
ماتريس يکاني:
ماتريس مربعي که کليه درايه هاي آن يکباشد را ماتريس يکاني مي گويند.شيوه ساخت ماتريس يکاني در Matlab، علاوه بر روش عمومي ساخت ماتريس ها استفاده از دستورeye() مي باشد مثلا براي ايجاد ماتريس يکاني 3*3 از دستور زير استفاده مي کنيم.
>> a=eye(3)
a =
1 0 0
0 1 0
0 0 1
ترا نهاده ي يک ماتريس:
با مفهوم ترانهادهي يک ماتريس در رياضيات مقدماتي آشنا شده ايد. ترانهاده ي ماتريس a ماتريسي است که اعضاي آن نسبت به قطر اصلي معکوس شده اند.ترانهاده در Matlab با استقاده از يک کوتيشن تکي نمايش داده مي شود.
>> a=[1 2 3
4 5 6
7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> b=a'
b =
1 4 7
2 5 8
3 6 9
ماتريس يکها :
ماتريسي است که کليه اعضاي آن عدد يک باشد . اين ماتريس با ماتريس يکاني متفاوت است ماتريس يکاني ماتريسي مربعي است و ماتريس يکها مربعي نيست و هر اندازه اي مي تواند داشته باشد.
با استفاده از دستور ones(m,n) يک ماتريس يکها مي توانيم بسازيم .البته اين روش علاوه بر روش عمومي ساخت ماتريس ها مي باشد.اين دستور يک ماتريس که کليه اعضاي آن عدد 1 و اندازه ي آن m*n مي باشد مي سازد.
به طور مشابه مي توان ماتريس صفرها را هم با استفاده ازدستور zeros(m,n) ساخت.
>> a=ones(3,2)
a =
1 1
1 1
1 1
>> b=zeros(2,3)
b =
0 0 0
0 0 0
عمليات رياضي ماتريس ها :
جمع و تفريق
در دبيرستان با اين نوع عمليات آشنا شديد.درايه هاي متناظر دقيقا با هم جمع وتفريق مي شوند .
ضرب :
عمل ضرب ماتريس ها تعريف ديگري دارد که نمي خواهم دوباره آن را بيان کنم .
قبلا با استفاده از روش هاي اثبات ثابت مي کرديم که
(A*B)'=B'A'
حال درستي اين مطلب را با نرم افزار Matlab امتحان مي کنيم .
>> a=[1 2 3]
a =
1 2 3
>> b=[2
4
6]
b =
2
4
6
>> c=(a*b)
c =
28
>> c'
c =
28
>> b'*a'
ans =
28
در فيزيک و رياضي با مفهوم ضرب نقطه اي يا ضرب داخلي آشنا شديم . جواب ضرب داخلي دو ماتريس يک عدد اسکالر است . براي ضرب داخلي در Matlab از dot استفاده مي شود .
<< dot(a,b)
ans =
28
_________________
متن کامل مقاله :
Matlab نرم افزاري است که براساس مجموعه اي اصول عملياتي که بر ماتريس ها عمل مي کند بنا نهاده شده است.Matlab بر گرفته از "آزمايشگاه ماتريس" است .زباني بسيار قدرتمند جهت پردازش داده ها است که امروزه بسيارياز رشته هاي مهندسي را کنترل کرده و کار مهندسان را تا نوشتن چند برنامه ساده آسان نموده است.محاسباتي که تصور حل کردن آنها با استفاده از روشهاي سنتي لرزه بر اندام هر مهندسي مي اندازدتوسط Matlab کاملا انعطاف پذير ، و آسان حل مي شوند.
از ديگر خصوصيات Matlab اينست که مي تواند تابع ها و روتين هاي نوشته شده در زبانهاي ديگر مثل C++ و Java را قبول و به کمک آنها مسائل را حل کند.اين خصوصيت قدرت پردازش و طرفداران آن را نيز چند برابر کرده است.
امروزه شرکت ها و گروههاي نرم افزاري زيادي سعي دارند تا برنامه هاي اضافي را براي رشته هاي بخصوصي مانندمهندسي کنترل ، مهندسي قدرت ،... به محيط مطلب اضافه کنند اين برنامه ها اصطلاحا Toolbox يا جعبه ابزار ناميده مي شوند .
در اين سري مقالات سعي مي کنيم تا به صورت خودآموز مطالب راارائه دهيم و بيشتر مطالبي را ارائه دهيم که براي يک دانشجوي مهندسي برق داراي کاربرد باشد.و بتواند به فهم مساله علاوه بر حل آن بيفزايد در اين صورت است که لذت حل مساله دو چندان مي شود.
محيط مطلب:
محيط نرم افزار Matlab متشکل از هفت پنجره مي باشد.پنجره ها مانند: پنجره راهنما يا کمک ، پنجره فرمان ،پنجره تاريخچه ، دايرکتوري جاري ، محيط کار ،profiler، launch Pad
ما بيشتر کارمان با پنجره فرمان است .Matlab با استفاده از يک علامت << آمادگي خود را جهت ورود فرمان و اجراي آنها اعلام ميکند .هر دستوري که مي خواهيد به Matlab بدهيد در جلوي اين علامت تايپ مي کنيد و سپس کليد Enter را جهت دريافت جواب فشار مي دهيد.
در انتهاي دستورات Matlab ، هم مي توانيم از سمي کالن" ; " استفاده کنيم و هم ميتوانيم دستور را بدون سمي کالن تايپ کنيم .در صورتي که دستور را بدون سمي کالن بنويسيم Matlab دستور را اجرا کرده و جواب را بلافاصله نمايش مي دهد اما چنانچه از سمي کالن استفاده کنيم Matlab دستور را اجرا کرده ، منتها نتيجه را در حافظه نگه مي دارد و آنرا نمايش نمي دهد.
ماتريس ها :
گفتيم که Matlab بر اساس محاسبات ماتريسها بنا نهاده شده است .ماتريس خانه هاي متوالي حافظه ميباشند که به همه ي آنها يک نام تخصيص داده مي شود منتها علاوه برنام براي دستيابي به محتويات يک خانه از شماره آن خانه هم استفاده مي شود . اين تعريف نرم افزاري ماتريس مي باشد .
ماتريس ها مي توانند داراي بعد باشند مثلا ماتريس هاي يک بعدي که به آنها بردار هم گفته مي شود و همچنين ماتريس هاي 2 بعدي که متشکل از سطر و ستون هستند و دقيقا همانند يک جدول مي توان با آنها رفتار کرد .در کامپيوتر مي توان ماتريس هاي با ابعاد بزرگتر از دو را هم تعريف کرد اما چون تصور اين ماتريس خيلي مشکل است استفاده اي از آنها نمي شود.
در Matlab مي توان ماتريس هارا به چند شيوه تعريف کرد :
1 در اين روش از سمت چپ عناصر ماتريس را مي نويسيم و عناصر هر سطر را با استفاده از يک فاصله يا يک کاما از هم جدا مي کنيم به محض پايان يافتن يک سطر از يک سمي کالن براي نمايش ابتداي سطر بعدي استفاده مي کنيم و عناصر سطر بعدي را هم به وسيله فاصله يا کاما از هم جدا مي کنيم و .....
2 در اين روش مي توانيم به جاي سمي کالن";" براي مشخص کردن انتهاي سطر از کليد Enter استفاده کنيم .
3 در اين روش از يک فرمت Matlab استفاده مي کنيم . اين فرمت به صورت x:y:z است که x عدد ابتدائي و y گام حرکت و z عدد انتهايي مي باشد .در اين روش Matlab از x شروع کرده و هر بار به اندازه ي y به x اضافه مي کند تا وقتي که مقدار آن از z بيشتر شود براي مثال دستور 1:2:9 اعداد 1 3 5 7 9 براي ما نشان مي دهد.
>> a=[1:2:9]
a =
1 3 5 7 9
توجه : در روشهاي بالا ابتدا و انتهاي ماتريس با استفاده از [] مشخص خواهد شد .
Matlab جواب هر دستور محاسباتي را نيز در يک ماتريس بر مي گرداند.زيرا عملوند ها در يک عبارت محاسبه اي همگي ماتريس هستند طبيعتا جواب مساله هم بايد يک ماتريس باشد. توجه داشته باشيد که يک عدد تنها هم يک ماتريس 1*1 است.
حال مي خواهيم با توابع مربوط با ماتريسها هم تا اندازه اي آشنا شويم .هدف ما فقط آشنايي است و تسلط کامل فقط به تمرين دانشجو بستگي دارد.
هر ماتريس داراي تعدادي سطر وستون است .براي بدست آوردن سطر و ستون يک ماتريس مشخص از دستور size() استفاده مي کنيم.
شکل دستور بدين صورت است :
[m,n]=size(a)
در اين دستور با فرض اينکه ماتريس a داراي 2 سطر و 3 ستون باشد تعداد سطر ها و ستون هاي ماتريس هاي a در ماتريس سطري دو عضوي قرار مي گيرد.تعداد سطر ها در m و تعداد ستون ها در n قرار مي گيرد .
مي توانيم از شکل ديگر دستور هم استفاده کنيم اين فرمتبراي دستورات ديگر هم قابل استفاده است .
B=size(a)
در اينجا ما به جاي مشخص کردن ماتريس با استفاده از [m,n] نام b را قرار داده ايم در اينجا Matlab ماتريسي با نام b مي سازد و سپس جواب را در آن ذخيره مي کند.
>> a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
>> b=size(a)
b =
2 3
ماتريس قطري :
فرض کنيد ماتريس a بدين صورت تعريف شود:
a=[1 2 3 ];
اگر a يک ماتريس سطري و داراي n عنصر باشد مي توان با استفاده از دستور diag(a) اين ماتريس را به يک ماتريس قطري تبديل کرد که ماتريس حاصل يک ماتريس n*n خواهد بود . در اين مثال ماتريس قطري بدست آمده 3*3 خواهد بود.
>> a=[1 2 3]
a =
1 2 3
>> diag(a)
ans =
1 0 0
0 2 0
0 0 3
ماتريس يکاني:
ماتريس مربعي که کليه درايه هاي آن يکباشد را ماتريس يکاني مي گويند.شيوه ساخت ماتريس يکاني در Matlab، علاوه بر روش عمومي ساخت ماتريس ها استفاده از دستورeye() مي باشد مثلا براي ايجاد ماتريس يکاني 3*3 از دستور زير استفاده مي کنيم.
>> a=eye(3)
a =
1 0 0
0 1 0
0 0 1
ترا نهاده ي يک ماتريس:
با مفهوم ترانهادهي يک ماتريس در رياضيات مقدماتي آشنا شده ايد. ترانهاده ي ماتريس a ماتريسي است که اعضاي آن نسبت به قطر اصلي معکوس شده اند.ترانهاده در Matlab با استقاده از يک کوتيشن تکي نمايش داده مي شود.
>> a=[1 2 3
4 5 6
7 8 9]
a =
1 2 3
4 5 6
7 8 9
>> b=a'
b =
1 4 7
2 5 8
3 6 9
ماتريس يکها :
ماتريسي است که کليه اعضاي آن عدد يک باشد . اين ماتريس با ماتريس يکاني متفاوت است ماتريس يکاني ماتريسي مربعي است و ماتريس يکها مربعي نيست و هر اندازه اي مي تواند داشته باشد.
با استفاده از دستور ones(m,n) يک ماتريس يکها مي توانيم بسازيم .البته اين روش علاوه بر روش عمومي ساخت ماتريس ها مي باشد.اين دستور يک ماتريس که کليه اعضاي آن عدد 1 و اندازه ي آن m*n مي باشد مي سازد.
به طور مشابه مي توان ماتريس صفرها را هم با استفاده ازدستور zeros(m,n) ساخت.
>> a=ones(3,2)
a =
1 1
1 1
1 1
>> b=zeros(2,3)
b =
0 0 0
0 0 0
عمليات رياضي ماتريس ها :
جمع و تفريق
در دبيرستان با اين نوع عمليات آشنا شديد.درايه هاي متناظر دقيقا با هم جمع وتفريق مي شوند .
ضرب :
عمل ضرب ماتريس ها تعريف ديگري دارد که نمي خواهم دوباره آن را بيان کنم .
قبلا با استفاده از روش هاي اثبات ثابت مي کرديم که
(A*B)'=B'A'
حال درستي اين مطلب را با نرم افزار Matlab امتحان مي کنيم .
>> a=[1 2 3]
a =
1 2 3
>> b=[2
4
6]
b =
2
4
6
>> c=(a*b)
c =
28
>> c'
c =
28
>> b'*a'
ans =
28
در فيزيک و رياضي با مفهوم ضرب نقطه اي يا ضرب داخلي آشنا شديم . جواب ضرب داخلي دو ماتريس يک عدد اسکالر است . براي ضرب داخلي در Matlab از dot استفاده مي شود .
<< dot(a,b)
ans =
28
_________________