/ Chia phải ab=
b đứng độc lập (nó không nhân với iến nμo cả) Xét hệ thống sau:
Xét hệ thống sau:
a11*x1 + a12*x2+ . . . +a1n*xn=b1 a21*x2 + a22*x2+ . . . +a2n*xn=b2 .
.
Viết theo ma trận A= [a11 a12...a1n; a21 a22...a2n,....am1 am2...amn] X=[x1 x2.... xn]; B=[b1 b2 ... bn];
Trong đó A đ−ợc gọi lμ ma trận hệ số, X lμ vector kết quả
3.6.2.1 Giải hệ ph−ơng trình bằng hμm nghịch đảo inv
Nếu m=n thì A lμ ma trận vuông, vμ nếu det(A) lμ khác 0 thì tồn tại A-1 vμ vector kết quả X đ−ợc cho bởi :
A-1*A*X=X=A-1*B Ví dụ Giải hệ sau: Ví dụ Giải hệ sau: 2*x1 - x2 = 2 x1 + x2 = 5 Matlab command >> A=[ 2 -1 ; 1 1 ]; >> B=[ 2 ; 5]; >> X= inv(A)*B >> X= 2.3333 2.667 >> X= rats(X) X= 7/3 8/3
Tuy nhiên chúng ta không thể áp dụng ph−ơng pháp trên cho 2*x1 - x2 = 2
2*x1 - x2 = 0
Ma trận hệ số A=[ 2 -1 ; 2 -1];
Vì det(A)=0 => không áp dụng đ−ợc hμm nghịch đảo cho ma trận A
3.6.3 Hệ ph−ơng trình tuyến tính đồng nhất
Biểu diễn d−ới dạng ma trận nh− sau A*x=0
• Nếu det(A)#0 hệ có nghiệm duy nhất lμ X=0 Ví dụ xét hệ ph−ơng trình tuyến tính sau
2*x1 - x2=0 x1+ x2=0
ở đây det(A)= 3 cho nghiệm x1=0 , x2=0
Ví dụ Xét hệ ph−ơng trình tuyến tính sau -6* x1 + 3*x2 = 0
2* x1 - x2 = 0
Ma trận hệ số A= [ -6 3 ; 2 -1] , det(A)= 0 biểu diễn trên đồ thị thấy rằng hai đ−ờng nμy trùng nhau do vậy hệ trên có vô số nghiệm
• Tr−ờng hợp số biến n< số ph−ơng trình m Ví dụ nh− sau: 3*x1 + 4*x2 - 2*x3= 0 -2*x1 + 3*x2 - 4*x3= 0 5*x1 + x2 + 2*x3= 0 -9*x1 + 5*x2 - 10*x3= 0 Ma trận hệ số lμ ma trận 4 x 3 ,định thức lớn nhất có thể đ−ợc xây dựng từ ma trận A lμ định thức ma trận 3 x 3, nh−ng định thức của ma trận kích th−ớc 3 by 3 =0 ( A1=[ 3 4 - 2; -2 3 - 4 ; 5 1 2]=> det(A1)=0 ) Do đó ta xác định tiếp ma trận 2 x 2 Ví dụ nh− sau
A2=[ 3 4; -2 3] vμ det(A) # 0 ta nói rằng hạng của ma trận Ăma trận hệ số) lμ bằng 2 đồng nghĩa với việc ta chỉ giải hai ph−ơng trình bất kỳ trong số tất cả các ph−ơng trình trên, vμ số biến chúng ta gán giá trị tuỳ ý lμ = n- r ( trong đó n lμ số biến còn r lμ hạng của ma trận A)
Giải hai ph−ơng trình : 3*x1 + 4*x2 - 2*x3= 0 -2*x1 + 3*x2 - 4*x3= 0
Kết quả : x1= (-10/17)*x3 vμ x2=(16/17)*x3 , với x3 lấy giá trị tuỳ ý
3.6.4 Giải hệ ph−ơng trình tuyến tính bằng Matlab(Dùng toán tử \)
2*x1 - x2 = 2 x1 + x2 = 5 >> A=[ 2 -1 ; 1 1]; >> B=[2 ; 5]; >>X=A\B
Ph−ơng pháp giải nμy gọi lμ ph−ơng pháp Gaussian elimination
Toán tử (\) thông th−ờng cung cấp một kết quả trong Matlab , trong một số tr−ờng hợp nó lμ ph−ơng pháp giải riêng
3.7 Điều kiện có nghiệm
Một hệ ph−ơng trình có một lời giải khi vμ chỉ khi ma trận hệ số A vμ ma trận [A B] có cùng hạng.
Giả sử hạng của hai ma trận đều lμ r thì xảy ra các tr−ờng hợp sau đây
• r=n Hệ ph−ơng trình có nghiệm duy nhất,
• r< n Hệ ph−ơng trình có vô số nghiệm, chúng ta có thể giải cho r biến nh− lμ
hμm của n-r biến khác ,các biến khác nμy có thể lấy giá trị tuỳ ý Ví dụ trên
rank(a)= rank([a b]) = n cho nên hệ nghiệm duy nhất >> rank(A), rank([A B]) ans= 2 ans= 2 Chúng ta xem xét ví dụ sau: 2* x1 + 3* x2 + 4*x3 = 4 x1 + x2 + x3 = 5 >> A=[ 2 3 4 ; 1 1 1]; >>B=[ 4 ; 5]; >>rank(A), rank([A B]) ans= 2 ans= 2 >> X= A\B X= 8 0 3
Hạng của hai ma trận A vμ [A B] bằng nhau vμ bằng 2 cho nên hệ có một lời giải , nh−ng do rank(A) < n cho nên ta chỉ giải cho hai biến nh− lμ hμm của biến còn lạị Kết quả Matlab cho trên chỉ lμ một tr−ờng hợp riêng (n-r biến đ−ợc gán =0)
Xét hệ sau
x1 + 2 *x2 + 3 *x3 = 12 3* x1 + 2 *x2 + x3 = 15 3*x1 + 4 *x2 + 7 *x3 = 13
10*x1 + 9 *x2 + 8 *x3 = 17 Tính toán bằng Matlab nh− sau >> A=[1 2 3 ; 3 2 1 ; 3 4 7; 10 9 8]; >>B= [12 ; 15; 13 ; 17 ]; >>rank(A), rank([A B]) ans= 3 ans= 4 >> X= A\B ans= 1.0887 -0.2527 1.5349 Khi thử lại nh− sau >> A* ans ans= 5.1882 4.2957 13.0000 20.8925 Kết quả không bằng B
Hệ ph−ơng trình trên vô nghiệm ,tuy nhiên Matlab vẫn cho nghiệm ,nghiệm nμy không phải nghiệm đúng mμ lμ nghiệm xấp xỉ giải theo tiêu chuẩn bình ph−ơng tối thiểu( ta không đề cập tới)
3.8 Hệ điều kiện yếu
Chúng ta nói rằng một vấn đề đ−ợc coi lμ điều kiện yếu nếu một sự thay đổi nhỏ trong dữ liệu sẽ dẫn đến thay đổi lớn trong kết quả. Điều nμy lμ rất nguy hiểm đối với các kỹ s− lμm việc với các thiết bị , sai số ở các thiết bị , sai số do lμm tròn (điều nμy chắc chắn xảy ra) Nếu dữ liệu nμy lμ đầu vμo đối với vấn đề trên thì kết quả thu đ−ợc sẽ khủng khiếp Vấn đề chúng ta bμn tới lμ Điều kiện yếu của hệ ph−ơng trình tuyến tính
Ma trận yếu điển hình lμ ma trận Hibert có dạng nh− sau: A=[ 1 1/2 1/3...1/n;1/2 1/3 ...1/(n+1)
1/3 1/4 1/5.... 1/(n+2) 1/n .. 1/(2n)]
Ví dụ sau đây: Giải hệ ph−ơng trình tuyến tính có ma trận hệ số sau A=[1 1; 1 1.01] B=[2 ; 2.01]; >> X= A\B X= 1.0000 1.0000
Một sai số nhỏ đ−ợc thể hiện trong long format >> format long; X= A\B
X=
1.000000000002 0.999999999998 0.999999999998
Nếu ta thay đổi một phần tử của A ví dụ Ă1, 2)=1.005 >> Ă1,2)=1.005 ; X= A\B
X=
-0.0000000099991 1.9999999999991 1.9999999999991
Thay đổi Ă1,2) =1.005 so với giá trị cũ lμ 1 tức lμ tăng 0.5% t−ơng ứng với giá trị x(1) giảm 101%, vμ tăng x(2) tăng 100%
Cách giải hệ ph−ơng trình điều kiện yếu A*X=B
Nếu A lμ ma trận Hillbert sử dụng hμm tính nghịch đảo invhilb(n) trong đó n lμ kích th−ớc của ma trận đó
Ví dụ >>A= [ 1/1 1/2 ; 1/2 1/3]; >> B=[1 ;1/2]
>>X= invhilb(2)* b
Nếu A không phải lμ ma trận hilbert thì sử dụng hμm symbolic Ví dụ A= [ 1 1.01; 0.5 1.02];
A=sym( [1 1.01 ; 0.5 1.02] ); B=[ 1.1; 1.2];
X= A\b
3 .9 Lệnh cond Tính điều kiện của ma trận
Cấu trúc:
>> cond(A) % A lμ ma trận
kết quả trả lại dạng nh− sau: a* 10k ; 0 < a < 9
k lμ số digits không tin cậy trong kết quả giải hệ ph−ơng trình tuyến tính vμ trong việc nghịch đảo ma trận. Nếu k xấp xỉ 1 thì đólμ ma trận có well -condition