متلب
صفحات وبلاگ
نویسنده: پ متلب - پنجشنبه ۱٧ فروردین ،۱۳٩۱

مقدمه ای بر متلب MATLAB

متلب نام یکی از نرم‌افزارهای رایانه‌ای برای انجام محاسبات ریاضی است. واژه متلب هم به معنی محیط محاسبات رقمی و هم به معنی خود زبان برنامه‌نویسی مربوطه است از ترکیب دو واژهٔ MATrix و LABratuary ایجاد شده است. این نام حاکی از رویکرد ماتریس محور برنامه است، که در آن حتی اعداد عادی هم به عنوان ماتریس در نظر گرفته می‌شوند.

با نرم‌افزار متلب می‌توان ماتریس‌ها را به راحتی تغییر داد، توابع یا داده‌ها را ترسیم کرد، الگوریتم‌ها را اجرا کرد و همچنین صفحات رابط میان کاربر و رایانه ایجاد کرد.

متلب که از محصولات شرکت مث‌ورکس (The MathWorks) است، برای گروه‌های مختلف مهندسان رشته‌های مختلف از جمله مهندسی برق، مکانیک، کامپیوتر و ... کاربرد بسیاری دارد.

قدرت متلب

 برنامه‌های متلب همگی متن‌باز هستند و در واقع متلب مفسر است نه کامپایلر. قدرت متلب از انعطاف‌پذیری آن و راحت بودن کار با آن ناشی می‌شود، همچنین شرکت سازنده و گروه‌های مختلف، از جمله دانشگاه‌های سرتاسر جهان و برخی شرکتهای مهندسی هر ساله جعبه‌ابزارهای خاص-کاربردی به آن می‌افزایند که باعث افزایش کارای و محبوبیت آن شده است. فهرستی از این جعبه‌ابزارها در زیر آمده است:

    جعبه‌ابزار مخابرات متلب
    جعبه‌ابزار کنترل متلب
    جعبه‌ابزار فازی متلب
    جعبه‌ابزار محاسبات متلب
    جعبه‌ابزار سیمولینک متلب
    جعبه‌ابزار تخمین متلب
    جعبه‌ابزار آمار متلب
    جعبه‌ابزار جمع‌آوری دادهٔ متلب
    جعبه‌ابزار شبکه عصبی متلب
    جعبه‌ابزار پردازش تصویر متلب
    جعبه‌ابزار پردازش صوت متلب
    جعبه‌ابزار احتمالات متلب
    جعبه‌ابزار کارگاه بلادرنگ متلب

 

MATLAB محیطی برای محاسبات عددی و زبان برنامه سازی می باشد که توسط MATH WORKS ساخته شده است ، MATLAB   امکان دستکاری و کارکردن ساده با ماتریس ، رسم نمودار توابع و دیتا ، اجرای الگوریتم ، ساخت واسط کاربر و واسط برنامه با سایر زبانهای برنامه نویسی را بوجود می آورد . اگر چه MATLAB مخصوص محاسبات عددی است اما toolbox ی با استفاده از موتور maple آنرا به سیستم کامپیوتری – جبری تبدیل می کند . این نرم افزار توسط یک میلیون نفر در دانشگاهها و صنعت مورد استفاده قرار می گیرد . هزینه این نرم افزار برای مصارف تجاری بدون tool box حدود 2000 دلار آمریکا و برای مصارف دانشگاهی با toolbox محدود حدود 100 دلار آمریکا است .

 
متلب  
بخش اول - ملزومات و پیش نیازهای آموزش MATLAB

این آموزش شما را به طور مرحله به مرحله با جنبه های مختلف MATLAB آشنا می کند . پس از کامل نمودن این دوره آموزشی شما به سادگی با استفاده از HELP MATLAB می توانید ویژگی های پیشرفته MATLAB را یاد بگیرد . و همچنین در استفاده از ویژگی های پیشرفته MATLAB راحت خواهید بود و قادر خواهید بود نکات بسیار کاربردی و پیشرفته تری که به رشته تحصیلی یا کارتان مربوط می شود را به خودتان آموزش بدهید .

