259201 computer programming for engineer

34
1 259201 Computer Programming for Engineer กกกกกกกกกกกกกกกกกก Array and Matrix

Upload: inez-harmon

Post on 01-Jan-2016

28 views

Category:

Documents


0 download

DESCRIPTION

259201 Computer Programming for Engineer. การคำนวณเกี่ยวกับ Array and Matrix. ค่าเริ่มต้น : step : ค่าสุดท้าย. y = ( 0.2 , 0.4 , 0.6 , …, 2.0 ). การกำหนดค่าหลายๆ ค่าในตัวแปรเดียว (Vector Array). เช่นค่า u = ( 0.1 , 0.2 , 0.3 , …, 1.0 ). » u=[ 0.1 : .1 : 1.0 ];. » y = 2.0*u;. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 259201 Computer Programming for Engineer

1

259201Computer Programming

for Engineer

การคำ�านวณเก�ยวก บ Array and Matrix

Page 2: 259201 Computer Programming for Engineer

2

การก�าหนดคำ�าหลายๆ คำ�าในตั วแปรเดยว (Vector Array)

» u=[0.1:.1:1.0];

เช่�นคำ�า เช่�นคำ�า u = (u = (0.10.1, , 0.20.2, , 0.30.3, …, , …, 1.01.0))

» y = 2.0*u;» y = 2.0*u;

คำ�าเร��มตั�น คำ�าเร��มตั�น :: step step : : คำ�าสุ�ดท้�ายคำ�าสุ�ดท้�าย

y = (y = (0.20.2, , 0.40.4, , 0.60.6, …, , …, 2.02.0))

Page 3: 259201 Computer Programming for Engineer

3

อาเรย! (Array)คื�อกลุ่��มของจำ� นวนที่��ถู�กเก�บอย่� งม�

โคืรงสร� ง 321 aaa 321 aaa

3

2

1

a

a

a

3

2

1

a

a

a

333231

232221

131211

aaa

aaa

aaa

333231

232221

131211

aaa

aaa

aaa

เวกเตัอร!แถว (Row Vector)

เวกเตัอร!แถว (Row Vector)

เวกเตัอร!คำอล มน! (Column Vector)

เวกเตัอร!คำอล มน! (Column Vector)

อาเรย!สุองม�ตั� หร$อ เมตัร�กซ์! (Matrix)

อาเรย!สุองม�ตั� หร$อ เมตัร�กซ์! (Matrix)

Page 4: 259201 Computer Programming for Engineer

4

การป&อนคำ�าให�ก บอาเรย! 0 1234

5] == 0 1 2 3

4 5

15» y= : == 1 2 3 4

5

01234x=[5]

== 0 1 2 3

4 5

15» y= : == 1 2 3 4

5

1210» z= : : == 1 3 5

7 9

-10 21» z= : : == 10 8 6

4 2

1210» z= : : == 1 3 5

7 9

-10 21» z= : : == 10 8 6

4 2

Page 5: 259201 Computer Programming for Engineer

5

