340 likes | 751 Views
Gauss Elimination. บำรุง พ่วงเกิด Office: ME201 Homepage: http://www.kmitl.ac.th/~kpbumroo . เนื้อหา. การแก้สมการ สำหรับจำนวนสมการน้อยๆ (n <= 3) ใช้วิธีเขียนกราฟ Cramer’s Rule กำจัดตัวแปร Naive Gauss Elimination Pivoting Tridiagonal Systems. การแก้สมการ สำหรับจำนวนสมการน้อยๆ.
E N D
Gauss Elimination บำรุง พ่วงเกิด Office: ME201 Homepage: http://www.kmitl.ac.th/~kpbumroo 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
เนื้อหา • การแก้สมการ สำหรับจำนวนสมการน้อยๆ (n <= 3) • ใช้วิธีเขียนกราฟ • Cramer’s Rule • กำจัดตัวแปร • Naive Gauss Elimination • Pivoting • Tridiagonal Systems 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
การแก้สมการ สำหรับจำนวนสมการน้อยๆ การเขียนกราฟ 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
การแก้สมการ สำหรับจำนวนสมการน้อยๆ การเขียนกราฟ 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
การแก้สมการ สำหรับจำนวนสมการน้อยๆ singular Ill-conditioned การเขียนกราฟ 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Cramer’s Rule Cramer’s Rule 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Cramer’s Rule ตัวอย่าง 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
The Elimination of Unknowns ตัวแปรถูกกำจัดโดยการคูณด้วยค่าคงที่ แล้วนำสมการไปลบกันทำให้ตัวแปรหายไป 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Naive Gauss Elimination ขั้นตอน 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Naive Gauss Elimination ขั้นตอน – forward elimination 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Naive Gauss Elimination ขั้นตอน – back substitution 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Naive Gauss Elimination DOFOR k = 1, n-1 DOFOR i = k+1, n factor = a(i,k)/a(k,k) DOFOR j = k+1, n a(i,j) = a(i,j) – factor*a(k,j) ENDDO b(i) = b(i) – factor*b(k) ENDDO ENDDO Pseudocode – forward elimination 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Naive Gauss Elimination x(n) = b(n)/a(n,n) DOFOR i = n – 1, 1, -1 sum = b(i) DOFOR j = i + 1, n sum = sum – a(i,j)*x(j) ENDDO x(i) = sum/a(i) ENDDO Pseudocode – back substitution 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Naive Gauss Elimination MatLab 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Operation Counting Backwardsubstitution Forwardelimination • Flops – floating-point operations • The total effort 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Pitfalls of Elimination Methods Division by zero. It is possible that during both elimination and back-substitution phases a division by zero can occur. Round-off errors. Ill-conditioned systems. Systems where small changes in coefficients result in large changes in the solution. Alternatively, it happens when two or more equations are nearly identical, resulting a wide ranges of answers to approximately satisfy the equations. Since round off errors can induce small changes in the coefficients, these changes can lead to large solution errors. 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Pitfalls of Elimination Methods Singular systems. When two equations are identical, we would loose one degree of freedom and be dealing with the impossible case of n-1 equations for n unknowns. For large sets of equations, it may not be obvious however. The fact that the determinant of a singular system is zero can be used and tested by computer algorithm after the elimination stage. If a zero diagonal element is created, calculation is terminated. 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Techniques for Improving Solutions • Use of more significant figures. • Pivoting. If a pivot element is zero, normalization step leads to division by zero. The same problem may arise, when the pivot element is close to zero. Problem can be avoided: • Partial pivoting. Switching the rows so that the largest element is the pivot element. • Complete pivoting. Searching for the largest element in all rows and columns then switching. 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Pivoting MatLab 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Gauss-Jordan • It is a variation of Gauss elimination. The major differences are: • When an unknown is eliminated, it is eliminated from all other equations rather than just the subsequent ones. • All rows are normalized by dividing them by their pivot elements. • Elimination step results in an identity matrix. • Consequently, it is not necessary to employ back substitution to obtain solution 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Tridiagonal System g e f Tridiagonal System 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
LU Decomposition Method หลักการ 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
LU Decomposition Method หลักการ 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Cholesky Factorization Symmetric matrix Cholesky factorization (Cholesky decomposition) 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
MatLab • LU Decomposition • lu(A) U and L • d = L\b • x = U\d • Choleski Decomposition • U = chol(A) • d = U’\b • x = U\d 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Iterative Methods Gauss-Siedel 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Gauss-Siedel & Jacobi Iterative Gauss-Siedel Jacobi ความแตกต่าง 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)
Gauss-Siedel M-file 01052006 การคำนวณทางวิศวกรรม (Engineering Computation)