شما باید دارای مهارت های ا ولیه استفاده از کامپیوتر باشید بعنوان مثال شما باید قادر باشید که برنامه ای را اجرا کنید ، آنرا ببندید و فایلهایتان را ذخیره کنید ، نوشته را کات کنید و در جای مورد نظر پیست کنید و ...

شما باید بدانید که از یک نرم افزار واژه پرداز چگونه استفاده کنید ، مانند نوت پد در ویندوز که شما می توانید از آن برای نوشتن برنامه های MATLAB استفاده کنید .همچنین MATLAB نرم افزار واژه پرداز مخصوص خود را دارد که شما می توانید از آن استفاده کنید (‌که در این آموزش به شما نشان خواهیم داد )

شما باید دانش اولیه ای در مورد جبر و مثلثات داشته باشید مانند آنچه که در دبیرستان پوشش داده شده همچنین اطلاعاتی در مورد جبر خطی ( مانند ماتریس ها ، بردارها و معکوس آنها و ... ) دانستن این موارد موقع شروع آموزش MATLAB بسیار سودمند است اما اصول جبر خطی مورد نیاز در این آموزش شرح داده خواهد شد

ما در این آموزش با یکدیگر تعامل خواهیم داشت و آموزش همراه کار و تمرین خواهد بود . در حالیکه شما صفحه تمرین را مطالعه می کنید باید نرم افزار MATLAB را در پنجره جداگانه ای اجرا کنید و تمرینات را حل کنید .

حالا شما آماده اید که آموزش MATLAB را شروع کنید .

امیدوارم اوقات خوشی با MATLAB داشته باشید . حین آموزش خواهش می کنم تا جایی که امکان دارد تمرین حل کنید چون بهترین راه یادگیری MATLAB استفاده از آن است .
 
 
بخش دوم - آموزش بسیار مقدماتی MATLAB
 
 
MATLAB برنامه ای است که هنگام مواجه شدن با مسائل ریاضیاتی بسیار سودمند خواهد بود مخصوصا در زمینه تکنیک و مهندسی .

شما می توانید از ویژگی built-in MATLAB برای حل بسیاری از مسائل بدون انجام زحمت خاصی ، بهره ببرید از معادلات دو معادله دو مجهول ساده مانند

X + 2Y = 24
12X - 5Y = 10

گرفته تا معادلات بسیار پیچیده مانند فاکتور گیری چند منظوره ، تطابقت منحنی با اطلاعات داده شده ، انجام محاسبات با استفاده از ماتریس ، انجام مسائل مربوط به پردازش سیگنال مانند تبدیلات فوریه ، و ساخت و گسترش شبکه های عصبی .

یک جنبه بسیار قدرتمند و سودمند MATLAB این است که برای رسم بسیاری از انواع منحنی ها مفید واقع می شود و شما را قادر می کند تا توابع پیچیده ماتریسی را رسم کنید و در کل یک آزمایشگاه دیتا است . بعنوان مثال سه شکل زیر با استفاده از توابع چاپ ( plotting ) ساخته شده اند .

                  
آموزش MATLAB دقیقا شبیه آموزش رانندگی است . شما می توانید کلیه قوانین را یاد بگیرید ولی برای اینکه راننده خوبی باشید باید سوار اتومبیل شوید و برای رانندگی به خیابان بروید .

اگر شما قبلا پیش زمینه قویتری از ریاضات و برنامه سازی کامپیوتری داشته باشید شما سریعا یاد می گیرید که از MATLAB چگونه برای اهداف طراحی و یا زمینه کاری خودتان استفاده کنید .
 

بخش سوم : اجرای نرم افزار MATLAB  

شما به سادگی می توانید با دابل کلیک روی ایکون MATLAB این نرم افزار را اجرا کنید یا اینکه با استفاده از منوی start ویندوز این نرم افزار را فراخوانی کنید . پنجره اصلی MATLAB ، دسکتاپ MATLAB نامیده می شود ، که شبیه پنجره زیر است .