การป&อนคำ�าให�ก บอาเรย!ด�วยฟั(งก!ช่ น Linspace

เป็!นก รก� หนดให� element ของอ เรย่%ม�คื� เร&�มตั้()งแตั้� first_value จำนถู+ง last_value โดย่ให�ม�จำ� นวนของข�อม�ลุ่ที่()งหมด n elements แลุ่ะระย่ะห� งระหว� งข�อม�ลุ่แตั้�ลุ่ะคื� จำะม�ขน ดเที่� ก(น (Linear)

linspace(first_value, last_value, n) linspace(first_value, last_value, n)

Page 6: 259201 Computer Programming for Engineer

6

ตั วอย�าง » k=linspace(0,pi,11) k =

Col umns 1 through 7 0 0.3142 0.06283 0.9425

1.2566 1.5708 1.8850 Col umns 8 through 11 2.1991 2.5133 2.8274

3.1416

Page 7: 259201 Computer Programming for Engineer

7

การเรยกใช่�ข้�อม*ลในแตั�ละ element ข้องอาเรย!

ตั้�องระบ�ตั้� แหน�งของ Element ที่��ตั้�องก ร โดย่ก� หนดไว�ด� นหลุ่(งของชื่��อตั้(วแป็ร

เชื่�น ตั้�องก รเร�ย่กใชื่�ข�อม�ลุ่ตั้� แหน�งที่��ส มของอ เรย่% z ใชื่�คื� ส(�ง » z=10:-2:1 z =

10 8 6 4 2

» z(3) ans =

6

Page 8: 259201 Computer Programming for Engineer

8

การเรยกใช่�ข้�อม*ลท้ละหลาย elements ข้องอาเรย!ตั้�องระบ�ตั้� แหน�งของ elements ที่��

ตั้�องก ร โดย่ใชื่�เคืร��องหม ย่ , หร�อ ชื่�องว� ง หร�อเคืร��องหม ย่ : เข� ชื่�วย่ zzzz 1

35]) ans =

10

6 2

1» z([ 3 5 ])

ans = 10

6 2

»1,3 ,5])

ans = 10

6 2

»1,3 ,5zz

ans = 10

6 2

»24z( : )

ans = 8

6 4

»24z( : )

ans = 8

6 4

Page 9: 259201 Computer Programming for Engineer

9

การสุร�างอาเรย!ใหม�จากอาเรย!เด�ม

ถู� ตั้�องก รสร� งอ เรย่%ใหม� c ที่��เก&ดจำ กก รน� เอ อ เรย่% x แลุ่ะ y ม ตั้�อก(น

» x=[0 1 2 3 4 5];» y= 1:5;» c=[x y]c = 0 1 2 3 4 5 1 2 3 4 5

Page 10: 259201 Computer Programming for Engineer

10

การคำ�านวณระหว�างอาเรย!ก บสุเกลาร!

ก รคื� นวณระหว� งอ เรย่%แลุ่ะสเกลุ่ ร% ที่�กๆคื� ของตั้(วแป็รอ เรย่%จำะถู�กกระที่� ด�วย่จำ� นวนสเกลุ่ ร%เหม�อนก(นหมด เชื่�น 012345» x=[ ]; -10 21» z= : : ;

=-=3 == - - - 3 2 1 0 1 2

2*» z == 20 16 12 8 4

Page 11: 259201 Computer Programming for Engineer

11

การคำ�านวณระหว�างอาเรย!ก บอาเรย!ก รคื� นวณระหว� งอ เรย่%ก(บอ เรย่% ไม�ว�

จำะเป็!นก รบวก ลุ่บ คื�ณหร�อห ร จ�านวน Element ข้องอาเรย!จะ

ตั�องมข้นาดเท้�าก น การคำ�านวณระหว�างอาเรย!จะกระท้�า

ระหว�าง Element ตั�อ Element เช่�น

Page 12: 259201 Computer Programming for Engineer

12

ตั วอย�าง 19» x= :

z= 1 2 3 4 5 6 7 8 9

210» y= : z= 2 3 4 5 6 7 8 9

10

» + z= 3 5 7 9 11 13 15

17 19

z-z» z= - - - - - - - - -1 1 1 1 1 1 1 1 1

Page 13: 259201 Computer Programming for Engineer

13

การคำ*ณและการหารอาเรย! ก รคื�ณ ก รห ร ก รย่กก� ลุ่(ง แบบอ เรย่%น()นจำะน� เอ

Element ณ ตั้� แหน�งเด�ย่วก(นของสองอ เรย่%ม ที่� ก รคื�ณ ห ร หร�อ ย่กก� ลุ่(งก(น

ตั้�องใชื่� *. ./ หร�อ .\ เพื่��อให�ตั้� งไป็จำ กก รคื�ณห รแบบเมตั้ร&กซ์%

19»x= : ; 210» y= : ; » .*

== 2 6 1 2 2 0 3 0 4 2

56 72 90

Page 14: 259201 Computer Programming for Engineer

14

การหารอาเรย!ด�วย ./ และ .\

ส� หร(บก รห รจำะใชื่� . / หร�อ . \ก�ได� แตั้�ตั้� แหน�งของตั้(วแป็รจำะว งสลุ่(บก(น » x.\y y ตั้()งห รด�วย่ x » y./x y ตั้()งห รด�วย่ x

Page 15: 259201 Computer Programming for Engineer

15

ก รย่กก� ลุ่(งด�วย่ .^ ใช่� .^>> x = 1:3;>> y = 1:3;>> x.^y % element ข้อง x ยกก�าล งด�วย

element ข้อง y ท้�ตัรงก น ans = 1 4 27

2» .^x % 2 ยกก�าล งจาก 1 ถ/ง 3 ans =

2 4 8

Page 16: 259201 Computer Programming for Engineer

16

การก�าหนดคำ�าอาเรย!เคืร��องหม ย่ ; ใชื่�ระบ�ว� ให�เร&�มแถูวใหม�

หร�อใชื่�ก รกด Enter ก�ได�» g=[1 2 34 5 67 8 9]g = 1 2 3 4 5 6 7 8 9

» g=[1 2 34 5 67 8 9]g = 1 2 3 4 5 6 7 8 9

»123c=[ ; ; ]

z= 1 2 3

»123c=[ ; ; ]

z= 1 2 3

Page 17: 259201 Computer Programming for Engineer

17

Transposeใชื่�ตั้(วด� เน&นก ร ’

» a=[1 2 3 ] a= 1 2 3

»c=a' c= 1 2 3

» a=[1 2 3 ] a= 1 2 3

»c=a' c= 1 2 3

Page 18: 259201 Computer Programming for Engineer

18

Transpose สุ�าหร บเลข้เช่�งซ์�อนถู� ข�อม�ลุ่เป็!นคื� เชื่&งซ์�อน นอกจำ กจำะที่� ก ร

สลุ่(บแถูวก(บคือลุ่(มน%แลุ่�ว ย่(งเป็ลุ่��ย่นคื� ให�เป็!นคื� ส(งย่�คืของคื� เด&มด�วย่ (Transpose Conjugate) >> a = x+i* y

a = 1.0000 + 1.0000i 2.0000 +2.0000i 3.0000 + 3.0000i>> c = a'c = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i

>> a = x+i* ya = 1.0000 + 1.0000i 2.0000 +2.0000i 3.0000 + 3.0000i>> c = a'c = 1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i

>> x = 1:3;

>> y = 1:3;

>> x = 1:3;

>> y = 1:3;

Page 19: 259201 Computer Programming for Engineer

19

เมตัร�กซ์!คื�ออ เรย่%ข�อม�ลุ่สองม&ตั้& ก รบวกแลุ่ะก รลุ่บเมตั้ร&กซ์%ม�ลุ่(กษณะเชื่�น

เด�ย่วก(นก(บก รบวกแลุ่ะลุ่บของอ เรย่% เมตั้ร&กซ์%ที่��น� ม บวกหร�อลุ่บก(นตั้�องเป็!นเม

ตั้ร&กซ์%ที่��ม�ขน ดเที่� ก(น ก รคื�ณแลุ่ะก รห รของเมตั้ร&กซ์%แตั้กตั้� ง

จำ กก รคื�ณแลุ่ะห รของอ เรย่%

Page 20: 259201 Computer Programming for Engineer

20

การคำ*ณเมตัร�กซ์!ใชื่�เคืร��องหม ย่ * ก รคื�ณก(นของเมตั้ร&กซ์% A แลุ่ะ เมตั้ร&กซ์% B

จำ� นวนคือลุ่(มน%ของ A จำะตั้�องเที่� ก(บจำ� นวนแถูวของ B

ถู� เมตั้ร&กซ์% A ม�ขน ด m p แลุ่ะเมตั้ร&กซ์% B ม�ขน ด p n ผลุ่ลุ่(พื่ธ์%ของก รคื�ณ

ระหว� งเมตั้ร&กซ์% A แลุ่ะ B จำะม�ขน ด m n

โดย่ป็กตั้& AB จำะม�คื� ไม�เที่� ก(บ BA

Page 21: 259201 Computer Programming for Engineer

21

ตั วอย�างการคำ*ณเมตัร�กซ์!

= = == 6 -2 10

347; ]; - 98512» B= [ ; ];

6» A = [ -2 10; 3 ;4 7 ] ;

- » =[ 9 8; 5 12];

116

116

24

1

75

64

)12)(7()8)(4(

)12)(3()8)(10(

)12)(2()8)(6(

)5)(7()9)(4(

)5)(3()9)(10(

)5)(2()9)(6(

125

89

7

3

2

4

10

6

116

116

24

1

75

64

)12)(7()8)(4(

)12)(3()8)(10(

)12)(2()8)(6(

)5)(7()9)(4(

)5)(3()9)(10(

)5)(2()9)(6(

125

89

7

3

2

4

10

6

*» A B ans =

64

24

75

116

1 116

*» A B ans =

64

24

75

116

1 116

Page 22: 259201 Computer Programming for Engineer

22

ตั วอย�าง คำ�านวณสุมการเช่�งเสุ�น

มสุมการเช่�งเสุ�น 3 ตั วแปร 3สุมการ ด งเช่�น

11

+ 22

z 3x3

= 366

4x1 5+ x2

6+ x3

= 804

7x1

z 8 x2

0+ x3

= 351

351

804

366

3

2

1

087

654

321

x

x

x

351

804

366

3

2

1

087

654

321

x

x

x

BAX BAX

Page 23: 259201 Computer Programming for Engineer

23

ว�ธีท้�า1.สร� งเมตั้ร&กซ์% A แลุ่ะ B

»B366804;351; ]B = 366 804 351

»B 36=[6804

351

B = 366 804 351

» A=[1 2 345678; ;

0] A =

1 2

3

4 5

6

7 8

0

» A=[1 2 345678

0] z=

1 2

3

4 5

6

7 8

0

Page 24: 259201 Computer Programming for Engineer

24

ว�ธีท้�า 2 .ในก รที่��จำะห คื� ตั้อบได�น()น เมตั้ร&กซ์% A

ตั้�องม�ด�เที่อร%ม&แนนที่%ที่��ไม�เป็!น 0

» det(A)ans = 27

» det(A)ans = 27

ใช่�ฟั(งก!ช่ น det(A) หาคำ�าดเท้อร!ม�แนนท้!ข้อง Aใช่�ฟั(งก!ช่ น det(A) หาคำ�าดเท้อร!ม�แนนท้!ข้อง A

Page 25: 259201 Computer Programming for Engineer

25

ว�ธีท้�า 3. เม��อคื� ด�เที่อร%ม&แนนที่%ไม�เป็!น 0 แลุ่�วก�

ส ม รถูห คื� ตั้อบที่��เป็!น x=A-1B

» x=inv(A)*Bx = 25.0000 22.0000 99.0000

» x=inv(A)*Bx = 25.0000 22.0000 99.0000

ใช่�ฟั(งก!ช่ น inv(A) หาคำ�า inverse matrix ข้อง Aใช่�ฟั(งก!ช่ น inv(A) หาคำ�า inverse matrix ข้อง A

Page 26: 259201 Computer Programming for Engineer

26

ตั วอย�าง การว�เคำราะห!คำ�าใช่�จ�ายในการผล�ตั

Process

คำ�าใช่�จ�ายตั�อ

ช่ �วโมง

จ�านวนช่ �วโมงในการผล�ตัสุ�นคำ�า 1 ช่�3น

ผล�ตัภั ณ

ฑ์!ท้� 1

ผล�ตัภั ณฑ์!

ท้� 2

ผล�ตัภั ณฑ์!

ท้� 3

Lathe 10 6 5 4

Grinding

12 2 3 1

Milling

14 3 2 5

Welding

9 4 0 3

Page 27: 259201 Computer Programming for Engineer

27

คำ�านวณหาa) คื� ใชื่�จำ� ย่ในแตั้�ลุ่ะกระบวนก รผลุ่&ตั้ส� หร(บ

ผลุ่&ตั้ภั(ณฑ์%ชื่น&ดที่�� 1 จำ� นวน 1 ชื่&)นb) ร คื ตั้�อหน�วย่ในก รผลุ่&ตั้ส&นคื� แตั้�ลุ่ะชื่น&ดc) คื� ใชื่�จำ� ย่ที่()งหมด ห กตั้�องก รผลุ่&ตั้ส&นคื�

ชื่น&ดที่�� 1 จำ� นวน 10 ชื่&)น ชื่น&ดที่�� 2 จำ� นวน 5 ชื่&)น ชื่น&ดที่�� 3 จำ� นวน 7 ชื่&)น

Page 28: 259201 Computer Programming for Engineer

28

Process คำ�าใช่�จ�ายตั�อช่ �วโมง

จ�านวนช่ �วโมงในการผล�ตัสุ�นคำ�า 1 ช่�3น

ผล�ตัภั ณฑ์!ท้� 1

ผล�ตัภั ณฑ์!ท้� 2

ผล�ตัภั ณฑ์!ท้� 3

Lathe 10 6 5 4

Grinding 12 2 3 1

Milling 14 3 2 5

Welding 9 4 0 3

1. คื� ใชื่�จำ� ย่ในแตั้�ลุ่ะกระบวนก รผลุ่&ตั้ส� หร(บผลุ่&ตั้ภั(ณฑ์%ชื่น&ดที่�� 1 จำ� นวน 1 ชื่&)น

2. ร คื ตั้�อหน�วย่ในก รผลุ่&ตั้ส&นคื� แตั้�ลุ่ะชื่น&ด 3. คื� ใชื่�จำ� ย่ที่()งหมด ห กตั้�องก รผลุ่&ตั้ส&นคื� ชื่น&ดที่�� 1 จำ� นวน 10 ชื่&)น ชื่น&ดที่�� 2 จำ� นวน 5 ชื่&)น ชื่น&ดที่�� 3 จำ� นวน 7 ชื่&)น

Page 29: 259201 Computer Programming for Engineer

29

ว&ธ์�ที่� a)

ก� หนดคื� ใชื่�จำ� ย่ตั้�อชื่(�วโมงเป็!นชื่น&ดเวกเตั้อร%แถูวในชื่��อตั้(วแป็ร

hourly_costsก� หนดจำ� นวนชื่(�วโมงที่��ตั้�องใชื่�ใน

ก รผลุ่&ตั้ผลุ่&ตั้ภั(ณฑ์% 1 เป็!นชื่น&ดเวกเตั้อร%แถูวในชื่��อตั้(วแป็ร hour

s_1คื� นวณห คื� ใชื่�จำ� ย่ในแตั้�ลุ่ะ

กระบวนก รโดย่ก รใชื่�ก รคื�ณอ เรย่%

» hourly_cost= 10 12 14[ , , ,

9]; » hours_1 = [6 ,

2 3 4, , ]; » process_cost_1 =

_.*1

1process_cost_ = 60 24

42 36

» hourly_cost= 10 12 14[ , , ,

9]; » hours_1 = [6 ,

2 3 4, , ]; » process_cost_1 =

*hourly_cost. hours_1

process_cost_1 = 60 24

42 36

คำ�าใช่�จ�าย = คำ�าใช่�จ�ายตั�อเวลา x จ�านวนเวลาท้�ใช่�ในการผล�ตั

คำ�าใช่�จ�าย = คำ�าใช่�จ�ายตั�อเวลา x จ�านวนเวลาท้�ใช่�ในการผล�ตั

Page 30: 259201 Computer Programming for Engineer

30

ว&ธ์�ที่� b)

162)4(9)3(14)2(12)6(10

4

3

2

6

9141210

162)4(9)3(14)2(12)6(10

4

3

2

6

9141210

ราคำาตั�อหน�วยข้องผล�ตัภั ณฑ์! 1 = hourly_costs * hours_1

Page 31: 259201 Computer Programming for Engineer

31

ว&ธ์�ที่� b)

ราคำาตั�อหน�วยข้องผล�ตัภั ณฑ์! 2 = hourly_costs * hours_2

114)0(9)2(14)3(12)5(10

0

2

3

5

9141210

114)0(9)2(14)3(12)5(10

0

2

3

5

9141210

» hours_2 = [5, 3, 2, 0];» hours_2 = [5, 3, 2, 0];สุร�างอาเรย! hours_2

Page 32: 259201 Computer Programming for Engineer

32

ว&ธ์�ที่� b)

ราคำาตั�อหน�วยข้องผล�ตัภั ณฑ์!3 = hourly_costs * hours_3

» hours_3 = [4, 1, 5, 3];» hours_3 = [4, 1, 5, 3];สุร�างอาเรย! hours_3

149)3(9)5(14)1(12)4(10

3

5

1

4

9141210

149)3(9)5(14)1(12)4(10

3

5

1

4

9141210

Page 33: 259201 Computer Programming for Engineer

33

ว&ธ์�ที่� ก รคื� นวณห ร คื ตั้�อหน�วย่ของที่()งส ม

ผลุ่&ตั้ภั(ณฑ์%ส ม รถูด� เน&นก รพื่ร�อมก(น

149114162

27701240

0283650

36422460

3

5

1

4

0

2

3

5

4

3

2

6

9141210

149114162

27701240

0283650

36422460

3

5

1

4

0

2

3

5

4

3

2

6

9141210

» unit_cost = hourly_cost * [hours_1’, hours_2’, hours_3’]unit_cost = 162 114 149

» unit_cost = hourly_cost * [hours_1’, hours_2’, hours_3’]unit_cost = 162 114 149

Page 34: 259201 Computer Programming for Engineer

34

ว&ธ์�ที่� c)

ก รห คื� ใชื่�จำ� ย่ที่()งหมดของก รผลุ่&ตั้ผลุ่&ตั้ภั(ณฑ์%แตั้�ลุ่ะชื่น&ด จำ� นวน 10 ชื่&)น 5 ชื่&)น แลุ่ะ 7 ชื่&)น ตั้ มลุ่� ด(บ ส ม รถูห ได�จำ กก รคื�ณเมตั้ร&กซ์%

323310435701620

149

114

162

7510

323310435701620

149

114

162

7510

» units = [10, 5, 7];» total_cost = units*unit_cost’total_cost = 3233

» units = [10, 5, 7];» total_cost = units*unit_cost’total_cost = 3233