180 likes | 407 Views
مقدمات کار با MATLAB. دانشگاه آزاد اسلامی واحد نجف اباد مهر ماه 1388. www.eng2007ali.blogfa.com. دانشجوی کارشناسی ارشد مهندسی مکانیک ساخت و تولید. شروع کار با MATLAB. www.eng2007ali.blogfa.com. MATLAB اعمال ساده رياضي را به راحتي يك ماشين حساب انجام مي دهد: >> 2+4-1 ans = 5 >> 3+8/2
E N D
مقدمات کار با MATLAB دانشگاه آزاد اسلامی واحد نجف اباد مهر ماه 1388 www.eng2007ali.blogfa.com دانشجوی کارشناسی ارشد مهندسی مکانیک ساخت و تولید مهندس علیرضا ورپشتی
شروع کار با MATLAB www.eng2007ali.blogfa.com MATLAB اعمال ساده رياضي را به راحتي يك ماشين حساب انجام مي دهد: >> 2+4-1 ans = 5 >> 3+8/2 ans = 7 راه دیگر انجام محاسبات این است که مقادیر را در چند متغیر دخیره کرده و روی متغیرها عملیات محاسباتی را انجام دهیم: >> a=2 a = 2 >> b=4 b = 4 >> c=1 c = 1 >> a+b-c ans = 5 مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد در نامگذاری متغیرها باید موارد زیر را رعایت کرد: MATLAB نسبت به حروف کوچک و بزرگ حساس است. اسامی متغیرها حداکثر می تواند 31 کرکتر باشد. اسامی متغیرها حتما باید با حرف شروع شود (کرکتر اول نباید عدد باشد). جزء کلمات تعریف شده برای MATLAB نباشد (این کلمات به رنگ آبی نوشته می شوند، مانند for). نکته: برای شناسایی کلمات کلیدی MATLAB می توان از دستور iskeyword استفاده کرد. این تابع در صورتی که عبارت یک کلمه ی کلیدی باشد مقدار یک و در غیر این صورت مقدار صفر را نشان می دهد: >> iskeyword(‘for’) ans = 1 >> iskeyword(‘keyword’) ans = 0 تمامی دستورات و عبارات کلیدی MATLAB با حروف کوچک نوشته می شود. بنابراین می توان اسامی آن ها را با حروف بزرگ برای نام گذاری متغیرها بکار برد.
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد همانطور که در مثال قبل دیدید MATLAB حاصل a+b-c را در متغیر ans ذخیره کرده است. این متغیر به طور پیش فرض برای ذخیره ی اطلاعات به کار می رود مگر اینکه کاربر نتایج را در یک متغیر دیگر دخیره کند: >> d=a+b-c d = 5 اگر بخواهیم چند دستور را در یک خط بنویسیم باید از کاما (،) و سمیکلن (؛) استفاده کنیم. سمیکلن باعث می شود محاسبات انجام شود ولی نتایج نمایش داده نشود: >> a=3 , b=4 ; c=1; a = 3
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد برای انجام اعمال ساده ی ریاضی می توان از عملگرهای معمول ( + ، - ، / یا\ ، * ، ^) استفاده کرد. برای صرفه جویی در وقت با استفاده از کلیدهای Up و Down (کلیدهای جهتی) می توانید دستوراتی که قبلا اجرا شده را مرور کنید. بهترین روش برای خواناتر شدن برنامه استفاده از جملات توضیحی می باشد. در MATLAB این جملات بعد از علامت % می آید و MATLAB عبارت بعد از % را ویرایش نمی کند. گاهی اوقات یک فرمان ممکن است آن قدر طولانی باشد که نتوان آن را در یک خط نمایش داد. برای حل این مشکل می توان در آخر حط سه نقطه ( . . . ) گذاشته و ادامه ی دستور را در خط بعد تایپ کرد.
معرفی چند دستور کلیدی www.eng2007ali.blogfa.com دستور date تاریخ را نمایش می دهد. با استفاده از دستور clear می توان تمام یا تعدادی از متغیرها را پاک کرد: >> clear a >> a ??? Undefined function or variable ‘a’. >> b b = 4 >> clear >> b ??? Undefined function or variable ‘b’. از دستور delete می توان فایل های مورد نظر و موجود در دایرکتوری جاری MATLAB را پاک کرد. به عنوان مثال دستور زیر تمام p-fileهای موجود در دایرکتوری جاری را پاک می کند: >> delete *.p مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد دستور disp مقادیر یک متغیر را بدون نمایش نام آن متغیر چاپ می کند. اگر بخواهیم عملیاتی را که در یک دوره انجام داده ایم ذخیره کرده و از آن پرینت بگیریم و یا بعدها از آن استفاده کنیم از دستور diary استفاده می کنیم؛ به این ترتیب که با اجرای دستور diary on، MATLAB مانند یک دفترچه یادداشت عمل کرده و تمام مطالب موجود در prompt MATLAB در یک فایل ذخیره می شود تا هنگامی که diary off اجرا شود. در هنگام اجرای دستورات تکراری یا هنگام آزمایش کردن مقادیر مختلف در یک متغیر ممکن است تایپ دستورات خسته کننده باشد. برای حل این مشکل MATLAB یک راه حل دارد و آن استفاده از M-file می باشد. با استفاده از M-fileها می توانید دستورات را در یک فایل ذخیره کرده و با باز کردن آن همانند آن که آن ها را در خط فرمان تایپ کرده باشید اجرا کنید. برای ایجاد M-file می توانید از گزینه ی New M-file استفاده کنید.
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد در MATLAB متغیرهای ویژه ایی وجود دارند که هر یک مقادیر خاصی را در خود ذخیره می کنند: ans برای ذخیره ی مقادیری که کاربر متغیری را برای ذخیره ی آن ها در نظر نگرفته است. pi مقدار عدد پی (3.1416). eps کوچکترین عدد مثبت بزرگتر از صفر. inf به عنوان علامت بینهایت. NaN یا nan مقدار غیر عددی (نتیجه ی تمام عملگرها روی NaNها، NaN است).
ماتریس ها (آرایه ها) در MATLAB www.eng2007ali.blogfa.com نمونه ای از یک ماتریس 3x3 تعریف شده در محیط MATLAB: >> A=[1,2,3;4,5,6;7,8,9] A = 1 2 3 4 5 6 7 8 9 چند دستور برای استفاده در تعریف ماتریس ها در محیط MATLAB: linspace(a,b,c) این دستور c نقطه با فاصله های مساوی در بازه ی [a,b] را نشان می دهد. logspace(a,b,c) این دستور c نقطه با فواصل لگاریتمی در بازه ی [10a,10b] را نشان می دهد. a:b:c مفهوم این دستور این است که از a شروع کن، bتا bتا برو جلو تا به c برسی. در این روش b که گام نام دارد می تواند منفی باشد. مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد مثال: >> B=linspace(1,7,4)’ B = 1 3 5 7 همانطور که در مثال بالا می بینید با استفاده از عملگر ترانهاده ( ‘ ) یک ماتریس سطری را به ماتریس ستونی تبدیل کردیم.
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد دو ماتریس A و B را می توان با استفاده از دستورات [A,B] (الحاق سطری) و [A;B] (الحاق ستونی) به یکدیگر الحاق کرد و به این ترتیب آرایه هایی با سطر و یتون های متعدد داشت. البته در الحاق سطری باید تعداد سطرها و در الحاق ستونی باید تعداد ستون های دو ماتریس برابر باشد. همچنین می توان تعداد ماتریس های الحاقی را به طور دلخواه افزایش داد. >> A=[1 2 3]; >> B=[4 5 6]; >> C=[7 8 9]; >> D=[A B],F=[A;B;C] D = 1 2 3 4 5 6 F = 1 2 3 4 5 6 7 8 9
محاسبات عددی ماتریس ها www.eng2007ali.blogfa.com MATLAB عملگرهای فراوانی برای اعمال بر روی ماتریس ها دارد. با چند مثال تعدادی از آنها را بیان می کنیم: >> A=[1 2 3;4 5 6]; >> A-2 ans = -1 0 1 2 3 4 >> B=[7 8 9;10 11 12]; >> A*2+B ans = 9 12 15 18 21 24 >> A+B ans = 8 10 12 14 16 18 مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد همانطور که در اسلاید قبل دیدید اعمال ساده ی ریاضی را می توان روی ماتریس ها انجام داد. A-2 باعث شد از تمام درایه های A دو واحد کم شود. دستور A+B درایه های نظیر به نظیر دو ماتریس را با هم جمع کرد. ضرب و توان ماتریس ها نیز به سادگی قابل تعریف است: >> A A = 1 2 3 4 5 6 >> C=[1 2;3 4]; >> C*A ans = 9 12 15 19 26 33 >> C^2 ans = 7 10 15 22
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد حال اگر بخواهیم تک تک درایه ها را به توان n برسانیم و یا درایه های دو ماتریس را نظیر به نظیر در هم ضرب یا تقسیم کنیم باید قبل از عملگر یک نقطه قرار دهیم. مثال: >> A.*B ans = 7 16 27 40 55 72 >> B.^A ans = 7 64 729 10000 161051 2985984 >> C.^2 ans = 1 4 9 16
ماتریس های استاندارد www.eng2007ali.blogfa.com ones(n,m) ماتریسی nxm با درایه های یک ایجاد می کند: >> ones(2,3) ans = 1 1 1 1 1 1 zeros(n,m) ماتریسی nxm با درایه های صفر ایجاد می کند: >> zeros(2,4) ans = 0 0 0 0 0 0 0 0 eye(n,m) ماتریسی nxm ایجاد می کند که درایه های روی قطر اصلی آن یک می باشند. اگر این دستور به صورت eye(n) به کار رود یک ماتریس همانی nxn ایجاد می کند: >> eye(3,4) ans = 1 0 0 0 0 1 0 0 0 0 1 0 مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد rand(n,m) ماتریسی nxm با درایه های اتفاقی بین صفر و یک ایجاد می کند: >> rand(2,3) ans = 0.8147 0.1270 0.6324 0.9058 0.9134 0.0975 randperm(n) یک ماتریس سطری با اعداد 1 تا n به صورت رندم و اتفاقی می سازد: >> randperm(10) ans = 10 5 1 8 2 9 7 3 4 6 magic(n) یک ماتریس جادویی مربعی ایجاد می کند که مجموع درایه های هر سطر، ستون و قطر با هم برابرند: >> magic(3) ans = 8 1 6 3 5 7 4 9 2 نکته: توجه کنید که دو دستور آخر تنها یک ورودی می گیرند، اما دستورات اول می توانند دارای دو آرگومان ورودی باشند. در صورتی که دستورات اول با یک آرگومان به کار روند یک ماتریس مربعی nxn ایجاد می شود.
www.eng2007ali.blogfa.com مهندس علیرضا ورپشتی – دانشگاه ازاد اسلامی واحد نجف اباد
www.eng2007ali.blogfa.com سه ماتریس دلخواه تعریف کنید و سپس اعمال ساده ی محاسباتی را روی آنها اعمال کنید. دستورات who، whos و clear را در مورد متغیرهای که ایجاد کرده اید، اجرا کنید. دستور help را برای چند تابع مثلثاتی و برای magic اجرا کنید. خسته نباشید..