شما هنگام اجرای برنامه متوجه خواهید شد که در خط فرمان متن زیر نوشته شده است :

To get started, select "MATLAB Help" from the Help menu.

علامت>>   command prompt ( گوش به فرمان ) نامیده می شود ،که مانند یک چشمک زن است و منتظر فرمان شماست . بعد از اینکه شما متنی را در خط فرمان تایپ کردید MATLAB فرمان شما را اجرا می کند و نتیجه را نشان می دهد و منتظر فرمان بعدی شما می ماند بدین ترتیب شما می توانید دستوراتی را که می خواهید وارد کنید . ( MATLAB فرمان را خط به خط اجرا می کند )

درس بعدی در مورد دستورات خاص MATLAB است ، اما الان برای اینکه فقط MATLAB را شروع کرده باشید دستور ساده زیر را وارد کنید . دستور dateرا تایپ کنید و اینتر را بزندی . MATLAB نتیجه را چیزی شبیه متن زیر نمایش می دهد .

>>date

ans =
11-Jun-1998

بدین ترتیب شما بطور موفقیت آمیز اولین دستور ATLAB را اجرا کرده اید .

دستور ساده دیگری که شما الان می توانید امتحان کنید دستور clc است (clear command window ) اگر شما در صفحه فرمان MATLAB بخواهید همه نوشته ها و دستورات را پاک کنید و چشمک زن به ابتدای صفحه برود می توانید در خط فرمان clc را تایپ کنید و اینتر بزنید . همین حالا به صفحه MATLAB بروید و این دو دستور را اجرا کنید . ساده بود . نه ؟
برای خارج شدن از MATLAB می توانید وارد منوی فایل شوید و گزینه exit matlab را انتخاب کنید یا در خط فرمان دستور quit را تایپ کنید و اینتر بزنید .و یا اینکه به سادگی پنجره را ببندید.  

 
 

 

 
 
 
 
بخش چهارم : اجرای دموها
 

 

 
 

شما قبلاً MATLAB را اجرا کرده اید و دسکتاپ MATLAB را روی دستکتاپ ویندوز باز کرده اید . اگر این کار را انجام نداده اید به بخش قبل مراجعه کنید .

حالا کمی روی Demo ها بحث می کنیم . در واقع Demo زیادی در MATLAB وجود دارد و همه آنها با تایپ کردن دستور Demo در خط فرمان نشان داده می شوند .

ما واقعا انتظار نداریم شما جزئیات MATLAB را با استفاده از این Demo یاد بگیرد اما با استفاده از این Demo ها نسبت به کاراهایی که می توانید با استفاده از MATLAB انجام دهید دید بهتری خواهید یافت . حتی در این Demo چند بازی هم وجود دارد و بعضی از آنها هم کاملا گرافیکی هستند و شما می توانید با استفاده ازاین Demo ها از MATLAB لذت ببرید . MATLAB ابزاری قدرتمند برای حل بسیاری از مسائل است و شما باید این قدرت را بعد از آشنایی با دموها درک کنید .
خوب برای شروع درخط فرمان Demo را تایپ کنید و اینتر بزنید . با این کار صفحه Demo MATLAB بالا می آید و منتظر می ماند تا شما دموی مورد نظرتان را انتخاب واجرا کنید . پنجره Demo MATLAB مشابه صفحه زیر است

 

در این مبحث نمی توانیم به کل دموها سر بزنیم ولی شروع کردن یکی از دموها را به شما نشان می دهیم و شما می توانید برای بقیه دموها نیز همین کار را انجام دهید .

برای دیدن لیست دموهای مختلف روی علامت + کنار گزینه matlab کلیک کنید با اینکار شما می توانید دموهایی در مورد ماتریس ها ،‌اعداد ، اجسام گرافیکی و ... را مشاهده کنید . در لیست هر یک از دموها ، دموهای متعددی در آن مورد وجود دارد .

