ﺎﻫ ﻪﯾارآ ﺎﺑ ﯽﺿﺎﯾر تﺎﯿﻠﻤﻋ · 2019. 11. 14. · Slide deck by Dr....

Post on 24-Aug-2021

2 views 0 download

Transcript of ﺎﻫ ﻪﯾارآ ﺎﺑ ﯽﺿﺎﯾر تﺎﯿﻠﻤﻋ · 2019. 11. 14. · Slide deck by Dr....

Slide deck byDr. Greg Reese

Miami University

MATLAB An Introduction With Applications, 6th EditionDr. Amos GilatThe Ohio State University

عملیات ریاضی با آرایه ها

3.0

) اعداد تکی(در فصول قبل به اسکالرها در این فصل با آرایه ها که در حالت. پرداختیم

.کلی شامل چند عدد هستند کار خواهیم کرد

این فصل شامل مقدمات استفاده از آرایه ها .است

2

3.0

د چیدمان مستطیلی از اعداد که میتوان–آرایهیک بعد یا بیشتر داشته باشد

آرایه اي با یک ردیف یا ستون–بردارن، آرایه با تنها یک ردیف و یک ستو–اسکالر

یعنی یک عدد تکیمعمولاً به جاي » آرایه«و » ماتریس«-نکته

هم به کار می روند

3

3.1 ADDITION AND SUBTRACTION

براي جمع دو آرایه یا جمع یک اسکالر با یک + از •آرایه استفاده کنید

براي کم کردن یک آرایه از دیگري یا کم کردن –از •یک اسکالر از یک آرایه استفاده کنید

اگر بخواهید دو آرایه را جمع یا از هم کم کنید، باید)رتعداد ردیف و ستون براب(داراي ابعاد یکسان باشند

تعداد (بردارها نه فقط تعداد درایه برابر، بلکه باید ابعادیکسان داشته باشند ) ردیف و ستون

4

3.1 ADDITION AND SUBTRACTION

را جمع میکنید، Bو Aزمانی که دو آرایه MATLABدرایه هاي متناظر را جمع میکند، یعنی

را با درایه ردیف اول و Aدرایه ردیف اول و ستون اول •جمع میکندBستون اول

را با درایه ردیف اول و Aدوم درایه ردیف اول و ستون •میکند، و به همین ترتیب تا آخرجمع Bدوم ستون

این روند جمع درایه اي نامیده می شود

5

Pooya
Pooya
Pooya

3.1 ADDITION AND SUBTRACTION

را از هم کم Bو Aزمانی که دو آرایه درایه هاي متناظر را از MATLABمیکنید،

. هم کم میکندوي به طور کلی، هر عملیاتی با دو آرایه که ر

درایه هاي در محل یکسان از هر دو انجام . شود، عملیات درایه اي نامیده می شود

6

3.1 ADDITION AND SUBTRACTION

مثال

𝐴𝐴اگر = 𝐴𝐴11 𝐴𝐴12 𝐴𝐴13𝐴𝐴21 𝐴𝐴22 𝐴𝐴23

𝐵𝐵و = 𝐵𝐵11 𝐵𝐵12 𝐵𝐵13𝐵𝐵21 𝐵𝐵22 𝐵𝐵23

𝐴𝐴 + 𝐵𝐵 = 𝐴𝐴11 + 𝐵𝐵11 𝐴𝐴12 + 𝐵𝐵12 𝐴𝐴13 + 𝐵𝐵13𝐴𝐴21 + 𝐵𝐵21 𝐴𝐴22 + 𝐵𝐵22 𝐴𝐴23 + 𝐵𝐵23

𝐴𝐴 − 𝐵𝐵 = 𝐴𝐴11 − 𝐵𝐵11 𝐴𝐴12 − 𝐵𝐵12 𝐴𝐴13 − 𝐵𝐵13𝐴𝐴21 − 𝐵𝐵21 𝐴𝐴22 − 𝐵𝐵22 𝐴𝐴23 − 𝐵𝐵23

7

3.1 ADDITION AND SUBTRACTION

زمانی که یک اسکالر را با یک آرایه جمع آن عدد را با هر درایه MATLABمیکنید،

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

کم یک آرایه از زمانی که یک اسکالر را درایه آن هر از آن عدد را MATLABمیکنید،

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

8

3.1 ADDITION AND SUBTRACTION

مثال

𝐴𝐴یک اسکالر و cاگر = 𝐴𝐴11 𝐴𝐴12 𝐴𝐴13𝐴𝐴21 𝐴𝐴22 𝐴𝐴23

𝐴𝐴 + 𝑐𝑐 = 𝐴𝐴11 + 𝑐𝑐 𝐴𝐴12 + 𝑐𝑐 𝐴𝐴13 + 𝑐𝑐𝐴𝐴21 + 𝑐𝑐 𝐴𝐴22 + 𝑐𝑐 𝐴𝐴23 + 𝑐𝑐

𝐴𝐴 − 𝑐𝑐 = 𝐴𝐴11 − 𝑐𝑐 𝐴𝐴12 − 𝑐𝑐 𝐴𝐴13 − 𝑐𝑐𝐴𝐴21 − 𝑐𝑐 𝐴𝐴22 − 𝑐𝑐 𝐴𝐴23 − 𝑐𝑐

9

3.2 ARRAY MULTIPLICATION

ضرب –دو راه براي ضرب ماتریس ها وجود دارد ماتریسی و ضرب درایه هاي متناظر

ضرب ماتریسیهمان ضربی که در جبر خطی انجام میشود••MATLAB نشان می دهد(*) آن را با ستارهعداد تعداد ستونهاي ماتریس سمت چپ باید برابر ت•

ردیفهاي ماتریس سمت راست باشد

10

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

11

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

:مثال>> A = [ 1 4 3; 2 6 1; 5 2 8 ]

A = 1 4 3

2 6 1

5 2 8

>> B = [ 5 4; 1 3; 2 6 ]

B = 5 4

1 3

2 6

>> A * B

ans = 15 34

18 32

43 74

12

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

:مثالتعریف نشده است، زیرا B*Aدقت کنید که

. نیستAبرابر تعداد ردیفهاي Bتعداد ستونهاي را به دست آورید منجر به B*Aاگر بخواهید

:پیغام خطا خواهد شد

>> B * A

Error using *

Inner matrix dimensions must agree.

13

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

دزمانی که دو ماتریس مربعی را در هم ضرب کنیباید داراي ابعاد یکسان باشند•حاصلضرب ماتریسی با همان ابعاد خواهد بود•ند، به طور کلی، ضرب از قانون جابجایی پیروي نمی ک•

𝐴𝐴یعنی ∗ 𝐵𝐵 ≠ 𝐵𝐵 ∗ 𝐴𝐴

14

Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

>> A = randi(3,3)A =

3 3 13 2 21 1 3

>> B=randi(3,3)B =

3 3 11 2 23 3 3

>> AB = A*BAB =

15 18 1217 19 1313 14 12

15

>> BA = B*A

BA =

19 16 12

11 9 11

21 18 18

>> AB == BA

ans =

0 0 1

0 0 0

0 0 0

Pooya
Pooya

3.2 ARRAY MULTIPLICATION

زمانی که دو بردار را در هم ضرب کنیدباید داراي اندازه برابر باشند•یکی باید سطري و دیگري ستونی باشد•اگر بردار سمت چپ سطري باشد، حاصلضرب یک •

اسکالر خواهد بوداگر بردار سمت راست سطري باشد، حاصلضرب یک•

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

16

Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

>> h = [ 2 4 6 ]

h =

2 4 6

>> v = [ -1 0 1 ]'

v =

-1

0

1

17

>> h * v

ans =

4

>> v * h

ans =

-2 -4 -6

0 0 0

2 4 6

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

dot(a,b) یا ضرب داخلیرا حساب میکندضرب نقطه اي

•a وbندباید داراي اندازه برابر باشهر ترکیبی از بردارهاي سطري و •

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

18

مثال>> h = [ 2 4 6 ]h =

2 4 6>> v = [ -1 0 1 ]'v =

-101

>> dot(h,v)ans =

4>> dot(v,h)ans = 4

Pooya
Pooya
Pooya
Pooya

3.2 ARRAY MULTIPLICATION

19

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.3 ARRAY DIVISION

ماتریس واحدیک ماتریس مربعی است که درایه هاي روي قطر آن •

یک و بقیه صفر هستندتقطر اصلی از بالا سمت چپ به پایین سمت راست اس

ب زمانی که ماتریس واحد در یک ماتریس یا بردار ضر•شود، آن ماتریس یا بردار تغییر نخواهد کرد

ماتریس واحد می تواند در سمت چپ یا راست ضربباشد

می سازدn×nیک ماتریس واحد eye(n)دستور •

20

3.3 ARRAY DIVISION

:معکوس ماتریساست اگر Aمعکوس ماتریس Bماتریس

باشدIماتریس واحد Bو Aحاصلضرب ندهر دو ماتریس باید مربعی و با ابعاد یکسان باش•ضرب می تواند از هر طرف انجام شود، یعنی•

𝐵𝐵𝐴𝐴 = 𝐴𝐴𝐵𝐵 = 𝐼𝐼مثال

21

3.3 ARRAY DIVISION

A-1را با Aدر ریاضیات، معکوس ماتریس

دهندنشان می یا A^-1، معکوس را با MATLABدر

inv(A)به دست آورید

22

Pooya

3.3 ARRAY DIVISION

:دترمینانعی تابعی مرتبط با ماتریسهاي مربدترمینان

استیا det(A)را به صورتAدر ریاضیات، دترمینان •

|A|نشان می دهندحساب det(A)را با A، دترمینان MATLABدر •

کنیدیک ماتریس تنها زمانی معکوس پذیر است که •

مربعی باشد و دترمینان آن صفر نباشدیداگر با دترمینان آشنا نیستید، به کتابهاي جبر خطی مراجعه کن

23

Pooya
Pooya
Pooya

3.3 ARRAY DIVISION

:\تقسیم بر چپ، تقسیم بر چپ یکی از دو نوع تقسیم آرایه ها در

MATLABاستبه کار میرودAX=Bبراي حل معادله ماتریسی •

A یک ماتریس مربعی وX وBبردارهاي ستونی هستند پاسخX = A-1Bاستاز عملگرحل معادله با استفادهMATLABدر

انجام میشود، یعنی) \(تقسیم بر چپ >> X = A \ B

24

Pooya

3.3 ARRAY DIVISION

، و براي حل دستگاه معادلات از تقسیم بر چپز یعنی ا. نه ماتریس معکوس استفاده کنید

X=A\B استفاده کنید، نهX=inv(A)*B

تقسیم بر چپبرابر سریع تر است2-3•دارد()invاغلب خطاي کمتري نسبت به•جوابهاي نادرست می دهد()invبعضی وقتها•

25

3.3 ARRAY DIVISION

/:تقسیم بر راست،

تقسیم بر راست نوع دیگر تقسیم آرایه ها در MATLABاست

به کار میرودXC=Dبراي حل معادله ماتریسی•C یک ماتریس مربعی وXوD بردارهاي سطري

هستندپاسخX = D·C-1استبراي حل آن از عملگر تقسیم MATLABدر

استفاده کنید، یعنی) /(بر راست >> X = D / C

26

Pooya

3.4 ELEMENT-BY-ELEMENT OPERATIONS

نوع دیگر عملیات درایه اي، عملیات درایه به درایه است

جمع و تفاضل آرایه ها همیشه درایه اي است•اند ضرب، تقسیم و به توان رساندن آرایه ها می تو•

درایه اي باشدهر دو آرایه باید ابعاد یکسان داشته باشند•

27

3.4 ELEMENT-BY-ELEMENT OPERATIONS

ضرب، تقسیم و توان درایه اي را با قرار دادن یک نقطه در جلوي عملگر حسابی انجام دهید

28

3.4 ELEMENT-BY-ELEMENT OPERATIONS

29

3.4 ELEMENT-BY-ELEMENT OPERATIONS

30

3.4 ELEMENT-BY-ELEMENT OPERATIONS

ضرب درایه اي د دقت کنی(استفاده کنید *.براي ضرب درایه اي از •

)که نقطه قبل از ستاره استندهر دو ماتریس باید ابعاد یکسانی داشته باش•

>> A = [1 2; 3 4];

>> B = [0 1/2; 1 -1/2];

>> C = A .* B

>> C =

0 1

3 -2

31

3.4 ELEMENT-BY-ELEMENT OPERATIONS

در ضرب درایه اي، اگر ماتریسها داراي پیغام MATLABابعاد یکسان نباشند

خطا می دهد>> A = [ 1 2; 3 4];>> B = [1 0]';>> A .* B % Meant matrix multiplication!??? Error using ==> timesMatrix dimensions must agree.>> A * B % this worksans =

13

32

3.4 ELEMENT-BY-ELEMENT OPERATIONS

را زمانی که ماتریسهاي مربعی–مراقب باشید ضرب می کنید

هر دو نوع ضرب همیشه درست است•MATLABاگر از عملگر نادرست استفاده کنید، •

محاسبه نادرست را انجام می دهد و پیغام خطایی !در کار نخواهد بود

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

33

3.4 ELEMENT-BY-ELEMENT OPERATIONS

مثال>> A = [1 2; 3 4];>> B = [0 1/2; 1 -1/2];>> A .* B>> ans

0 13 -2

>> A * Bans =

2.0000 -0.50004.0000 -0.5000

34

Pooya
Pooya

3.4 ELEMENT-BY-ELEMENT OPERATIONS

محاسبات درایه اي براي محاسبه مقدار یک تابع به ازاي مقادیر مختلف ورودي مناسب

هستند

35

3.5 USING ARRAYS IN MATLAB BUILT-IN FUNCTIONS

میتوانند آرایه ها را به MATLABتوابع داخلی عنوان ورودي بگیرند

زمانی که ورودي آرایه باشد، نتیجه به دست آمده•آرایه اي با اندازه برابر خواهد بود که هر درایه آن

حاصل عمل تابع روي درایه ورودي متناظر است

36

3.5 USING ARRAYS IN MATLAB BUILT-IN FUNCTIONS

مثال براي ورودي آرایه اي

در استفاده از آرایه ها به MATLABقابلیت برداري کردن محاسبات برداري بسیار کارآمد. عنوان ورودي توابع است

هستند

37

3.6 BUILT-IN FUNCTIONS FOR ANALYZING ARRAYS

MATLABا توابع بسیاري براي کار با آرایه هvبراي بردار . دارد

• mean(v) – میانگین درایه ها• max(v) – مقدار بیشینه• min(v) – مقدار کمینه• sum(v) – جمع درایه ها• sort(v) – مرتب کردن درایه ها به ترتیب

صعودي

38

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.6 BUILT-IN FUNCTIONS FOR ANALYZING ARRAYS

• median(v) – میانه درایه ها• std(v) – انحراف معیار درایه ها• det(A) – دترمینان ماتریسهاي مربعی• dot(v,w) – ضرب داخلی دو بردار• cross(v,w) – ضرب خارجی دو بردار؛ هر دو باید

سه درایه داشته باشند• inv(A) – معکوس ماتریس مربعی

39

Pooya
Pooya

3.6 BUILT-IN FUNCTIONS FOR ANALYZING ARRAYS

کتاب را براي جزئیات توابع بیان3-1جدول شده ببینید

، به جز 3-1دقت کنید که در تمام توابع جدول det(A) وinv(A) ،A بردار است، نه

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

40

Pooya
Pooya
Pooya

3.7 GENERATION OF RANDOM NUMBERS

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

شبیه سازي نویز•ه کاربرد در محاسبات ریاضی خاص، مثل شبی•

سازي مونت کارلو

41

3.7 GENERATION OF RANDOM NUMBERS

MATLAB سه دستور براي ایجاد توابعrand, randn, randi: تصادفی دارد

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

42

Pooya
Pooya
Pooya

3.7 GENERATION OF RANDOM NUMBERS

randن با توزیع یکنواخت بیاعداد تصادفیصفر و یک تولید میکند

را در rand، خروجی bو aبراي به دست آوردن اعداد بین •b-a ضرب و باaجمع کنید، یعنی :

(b-a)*rand + a

کتاب را براي حالتهاي مختلف 3-2جدول randببینید

43

3.7 GENERATION OF RANDOM NUMBERS

randi اعداد صحیح تصادفی با توزیعمثلاً .یکنواخت در یک بازه مشخص تولید میکند

از اعداد 3×4براي ساختن یک ماتریس 90و 50تصادفی بین

>> d=randi( [50 90],3,4)d =

57 82 71 7566 52 67 6184 66 76 67

randiکتاب را براي حالتهاي مختلف3-3جدول ببینید

44

3.7 GENERATION OF RANDOM NUMBERS

randn اعداد تصادفی با توزیع نرمال وکندمیانگین صفر و انحراف معیار یک تولید می

، همان طور که در randمشابه randnاز دکتاب آمده است استفاده می شو3-2جدول

45

3.7 GENERATION OF RANDOM NUMBERS

براي به دست آوردن اعداد با توزیع نرمال با randn، خروجی σو انحراف معیار μمیانگین

جمع کنید، مثلاً σضرب و با μرا در

>> A = randn( 100, 100 ); % mean=0, std dev = 1

>> mu = 20;

>> sigma = 3;

>> B = sigma * A + mu; % mean = 20, std dev = 3

46

Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya
Pooya

3.7 GENERATION OF RANDOM NUMBERS

براي به دست آوردن اعداد صحیح با توزیع را روي رابطه قبل اعمال roundنرمال، تابع کنید، یعنی

round( sigma * rand + mu )مثال

>> w = round(4*randn(1,6)+50)

W =

51 49 46 49 50 44

47

شماره تمرین هاي منتخب•29•30•31•32•34•35

•13•15•17•20•21•23•24•26•27