Đứng độc lập (nú khụng nhõn với iến nμo cả) Xét hƯ thống sau:

Một phần của tài liệu giao trinh matlab v5.3 (Trang 79 - 84)

/ 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

Một phần của tài liệu giao trinh matlab v5.3 (Trang 79 - 84)

Tải bản đầy đủ (PDF)

(195 trang)