پنجره سمت راست شما چکیده ای در مورد دموی انتخابی به شما نشان می دهد . بعنوان مثال اگر شما gallery را بعنوان دسته مورد نظر خودتان انتخاب کنید  text box سمت راست چیکیده ای از این دسته دموها را به شما نشان می دهد .

شما می توانید دموها ی مختلفی را با توجه به کلاس انتخابی تان ببینید . در کلاس gallery دموهایی به نامهای Knot, Quiver, Klein IIو ... وجود دارد اگر شما یکی از این دموها را انتخاب کنید اطلاعاتی با توجه به دمو در سمت راست نمایش داده می شود . و دو گزینه وجود دارد.

1-      اجرای دمو

2-      دیدن کدهای دمو

بعنوان مثال این کار را انجام دهید . کلاس gallery را در صفحه MATLAB خود انتخاب کنید سپس دموی spherical surface harmonicحال شما باید پنجره زیر را ببینید

 

این دمو به شما یک مثال گرافیکی خوب را نشان مید هد که شما می توانید با استفاده از MATLAB به آن برسید .

حالا کمی وقت صرف کنید و سایر دموها را انتخاب و اجرا کنید تا محدوده توانایی و امکانات MATLAB را بدرستی درک کنید .

قبل از شروع شاید بخواهید دستور intro demo را امتحان کنید . این مثال دیگری است که مقدمه ابتدایی از توانایی های MATLAB را به شما نشان می دهد . برای اجرای intro کلاس matlab از دموها را انتخاب کنید و سپس matrices بعد basic matrix operation یا اینکه دستور play show intro را تایپ کنید پنچره دیگری بالا می آید و شما می توانید با استفاده از دکمه هایی که در این پنجره وجود دارد جزئیات این دمو را مشاهده کنید .

 

 
 بخش پنجم : استفاده از help

متلب دارای سیستم help گسترده ای است ، که شامل جزئیات و اطلاعات help در مورد کلیه دستورها و توابع متلب می شود . این سیستم help برای افرادی که مبتدی هستند بسیار مناسب خواهد بود ، اما حتی بعد از اینکه شما به یک متخصص متلب بدل شدید ، از این سیستم برای یادگیری سایر توابع متلب که تا به حال از آنها استفاده نکرده اید استفاده خواهید کرد . این درس به شما می آموزد که چگونه از این سیستم استفاده کنید

دسترسی به help از طریق خط فرمان :

سه تابع اصلی وجود دارد که شما می توانید از آنها برای کسب اطلاعات در مورد توابع دیگر استفاده کنید : help ، helpwin ( اختصاری help window  ) و doc ( اختصاری documentation  ) . تابع help و helpwin اطلاعات مشابهی به شما می دهند ، اما با پنجره های متفاوت ، دستور doc یک صفحه html با یک سری اطلاعات بیشتر را نمایش می دهد .

قسمت پایین نمایش help در مورد تابع date را به شما نشان می دهد که این نمایش با استفاده از دستوارات متفاوت انجام شده .

help date

DATE Current date as date string. S = DATE returns a string containing the date in dd-mmm-yyyy format.

See also NOW, CLOCK, DATENUM

توجه : خروجی help معمولاً توابعی که به موضوع مربوط هستند را نیز نشان می دهد . در این مثال ، help علاوه بر موضوع اصلی به شما می گوید : See also NOW, CLOCK, DATENUM. حالا شما می توانید در مورد همین توابع نیز از help  استفاه کنید

helpwin date

توجه : محتوای اطلاعات دستور help و helpwin یکسان است ولی بهتر است از helpwin استفاده کنید چون :

1-      متن در صفحه های مجزا نشان داده می شود

2-      شما در قسمت see also می توانید روی تابع یا توابعی که در همین قسمت لیست شده کلیک کنید تا اطلاعاتی در مورد آنها کسب کنید تا اینکه مجبور باشید آنرا در خط فرمان تایپ کنید تا اطلاعاتی در مورد آن بدست آورید .

