Bài 3: Giải Hệ Phương Trình 4 An Matlab, Giải Hệ Phương Trình 4 Ẩn Online

tiên, bằng cách nhân phương trình đầu tiên với ai1/a11 (i là chỉ số hàng) và 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

*
*

Xem thêm: tiểu luận về khách sạn mường thanh

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

Xem thêm: Tizitalk 23: Cách Tính Ngày An Toàn Khi Quan Hệ Để Không “Vỡ Kế Hoạch

 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 = < 1 3 4; 2 5 7; 3 1 2>; b = <8 14 6>ʹ; 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  =  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 end 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 theo ta xây dựng hàm qrgivens() thực hiện 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); end 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 = <1 2 ‐1;2 1 1; 1 1 3>; b = <2 4 5>ʹ; x = qrgivens(A, b)