1 / 34

259201 Computer Programming for Engineer

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;.

inez-harmon
Download Presentation

259201 Computer Programming for Engineer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 259201Computer Programmingfor Engineer การคำนวณเกี่ยวกับ Array and Matrix

  2. ค่าเริ่มต้น :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;

  3. อาเรย์ (Array) • คือกลุ่มของจำนวนที่ถูกเก็บอย่างมีโครงสร้าง เวกเตอร์แถว (Row Vector) เวกเตอร์คอลัมน์ (Column Vector) อาเรย์สองมิติ หรือ เมตริกซ์ (Matrix)

  4. x=[0 1 2 3 4 5] x = 0 1 2 3 4 5 » y=1:5 y = 1 2 3 4 5 » z=1:2:10 z = 1 3 5 7 9 » z=10:-2:1 z = 10 8 6 4 2 การป้อนค่าให้กับอาเรย์

  5. การป้อนค่าให้กับอาเรย์ด้วยฟังก์ชัน Linspace • เป็นการกำหนดให้ element ของอาเรย์มีค่าเริ่มตั้งแต่ first_value จนถึง last_value โดยให้มีจำนวนของข้อมูลทั้งหมด nelements และระยะห่างระหว่างข้อมูลแต่ละค่าจะมีขนาดเท่ากัน (Linear) linspace(first_value, last_value, n)

  6. ตัวอย่าง » k=linspace(0,pi,11) k = Columns 1 through 7 0 0.3142 0.06283 0.9425 1.2566 1.5708 1.8850 Columns 8 through 11 2.1991 2.5133 2.8274 3.1416

  7. การเรียกใช้ข้อมูลในแต่ละ element ของอาเรย์ • ต้องระบุตำแหน่งของ Element ที่ต้องการ โดยกำหนดไว้ด้านหลังของชื่อตัวแปร • เช่น ต้องการเรียกใช้ข้อมูลตำแหน่งที่สามของอาเรย์ z ใช้คำสั่ง » z=10:-2:1 z = 10 8 6 4 2 » z(3) ans = 6

  8. การเรียกใช้ข้อมูลทีละหลาย elements ของอาเรย์ • ต้องระบุตำแหน่งของ elements ที่ต้องการ โดยใช้เครื่องหมาย , หรือช่องว่าง หรือเครื่องหมาย :เข้าช่วย » z([1 3 5]) ans = 10 6 2 » z([1,3,5]) ans = 10 6 2 » z(2:4) ans = 8 6 4

  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

  10. การคำนวณระหว่างอาเรย์กับสเกลาร์การคำนวณระหว่างอาเรย์กับสเกลาร์ • การคำนวณระหว่างอาเรย์และสเกลาร์ ทุกๆค่าของตัวแปรอาเรย์จะถูกกระทำด้วยจำนวนสเกลาร์เหมือนกันหมด เช่น » x=[0 1 2 3 4 5]; » z=10:-2:1; » x-3 ans = -3 -2 -1 0 1 2 » 2*z ans = 20 16 12 8 4

  11. การคำนวณระหว่างอาเรย์กับอาเรย์การคำนวณระหว่างอาเรย์กับอาเรย์ • การคำนวณระหว่างอาเรย์กับอาเรย์ ไม่ว่าจะเป็นการบวก ลบ คูณหรือหาร • จำนวน Element ของอาเรย์จะต้องมีขนาดเท่ากัน • การคำนวณระหว่างอาเรย์จะกระทำระหว่าง Element ต่อ Element เช่น

  12. ตัวอย่าง » x=1:9 x = 1 2 3 4 5 6 7 8 9 » y=2:10 y = 2 3 4 5 6 7 8 9 10 » x+y ans = 3 5 7 9 11 13 15 17 19 » x-y ans = -1 -1 -1 -1 -1 -1 -1 -1 -1

  13. การคูณและการหารอาเรย์การคูณและการหารอาเรย์ • การคูณ การหาร การยกกำลัง แบบอาเรย์นั้นจะนำเอา Element ณ ตำแหน่งเดียวกันของสองอาเรย์มาทำการคูณ หาร หรือ ยกกำลังกัน • ต้องใช้ .* ./หรือ.\เพื่อให้ต่างไปจากการคูณหารแบบเมตริกซ์ » x=1:9; » y=2:10; » x.*y ans = 2 6 12 20 30 42 56 72 90

  14. การหารอาเรย์ด้วย ./ และ .\ • สำหรับการหารจะใช้ . / หรือ .\ ก็ได้ แต่ตำแหน่งของตัวแปรจะวางสลับกัน » x.\y  y ตั้งหารด้วย x » y./x y ตั้งหารด้วย x

  15. การยกกำลังด้วย .^ • ใช้ .^ >> x = 1:3; >> y = 1:3; >> x.^y%element ของ x ยกกำลังด้วย element ของ y ที่ตรงกัน ans = 1427 » 2.^x% 2 ยกกำลังจาก 1 ถึง 3 ans = 2 4 8

  16. การกำหนดค่าอาเรย์ • เครื่องหมาย; ใช้ระบุว่าให้เริ่มแถวใหม่ หรือใช้การกด Enter ก็ได้ » g=[1 2 3 4 5 6 7 8 9] g = 1 2 3 4 5 6 7 8 9 » c=[1;2;3] c = 1 2 3

  17. Transpose • ใช้ตัวดำเนินการ’ » a=[1 2 3] a = 1 2 3 » c=a' c = 1 2 3

  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 >> x = 1:3; >> y = 1:3;

  19. เมตริกซ์ • คืออาเรย์ข้อมูลสองมิติ • การบวกและการลบเมตริกซ์มีลักษณะเช่นเดียวกันกับการบวกและลบของอาเรย์ • เมตริกซ์ที่นำมาบวกหรือลบกันต้องเป็นเมตริกซ์ที่มีขนาดเท่ากัน • การคูณและการหารของเมตริกซ์แตกต่างจากการคูณและหารของอาเรย์

  20. การคูณเมตริกซ์ • ใช้เครื่องหมาย * • การคูณกันของเมตริกซ์ A และ เมตริกซ์ B จำนวนคอลัมน์ของ A จะต้องเท่ากับจำนวนแถวของ B • ถ้าเมตริกซ์ A มีขนาด m  p และเมตริกซ์ B มีขนาด p  n ผลลัพธ์ของการคูณระหว่างเมตริกซ์ A และ B จะมีขนาด m  n • โดยปกติ AB จะมีค่าไม่เท่ากับ BA

  21. ตัวอย่างการคูณเมตริกซ์ตัวอย่างการคูณเมตริกซ์ » A = [6 -2;10 3;4 7]; » B = [9 8;-5 12]; » A*B ans = 64 24 75 116 1 116

  22. ตัวอย่าง คำนวณสมการเชิงเส้น • มีสมการเชิงเส้น 3 ตัวแปร 3 สมการ ดังเช่น 1x1 + 2x2 +3x3 = 366 4x1+ 5x2 + 6x3 = 804 7x1 +8x2 + 0x3 = 351

  23. วิธีทำ 1.สร้างเมตริกซ์ A และ B » A=[1 2 3;4 5 6;7 8 0] A = 1 2 3 4 5 6 7 8 0 » B=[366;804;351] B = 366 804 351

  24. วิธีทำ 2. ในการที่จะหาคำตอบได้นั้น เมตริกซ์ A ต้องมีดีเทอร์มิแนนท์ที่ไม่เป็น 0 ใช้ฟังก์ชัน det(A) หาค่าดีเทอร์มิแนนท์ของ A » det(A) ans = 27

  25. วิธีทำ 3. เมื่อค่าดีเทอร์มิแนนท์ไม่เป็น 0 แล้วก็สามารถหาคำตอบที่เป็น x=A-1B ใช้ฟังก์ชัน inv(A) หาค่า inverse matrix ของ A » x=inv(A)*B x = 25.0000 22.0000 99.0000

  26. ตัวอย่าง การวิเคราะห์ค่าใช้จ่ายในการผลิต

  27. คำนวณหา • ค่าใช้จ่ายในแต่ละกระบวนการผลิตสำหรับผลิตภัณฑ์ชนิดที่ 1 จำนวน 1 ชิ้น • ราคาต่อหน่วยในการผลิตสินค้าแต่ละชนิด • ค่าใช้จ่ายทั้งหมด หากต้องการผลิตสินค้า • ชนิดที่ 1 จำนวน 10 ชิ้น • ชนิดที่ 2 จำนวน 5 ชิ้น • ชนิดที่ 3 จำนวน 7 ชิ้น

  28. 1. ค่าใช้จ่ายในแต่ละกระบวนการผลิตสำหรับผลิตภัณฑ์ชนิดที่ 1 จำนวน 1 ชิ้น 2. ราคาต่อหน่วยในการผลิตสินค้าแต่ละชนิด 3. ค่าใช้จ่ายทั้งหมด หากต้องการผลิตสินค้า • ชนิดที่ 1 จำนวน 10 ชิ้น • ชนิดที่ 2 จำนวน 5 ชิ้น • ชนิดที่ 3 จำนวน 7 ชิ้น

  29. วิธีทำa) ค่าใช้จ่าย = ค่าใช้จ่ายต่อเวลา x จำนวนเวลาที่ใช้ในการผลิต • กำหนดค่าใช้จ่ายต่อชั่วโมงเป็นชนิดเวกเตอร์แถวในชื่อตัวแปร hourly_costs • กำหนดจำนวนชั่วโมงที่ต้องใช้ในการผลิตผลิตภัณฑ์ 1 เป็นชนิดเวกเตอร์แถวในชื่อตัวแปร hours_1 • คำนวณหาค่าใช้จ่ายในแต่ละกระบวนการโดยการใช้การคูณอาเรย์ » 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

  30. วิธีทำb) ราคาต่อหน่วยของผลิตภัณฑ์1 = hourly_costs * hours_1

  31. วิธีทำb) ราคาต่อหน่วยของผลิตภัณฑ์2 = hourly_costs * hours_2 » hours_2 = [5, 3, 2, 0]; สร้างอาเรย์ hours_2

  32. วิธีทำb) ราคาต่อหน่วยของผลิตภัณฑ์3= hourly_costs * hours_3 » hours_3 = [4, 1, 5, 3]; สร้างอาเรย์ hours_3

  33. วิธีทำ • การคำนวณหาราคาต่อหน่วยของทั้งสามผลิตภัณฑ์สามารถดำเนินการพร้อมกัน » unit_cost = hourly_cost * [hours_1’, hours_2’, hours_3’] unit_cost = 162 114 149

  34. วิธีทำc) • การหาค่าใช้จ่ายทั้งหมดของการผลิตผลิตภัณฑ์แต่ละชนิด จำนวน 10 ชิ้น 5 ชิ้น และ 7 ชิ้น ตามลำดับ สามารถหาได้จากการคูณเมตริกซ์ » units = [10, 5, 7]; » total_cost = units*unit_cost’ total_cost = 3233

More Related