1 / 22

ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลายตัวแปร

ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลายตัวแปร. อ . ดร . ชโล ธร ธรรมแท้ สาขาวิชาวิศวกรรมเครื่องกล มหาวิทยาลัยเทคโนโลยี สุร นารี. Linear Systems: GAUSS Elimination. ปัญหา n สมการ - n ตัวแปร. หรือเขียนในรูป [A]{x} ={b}. GAUSS Elimination. กำจัดไปข้างหน้า

najila
Download Presentation

ปฏิบัติการคอมพิวเตอร์ เรื่อง ระบบสมการหลายตัวแปร

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

  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 ได้จาก http://eng.sut.ac.th/me/subject.html

  7. ปัญหาของวิธี GAUSS Elimination สมการในรูปต่อไปนี้ จะไม่สามารถทำ Gauss Elimination ได้ • เนื่องจาก a11เป็น 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 แทนค่า x1,x2,x3 จาก iteration 1 ในสมการที่จัดรูปแล้ว Iteration 2: ทำซ้ำ แทนค่า x1,x2,x3 จาก iteration 2 และทำไปเรื่อยๆ Iteration 3 : X1=2.904500, X2=-2.674905, X3=7.111217 Iteration 4 : X1=2.907117, X2=-2.674157, X3=7.110955

  18. Jacobi.m X1old=0; X2old=0; X3old=0; % กำหนดค่าเริ่มต้น for i=1:10 X1new = (7.85 + 0.1*X2old + 0.2*X3old) /3 ; %สมการ 1 X2new = (-19.3 - 0.1*X1old + 0.3*X3old) /7; %สมการ 2 X3new = (71.4 - 0.3*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 ได้จาก http://eng.sut.ac.th/me/subject.html

  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ครั้ง

More Related