نرم افزار

کاربرد نرم افزار  Mat lab

 

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

         کار کردن با ماتریس‌ها در Matlab بسیار ساده است. در حقیقت تمام داده‌ها در Matlab به شکل یک ماتریس ذخیره می‌شوند. برای مثال یک عدد (اسکالر) به شکل یک ماتریس 1*1 ذخیره می‌شود. یک رشته مانند «Whale is the biggest animal» به شکل ماتریسی با یک سطر و چندین ستون (که تعداد ستون‌ها به تعداد کاراکترهاست) ذخیره می‌شود. حتی یک تصویر به شکل یک ماتریس سه بعدی ذخیره می‌گردد که بُعد اول و دوم  آن برای تعیین مختصات نقاط و بُعد سوم آن برای تعیین رنگ نقاط استفاده می‌شود. فایل‌های صوتی نیز در Matlab به شکل ماتریس‌های تک ستون (بردارهای ستونی) ذخیره می‌شوند. بنابراین جای تعجب نیست که Matlab مخفف عبارت Matrix Laboratory باشد.


علاوه بر توابع فراوانی که خود Matlab دارد، برنامه‏نویس نیز می‏تواند توابع جدید تعریف کند.

     استفاده از توابع Matlab برای نمایش داده‏ها بسیار راحت و لذت بخش است. برای مثال با چند خط زیر می‌توان یک شکل موج سینوسی با فرکانس ۱۰ هرتز را تولید کرده و کشید:

  • x=0:0.01:10           
  • y=sin(2*pi*10*x)  
  • y=plot(x,y)              

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

 

          شركت سازنده MATLAB شركت Math works نام دارد. اين شركت در سال 1984 بنيان نهاده شد و هم اكنون داراي بيش از 2000 نفر پرسنل است. دفتر مركزي اين شركت در شهر Natick در ايالت ماساچوست آمريكا قرار دارد. براي دسترسي به سايت اين شركت مي توان به آدرس http://www.mathworks.com مراجعه كرد .

 

بخش 1: ماتریسها

براي نمایش ماتریس ها در MATLAB     بدین صورت عمل می کنیم:

>>a= [1 2 3;7 8 10;12 14 19]

و اجراي این دستور ماتریس زیر نمایش داده می شود Enter با زدن کلید

a=

1 2 3

7 8 10

12 14 19

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

 

عملیاتماتریسی

براي ترانهاده یک ماتریس(مثلا ماتریس مثال قبل) از دستور زیر استفاده می کنیم :

>>a’

براي مشاهده عناصر قطر اصلی دستور زیر را تایپ کنید :

>>diag(a)

با اجراي این دستور خروجی عناصر قطر اصلی خواهد بود.

در صورتیکه قصد جمع کردن عناصر سطر اول ماتریس  a  را دارید می توانید از دستور زیر استفاده کنید :

>>a(1,1)+a(1,2)+a(1,3)

براي جمع سایر عناصر با یکدیگر نیز به همین منوال عمل می کینم.

در ضرب دو ماتریس در یکدیگر(ضرب درایه در درایه) باید دقت کنیم. براي درك بیشتر موضوع دستور زیر را اجرا کنید :

>>a=[1 2 4 3];b=[3 4 3 2];

>>a*b

شما با یک خطا روبرو می شوید. براي ضرب دو ماتریس در هم باید به این شکل عمل کنیم :

>>a.*b

 

عملگرکالن:

وقتی به یک بازه ي عددي با گام مشخص احتیاج دارید ، عملگر کالن به کمک شما می آید. مثلا

تایپ کنید:

>>100:-7:50

 دستور زیر اعداد 100 تا 50 را با گام 7- نمایش می دهد.آن را درخروجی را ببینید :

 

از این عملگر می توان براي تعیین بازه به خصوص براي رسم نمودار ها بهره برد.

با اضافه کردن سمی کالن (;) به انتهاي هر دستور خروجی نمایش داده نمی شود.

 

 

 

مجموعتمامیآرایههايیکماتریس :

براي محاسبه ي مجموع تمامی آرایه هاي یک ماتریس از دستور زیر استفاده می کنیم :

>>m=[10 14 20;12 18 -2;1 4 3];

>>sum(m(:))

 

متغیرهادر  : MATLAB

نسبت دادن عدد 25 به  : num                                                                                                >>num=25

 

براي نسبت دادن حرف  kبه متغیر a تایپ می کنیم                                                                           >>a=’K’

 

