phương pháp tính nguyễn quốc lân chương 2 hệ phương trình đại số tuyến tính sinhvienzone com

30 117 0
phương pháp tính nguyễn quốc lân chương 2 hệ phương trình đại số tuyến tính sinhvienzone com

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương om HỆ PHƯƠNG TRÌNH ĐẠI SỐ ne C TUYẾN TÍNH Zo Trong chương nêu lên số phương pháp dùng để giải hệ phương trình đại số tuyến tính Ax = b, (3.1) Si nh Vi en thường gặp toán khoa học kó thuật Ta xét hệ gồm n phương trình với n ẩn Do ma trận hệ số A ma trận vuông cấp n, vectơ nghiệm x vectơ tự b vectơ cột n chiều thuộc Rn Ta giả thiết det A = 0, hệ có nghiệm x = A−1 b Tuy nhiên việc tìm ma trận nghịch đảo A−1 khó khăn gấp nhiều lần so với việc giải trực tiếp hệ phương trình xuất phát Dưới xét số phương pháp thường dùng để giải hệ phương trình (3.1) 3.1 PHƯƠNG PHÁP GAUSS Trước trình bày phương pháp Gauss, xét số trường hợp đơn giản ma trận hệ số A hệ phương trình (3.1) có dạng đặt biệt SinhVienZone.com https://fb.com/sinhvienzonevn 36 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Trường hợp đơn giản trường hợp hệ phương trình có ma trận hệ số có dạng đường chéo:  a11  A=  ··· 0 a22 ··· ··· ··· ··· ···  0   ···  ann bi , aii i = 1, 2, 3, · · · , n C xi = om Khi hệ tương đương với n phương trình bậc aii xi = bi, ∀i = 1, n Vì det A = a11a22 · · · ann = nên aii = 0, ∀i Và nghiệm hệ viết dạng:  a12 a22 ··· ··· ··· ··· ··· Zo a11  A=  ··· ne Trường hợp thứ hai ma trận hệ số A có dạng tam giác treân:  a1n a2n   ···  ann en Với giả thiết det A = 0, ta có aii = 0, ∀i = 1, n, nghiệm hệ cho công thức: Vi  bn  xn =    ann  Si nh      xk = akk bk −  n j=k+1 akj xj  , (3.2) k = n − 1, · · · , Cuối ma trận hệ số A có dạng tam giác dưới: SinhVienZone.com  a11  a21 A=  ··· an1 a22 ··· an2 ··· ··· ··· ···  0   ···  ann https://fb.com/sinhvienzonevn 3.1 Phương pháp Gauss 37 Tương tự det A = ⇒ aii = 0, ∀i = 1, n, nghiệm hệ có daïng:  b1  x1 =    a11   k−1    akj xj  ,   xk = akk bk − (3.3) k = 2, · · · , n j=1 C om Thuật toán giải hệ phương trình với ma trận tam giác thể Chương trình 3.1 3.2 Đối số chương trình gồm: N số phương trình số ẩn, a ma trận hệ số cấp N × (N + 1), cột thứ N + vectơ tự Kết trả chương trình vectơ nghiệm x Chương trình 3.1 - c3upper : Ma trận hệ số tam giác ne function [x] = c3upper(N,a) if nargin < 2, error('Haøm có tối thiểu đối số');end; for k=N-1:-1:1 sum = 0; en for j=k+1:N Zo x(N)=a(N,N+1)/a(N,N); sum=sum+a(k,j)*x(j); end; nh end; Vi x(k)=(a(k,N+1)-sum)/a(k,k); Si Chương trình 3.2 - c3lower : Ma trận hệ số tam giác function [x] = c3lower(N,a) if nargin < 2, error('Hàm có tối thiểu đối soá');end; x(1)=a(1,N+1)/a(1,1); for k=2:N sum = 0; SinhVienZone.com https://fb.com/sinhvienzonevn 38 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH for j=1:k-1 sum=sum+a(k,j)*x(j); end; x(k)=(a(k,N+1)-sum)/a(k,k); end; C om Bây trình bày phương pháp Gauss để giải hệ phương trình tổng quát dạng (3.1) Nội dung phương pháp Gauss dùng để giải hệ phương trình đại số tuyến tính sử dụng phép biến đổi sơ cấp theo hàng để chuyển hệ phương trình tương đương với hệ phương trình cũ mà ma trận hệ số có dạng tam giác Các phép biến đổi sơ cấp thường hay sử dụng là: ne • Nhân hàng cho số khác không • Hoán chuyển hai hàng cho Zo • Cộng hàng cho hàng khác nhân với số khác không Vi en Xét hệ thống phương trình  a11x1 + a12x2    a21x1 + a22x2    an1x1 + an2x2 sau: + + + + + a1nxn a2nxn = = + annxn = b1 b2 bn Si nh Do định thức ma trận hệ số A khác không nên số a11, a12, , a1n phải khác không Giả sử a11 = Lấy phương trình ak1 thứ k với k = 2, n trừ cho phương trình nhân với , ta a11 hệ có dạng sau:  a11x1 + a12x2 + + a1nxn = b1    (1) (1) (1) a22 x2 + + a2n xn = b2    (1) (1) (1) an2 x2 + + ann xn = bn SinhVienZone.com https://fb.com/sinhvienzonevn 3.1 Phương pháp Gauss 39 (1) (1) om Trong số a22 , , an2 phải có số khác không, ngược (1) lại det A = 0, trái với giả thiết Giả sử a22 = Còn có (1) (1) ap2 = a22 = ta thực phép hoán chuyển hai phương trình thứ thứ p Tiếp tục biến đổi cho n − phương trình cuối Và tiếp tục phương trình thứ n, ta hệ phương trình sau  a1nxn = b1 a11x1 + a12x2 + +    (1) (1) (1) a22 x2 + + a2n xn = b2    (n−1) (n−1) ann xn = bn C Đây hệ phương trình có ma trận hệ số có dạng tam giác giải công thức (3.2) x1 2x1 x1    x1 − x2 − 2x2 + x2 − x2 + + + + 2x3 3x3 x3 4x3 Zo     ne Ví dụ 3.1 Xét hệ phương trình đại số tuyến tính sau: − − x4 3x4 + 3x4 = = = = −8 −20 −2 en Ma trận hệ số mở rộng có dạng  nh Vi A(0) −1  −2 =  1 −1 −1 −3  : −8 : −20   : −2  : Ta thực phép biến đổi sau: (h2 = h2 − 2h1 ), (h3 = Si h3 − h1 ), (h4 = h4 − h1), ma trận trở thành  −1 −1 : −8  0 −1 −1 : −4 A(1) =   −1 : 0 : 12     (1) Phaàn tử a22 = 0, để tiếp tục, ta thực phép chuyển đổi SinhVienZone.com https://fb.com/sinhvienzonevn 40 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH hàng thứ hai thứ ba thu  A(2)  =  0 −1 2 −1 −1 −1 −1  : −8 :   : −4  : 12 Cuối lấy hàng thứ tư cộng cho hai lần hàng thứ ba ta được: A(3)   = 0 −1 2 −1 −1 0 −1 −1  : −8 :   : −4  : om  C Và sử dụng công thức (3.2) ta dễ dàng tìm x = [−7, 3, 2, 2]T Zo ne Thuật toán giải hệ phương trình phương pháp Gauss thể Chương trình 3.3 Đối số chương trình gồm: N số phương trình số ẩn, a ma trận hệ số cấp N × (N + 1), cột thứ N + vectơ tự Kết trả chương trình vectơ nghiệm x en Chương trình 3.3 - c3gauss : Phương pháp Gauss function [x] = c3gauss(N,a) Vi if nargin < 2, error('Hàm có tối thiểu đối số');end for k=1:N nh if a(k,k)==0 flag=0; for i=k+1:N Si if a(i,k)∼=0 flag=1; for j=1:N+1 tmp=a(k,j); a(k,j)=a(i,j); a(i,j)=tmp; SinhVienZone.com https://fb.com/sinhvienzonevn 3.1 Phương pháp Gauss 41 end; break; end; end; if flag==0 error('Ma trận suy biến.'); end; end; om for i=k+1:N tmp=a(i,k); for j=k:N+1 a(i,j)=a(i,j)-tmp*a(k,j)/a(k,k); C end; end; ne end; Zo x=c3upper(N,a); (1) nh Vi en Trong ví dụ 3.1 phần trên, bước thứ hai, a22 = nên ta phải hoán chuyển hai hàng thứ hai thứ ba Để tránh trường hợp này, ta cải tiến phương pháp Gauss theo hướng sau Tại bước, chọn phần tử để biến đổi, ta chọn phần tử có trị tuyệt đối lớn nhất, cho không hàng cột với phần tử chọn trước Phần tử thường gọi phần tử hay phần tử trội Sau ta biến đổi tất phần tử cột phần tử trội không Qua n bước ta tìm nghiệm dễ dàng Ta minh hoạ phương pháp ví dụ sau Si Ví dụ 3.2 Xét hệ phương trình ví dụ trước có ma trận hệ số mở rộng Phương SinhVienZone.com  A(0) −1  −2 =  1 −1 −1 −3  : −8 : −20   : −2  : phaùp gọi phương pháp Gauss-Jordan hay Jordan https://fb.com/sinhvienzonevn 42 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH (0) Đầu tiên ta chọn phần tử phần tử a43 = thực phép biến ñoåi (4h3 − h4), (4h2 − 3h4), (2h1 − h4 ) ta thu  A(1) −1  −5 =  −1  : −20 : −92   : −12  : −5 −21 −3 Bước tiếp theo, phần tử chọn không nằm hàng (1) thứ tư cột thức ba Đó phần tử a24 = −21 Tiếp tục thực om phép biến đổi (21h1 − 5h2 ), (7h3 − h2), (7h4 + h2) ta thu  C A(2)  −4 0 : 40  −5 −21 : −92   =  16 40 0 :  12 −12 28 : −64 Tiếp theo phần tử chọn không nằm hàng thứ ne hai, thứ tư cột thứ ba, thứ tư phần tử phần tử (2) en Zo a32 = 40 Thực phép biến đổi (10h1 − h3 ), (8h2 + h3 ), (10h4 + 3h3) ta   −56 0 : 392  56 0 −168 : −728   A(3) =   16 40 0 :  168 280 : −616 Cuối phần tử không nằm hàng cột (3) Vi phần tử chọn trước phần tử a11 = −56 Thực phép biến đổi (h2 + h1), (7h3 + 2h1), (h4 + 3h1) ta Si nh coù ma trận cuối A(3)   −56 0 : 392  0 −168 : −336   =  280 0 : 840  0 280 : 560 hệ phương trình đầu tương đương với hệ sau SinhVienZone.com  −56x1    −168x4 280x2    280x3 = = = = 392 −336 840 560 https://fb.com/sinhvienzonevn 3.1 Phương pháp Gauss 43 Từ suy x = [−7, 3, 2, 2]T Thuật toán giải hệ phương trình phương pháp phần tử trội thể Chương trình 3.4 Đối số chương trình gồm: N số phương trình số ẩn, a ma trận hệ số cấp N × (N + 1), cột thứ N + vectơ tự Kết trả chương trình vectơ nghiệm x om Chương trình 3.4 - c3jordan : Phương pháp phần tử trội function [x] = c3jordan(N,a) if nargin < 2, error('Hàm có tối thiểu đối số'); end for i=1:N, b(i)=0; end; C for k=1:N max=0; ne for i=1:N if b(i)==0 for j=1:N Zo if max đường chéo trội nghiêm ngặt:    α (a)  2β  (b)  α β α om Tính chuẩn 1, ∞ số điều kiện theo chuẩn vô ma trận sau:     −1 −4 −1 −3 (a) (b)   (c)  2  −1 −1 Si nh Vi en Zo ne Sử dụng phương pháp Jacobi tìm nghiệm gần hệ −3 phương  trình sau với sai số 10 , chọn chuẩn vô cùng: x2 + x3 =  4x1 − (a) 3x1 + 8x2 + 2x3 =  3x1 + 3x2 + 10x3 =  x2 =  10x1 − −x1 + 10x2 − 2x3 = (b)  − 2x2 + 10x3 =  10x1 + 5x2 =    5x1 + 10x2 − 4x3 = 25 (c) − 4x2 + 8x3 − x4 = −11    − x3 + 5x4 = −11  −4x1 + x2 + x3 = −2    x1 − 4x2 + x4 = −1 (d) x1 + − 4x3 + x4 =    x2 + x3 − 4x4 = 10 Lặp lại tập sử dụng phương pháp Gauss-Seidel SinhVienZone.com https://fb.com/sinhvienzonevn ... trình + − + 2x2 3x2 x2 − + + 2  −4 −3 Do l 32   u11 · u 12 u 22  u13 u23  u33 u11 = 2; u 12 = 2; u13 = −3; l21 = ? ?2; l31 = 1; u 22 = 1; u23 = ? ?2; l 32 = −1; u33 =  nh Vi Ly = b ⇐⇒  ? ?2  U x =... Tuy nhiên, kết tính toán cuối cho nghiệm thực hệ phương trình ban đầu SinhVienZone. com https://fb .com/ sinhvienzonevn 52 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Ví dụ 3.7 Xét hệ phương trình    ... Sử dụ  ng phương pháp Choleski giải hệ phương trình sau: =  2x1 − x2 (a) −x1 + 2x2 − x3 =  − x2 + 2x3 =  x1 + 3x2 − 2x3 =  (b) 3x1 + 4x2 − 2x3 =  −2x1 − 2x2 + x3 =  4x1 + x2 + x3 + x4

Ngày đăng: 31/01/2020, 00:04

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan