33
ی ک ش ز پ ی س د ن ه مدی در عد ات ن س حا م سه اول و دوم ل ج ار ز ف زم ا پ ز پ دمه ای ق مMATLAB ادی د غ ب ار ن ل گ1391

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

  • Upload
    kamuzu

  • View
    96

  • Download
    10

Embed Size (px)

DESCRIPTION

محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار MATLAB. گلناز بغدادی 1391. کاربرد های نرم افزار ( MATLAB ). نرم افزار MATLAB محیطی برای برنامه نویسی سطح بالا جهت حل مسائل علمی و مهندسی به شمار می رود. - PowerPoint PPT Presentation

Citation preview

Page 1: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

محاسبات عددی در مهندسی پزشکی

جلسه اول و دوم

مقدمه ای بر نرم افزار MATLAB

گلناز بغدادی1391

Page 2: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

(MATLABکاربرد های نرم افزار )

نرم افزارMATLAB محیطی برای برنامه نویسی سطح باال جهت حل مسائل

علمی و مهندسی به شمار می رود.

این نرم افزار امکانات محاسبات متعدد، رسم نمودار و تصاویر و ... را در

اختیار کاربر قرار می دهد.

اين نرم افزار داراي يك كتابخانه گسترده ي از توابع مختلف است که هر کدام

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

مختلف طراحی شده اند.

توابع موجود در این کتابخانه ها به کاربر این اجازه را می دهد که بدون نیاز به

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

Page 3: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

صفحه اصلی نرم افزار مطلب

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

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

ظاهری بسیار ناچیز وجود دارد:

پنجره دستورات

(Command Window)

فضای کارWorkspace

Page 4: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

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

نشان داده شده کاربرد بسیار زیادی دارند:

( پنجره دستوراتCommand Window : ) این پنجره مکانی است که کاربر باید دستورات

مورد نظر را درون آن تایپ کند. مکان تایپ با دو عالمت << مشخص شده است و مکان نما در

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

دستور جدید است.

( فضای کارWorkspace : ) در این فضا تمامی متغیر هایی که در برنامه توسط دستورات

متغیر ها را می توان به صورت برداری، MATLABایجاد شده اند نشان داده می شود. در

ایجاد H=[1 2 3 4 5]ماتریسی تعریف نمود. برای مثال در شکل قبلی یک بردار توسط دستور

شده است. در محیط فضای کار می توان تمامی متغیرهای موجود و ابعاد آنها را مشاهده نمود.در ص8ورتی ک8ه ه8ر ک8دام از این نکت8ه:

viewپنج8ره ه8ا بس8ته ش8د، ب8ه من8وی

در ب8االی ص8فحه رفت8ه و ب8ا زدن تی8ک

ه8ر ک8دام از پنج8ره ه8ا، می ت8وان آن

پنجره را به نمایش در آورد.

Page 5: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

شروع کار با نرم افزار

فرض کنید که می خواهیم تابعy=sin(8x):را به کمک نرم افزار رسم کنیم ابتدا باید متغیرx را ایجاد نماییم. برای این منظور به کمک دستورات زیر یک رشته از اعداد

نسبت می دهیم.x را به 10 تا 1مثال

>> x=1:10;

ریخته می شوند(x می شود که در متغیر 10 تا 1)دستور باال باعث تولید اعداد

را Enter)دستور باال را تایپ نمایید، یک بار عالمت ; را در انتها ی دستور قرار دهید و کلید

بزنید و بار دیگر این عالمت را قرار ندهید چه اتفاقی می افتد؟(

چه مقدار است؟(x در پنجره فضای کار ابعاد متغیر Enter)بعد از زدن کلید

بعد به کمک دستور زیرsin(8x) را محاسبه کرده و در متغیر y می ریزیم. )هر متغیری که

در خط دستور سمت چپ مساوی قرار داده شود، مقدار نهایی محاسبه شده درون آن

ریخته می شود(

>> y=sin(8*x);

( 10 تا 1 )یعنی از x)با این دستور تابع داده شده در صورت سوال به ازای مقادیر داده شده

ریخته می شود(yمحاسبه شده و در

Page 6: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

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

>> plot (x,y)

plot(y) << یا

و x بر حسب هم رسم می شوند. یعنی محور افقی مقادیر y و x)به کمک دستور باال مقادیر

می شود(sin(8x)محور عمودی مقادیر

رسم شده است. ولی این تابع رسم 10 تا 1 از x به ازای مقادیر sin(8x)همانطوری که مشاهده می شود تابع

یک واحد یک واحد تغییر می کند. برای xشده دارای شکستگی های زیادی است. علت این است که مقادیر

از دستور زیر استفاده می شود:xکوچکتر کردن فواصل تغییرات

>> x=0:0.01:10;

اضافه می شود.0.01 ، هر بار به مقدار 10 تا 0 از xبه کمک این دستور مقادیر

را با دستور داده شده محاسبه نموده و آن را رسم نمایید، شکل حاصله چه yحال مجددا مقدار

تفاوتی با شکل قبلی دارد؟

)به جای دستور باال دستور زیر تایپ

