MÔN THI: TIN HỌC CHUYÊN NGÀNH ĐỀ SỐ 01
Sinh viên: Lớp: Ngày thi:
Viết chương trình giải hệ phương trình đại số tuyến tính n ẩn với n và các hệ số ai,j được đọc từ bàn phím (không quá 20 ẩn) bằng phương pháp Gauss-Seidel. rồi in kết quả ra màn hình theo mẫu:
1.2 x 1 + 3 x 2 + 4 x 3 + . . . + 7 x n − 1 + 3.5 x n = 6 x 1 = 1.045 2 x 1 + 3.5 x 2 + 1.4 x 3 + . . . + 4.7 x n − 1 + 2.5 x n = 3.6 x 1 = 2.045 1.1 x 1 + 3.2 x 2 + 4.2 x 3 + . . . + 7.6 x n − 1 + 6.5 x n = 1.6 x 1 = 3.445 . . . .. .. ... 4.2 x 1 + 3.9 x 2 + 6.4 x 3 + . . . + 3.7 x n − 1 + 1.5 x n = 4.6 x 1 = 4.995 7.2 x 1 + 9.3 x 2 + 1.4 x 3 + . . . + 6.7 x n − 1 + 4.7 x n = 6.9 x 1 = 6.045
Quy cách:
Kết quả được in ra với 3 số thập phân.
Phương pháp Gauss-Seidel: là phương pháp lặp để giải hệ phương trình đại số tuyến tính Ax = b.
Ma trận A được chia thành 2 ma trận A = L + U. trong đó ma trận L là ma trận có các thành phần trên đường chéo chính bằng 0, cùn ma trận U là ma trận có các thành phần từ đường chéo chính trở xuống bằng 0.
| A 1,1 A 1,2 A 1,3 A 1,4 A 2,1 A 2,2 A 2,3 A 2,4 A 3,1 A 3,2 A 3,3 A 3,4 A 4,1 A 4,2 A 4,3 A 44,4 | = | A 1,1 0 0 0 A 2,1 A 2,2 0 0 A 3,1 A 3,2 A 3,3 0 A 4,1 A 4,2 A 4,3 A 4,4 | + | 0 A 1,2 A 1,3 A 1,4 0 0 A 2,3 A 2,4 0 0 0 A 3,4 0 0 0 0 | Hay : A = L + U Với : A x = y ⇒ ( L + U ) x = y ⇒ L x = y − Ux ⇒ x = L − 1 ( y − Ux ) ⇒ Chuỗi nghiệm : x ( k ) = L − 1 ( y − Ux ( k − 1 ) )
Vì L là ma trận đường chéo dưới nên ta có thể tính nghiệm bằng công thức:
x i ( k + 1 ) = 1 a i , i ( y i − ∑ j = 1 i − 1 a i , j x j ( k + 1 ) − ∑ j = i + 1 n a i , j x j ( k ) ) với i = 1 , 2 , 3 . . n
Chú ý: trong công thức trên, nếu giả thiết là xk và x k-1 khác nhau không lớn, thì có thể chuyển thành:
x i ( k + 1 ) = 1 a i , i ( y i − ∑ j ≠ i a i , j x j ( k ) ) với i = 1 , 2 , 3 . . n
Với sai số được tính bằng Ax -y đủ nhỏ, ta có thể dừng chuỗi lặp tính xk.