งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลาย ตัวแปร อ. ดร. ชโลธร ธรรมแท้ สาขาวิชาวิศวกรรมเครื่องกล มหาวิทยาลัยเทคโนโลยีสุรนารี

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลาย ตัวแปร อ. ดร. ชโลธร ธรรมแท้ สาขาวิชาวิศวกรรมเครื่องกล มหาวิทยาลัยเทคโนโลยีสุรนารี"— ใบสำเนางานนำเสนอ:

1 ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลาย ตัวแปร อ. ดร. ชโลธร ธรรมแท้ สาขาวิชาวิศวกรรมเครื่องกล มหาวิทยาลัยเทคโนโลยีสุรนารี

2 Linear Systems: GAUSS Elimination ปัญหา n สมการ - n ตัว แปร หรือเขียนในรูป [A]{x}={b}

3 GAUSS Elimination กำจัดไปข้างหน้า แปลง Matrix ให้เป็น Matrix สามเหลี่ยมบน จะเหลือสมการสุดท้าย เป็น 1 สมการ 1 ตัวแปร จะได้คำตอบของตัวแปร สุดท้าย จากนั้นแทนค่ากลับขึ้นมา ทีละสมการ

4 Forward Elimination แถวล่าง = แถวล่าง - ( สปส ล่าง / สปส บน ) แถวบน

5 Back Substitution หรื อ จาก Forward Elimination ได้ Matrix สามเหลี่ยมบน แทน ค่า กลับ

6 MATLAB: GaussElim.m % ขั้นตอน Forward Elimination % factor = A(i,j)/A(j,j); % factor = สปส ล่าง / สปส บน A(i,j:n) = A(i,j:n) - factor*A(j,j:n); % แถวล่าง -factor* แถวบน b(i)= b(i) - factor*b(j); % แถวล่าง -factor* แถวบน % ขั้นตอน Back Substitution% for k = n-1:-1:1 % loop Back sub x(k) = (b(k) - A(k,k+1:n)*x(k+1:n))/A(k,k) end Download ได้ จาก

7 ปัญหาของวิธี GAUSS Elimination สมการในรูปต่อไปนี้ จะไม่สามารถทำ Gauss Elimination ได้ เนื่องจาก a 11 เป็น 0 ทำให้ขั้นตอนการกำจัด row2 เกิดการหารด้วย 0 แก้ปัญหาโดยสลับ Row3 กับ Row1 แล้วจึงเริ่ม คำนวณ ระหว่างการคำนวณอาจเกิด สปส ของ column ซ้าย เป็นศูนย์ ให้ข้ามการทำงานในแถวนั้นไป ใน MATLAB คือบรรทัด : if A(i,j)~=0 เรียกว่าการทำ Pivoting

8 ปัญหาของวิธี GAUSS Elimination The exact solution is ทำ Forward Elimination หากปัดเศษ x2 จะได้คำตอบ x1 ต่างกันอย่าง มาก ดังนี้

9 สมการชุดเดียวกัน หากสลับแถว ทำ Forward Elimination หากปัดเศษ x2 จะได้คำตอบ x1 ต่างกันเล็กน้อย : Partial Pivoting

10 แบบฝึกหัด จงหาคำตอบของระบบ สมการ 1. 2.

11 Linear Systems: LU factorization เมื่อ [A] เป็นค่าที่ทราบ แก้สมการทั้ง 9 ทีละสมการ จะได้ [L] และ [U]

12 LU factorization ให้ [U]{x}={y} ทำให้ [L]{y}={b} หาคำตอบของ {y} ได้ ง่ายจาก matrix สามเหลี่ยมล่าง แก้ [L]{y}={b} ให้ [U]{x}={y} หาคำตอบของ {x} ได้ ง่ายจาก matrix สามเหลี่ยมบน

13 MATLAB function: lu() [L,U]=lu(A) สมการ

14 MATLAB function: \ คำสั่ง \ ใน MATLAB ใช้ในการหาคำตอบของ สมการ [A]{x}={b} ต้องการหาคำตอบ [L]{y}={b} พิมพ์ >> y=L\b ต้องการหาคำตอบ [U]{x}={y} พิมพ์ >> x=U\y คำถาม : A\b ไห้ผลลัพธ์เป็น อะไร

15 MATLAB function: inv() inv() ใช้ในการหา inverse matrix เช่น inv(A) ดังนั้นหาคำตอบของสมการ [A]{x}={b} ได้จาก คำสั่ง >> x=inv(A)*b จาก คุณสมบัติ คูณเข้า ทางซ้าย ทำให้ได้ {x}

16 Linear Systems: : Jacobi Iteration สมการ จัดรูป เดาค่าเริ่มต้น x1,x2,x3 เช่น = 0 แล้วแทนค่ากลับลงไป ในสมการที่จัดรูปแล้ว Iteration 1:

17 Linear Systems: : Jacobi Iteration Iteration 2: แทนค่า x1,x2,x3 จาก iteration 1 ในสมการที่จัดรูปแล้ว Iteration 3 : X1= , X2= , X3= Iteration 4 : X1= , X2= , X3= ทำซ้ำ แทนค่า x1,x2,x3 จาก iteration 2 และทำไป เรื่อยๆ

18 Jacobi.m X1old=0; X2old=0; X3old=0; % กำหนดค่าเริ่มต้น for i=1:10 X1new = ( *X2old + 0.2*X3old) /3 ; % สมการ 1 X2new = ( *X1old + 0.3*X3old) /7; % สมการ 2 X3new = ( *X1old + 0.2*X2old) /10; % สมการ 3 X1old=X1new; X2old=X1new; X3old=X1new; % เก็บค่า เก่า fprintf ('iter=%d X1=%f X2=%f X3=%f \n', i,X1new,X2new,X3new); end Download ได้ จาก

19 แบบฝึกหัด จงหาผลเฉลยของสมการ โดยใช้วิธี Jacobi Iteration เปรียบเทียบผลที่ได้กับวิธีอื่นๆ

20 Nonlinear Systems สมการไม่เชิงเส้นดังในบท root of equations สามารถมีหลายสมการ หลายตัวแปร คำตอบของ สมการคือ จุดตัดกัน ของ เส้นกราฟทั้ง 2

21 Nonlinear Systems: Jacobi Iteration สามารถประยุกต์ใช้ Jacobi Iteration ในการหา คำตอบของ Nonlinear systems Case1 Case2

22 แบบฝึกหัด จงหาผลเฉลยของสมการ โดยใช้วิธี Jacobi Iteration เปรียบเทียบระหว่างการจัดรูปสมการ Case1 กับ Case2 ให้ผลลัพธ์ต่างกันอย่างไร กำหนดค่าเริ่มต้น X1=2, X2=3 ทำซ้ำ 5 ครั้ง


ดาวน์โหลด ppt ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลาย ตัวแปร อ. ดร. ชโลธร ธรรมแท้ สาขาวิชาวิศวกรรมเครื่องกล มหาวิทยาลัยเทคโนโลยีสุรนารี

งานนำเสนอที่คล้ายกัน


Ads by Google