3-      لینک موضوعات پیش فرض ، کلیه دسته بندی ها را لیست می کند و شما می توانید تابع مربوطه با دسته بندی مربوطه را ببینید . بعنوان مثال ، اگر شما بخواهید بدانید خروجی دستور پلات x  بر حسب y چیست می توانید روی لینک matlab\graph2d topic کلیک کنید .

doc date

توجه : خروجی دستور doc بسیار کامل است و فقط یه قسمت از اطلاعات خواسته شده در مورد موضوع مورد نظر نیست بلکه مثال های کاملی ارائه می کند که می توانند مورد مطالعه قرار گیرند یا اجرا شوند .

سعی کنید برای توابع مقابل از دستورات مختلف اجرای help  استفاده کنید : magic, fft, and surf

استفاده از جستجوگر help متلب

منبع دیگر help در متلب ، جستجوگر help  متلب است . شما می توانید جستجوگر help  متلب را با تایپ دستور helpbrowser در خط فرمان متلب فراخوانی کنید ، روی دکمه ؟ کلیک کنید یا با انتخاب Start->MATLAB-> از desktopاین جستجوگر را فرخوانی کنید .

جستجوگر help دو قسمت عمده دارد ، help navigator و صفحه نمایش . صفحه نمایش ، همانگونه که از نامش پیداست ، اطلاعاتی در مورد موضوع انتخاب شده را نشان می دهد . help navigator در قسمت سمت چپ جستجوگر قرارگرفته ، و برای هدایت کردن از طریق اطلاعات online در مورد موضوع انتخاب شده کاربرد دارد . این قسمت در برگیرنده موارد زیر است :

    فیلتر فراورده
    نوار محتویات
    نوار شاخص
    نوار دمو
    نوار جستجو
    نوار favorit

این بخش منبع گسترده ای برای شما خواهد بود اگر بدنبال یادگیری نکات بیشتری در مورد موضوع داده شده باشید . نوار سرچ در مورد موضوع مورد نظر از میان کلیه اطلاعات موجود جستجو می کند ، و لغات کلیدی که آنها را سرچ کرده اید را بصورت highlight مشخص می کند تا خواندن اطلاعات مورد نظر راحتتر باشد .

حالا با استفاده از امکانات سرج در مورد help از جستجوگر خودش استفاده کنید

 
بخش ششم: ساخت متغیر
 
یکی از جنبه های اصلی متلب متغیر ها هستند ، و شما همواره از آنها استفاده می کنید . در اصل ، یک متغیر مکانی است برای یک مقدار که شما می توانید نامی را به آن نسبت دهید . منظور ما این است که ، هنگامی که چیزی را بعداً محاسبه خواهید کرد ، شما می توانید ازاین مقدار استفاده کنید که متغیری است که بعنوان قسمتی از محاسبات جدید بکار رفته . بیاید تا برای واضح تر شدن مطلب از چند مثال استفاده کنید .

در ساده ترین حالت ، متلب می تواند بعنوان یک ماشین حساب جیبی باشد . بعنوان مثال دراینجا شما چند محاسبه ساده با استفاده از متلب مانند یک ماشین حساب انجام می دهید .

4 + 10
ans = 14
5 *10 + 6
ans = 56
(6 + 6) / 3
ans = 4
9^2
ans = 81

شما می توانید ببینید که متلب کلیه اپراتورهای اصلی ریاضیاتی را شامل + ، - ، * ، / ، ^ و ... را ساپرت می کند . و شما می توانید عملگر های را با قرار دادن آنها در داخل پرانتز بصورت دسته و گروه در آورید . با این وجود عبارت ans دقیقا چیست ؟ ans اختصاری answer یا همان پاسخ است ، و در متلب این عبارت بعوان نام پیش فرض متغیر ها در نظر گرفته شده . و شما می توانید به متغیری که فعلا اسمی برای ان انتخاب نشده فقط با تایپ عبارت ans دست پیدا کنید .

