MATLABآشنایی با نرم افزار

Download Report

Transcript MATLABآشنایی با نرم افزار

‫آشنایی با نرم افزار ‪MATLAB‬‬
‫‪MATLAB‬چیست؟!‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪MATLAB‬که نام آن از عبارت انگلیس ی ‪ MATrix LABoratory‬به‬
‫معنی آزمایشگاه ماتریس‬
‫اولين نگارش هاي آن در دانشگاه نيومکزيکو و استانفورد در سال ‪ ١٩٧٠‬در‬
‫جهت حل مسائل تئوري ماتريس ها‪ ،‬جبرخطي و آناليز عددي‬
‫هدف اوليه آن قادر ساختن مهندسين و دانشمندان به حل مسائل شامل‬
‫عمليات ماتريس ي بدون نياز به نوشتن برنامه در زبان هاي برنامه نويس ي متداول‬
‫همچون ‪ C‬و ‪ FORTRAN‬بود )‪(LINPACK‬‬
‫‪MATLAB‬چیست؟!‬
‫‪‬‬
‫در ادامه ی هدف گفته شد باید گفت‪:‬ماتريس ها‪ ،‬معادالت ديفرانسيل‪ ،‬رشته‬
‫هاي عددي اطالعات‪ ،‬ترسيمات و گراف ها از لوازم اصلي بکار گرفته در‬
‫رياضيات و نيز در ‪ MATLAB‬هستند‪.‬‬
‫ در چه زمینه هایی استفاده می شود؟‬MATLAB‫از‬
‫ برای حل مسائلی که به شکل‬High-performance Language ‫این برنامه یک‬
‫زبان آن مبتنی بر مفهوم آرایه می باشد و قابلیت‬.‫ریاض ی و با عالئم ریاض ی قابل بیان هستند‬
.‫ را دارد‬Object Oriented Programming
:‫از این برنامه در موارد زیر استفاده می شود‬
Math and computation
Algorithm development
Modeling, simulation
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development
including graphical user interface building









‫نمای کلی ‪ MATLAB‬و آشنایی با پنجره های آن‬
‫‪Command Window‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ابتدا نحوه ی آوردن این صفحه نشان داده شود‪.‬‬
‫محیط کاری اصلی ‪MATLAB‬‬
‫دستورات و توابع در این قسمت درج می شود‬
‫‪Command window prompt‬یا »‬
‫بررس ی چند دستور در این پنجره‬
‫کاربرد ‪clc‬‬
‫‪ MATLAB‬دارای خاصیت ‪ Case Sensitive‬می باشد‪.‬‬
‫‪Command History‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫هر بار که شما برنامه ‪ MATLAB‬را باز می کنید‪ ،‬زمان و تاریخ وررود شما در‬
‫‪ Command History‬به رنگ سبز نشان داده می شود‬
‫دستوراتي که در برنامه مورد استفاده قرار می گيرد پشت سر هم در اين پنجره ذخيره‬
‫مي شوند‪.‬‬
‫اين دستورات حتي بعد از خارج شدن از برنامه نيز هم چنان سر جاي خود باقي مي‬
‫مانند و حذف نمي شوند‪.‬‬
‫ً‬
‫با کليک بر روي اين دستورات ذخيره شده شما مي توانيد آنها را مجددا اجرا کنيد‪.‬‬
‫برای فعال کردن این پنجره از منوی ‪Desktop >> Command‬‬
‫‪History‬استفاده می شود‪.‬‬
‫‪Workspace‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫امکان مشاهده ی تمامی متغيرهايي که در ‪ MATLAB‬تعريف‬
‫کرده ايم‪.‬‬
‫امکان تغیير آنها می باشد‪.‬‬
‫امکان پاک کردن تمامی متغیيرها در منوی ‪Edit‬‬
‫‪Help‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫یکی از منوهای ‪MATLAB‬‬
‫به عنوان یک دستور‬
‫دستوری با نام ‪Helpwin‬‬
‫تذکر‪:‬الزم به توضيح است كه نام دستورات و توابع در ‪ help‬با حروف‬
‫بزرگ آورده مي شوند‪ ،‬در حاليكه‬
‫‪ MATLAB‬نسبت به بزرگ و كوچك بودن حروف حساس است‬
‫‪DEMO‬‬
‫‪‬‬
‫پنجره ‪demo‬دستور جديدي باز مي كند كه شما در آن مي‬
‫توانيد مثال هاي متعددي از امكانات ‪MATLAB‬را بيابيد‪.‬‬
‫چند دستور و عمل ابتدایی‬
‫عملیات ابتدایی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در ‪MATLAB‬چهار نوع آرايه مي توان تعريف كرد‪:‬‬
‫اعداد اسكالر كه تك عضوي هستند‪.‬‬
‫بردارها كه شامل يك سطر يا ستون مي باشند (يك بعدي)‪.‬‬
‫ماتريس ها كه از اعضاي چيده شده در يك آرايش مربعي تشكيل مي گردند(دو‬
‫بعدي)‪.‬‬
‫آرايه هاي با ابعاد بيش از دو‪.‬‬
‫اعضاي يك آرايه مي توانند حرف ویا عدد باشند (اعداد صحيح و اعشاري)‬
‫وجود ; در هنگام تعریف یک متفير‪...‬‬
‫نحوه ی صدا کردن متغير‬
‫عملیات ابتدایی (ادامه)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫اعمال ساده ی ریاض ی به راحتی انجام شده و در متغيری به نام ‪ ans‬که در همان‬
‫لحظه ساخته می شود‪،‬ریخته می شود‪.‬‬
‫می توان متغيرها را هم با هم جمع کرد‪.‬‬
‫در نام گذاري متغيرها بايد موارد زير را رعايت کرد‪:‬‬
‫‪ MATLAB‬نسبت به حروف کوچك و بزرگ حساس است‪.‬‬
‫اسامي متغيرها حداکثر مي تواند ‪ ٣١‬کرکتر باشد‪.‬‬
‫اسامي متغيرها حتما بايد با حرف شروع شود (کرکتر اول نبايد عدد باشد)‪.‬‬
‫جز کلمات تعريف شده براي ‪MATLAB‬نباشد (اين کلمات به رنگ آبي نوشته مي‬
‫شود‪ ،‬مثل ‪)for‬‬
‫براي شناسايي کلمات کلیدی ‪ MATLAB‬مي توان از دستور ‪iskeyword‬‬
‫استفاده کر د‪.‬‬
‫عملیات ابتدایی (ادامه)‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫واضح است‪ ،‬از آنجایی که تمام دستورات و عبارات کليدي ‪MATLAB‬با حروف‬
‫کوچك نوشته مي شود‪ .‬بنابراين مي توان اسامي آن ها را با حروف بزرگ براي نام‬
‫گذاري متغيرها به کار برد‪.‬‬
‫اگر بخواهيم چند دستور را در يك خط بنويسيم‪ ،‬بايد از کاما (‪ )،‬و سميكالن (؛)‬
‫استفاده کنيم‪ .‬سميكالن باعث مي شود محاسبات انجام شود ولي نتايج نمايش داده‬
‫نشود‪.‬‬
‫;‪» a=3; b=4; c=1‬‬
‫‪,‬و ; یک عملکرد دارند با این تفاوت که ; باعث می شود شرح کار نشان داده نشود‪.‬‬
‫براي توقف پردازش برنامه از ‪Ctrl + c‬استفاده کنيد‪.‬‬
‫چند متغير خاص‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در ‪MATLAB‬متغيرهاي ويژه اي وجود دارد که هر يك مقادير خاص ي را‬
‫در خود ذخيره مي کنند‪:‬‬
‫‪ans‬براي ذخيره مقاديري که کاربر متغيري را براي ذخيره آنها در نظر‬
‫نگرفته است‪.‬‬
‫‪pi‬مقدار عدد پي (‪)3.1416‬‬
‫‪eps‬کوچكترين عدد مثبت بزرگتر از صفر‬
‫‪inf‬به عنوان عالمت بينهايت‬
‫‪ NaN‬يا ‪ nan‬مقدار غير عددي (نتيجه تمام عملگرها روي ‪NaN‬‬
‫ها‪NaN ،‬است)‪.‬‬
‫چند دستور ساده‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪:WHo‬برای نمایش نام متغيرهای تعریف شده‪.‬‬
‫‪:Clear‬برای پاک کردن یک یا چندین متغير‪.‬‬
‫‪:Whos‬در جهت نمایش نام و اطالعات کامل تری از متغير‪.‬‬
‫عمليات و توابع منطقي‬
‫مقايسه منطقي‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫در ‪ MATLAB‬عالمت هاي زير براي مقايسه مقادير عددي و حرفي بكار‬
‫مي روند‪.‬‬
‫كوچكتر از‬
‫كوچكتر از يا مساوي با >=‬
‫بزرگتر از‬
‫بزرگتر از يا مساوي با‬
‫مساوي با‬
‫مخالف با‬
‫>‬
‫<‬
‫<=‬
‫==‬
‫~=‬
Example of >=



» [1 2]>=[0 3]
ans =
10
‫عملگرهای منطقي‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫روابط منطقي را مي توان با استفاده از عملگرهاي منطقي با‬
‫هم تركيب کرد‪ .‬اين عملگرها عبارتند از‪:‬‬
‫&‬
‫و (تركيب عطفي)‬
‫|‬
‫يا (تركيب فصلي)‬
‫‪xor‬‬
‫يا (مانع جمع)‬
‫~‬
‫نقيض‬
‫‪Example Of XOR‬‬
‫)]‪» xor([0 0 1 1],[0 1 0 1‬‬
‫= ‪ ans‬‬
‫‪ 0 1 1 0‬‬
‫توجه كنيد كه ‪ xor‬يك تابع است و دو بردار ورودي به آن بايد‬
‫هم اندازه باشند‪.‬‬
‫‪‬‬
‫‪‬‬
‫نحوه تعريف ماتريس ها‬
‫آرایه ها در ‪ MATLAB‬به سادگی ایجاد می شوند‪ .‬ساده ترین و ابتدایی ترین‬
‫راه‪ ،‬تایپ تمام مقادیر بين دو ] [ می باشد‪.‬‬
‫برخي از توابعي كه در ساختن آرايه ها بكار مي روند عبارتند از‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫يك ماتريس ‪ 2*2‬با مولفه هاي ‪ ١‬ايجاد مي كند‪ones(2) .‬‬
‫يك ماتريس ‪ 2*3‬با مولفه هاي ‪ ١‬ايجاد مي كند‪ones(2,3) .‬‬
‫)‪zeros(2‬‬
‫يك ماتريس ‪ 2*2‬با مولفه هاي صفر ايجاد مي كند‪.‬‬
‫)‪eyes(3‬‬
‫يك ماتريس يكه ‪ 3*3‬ايجاد مي كند‪.‬‬
‫‪‬‬
‫برداري با ‪ ٧‬مولفه با فواصل مساوي بين ‪ -1‬و ‪ ٥‬ايجاد مي كند‪.‬‬
‫)‪linspace(-1,5,7‬‬
‫‪‬‬
‫‪‬‬
‫برداري با ‪ ٨‬مولفه با فواصل لگاريتمي مساوي بين ‪10-1‬و ‪ 102‬ايجاد مي كند‪.‬‬
‫)‪logspace(-1,2,8‬‬
‫‪‬‬
‫‪‬‬
‫از ‪ a‬شروع کن‪b ،‬تا ‪ b‬تا برو جلو تا به ‪ c‬برس ی‪ .‬در این روش ‪ b‬که گام حرکت‬
‫نام دارد می تواند منفی باشد‪.‬‬
‫‪a:b:c‬‬
‫‪ ‬در ‪ MATLAB‬می توان آرایه های ستونی نيز معرفی کرد‪ .‬برای تولید سطر جدید‬
‫از سمیکالن (؛) استفاده می کنیم‪ .‬راه دیگر ایجاد سطر این است که بعد از معرفی‬
‫سطر اول با زدن ‪ enter‬به خط بعد رفته و به معرفی سطر بعد بپردازید‪.‬‬
‫در این مورد به چند نکته باید توجه کرد‪:‬‬
‫‪ ‬تعداد ستون ها در هر سطر باید برابر باشد‪ ،‬در غير این صورت پیغام خطایی‬
‫نمایش داده می شود‪.‬‬
‫‪ ‬تعداد فواصلی که برای جدا کردن اعداد به کار می روند برای ‪ MATLAB‬مهم‬
‫نیست‪ .‬یعنی ‪ MATLAB‬فضاهای خالی اضافه را تشخیص داده و حذف می‬
‫کند‪.‬‬
‫تعدادي از توابعي كه روي آرايه ها عمل مي كنند‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫)‪sum(x‬‬
‫حاصل جمع مولفه هاي ‪x‬‬
‫حاصل جمع مولفه هاي ‪x‬از اول تا هر مولفه )‪cumsum(x‬‬
‫)‪prod(x‬‬
‫حاصلضرب مولفه هاي‪x‬‬
‫)‪cumprod(x‬‬
‫حاصلضرب مولفه هاي ‪ x‬از اول تا هر مولفه‬
‫)‪max(x‬‬
‫بزرگترين مولفه ‪ x‬را پيدا مي كند‬
‫)‪min(x‬‬
‫كوچكترين مولفه ‪ x‬را پيدا مي كند‬
‫)‪sort(x‬‬
‫مولفه هاي ‪ x‬را مرتب مي كند‬
‫)‪mean(x‬‬
‫ميانگين حسابي مولفه هاي ‪x‬‬
‫)‪std(x‬‬
‫انحراف معيار مولفه هاي ‪x‬‬
‫الحاق دو یا چند آرایه‬
‫دو آرایه مفروض ‪ a‬و ‪ b‬را می توان با استفاده از دستورات‬
‫‪( [a,b] ‬الحاق سطری)‬
‫‪( [a;b] ‬الحاق ستونی)‬
‫به یکدیگر الحاق کرد و به این ترتیب آرایه هایی با سطرها و ستون ها ي متعدد‬
‫داشت‪ ،‬البته در الحاق سطری تعداد سطرها و در الحاق ستونی تعداد ستون های‬
‫دو آرایه باید مساوی باشند‪.‬‬
‫همچنين می توان تعداد آرایه های الحاقی را به طور دلخواه افزایش داد‪.‬‬
‫عمليات ماتريس ي روي آرايه ها‬
‫شامل محاسبه ترانهاده‪ ،‬ضرب ماتريس ي‪ ،‬جمع و تفريق آرايه هاي‬
‫هم اندازه و غيره مي شود‪.‬‬
‫تعدادي از توابع ماتريس ي در زير آورده شده اند‪:‬‬
‫)‪det(a‬‬
‫‪ ‬دترمینان ماتریس مربعی‬
‫)‪inv(a‬‬
‫‪ ‬ماتريس وارون‬
‫)‪eig(a‬‬
‫‪ ‬مقادير و بردارهاي ويژه ماتريس مربعي‬
‫)‪poly(a‬‬
‫‪ ‬چند جمله اي مشخصه ماتريس‬
‫عمليات عضو به عضو‬
‫در این حالت قبل از عملگر ‪( .‬نقطه) قرار می دهیم‪.‬‬
‫آرايه هاي چند بعدي‬
‫‪‬‬
‫‪‬‬
‫مي توان بعد سوم را به شكل زير به ماتريس‪ m‬که قبال تعریف شده افزود‪:‬‬
‫)‪» m(:,:,2)=ones(2,3‬‬
‫= )‪m(:,:,1‬‬
‫‪1 2 3‬‬
‫‪4 5 7‬‬
‫= )‪m(:,:,2‬‬
‫‪1 1 1‬‬
‫‪1 1 1‬‬
‫افزودن بعدهاي چهارم و بيشتر نيز به طريق مشابه امكان پذير است ‪.‬اصطالحا به بعد سوم‬
‫صفحه گفته مي شود ولي نام خاص ي براي ابعاد چهارم به بعد وجود ندارد‪.‬‬
‫چند جمله اي ها‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫يك چند جمله اي در ‪ MATLAB‬به صورت يك بردار سطري كه مولفه هاي آن‬
‫ضرايب چند جمله اي به ترتيب نزو لي هستند معرفي مي شود‪.‬‬
‫ريشه هاي يك چند جمله اي‬
‫محاسبه مقدار يك چند جمله اي‬
‫ضرب و تقسيم چند جمله اي ها‬
‫مشتق چند جمله اي‬
‫برازش منحني چند جمله اي‬
‫ترسيم داده ها‬
‫نمودارهاي ‪ ٢‬بعدي‬
‫ترسیم نمودار‬
‫خطوط شبکه ای‬
‫برچسب محور ‪X‬‬
‫برچسب محور ‪Y‬‬
‫عنوان نمودار‬
‫اضافه کردن متن در نقطه دلخواه‬
‫راهنمای نمودار‬
‫)‪plot(x,y‬‬
‫‪grid‬‬
‫)’‪xlabel(‘Text‬‬
‫)’‪ylabel(‘Text‬‬
‫)‘‪title(‘Text‬‬
‫)’‪text(a,b,’Text‬‬
‫)’‪legend(‘Text‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
plot(x,y,’character’)
‫)‪subplot(a,b,c‬‬
‫‪‬‬
‫‪‬‬
‫دو عدد اول (‪ )B ،A‬تعداد تقسیمات صفحه را تعیين می کنند‪.‬‬
‫عدد سوم (‪ )C‬مکان رسم نمودار را مشخص می کند‪.‬‬
‫)]‪axis([a b c d‬‬
‫‪‬‬
‫‪‬‬
‫نمودار را در بازه ‪ a‬و ‪ b‬برای محور افقی و ‪ c‬و ‪ d‬برای محور عمودی رسم می‬
‫نماید‪.‬‬
‫‪‬‬
‫ترسیم نمودار های ‪ 3‬بعدی‬
‫ترسیم نمودار ‪ 3‬بعدی‬
‫برچسب محور ‪Z‬‬
‫ایجاد شبکه ‪ 2‬بعدی روی صفحه دلخواه‬
‫ترسیم سطوح ‪ 3‬بعدی‬
‫)‪plot3(x,y,z‬‬
‫)’‪zlabel(‘Text‬‬
‫)‪meshgrid(a,b‬‬
‫)‪surf(x,y,z‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ابزار حساب نمادین‬
‫تعریف نماد‬
‫مشتق‬
‫انتگرال‬
‫دترمینان‬
‫ماتريس معكوس‬
‫رسم منحنی دو بعدی‬
‫رسم منحنی ‪ 3‬بعدی‬
‫‪syms‬‬
‫‪‬‬
‫‪diff‬‬
‫‪‬‬
‫‪int‬‬
‫‪‬‬
‫‪det‬‬
‫‪‬‬
‫‪inv‬‬
‫‪‬‬
‫‪ezplot‬‬
‫‪‬‬
‫‪ezplot3‬‬
‫‪‬‬
‫)]‪ezplot(f,[xmin,xmax,ymin,ymax‬‬
‫‪‬‬
‫‪‬‬
‫برای رسم نمودار با متغيرها‬
‫عبارت دوم داخل پرانتز حدود رسم نمودار را مشخص می کنند‪.‬‬