/ 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 vng, 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 hm 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 ny 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 tố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 u
Chúng ta nói rằng một vấn đỊ đ−ỵc coi lμ điỊu kiƯn 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 ny 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 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