4 + >>5

ans = 9

 >>ans

ans = 9

با این وجود اگر معادله جدیدی وارد شود ، مقدار ans تغییر خواهد کرد .

>>ans + 10

ans = 19

حالا شما هم متغیر های خودتان را بعنوان تمرین وارد کنید .

متغیر ans به خودی خود سودمند نیست ، اما قدرت حقیقی ان در این است که شما می توانید متغیر خودتان را تعریف و استفاده کنید . بعنوان مثال :

>>a = 10

a = 10

 >>b = 20

b = 20

 >>c = 30

c = 30

 >>a

a = 10

 >>the_average = (a + b + c) / 3

the_average = 20

حالا بیایید بگوئیم که شما متغیر های زیادی را تعریف کرده اید . احتمالاً نام کلیه متغیر هایی را که تعریف کرده اید بخاطر نخواهید آورد ، پس داشتن لیستی از کلیه متغیر هایی که تعریف شده اند سودمند خواهند بود . این دقیقا چیزی است که دستور whos انجام می دهد . حالا با تایپ کردن دستور whos در خط فرمان و زدن اینتر شما می توانید نام و مقدار کلیه متغیر هایی را که تا کنون وارد کرده اید ببینید . بعنوان مثال :

>>a = 5

a = 5

 >>b = 6

b = 6

 whos

Name
    
Size
    
Bytes
    
Class
a
    
1x1
    
8
    
double array
b
    
1x1
    
8
    
double array

در کل دو عنصر داریم که از شانزده بیت استفاده کردهاند

برای پاک کردن متغیر هایی که قبلا وارد کرده ایدو در حافظه ذخیره شده اند چه کاری باید انجام داد ؟ پاسخ این سوال دقیقا پاسخ به این است که دستور clear چه کاری انجام می دهد . clear را در خط فرمان تایپ کنید ، خواهید دید که کلیه متغیر ها و مقادیری را که قبلا ذخیره شده اند را پاک می کند . مثال فوق را ادامه می دهیم .

whos

Name    Size      Bytes     Class

a          1x1       8          double array

b          1x1       8          double array

Grand total is 2 elements using 16 bytes

 clear

 whos

جلوگیری از نمایش نتایج بااستفاده از «؛»

اگر بعد از دستور سمیکولون تایپ شود باعث می شود که نتیجه نشان داده نشود . اگر شما عبارتی تایپ کنید ( مثلا b=4+5 ) و در انتهای آن سمیکولون بگذارید ، سپس متلب عبارت را محاسبه می کند ولی نتایج را در حافظه بصورت داخلی ( بدون نمایش ) ذخیره می کند . بعنوان مثال :

>>a = 10;

>>b = 20;

>>c = 30;

>>d = 40;

>>the_average = (a + b + c + d) / 4

the_average =

25

the_average;

>>b

b =

20

>>e = 50

e =

50

the_blank_average = (a + b + c + d + e) / 5;

>>the_blank_average

the_blank_average =

30

ممکن است اینطور به نظر برسد که استفاده از سمیکولون زیاد هم مهم نیست ، اما در حقیقت سمیکولون همیشه دم دست است و همیشه استفاده می شود . نتیجه نهایی عملیاتی که در متلب انجام داده اید برایتان مهم است ، که با ترکیب بسیاری از داده ها و نتایج موقت و متغیر های میانی  محاسبه می شود . و با افزودن سمیکولون به انتهای دستوری که مقدار آن موقت یا نتیجه بصورت نتیجه میانی است باعث می شود که نتیجه آنها نشان داده نشود . بعنوان مثال ، در مثال بالا سمیکولون بعداز متغیر ها a,b,c,d تایپ شده است ولی فقط نتیجه نهایی که میانگین این چهار متغیر است مهم می باشد و می بینیم که سمیکولون بعد از عبارت the_average تایپ نشده است و نتیجه این دستور نشان داده می شود .
 

نویسندگان وبلاگ:
کدهای اضافی کاربر :