نوشتن اعداد علمی:                                                                                                             >>a=1.5e-10

 

نحوهينمایشاعداددر : MATLAB

در نرم افزارMATLABگزینه ي پیش فرض براي نمایش اعداد تا 4 رقم اعشار است که

معادل دستور است format short ولی می توان نحوه نمایش اعداد را تغییر داد. براي اینکه

نمایش اعداد را به 16 رقم اعشار تغییر دهیم دستور زیر را استفاده می کنیم :

>>format long

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

>>format plus

 

بخش2- توابعدر   MATLAB

 

براي مشاهده کلیه توابع موجوددر  MATLAB کافیست دستور زیر را تایپ کنید

>>help elfun

براي اعمال هر یک از این توابع بر روي یک متغیرها کافیست متغیرها را در یک پرانتز جلويتابع مورد نظرتایپ کنید مثلا تابع sin بر روي متغیرx  اینگونه عمل می کند

>>sin(x):

مربع جادویی(تابع magic  ):

 

دستور زیر یک مربع جادویی  n*n   به ما می دهد.

>>a=magic(n);                               

 

حال به معرفی اجمالی از عملکرد برخی از این توابع می پردازیم :

 

عملکرد تابع

نام تابع

محاسبه ي لگاریتم لپرین

log

رادیکالx

sqrt(x)

محاسبه ي قدرمطلق یک عدد مختلط

abs

نمایش قسمت موهومی یک عدد مختلط

imag

l نمایش قسمت حقیقی یک عدد مختلط

real

مشخص می کند عدد حقیقی ست یا مختلط

isreal

محاسبه ي سینوس هایپربولیک

sinh

محاسبه ي آرك سینوس

asin

معکوس سینوس هایپربولیک

asinh

و به همین ترتیب براي سایر توابع مثلثاتی

زاویه ي یک نقطه در مختصات دکارتی 2

atan

گرد کردن به سمت صفر

Fix

گرد کردن به سمت منفی بی نهایت

floor

گرد کردن به سمت مثبت بی نهایت

ceil

گرد کردن به سمت نزدیکترین عدد صحیح

round

باقیمانده ي تقسیم با علامت

mod

تابع علامت

Sign

 

 

 

مثال:

>>r=(1+sqrt(5))/2

r=

1.6180

>>a=abs(3+4*j)

a=

5

 

>>w=2.67;x=2.36;y=-3.67;z=-3.24;

>>fix(w)

ans=

2

 

>>floor(y)

ans=

-4

 

>>ceil(w)

ans=

3

 

 

بخش3- چندجملهايهادر  MATLAB

 

جهت کار با چند جمله اي ها با اجراي دستور زیر توابع موجود در MATLAB مشاهده می شود  :

>>help polyfun

 براي وارد کردن یک چند جمله اي مثل5 4 x3-8x2+7x- در MATLAB  به این صورت تایپ می کنیم :

>>a=[4,-8,7,-5]

 

جبرچندجملهايها:

براي جمع چند جمله اي ها دو بردار مربوط به ضرائب دو چندجمله اي را با هم جمع می کنیم،درصورت یکسان نبودن درجه ي دو چندجمله اي به چندجمله اي با درجه ي کمتر صفر اضافه می کنیم . به عنوان مثال براي جمع

 g(x)=6x2-2x+2   با   f(x)=9x3-5x2+3x+7    باید اینطوربنویسیم :

>>f=[9,-5,3,7]

>>g=[6,-2,2]

>>g=[0,g]

>>h=f+g

 

ریشههايیکچندجملهاي :

براي بدست آوردن ریشه هاي یک چندجمله اي مثل :  r=x4+7x3-8x+ 12 باید اینگونه عمل کنیم

>>r=[1,7,0,-8,12];

>>R=roots(r)

اجراي دستور roots(r)  ریشه هاي معادله مورد نظر را به ما می دهد.

 

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

>>poly(r)

 

 

محاسبهيجوابهايn   معادله  n  مجهول:

فرض کنید می خواهیم جواب هاي دستگاه زیر را توسطMATLAB  بدست آوریم.

3x1+5x2-2x3=10

x1+2x2+x3= -2

-x1+x2+3x3=6

: MATLAB باید در ماتریس ضرائب اینطور بنویسیم

>>a=[3 5 -2;1 2 1;-1 1  3];

>>b=[10;-2;6];

>>X=a\b

 

بخش4- رسمتوابعمعمولیدر   MATLAB

از دستور Plot براي رسم توابع معمولی در MATLAB  استفاده می شود

.به این مثال توجه کنید :

 

>>x=0:pi/100:2*pi;

>>y1=sin(x);

>>y2=sin(x-0.25);

>>y3=sin(x-0.5);

>>plot(x,y1,x,y2,x,y3)

 

 

البته به جاي این دستور می توان از دستور  legend نیز بهره برد.

>>legend(‘sin(x)’,’sin(x-0.25)’,’sin(x-0.5)’)

اضافه کردن توضیحات به نمودار :

شما می توانید به نمودار توضیحاتی اضافه کنید مثلا می توانید محورها را نام گذاري کنید.

>>x=0:pi/100:2*pi;

>>y=sin(x);

>>xlabel(‘0\leqx\leq2\pi’)

>>ylabel(‘sin(x)’)

>>title(‘y=sin(x),0\leqx\leq2\pi’)

 

دستورات  : Axis , Grid , text

: Axis

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

Axis([XMIN XMAX YMIN YMAX])

به مثال زیر توجه کنید :

>>x=-pi:pi/100:pi;

>>y=sin(x);

>>plot(x,y);axis([-pi pi -1 1]);grid

>>text(1,-1/3,’Made By MATLAB’)

 

دستور TEXT  عبارت داخل گیومه را در مختصات X=1   Y=1/3     نمایش می دهد.

 

رسمنمودارهايقطبی :

براي رسم نمودارهاي قطبی از دستور   polar با شکل کلی زیر استفاده می شود:

polar(THETA , RHO)

این دستور مانند دستور   plot  عمل می کند.  نمونه اي از این دستور را ببینید

>>th=0:0.1:2*pi;

>>r=2./(1-0.5*cos(th));

>>polar(th,r)

این دستور بازه ي تتا را به صورت   نمایش می دهد

 

رسمنمودارهايدووسهبعدي :

این بخش را با مثالی توضیح می دهیم :

>>t=0:pi/100:2*pi;

>>plot3(t,sin(t),cos(t))

 براي رسم نمودارهاي 2 بعدي از دستور ezplot استفاده می کنیم

 

دستور syms متغیر X را به صورت یک متغیر نمادین تعریف می کند  و دیگر نیازي به نسبت

دادن یک عدد به آن نیست.

براي رسم نمودارهایی به شکل  f(x) = f(y)  فرض کنید می خواهیم نمودار  sin(x2) = cos(y)  را رسم کنیم :

 

>>syms x  y

>>ezplot(sin(x^2)-cos(y))

 

 

 

تابع : Meshgrid

 تابع z=f(x,y)   نشان دهنده ي سطحی است که در محور هاي تابع z و y وx   رسم شده است .تابع  MESH

براي رسم چنین منحنی هایی به کار می رود، البته قبل از استفاده از این تابع باید مجموعه نقاطی در صفحه ی x –y

تولید کرد. حالت کلی این تابع به شکل زیر است :

                                        تولید مجموعه نقاط در صفحه                             [x,y]=MESHGRID(x,y)

به این مثال توجه کنید :

>>x=-2:0.2:2;

>>y=-2:0.2:2;

>>[x,y]=meshgrid(x,y);

>>z=x.*exp(-x.^2-y.^2);

>>mesh(z)

 

توجه کنید که نباید گام اعداد را کوچک انتخاب کنید.

 

 دستور  surface   مثل دستور  Meshgrid  است با این تفاوت که سطح را سایه می زند

به عنوان مثال در ادامه ي مثال قبلی می نویسیم

>> surf(x,y,z)

 

چندنکتهمهموکاربردي:

             در صورتیکه نیاز به توضیح بیشتري درباره عملکرد هر تابع دارید کافیست قبل از نام دستور موردنظر عبارت help را تایپ کنید و آن را اجرا نمایید، مثلا براي آگاهی از عملکرد تابعplot دستور زیر را در محیط MATLAB اجرا کنید

>>help plot

         یکی از بهترین منابع براي آموزش  MATLAB استفاده از Demo خود نرم افزار است.برای مشاهده این بخش کافی است از منوی help گزینه demos  را انتخاب کنید . مثلا براي آگاهی از چگونگی رسم انواع نمودار کافیست روي گزینه ي MATLAB دوبار کلیک کنید و گزینه ي Graphics را برگزینید. MATLAB به شما انواع نمودار ها را نشان می دهد شما فقط باید نو ع نمودار مورد نظرتان را مشخص کنید.