Giải phương trình 4 ẩn

      10
Bạn sẽ xem: Bài 3: Giải Hệ Phương Trình 4 An Matlab, Giải Hệ Phương Trình 4 Ẩn Online trên pokeht.vn

tiên, bằng phương pháp nhân phương trình trước tiên với ai1/a11 (i là chỉ số hàng) với trừ

đi mỗi phương trình đó:

(0) (0) (0) (0)

11 1 12 2 13 3 1

(1) (1) (1)

22 2 23 3 2

(1) (1) (1)

32 2 33 3 3

ax ax ax b

ax ax b

ax ax b

⎧ ++= ⎪

+= ⎨

+= ⎩

Đang xem: Giải hệ phương trình 4 an matlab


*

Tóm tắt câu chữ Giáo trình Matlab căn bạn dạng – Chương 3: Hệ phương trình đại số đường tính, để xem tài liệu hoàn chỉnh bạn click vào nút “TẢI VỀ” sống trên

 end end i function x = pythag(y,z) %tinh sqrt( y^2 + z^2 ). rmax = max(abs()); if (rmax == 0) x = 0; else x = rmax*sqrt((y/rmax)^2 + (z/rmax)^2); end Để giải hệ phương trình ta dùng chương trình ctlsqr.m: clear all, clc maxiter = 50; A = ; b = ʹ; x = lsqr(A, b, maxiter) §26. PHƯƠNG PHÁP SYMMLQ Liên quan đến phương pháp MINRES và CG là thuật toán SYMMLQ do Paige và Saunders đưa ra. Ta xét hệ phương trình = cùng với là ma trận đối xứng nhưng không cần xác định dương. Ta chọn nghiệm ban đầu là β1 = {B>, 1 2Bβ = . Tại lần lặp thứ k của phương pháp CG ta có được xk sao cho = ‐ trực giao. Do là cơ sở trực giao nên ta có thể đặt = và có: = ‐ = β1 ‐ ‐ Tk 1 k k 1( e y ) v+ +β (1) Do Tk kV r 0= nên nhân (1) với TkV và dùng Tk k 1V v 0+ = và Tk 1 1V v e= ta có: Tk k 1 1 k k0 V r e T y= = β − (2) để giải hệ (2), Paige và Saunders đề nghị thực hiện phép phân tích LQ: T Tk k k k kT L Q Q Q E= = 201với kL là ma trận tam giác và kQ là ma trận trực giao. Thuật toán SYMMLQ gồm các bước sau: ‐ Cho x0 ‐ Tính x = xo, r = b ‐ Ax, rρ = , v r= ρ ‐ β = 0, 0β =% , c = ‐1, s = 0, k = ρ ‐ vold = 0, w = v, g = 0, g 0=% ‐ Lặp khi k = 2) break over if (normr = abs(y)) t = y/x; r = sqrt(1 + t*t); c = 1/r; s = t*c; r = x*r; else t = x/y; r = sqrt(1 + t*t); s = 1/r; c = t*s; r = y*r; end end tiếp sau ta xây dựng hàm qrgivens() triển khai việc tìm nghiệm của hệ phương trình bằng thuật toán phân tích QR nhờ phép quay Givens: function x = qrgivens(A, b); = size(A); tau = zeros(n, 1); %R = ; R = ; for j = 2:n for i = 1:j‐1 = givens(R(i, i), R(j, i)); R(i, i) = r; 209 R(j, i) = 0; t = c*R(i, i+1:n+1) + s*R(j, i+1:n+1); R(j, i+1:n+1) = ‐s*R(i, i+1:n+1) + c*R(j, i+1:n+1); R(i, i+1:n+1) = t; end end for k = n+2:m, a = ; for i = 1:n+1 = givens(R(i, i),a(i)); R(i,i) = r; a(i) = 0; t = c*R(i, i+1:n+1) + s*a(i+1:n+1); a(i+1:n+1) = ‐s*R(i, i+1:n+1) + c*a(i+1:n+1); R(i, i+1:n+1) = t; end end x = R(1:n, n+1); for j = n:‐1:2 x(j) = x(j)/R(j, j); x(1:j‐1) = x(1:j‐1) ‐ R(1:j‐1, j)*x(j); over x(1) = x(1)/R(1, 1); Để giải hệ phương trình ta dùng chương trình ctqrgivens.m: clear all, clc A = ; b = ʹ; x = qrgivens(A, b)