شود، چه نتیجه ای مشاهده می شود؟:

>> plot (x, y, ’.’)

Page 7: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

ایجاد بردار و ماتریس

a vector x = [1 2 5 1]

x = 1 2 5 1

a matrix x = [1 2 3; 5 1 4; 3 2 -1]

x = 1 2 3 5 1 4 3 2 -1

transpose y = x’ y = 1

2 5

1

Page 8: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

مثالهایی دیگر از روش ایجاد بردار و ماتریس

t =1:10

t = 1 2 3 4 5 6 7 8 9 10 k =2:-0.5:-1

k = 2 1.5 1 0.5 0 -0.5 -1

B = [1:4; 5:8]

x = 1 2 3 4 5 6 7 8

Page 9: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

ایجاد بردار و ماتریس از طریق توابع

zeros(M,N) MxN matrix of zeros صفر تمام ماتریس تولید

ones(M,N) MxN matrix of ones یک تمام ماتریس تولید

rand(M,N) MxN matrix of uniformly distributed random numbers on (0,1)

تصادفی اعداد با ماتریس تولید

x = zeros(1,3)x =0 0 0

x = ones(1,3)x =1 1 1

x = rand(1,3)x = 0.9501 0.2311 0.6068

Page 10: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

اندیس ماتریس

در محیطMATLAB شروع می شود1 اندیس ماتریس از

اندیس ماتریس در محیطMATLAB یک عدد صحیح مثبت است مثال

A(-2), A(0)

Error: ??? Subscript indices must either be real positive integers or logicals.

A(4,2)Error: ??? Index exceeds matrix dimensions.

Page 11: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

اتصال دو ماتریس به هم

x = [1 2], y = [4 5], z=[ 0 0]

A = [ x y]

1 2 4 5

B = [x ; y]

1 2 4 5

C = [x y ;z] Error:??? Error using ==> vertcat CAT arguments dimensions are not consistent.

Page 12: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

عملگرهای ریاضی

+ جمع

- تفریق* ضرب/ تقسیم^

توان‘ ترانهاده

Page 13: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

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

را B و Aدو ماتریس به صورت مقابل در

نظر بگیرید

جمع تفریق ضرب ترانهاده

Page 14: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

عملگرهای ریاضی درایه به درایه

.* درایه به درایه ضرب

./ درایه به درایه تقسیم

.^ رساندن توان بهدرایه به درایه

Page 15: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

مثال از عملگرهای ریاضی درایه به درایه

K= x^2Erorr: ??? Error using ==> mpower Matrix must be square.B=x*yErorr:??? Error using ==> mtimes Inner matrix dimensions must agree.

A = [1 2 3; 5 1 4; 3 2 1] A = 1 2 3 5 1 4 3 2 -1

y = A(3 ,:)

y= 3 4 -1

b = x .* y

b= 3 8 -3

c = x . / y

c= 0.33 0.5 -3

d = x .^2

d= 1 4 9

x = A(1,:)

x= 1 2 3

Page 16: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

x≤4π≥0 در sin(x)رسم تابع

ایجاد یک بردار برای x 4 , 0 نقطه بین 100 شاملπ

محاسبه تابعsin )x( به ازای نقاط تعیین شده برای x

رسم خروجی

>>x=linspace)0,4*pi,100(;

>>y=sin)x(;

>>plot)y(

0 10 20 30 40 50 60 70 80 90 100-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Page 17: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

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

Cos(x)آنها اشاره می شود: کسینوس

Sin(x) سینوس

Tan(x) تانژانت

Log(x) (lnلگاریتم طبیعی )

Log10(x) 10لگاریتم در مبنای

Exp(x) exتابع نمای

Sign(x) مثبت x ، اگر 1 منفی باشد خروجی -xتابع عالمت : اگر صفر باشد خروجی صفر استx و اگر 1باشد خروجی +

Sqrt(x) ریشه مربع

Abs(x) مقدار قدر مطلق یا دامنه عدد مختلط

Angle(x) زاویه عدد مختلط

Real(x) مقدار حقیقی عدد مختلط

Imag(x) مقدار موهومی عدد مختلط

Round(x) روند کردن اعداد اعشاری به سمت نزدیک ترین ععد صحیح

Fix(x) روند کردن به سمت صفر

Page 18: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

Plot the function e-x/3sin(x) between 0≤x≤4π Create an x-array of 100 samples between 0

and 4π.

Calculate sin(.) of the x-array

Calculate e-x/3 of the x-array

Multiply the arrays y and y1 correctly

>>x=linspace)0,4*pi,100(;

>>y=sin)x(;

>>y1=exp)-x/3(;

>>y2=y.*y1;

Page 19: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

Plot the function e-x/3sin(x) between 0≤x≤4π

Plot the y2-array

>>plot)y2(

0 10 20 30 40 50 60 70 80 90 100-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Page 20: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

امکانات رسمplot(.)

stem(.)

Example:>>x=linspace)0,4*pi,100(;>>y=sin)x(;>>plot)y(>>plot)x,y(

Example:>>stem)y(>>stem)x,y(

0 10 20 30 40 50 60 70 80 90 100-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0 10 20 30 40 50 60 70 80 90 100-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Page 21: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

امکانات رسم

title(.)

xlabel(.)

ylabel(.)

>>title)‘This is the sinus function’(

>>xlabel)‘x )secs(’(

>>ylabel)‘sin)x(’(0 10 20 30 40 50 60 70 80 90 100

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1This is the sinus function

x (secs)

sin(

x)

Page 22: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

عملگرهای منطقی== با مساوی~= با نامساوی< از کوچکتر> از بزرگتر<= با مساوی و کوچکتر>= با مساوی و بزرگتر& عملگر AND | عملگر OR

Page 23: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

دستورات ایجاد شرط و حلقه

if switch for while break ….

Page 24: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

if … else ifایجاد شرط با دستور

if (Condition_1)Matlab Commands

elseif (Condition_2)Matlab Commands

elseif (Condition_3)Matlab Commands

elseMatlab Commands

end

مثال

if ))a>3( & )b==5(( Some Matlab Commands;end

if )a>3( Some Matlab Commands;elseif )b~=5( Some Matlab Commands;end

if )a>3( Some Matlab Commands;else Some Matlab Commands;end

Page 25: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

Switchایجاد شرط با دستور

switch switch_expr case case_expr

Matlab Commands; case {case_expr1,...}

Matlab Commands;...

otherwise Matlab Commands;

end

مثالswitch )X+Y( case 0 M = 6 case 1 M = 15otherwise error)'This is impossible'( end

method = 'Bilinear';

switch lower)method( case {'linear','bilinear'} disp)'Method is linear'( case 'cubic' disp)'Method is cubic'(otherwise disp)'Unknown method.'(End

ایجاد رشته متنی

Page 26: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

Forایجاد حلقه تکرار با دستور

For i=Index_ArrayMatlab Commands

End

مثال

for i=1:100 Some Matlab Commands;end

for j=1:3:200 Some Matlab Commands;end

for m=13:-0.2:-21 Some Matlab Commands;end

for k=[0.1 0.3 -13 12 7 -9.3] Some Matlab Commands;end

Page 27: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

Whileایجاد حلقه تکرار با دستور

while (condition)Matlab Commands

end

مثال

while ))a>3( & )b==5(( Some Matlab Commands;end

Page 28: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

m-fileایجاد با کلیک برروی این -mآیکون می توان یک

file جدید برای نوشتن و ذخیره دستورات

ایجاد نمود.

• m-file . با پسوند mذخیره می شوند •m-file یک محیط متنی را برای نوشتن دستورات و ذخیره و اجرای

آنها ایجاد می کند

Page 29: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

m-fileاستفاده از

“;” با قرار دادن عالمت در انتهای هر دستور نتیجه دستور بعد از نمایش داده

نمی شود.

Save file as Denem430.m

Page 30: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

نوشتن تابع

توابع در واقعm-file هایی هستند که با یک نام خاص ذخیره شده و با گرفتن یک یا چند ورودی می توانند یک یا چند خروجی تولید نمایند

برای نوشتن یک تابع یکm-file جدید باز کرده و در ابتدایm-file با نوشتن یکی از دستورات زیر، تابع تعریف می شود.

باید توجه داشت کهM-file( به اسم تابع functionname ذخیره )شود. به هنگام فراخوانی تابع نیز از همان اسم تابع استفاده می

شود.

function out1=functionname)in1(function out1=functionname)in1,in2,in3(function [out1,out2]=functionname)in1,in2(function functionname)in1(function out1=functionname

Page 31: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

مثالهایی از ایجاد تابع بنویسید کهout=squarer (A, ind)تابعی به صورت : 1مثال ( اگر شاخص ورودیind برابر با )1( است ، مربع ماتریس ورودی A را )

حساب کند.( و اگر شاخص ورودیind برابر با )است، مربع درایه به درایه ماتریس 2

( را محاسبه نماید.Aورودی )

نام یکسان

Page 32: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

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

به عنوان ورودی بگیرد و مجموعه و حاصلضرب درایه های آن را به عنوان

خروجی بدهد.

m-fileاین تابع را می توان در یک دیگر و یا در همان صفحه دستور

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

Page 33: محاسبات عددی در مهندسی پزشکی جلسه اول و دوم مقدمه ای بر نرم افزار  MATLAB

نرم افزار helpاستفاده از

با استفاده از یکی از دو دستور زیر می توانید طریقه به کارگیری یک تابعرا جستجو کرده و یا با استفاده از یک کلمه کلیدی توابع مربوط به آن

کلمه کلیدی را جستجو نمایید.

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

>>help functionname >>lookfor keyword