giao trinh phuong phap tinh 2

30
Chöông 3 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH Trong chöông naøy chuùng ta neâu leân moät soá phöông phaùp duøng ñeå giaûi heä phöông trình ñaïi soá tuyeán tính Ax = b, (3.1) raát thöôøng gaëp trong caùc baøi toaùn khoa hoïc kó thuaät. Ta chæ xeùt heä goàm n phöông trình vôùi n aån. Do vaäy ma traän heä soá A laø ma traän vuoâng caáp n, vaø vectô nghieäm x cuõng nhö vectô töï do b laø caùc vectô coät n chieàu thuoäc R n . Ta luoân giaû thieát raèng det A =0, vaø do ñoù bao giôø heä cuõng coù nghieäm duy nhaát x = A -1 b. Tuy nhieân vieäc tìm ma traän nghòch ñaûo A -1 ñoâi khi coøn khoù khaên gaáp nhieàu laàn so vôùi vieäc giaûi tröïc tieáp heä phöông trình xuaát phaùt. Döôùi ñaây chuùng ta seõ xeùt moät soá phöông phaùp thöôøng duøng ñeå giaûi heä phöông trình (3.1). 3.1 PHÖÔNG PHAÙP GAUSS Tröôùc khi trình baøy phöông phaùp Gauss, chuùng ta xeùt moät soá tröôøng hôïp ñôn giaûn khi ma traän heä soá A cuûa heä phöông trình (3.1) coù daïng ñaët bieät.

Upload: tung-le

Post on 10-Jul-2015

67 views

Category:

Data & Analytics


4 download

TRANSCRIPT

Page 1: Giao trinh phuong phap tinh 2

Chöông 3

HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁTUYEÁN TÍNH

Trong chöông naøy chuùng ta neâu leân moät soá phöông phaùp duøng ñeågiaûi heä phöông trình ñaïi soá tuyeán tính

Ax = b, (3.1)

raát thöôøng gaëp trong caùc baøi toaùn khoa hoïc kó thuaät. Ta chæ xeùt heägoàm n phöông trình vôùi n aån. Do vaäy ma traän heä soá A laø ma traänvuoâng caáp n, vaø vectô nghieäm x cuõng nhö vectô töï do b laø caùc vectôcoät n chieàu thuoäc Rn. Ta luoân giaû thieát raèng detA 6= 0, vaø do ñoù baogiôø heä cuõng coù nghieäm duy nhaát x = A−1b. Tuy nhieân vieäc tìm matraän nghòch ñaûo A−1 ñoâi khi coøn khoù khaên gaáp nhieàu laàn so vôùi vieäcgiaûi tröïc tieáp heä phöông trình xuaát phaùt. Döôùi ñaây chuùng ta seõ xeùtmoät soá phöông phaùp thöôøng duøng ñeå giaûi heä phöông trình (3.1).

3.1 PHÖÔNG PHAÙP GAUSS

Tröôùc khi trình baøy phöông phaùp Gauss, chuùng ta xeùt moät soátröôøng hôïp ñôn giaûn khi ma traän heä soá A cuûa heä phöông trình (3.1)coù daïng ñaët bieät.

Page 2: Giao trinh phuong phap tinh 2

36 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Tröôøng hôïp ñôn giaûn nhaát laø tröôøng hôïp heä phöông trình coù matraän heä soá coù daïng ñöôøng cheùo:

A =

a11 0 · · · 00 a22 · · · 0· · · · · · · · · · · ·0 0 · · · ann

Khi aáy heä töông ñöông vôùi n phöông trình baäc nhaát aiixi = bi, ∀i = 1, n.Vì detA = a11a22 · · ·ann 6= 0 neân aii 6= 0, ∀i. Vaø do ñoù nghieäm cuûa heäcoù theå ñöôïc vieát döôùi daïng:

xi =biaii, i = 1, 2, 3, · · · , n

Tröôøng hôïp thöù hai khi ma traän heä soá A coù daïng tam giaùc treân:

A =

a11 a12 · · · a1n

0 a22 · · · a2n

· · · · · · · · · · · ·0 0 · · · ann

Vôùi giaû thieát detA 6= 0, ta coù aii 6= 0, ∀i = 1, n, vaø nghieäm cuûa heä ñöôïccho bôûi coâng thöùc:

xn =bnann

xk =1akk

bk −

n∑

j=k+1

akjxj

, k = n− 1, · · · , 1

(3.2)

Cuoái cuøng khi ma traän heä soá A coù daïng tam giaùc döôùi:

A =

a11 0 · · · 0a21 a22 · · · 0· · · · · · · · · · · ·an1 an2 · · · ann

Page 3: Giao trinh phuong phap tinh 2

3.1 Phöông phaùp Gauss 37

Töông töï detA 6= 0 ⇒ aii 6= 0, ∀i = 1, n, vaø nghieäm cuûa heä coù daïng:

x1 =b1a11

xk =1akk

bk −

k−1∑

j=1

akjxj

, k = 2, · · · , n

(3.3)

Thuaät toaùn giaûi heä phöông trình vôùi ma traän tam giaùc ñöôïc theåhieän trong Chöông trình 3.1 vaø 3.2. Ñoái soá cuûa chöông trình goàm: Nlaø soá phöông trình vaø soá aån, a laø ma traän heä soá caáp N × (N + 1), coätthöù N + 1 laø vectô töï do. Keát quaû traû veà cuûa chöông trình laø vectônghieäm x .

Chöông trình 3.1. - c3upper : Ma traän heä soá tam giaùc treân.

function [x] = c3upper(N,a)if nargin < 2, error('Haøm coù toái thieåu 2 ñoái soá');end;x(N)=a(N,N+1)/a(N,N);for k=N-1:-1:1

sum = 0;for j=k+1:N

sum=sum+a(k,j)*x(j);end;x(k)=(a(k,N+1)-sum)/a(k,k);

end;

Chöông trình 3.2. - c3lower : Ma traän heä soá tam giaùc döôùi.

function [x] = c3lower(N,a)if nargin < 2, error('Haøm coù toái thieåu 2 ñoái soá');end;x(1)=a(1,N+1)/a(1,1);for k=2:N

sum = 0;

Page 4: Giao trinh phuong phap tinh 2

38 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

for j=1:k-1sum=sum+a(k,j)*x(j);

end;x(k)=(a(k,N+1)-sum)/a(k,k);

end;

Baây giôø chuùng ta seõ trình baøy phöông phaùp Gauss ñeå giaûi heäphöông trình toång quaùt daïng (3.1). Noäi dung cuûa phöông phaùp Gaussduøng ñeå giaûi heä phöông trình ñaïi soá tuyeán tính laø söû duïng caùc pheùpbieán ñoåi sô caáp theo haøng ñeå chuyeån veà moät heä phöông trình môùitöông ñöông vôùi heä phöông trình cuõ maø ma traän heä soá coù daïng tamgiaùc. Caùc pheùp bieán ñoåi sô caáp thöôøng hay söû duïng laø:

• Nhaân moät haøng cho moät soá khaùc khoâng.

• Hoaùn chuyeån hai haøng cho nhau.

• Coäng moät haøng cho moät haøng khaùc ñaõ nhaân vôùi moät soá khaùckhoâng.

Xeùt heä thoáng phöông trình sau:

a11x1 + a12x2 + . . . + a1nxn = b1a21x1 + a22x2 + . . . + a2nxn = b2. . . . . . . . . . . .an1x1 + an2x2 + . . . + annxn = bn

Do ñònh thöùc cuûa ma traän heä soá A khaùc khoâng neân moät trong caùcsoá a11, a12, . . . , a1n phaûi khaùc khoâng. Giaû söû a11 6= 0. Laáy phöông trìnhthöù k vôùi k = 2, n tröø cho phöông trình moät ñaõ nhaân vôùi ak1

a11, ta ñöôïc

moät heä môùi coù daïng nhö sau:

a11x1 + a12x2 + . . . + a1nxn = b1

a(1)22 x2 + . . . + a

(1)2nxn = b

(1)2

. . . . . . . . .

a(1)n2x2 + . . . + a

(1)nnxn = b

(1)n

Page 5: Giao trinh phuong phap tinh 2

3.1 Phöông phaùp Gauss 39

Trong caùc soá a(1)22 , . . . , a

(1)n2 phaûi coù moät soá khaùc khoâng, vì neáu ngöôïc

laïi thì detA = 0, traùi vôùi giaû thieát. Giaû söû a(1)22 6= 0. Coøn neáu chæ coù

a(1)p2 6= 0 vaø a(1)

22 = 0 thì ta thöïc hieän pheùp hoaùn chuyeån hai phöôngtrình thöù 2 vaø thöù p. Tieáp tuïc bieán ñoåi cho n − 2 phöông trình cuoái.Vaø cöù tieáp tuïc cho ñeán phöông trình thöù n, ta ñöôïc heä phöông trìnhsau

a11x1 + a12x2 + . . . + a1nxn = b1

a(1)22 x2 + . . . + a

(1)2nxn = b

(1)2

. . . . . . . . .

a(n−1)nn xn = b

(n−1)n

Ñaây laø heä phöông trình coù ma traän heä soá coù daïng tam giaùc treânvaø coù theå giaûi ñöôïc baèng coâng thöùc (3.2).

Ví duï 3.1. Xeùt heä phöông trình ñaïi soá tuyeán tính sau:

x1 − x2 + 2x3 − x4 = −82x1 − 2x2 + 3x3 − 3x4 = −20x1 + x2 + x3 = −2x1 − x2 + 4x3 + 3x4 = 4

Ma traän heä soá môû roäng coù daïng

A(0) =

1 −1 2 −1 : −82 −2 3 −3 : −201 1 1 0 : −21 −1 4 3 : 4

Ta thöïc hieän caùc pheùp bieán ñoåi sau: (h2 = h2 − 2h1), (h3 =h3 − h1), (h4 = h4 − h1), khi ñoù ma traän trôû thaønh

A(1) =

1 −1 2 −1 : −80 0 −1 −1 : −40 2 −1 1 : 60 0 2 4 : 12

Phaàn töû a(1)22 = 0, do ñoù ñeå tieáp tuïc, ta thöïc hieän pheùp chuyeån ñoåi

Page 6: Giao trinh phuong phap tinh 2

40 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

giöõa haøng thöù hai vaø thöù ba vaø thu ñöôïc

A(2) =

1 −1 2 −1 : −80 2 −1 1 : 60 0 −1 −1 : −40 0 2 4 : 12

Cuoái cuøng laáy haøng thöù tö coäng cho hai laàn haøng thöù ba ta ñöôïc:

A(3) =

1 −1 2 −1 : −80 2 −1 1 : 60 0 −1 −1 : −40 0 0 2 : 4

Vaø söû duïng coâng thöùc (3.2) ta coù theå deã daøng tìm ñöôïc x =[−7, 3, 2, 2]T.

Thuaät toaùn giaûi heä phöông trình baèng phöông phaùp Gauss ñöôïctheå hieän trong Chöông trình 3.3. Ñoái soá cuûa chöông trình goàm: N laøsoá phöông trình vaø soá aån, a laø ma traän heä soá caáp N × (N + 1), coätthöù N + 1 laø vectô töï do. Keát quaû traû veà cuûa chöông trình laø vectônghieäm x .

Chöông trình 3.3. - c3gauss : Phöông phaùp Gauss.

function [x] = c3gauss(N,a)if nargin < 2, error('Haøm coù toái thieåu 2 ñoái soá');endfor k=1:N

if a(k,k)==0flag=0;for i=k+1:N

if a(i,k)∼=0flag=1;for j=1:N+1

tmp=a(k,j);a(k,j)=a(i,j);a(i,j)=tmp;

Page 7: Giao trinh phuong phap tinh 2

3.1 Phöông phaùp Gauss 41

end;break;

end;end;if flag==0

error('Ma traän suy bieán.');end;

end;for i=k+1:N

tmp=a(i,k);for j=k:N+1

a(i,j)=a(i,j)-tmp*a(k,j)/a(k,k);end;

end;end;x=c3upper(N,a);

Trong ví duï 3.1 ôû phaàn treân, ôû böôùc thöù hai, do a(1)22 = 0 neân ta

phaûi hoaùn chuyeån hai haøng thöù hai vaø thöù ba. Ñeå traùnh tröôøng hôïpnaøy, ta coù theå caûi tieán phöông phaùp Gauss theo höôùng nhö sau. Taïimoãi böôùc, khi choïn phaàn töû ñeå bieán ñoåi, ta seõ choïn phaàn töû coù tròtuyeät ñoái lôùn nhaát, sao cho khoâng cuøng haøng vaø coät vôùi nhöõng phaàntöû ñaõ choïn tröôùc. Phaàn töû nhö vaäy thöôøng ñöôïc goïi laø phaàn töû chínhhay phaàn töû troäi. Sau ñoù ta seõ bieán ñoåi ñeå cho taát caû caùc phaàn töû treâncuøng coät cuûa phaàn töû troäi baèng khoâng. Qua n böôùc nhö vaäy ta seõ tìmñöôïc nghieäm deã daøng 1. Ta minh hoaï phöông phaùp naøy baèng ví duïsau.

Ví duï 3.2. Xeùt heä phöông trình trong ví duï tröôùc coù ma traän heä soá môû roäng

A(0) =

1 −1 2 −1 : −82 −2 3 −3 : −201 1 1 0 : −21 −1 4 3 : 4

1Phöông phaùp naøy cuõng ñöôïc goïi laø phöông phaùp Gauss-Jordan hay Jordan

Page 8: Giao trinh phuong phap tinh 2

42 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Ñaàu tieân ta seõ choïn phaàn töû chính laø phaàn töû a(0)43 = 4 vaø thöïc hieän

caùc pheùp bieán ñoåi (4h3 − h4), (4h2 − 3h4), (2h1 − h4) ta thu ñöôïc

A(1) =

1 −1 0 −5 : −205 −5 0 −21 : −923 5 0 −3 : −121 −1 4 3 : 4

Böôùc tieáp theo, phaàn töû chính ñöôïc choïn khoâng ñöôïc naèm treân haøngthöù tö vaø coät thöùc ba. Ñoù laø phaàn töû a(1)

24 = −21. Tieáp tuïc thöïc hieäncaùc pheùp bieán ñoåi (21h1 − 5h2), (7h3 − h2), (7h4 + h2) ta thu ñöôïc

A(2) =

−4 4 0 0 : 405 −5 0 −21 : −92

16 40 0 0 : 812 −12 28 0 : −64

Tieáp theo phaàn töû chính ñöôïc choïn khoâng ñöôïc naèm treân haøng thöùhai, thöù tö vaø coät thöù ba, thöù tö vaø do ñoù phaàn töû chính seõ laø phaàn töûa(2)32 = 40. Thöïc hieän pheùp bieán ñoåi (10h1 −h3), (8h2 +h3), (10h4 +

3h3) ta ñöôïc

A(3) =

−56 0 0 0 : 39256 0 0 −168 : −72816 40 0 0 : 8

168 0 280 0 : −616

Cuoái cuøng phaàn töû chính khoâng cuøng naèm treân haøng vaø coät cuûanhöõng phaàn töû chính ñaõ ñöôïc choïn tröôùc laø phaàn töû a(3)

11 = −56.Thöïc hieän caùc pheùp bieán ñoåi (h2 + h1), (7h3 + 2h1), (h4 + 3h1) tacoù ma traän cuoái cuøng

A(3) =

−56 0 0 0 : 3920 0 0 −168 : −3360 280 0 0 : 8400 0 280 0 : 560

vaø heä phöông trình ñaàu töông ñöông vôùi heä sau

−56x1 = 392−168x4 = −336

280x2 = 840280x3 = 560

Page 9: Giao trinh phuong phap tinh 2

3.1 Phöông phaùp Gauss 43

Töø ñaây chuùng ta cuõng suy ra ñöôïc x = [−7, 3, 2, 2]T .

Thuaät toaùn giaûi heä phöông trình baèng phöông phaùp phaàn töû troäiñöôïc theå hieän trong Chöông trình 3.4. Ñoái soá cuûa chöông trình goàm:N laø soá phöông trình vaø soá aån, a laø ma traän heä soá caáp N × (N + 1),coät thöù N + 1 laø vectô töï do. Keát quaû traû veà cuûa chöông trình laø vectônghieäm x .

Chöông trình 3.4. - c3jordan : Phöông phaùp phaàn töû troäi.

function [x] = c3jordan(N,a)if nargin < 2, error('Haøm coù toái thieåu 2 ñoái soá'); endfor i=1:N, b(i)=0; end;for k=1:N

max=0;for i=1:N

if b(i)==0for j=1:N

if max<abs(a(i,j))max=abs(a(i,j)); im=i; jm=j;

end;end;

end;end;if max<=0, error('Ma traän suy bieán.'); end;b(im)=jm; max=a(im,jm);for j=1:N+1, a(im,j)=a(im,j)/max; end;for i=1:N

if i∼=immax=a(i,jm);for j=1:N+1

a(i,j)=a(i,j)-a(im,j)*max;end;

end;end;

Page 10: Giao trinh phuong phap tinh 2

44 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

end;for i=1:N, x(b(i))=a(i,N+1); end;

Caùc phöông phaùp coù söû duïng caùc pheùp bieán ñoåi sô caáp cô baûn coùöu ñieåm laø ñôn giaûn, deã laäp trình. Tuy nhieân neáu phaàn töû ñöôïc choïnñeå bieán ñoåi gaàn vôùi khoâng thì phöông phaùp Gauss coù theå cho keátquaû khoâng chính xaùc. Hôn nöõa, neáu caùc pheùp toaùn coäng, tröø, nhaân,chia ñöôïc laøm ñuùng hoaøn toaøn, thì caùc phöông phaùp treân cho chuùngta nghieäm ñuùng cuûa heä phöông trình. Tuy nhieân, khi thöïc hieän treâncaùc coâng cuï tính toaùn, ta vaãn gaëp phaûi sai soá laøm troøn. Cho neân caùcphöông phaùp Gauss vaãn ñöôïc xem nhö laø caùc phöông phaùp gaàn ñuùng.

3.2 PHÖÔNG PHAÙP NHAÂN TÖÛ LU

Noäi dung cuûa phöông phaùp nhaân töû LU laø phaân tích ma traän heäsoá A thaønh tích cuûa hai ma traän L vaø U , trong ñoù L laø ma traän tamgiaùc döôùi vaø U laø ma traän tam giaùc treân. Khi ñoù vieäc giaûi heä phöôngtrình (3.1) seõ ñöa veà vieäc giaûi hai heä phöông trình Ly = b vaø Ux = y

maø ma traän heä soá laø caùc ma traän tam giaùc vaø nghieäm thu ñöôïc töø caùccoâng thöùc (3.2) vaø (3.3). Ta coù ñònh lí sau ñaây.

Ñònh lí 3.1. Neáu A laø ma traän khoâng suy bieán, thì bao giôø cuõng toàntaïi moät ma traän P khoâng suy bieán sao cho ma traän PA phaân tíchñöôïc thaønh tích cuûa ma traän tam giaùc döôùi L vaø ma traän tam giaùctreân U , nghóa laø PA = LU .

Coù raát nhieàu phöông phaùp phaân tích A = LU , tuy nhieân ta thöôøngxeùt tröôøng hôïp ma traän L coù ñöôøng cheùo chính baèng 1 vaø goïi laøphöông phaùp Doolittle. Khi ñoù L vaø U coù daïng:

L =

1 0 · · · 0l21 1 · · · 0· · · · · · · · · · · ·ln1 ln2 · · · 1

vaø U =

u11 u12 · · · u1n

0 u22 · · · u2n

· · · · · · · · · · · ·0 0 · · · unn

Page 11: Giao trinh phuong phap tinh 2

3.2 Phöông phaùp nhaân töû LU 45

Caùc phaàn töû cuûa hai ma traän L vaø U ñöôïc xaùc ñònh theo coâng thöùcsau:

u1j = a1j (1 6 j 6 n)li1 =

ai1

u11(2 6 i 6 n)

uij = aij −i−1∑k=1

likukj (1 < i 6 j)

lij =1ujj

(aij −

j−1∑

k=1

likukj

)(1 < j < i)

(3.4)

Ví duï 3.3. Xeùt heä phöông trình

2x1 + 2x2 − 3x3 = 9−4x1 − 3x2 + 4x3 = −152x1 + x2 + 2x3 = 3

Ta phaân tích ma traän heä soá

2 2 −3−4 −3 4

2 1 2

=

1 0 0l21 1 0l31 l32 1

·

u11 u12 u13

0 u22 u23

0 0 u33

vôùi u11 = 2;u12 = 2;u13 = −3; l21 = −2; l31 = 1;u22 = 1;u23 = −2;l32 = −1;u33 = 3.

Do ñoù

Ly = b⇐⇒

1 0 0−2 1 0

1 −1 1

y =

9−15

3

=⇒ y =

93

−3

Ux = y ⇐⇒

2 2 −30 1 −20 0 3

x =

93

−3

=⇒ x =

21

−1

Ví duï 3.4. Heä phöông trình

x1 + x2 + + 3x4 = 42x1 + x2 − x3 + x4 = 13x1 − x2 − x3 + 2x4 = −3−x1 + 2x2 + 3x3 − x4 = 4

Page 12: Giao trinh phuong phap tinh 2

46 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Ta coù phaân tích cuûa ma traän heä soá A = LU theo phöông phaùpDoolittle nhö sau:

A =

1 0 0 02 1 0 03 4 1 0

−1 −3 0 1

1 1 0 30 −1 −1 −50 0 3 130 0 0 −13

Ta coù

Ly = b⇐⇒

1 0 0 02 1 0 03 4 1 0

−1 −3 0 1

y1y2y3y4

=

41

−34

Ta thu ñöôïc y = [4,−7, 13,−13]T. Vaø cuoái cuøng töø heä phöông trình

Ux = y ⇐⇒

1 1 0 30 −1 −1 −50 0 3 130 0 0 −13

x1

x2

x3

x4

=

4−713

−13

ta coù nghieäm x = [−1, 2, 0, 1]T.

Thuaät toaùn phaân raõ LU ñöôïc theå hieän trong Chöông trình 3.5.Ñoái soá cuûa chöông trình goàm: N laø soá phöông trình, a laø ma traän heäsoá caáp N × N . Keát quaû traû veà cuûa chöông trình laø ma traän tam giaùcdöôùi l vaø ma traän tam giaùc treân u .

Chöông trình 3.5. - c3LUfactor : Phöông phaùp nhaân töû LU.

function [l,u] = c3LUfactor(N,a)if nargin < 2, error('Haøm coù toái thieåu 2 ñoái soá'); end;l=zeros(N); u=zeros(N);for i=1:N, l(i,i)=1; end;for j=1:N, u(1,j)=a(1,j); end;if u(1,1)==0, error('Khoâng theå phaân tích ñöôïc.');end;for i=2:N, l(i,1)=a(i,1)/u(1,1); end;for i=2:N-1

Page 13: Giao trinh phuong phap tinh 2

3.2 Phöông phaùp nhaân töû LU 47

for j=i:Nsum=0;for k=1:i-1,sum=sum+l(i,k)*u(k,j);end;u(i,j)=a(i,j)-sum;

end;if u(i,i)==0,error('Khoâng theå phaân tích

ñöôïc.');end;for j=i+1:N

sum=0;for k=1:i-1,sum=sum+l(j,k)*u(k,i);end;l(j,i)=(a(j,i)-sum)/u(i,i);

end;end;sum=0; for k=1:N-1,sum=sum+l(N,k)*u(k,N); end;u(N,N)=a(N,N)-sum;

Phöông phaùp phaân raõ LU aùp duïng raát hieäu quaû trong tröôøng hôïpma traän heä soá coù daïng ba ñöôøng cheùo:

A =

a11 a12 0 · · · 0 0a21 a22 a23 · · · 0 00 a32 a33 · · · 0 0· · · · · · · · · · · · · · · · · ·0 0 0 · · · an−1,n−1 an−1,n

0 0 0 · · · an,n−1 an,n

Khi ñoù phaân raõ Doolittle cho ta

L =

1 0 0 · · · 0l21 1 0 · · · 00 l32 1 · · · 0· · · · · · · · · · · · · · ·0 0 0 · · · 1

vaø U =

u11 u12 0 · · · 00 u22 u23 · · · 00 0 u33 · · · 0· · · · · · · · · · · · · · ·0 0 0 · · · un,n

Page 14: Giao trinh phuong phap tinh 2

48 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Khi aáy töø coâng thöùc (3.4) ta coù

u11 = a11; u12 = a12; l21 =a21

u11;

ui,i = ai,i − li,i−1ui−1,i; ∀i = 2, 3, . . ., nui,i+1 = ai,i+1; li+1,i =

ai+1,i

ui,i; ∀i = 2, 3, . . ., n− 1

Ñeå theå hieän thuaät toaùn Doolittle trong tröôøng hôïp ma traän heä soácoù daïng ba ñöôøng cheùo, thay vì ñöa vaøo ma traän A, ta ñöa vaøo bavectô: a chöùa caùc phaàn töû treân ñöôøng cheùo chính cuûa A, b laø ñöôøngcheùo naèm treân ñöôøng cheùo chính vaø c laø ñöôøng cheùo naèm döôùiñöôøng cheùo chính, vectô töï do laø d . Chöông trình treân MatLab ñöôïctheå hieän trong chöông trình 3.6. Keát quaû traû veà laø vectô nghieäm x .

Chöông trình 3.6. - c3tridiag : Ma traän ba ñöôøng cheùo.

function [x]=c3tridiag(N,a,b,c,d)if nargin < 5, error('Ham co toi thieu 5 doi so.'); end;u(1)=a(1);v(1)=b(1);l(1)=c(1)/u(1);y(1)=d(1);for i=2:N-1

u(i)=a(i)-l(i-1)*v(i-1);v(i)=b(i);l(i)=c(i)/u(i);y(i)=d(i)-l(i-1)*y(i-1);

end;u(N)=a(N)-l(N-1)*v(N-1);y(N)=d(N)-l(N-1)*y(N-1);x(N)=y(N)/u(N);for i=N-1:-1:1

x(i)=(y(i)-v(i)*x(i+1))/u(i);end;

Page 15: Giao trinh phuong phap tinh 2

3.3 Phöông phaùp Choleski 49

3.3 PHÖÔNG PHAÙP CHOLESKIÑaây laø tröôøng hôïp ñaët bieät cuûa phöông phaùp nhaân töû LU, vaø ñöôïc

duøng cho tröôøng hôïp ma traän heä soá A ñoái xöùng vaø xaùc ñònh döông.Ma traän vuoâng A ñöôïc goïi laø ñoái xöùng neáu AT = A. Coù theå noùi raèngma traän A laø ñoái xöùng neáu caùc phaàn töû cuûa noù ñoái xöùng vôùi nhau quañöôøng cheùo chính, nghóa laø aij = aji, ∀i, j = 1, n. Coøn ma traän A laøxaùc ñònh döông neáu ∀x ∈ Rn, x 6= 0 : xTAx > 0. Ñeå kieåm tra tính xaùcñònh döông cuûa moät ma traän, ta thöôøng duøng ñònh lí sau ñaây.

Ñònh lí 3.2. Moät ma traän laø xaùc ñònh döông khi vaø chæ khi taát caû caùcñònh thöùc con chính cuûa noù ñeàu döông.

Trong ñoù ñònh thöùc con chính caáp k, 1 6 k 6 n cuûa ma traän laø ñònhthöùc con thu ñöôïc töø k haøng vaø k coät ñaàu tieân cuûa ma traän ñoù.

Ví duï 3.5. Xeùt ma traän A =

1 1 −11 2 0

−1 0 4

coù ∆1 = |1| = 1 > 0,

∆2 =∣∣∣∣

1 11 2

∣∣∣∣ = 1 > 0 vaø ∆3 =

∣∣∣∣∣∣

1 1 −11 2 0

−1 0 4

∣∣∣∣∣∣= 2 > 0. Do ñoù

A laø xaùc ñònh döông.

Ta coù ñònh lí Choleski:

Ñònh lí 3.3. Ma traän A laø ñoái xöùng vaø xaùc ñònh döông khi vaø chæ khitoàn taïi moät ma traän B tam giaùc döôùi, khaû ñaûo sao cho A = BBT .

Khi ñoù ma traän tam giaùc döôùi B coù theå tìm ñöôïc theo coâng thöùcsau:

b11 =√a11; bi1 =

ai1

b11(2 6 i 6 n)

bii =

√aii −

i−1∑k=1

b2ik (1 < i 6 n)

bij =1bjj

(aij −

j−1∑

k=1

bikbjk

)(1 < j < i)

(3.5)

Page 16: Giao trinh phuong phap tinh 2

50 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Ví duï 3.6. Xeùt heä phöông trình

Ax =

1 1 −11 2 0

−1 0 4

x1

x2

x3

=

123

= b

Vì ma traän A =

1 1 −11 2 0

−1 0 4

laø ñoái xöùng vaø xaùc ñònh döông,

neân töø coâng thöùc (3.5) ta coù theå xaùc ñònh caùc heä soá bij, i > j cuûama traän tam giaùc döôùi B nhö sau

b11 = 1, b21 = 1, b31 = −1, b22 = 1, b32 = 1, b33 =√

2

vaø do ñoù A = BBT vôùi B =

1 0 01 1 0

−1 1√

2

. Heä phöông trình

xuaát phaùt seõ töông ñöông vôùi hai heä{By = bBTx = y

. Ta ñöôïc

By = b⇔

1 0 01 1 0

−1 1√

2

y =

123

⇒ y =

11

3√2

BTx = y ⇔

1 1 −10 1 10 0

√2

x =

11

3√2

⇒ x =

3−1/2

3/2

.

Thuaät toaùn phaân raõ Choleski ñöôïc theå hieän trong Chöông trình3.7. Ñoái soá cuûa chöông trình goàm: N laø caáp cuûa ma traän, a laø matraän heä soá ñoái xöùng vaø xaùc ñònh döông. Keát quaû traû veà cuûa chöôngtrình laø ma traän tam giaùc döôùi b .

Chöông trình 3.7. - c3choleski : Phöông phaùp Choleski.

function [b] = c3choleski(N,a)if nargin < 2, error('Haøm coù toái thieåu 2 ñoái soá'); end;for i=1:N

Page 17: Giao trinh phuong phap tinh 2

3.3 Phöông phaùp Choleski 51

for j=1:Nif a(i,j) ∼ = a(j,i)

error('Ma traän khoâng ñoái xöùng.');end;

end;end;b=zeros(N);if a(1,1)<=0, error('Ma traän khoâng xaùc ñònh döông.');end;b(1,1)=sqrt(a(1,1));for i=2:N, b(i,1)=a(i,1)/b(1,1); end;for k=2:N

ak=0; for j=1:k-1, ak=ak+b(k,j)*b(k,j); end;ak=a(k,k)-ak;if ak<=0, error('Ma traän khoâng xaùc ñònh döông.');

end;b(k,k)=sqrt(ak);for i=k+1:N

ak=0;for j=1:k-1

ak=ak+b(i,j)*b(k,j);end;b(i,k)=(a(i,k)-ak)/b(k,k);

end;end;

Trong thöïc teá, öùng duïng cuûa phöông phaùp Choleski ñeå giaûi heäphöông trình ñaïi soá tuyeán tính, ta chæ caàn tính ñoái xöùng vaø khoângcaàn tính xaùc ñònh döông cuûa ma traän heä soá A. Khi ñoù caùc phaàn töûcuûa ma traän tam giaùc B coù theå laø nhöõng soá phöùc (söû duïng ñôn vò aûoi =

√−1). Tuy nhieân, keát quaû tính toaùn cuoái cuøng seõ cho chuùng ta

nghieäm thöïc cuûa heä phöông trình ban ñaàu.

Page 18: Giao trinh phuong phap tinh 2

52 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Ví duï 3.7. Xeùt heä phöông trình

Ax =

1 2 −12 1 0

−1 0 1

x1

x2

x3

=

111

= b

Töø coâng thöùc (3.5) ta coù theå xaùc ñònh caùc heä soá bij, i > j cuûa matraän tam giaùc döôùi B nhö sau

b11 = 1, b21 = 2, b31 = −1, b22 = i√

3, b32 =2i√

3, b33 =

2√3

Ta coù

By = b⇔

1 0 02 i

√3 0

−12i√

32√3

y =

111

⇒ y =

1

− 1i√

32√3

BTx = y ⇔

1 2 −1

0 i√

32i√

30 0

2√3

x =

1

− 1i√

32√3

vaø ta coù nghieäm cuûa heä phöông trình laø x1 = 0, x2 = 1, x3 = 1.

3.4 CHUAÅN VECTÔ VAØ CHUAÅN MA TRAÄNXeùt khoâng gian tuyeán tính thöïc Rn. Chuaån cuûa vectô x ∈ Rn laø

moät soá thöïc, kyù hieäu laø ‖x‖, thoaû caùc ñieàu kieän sau ñaây:

(i) ∀x ∈ Rn, ‖x‖ > 0, ‖x‖ = 0 ⇔ x = 0

(ii) ∀x ∈ Rn, ∀λ ∈ R, ‖λx‖ = |λ| .‖x‖

(iii) ∀x, y ∈ Rn, ‖x+ y‖ 6 ‖x‖+ ‖y‖. Ñieàu kieän naøy thöôøng ñöôïc goïi laøbaát ñaúng thöùc tam giaùc.

Trong Rn coù theå coù raát nhieàu chuaån, tuy nhieân chuùng ta chæ xeùtchuû yeáu hai chuaån thöôøng duøng sau ñaây: ∀x = [x1, x2, . . . , xn]T ∈ Rn

‖x‖1 = |x1| + |x2| + · · ·+ |xn| =n∑

k=1

|xk| (3.6)

Page 19: Giao trinh phuong phap tinh 2

3.4 Chuaån vectô vaø chuaån ma traän 53

‖x‖∞ = max(|x1| , |x2| , . . . , |xn|) = maxk=1,n

|xk| (3.7)

Vieäc kieåm tra caùc coâng thöùc (3.6) vaø (3.7) thoaû caùc ñieàu kieän (i),(ii), (iii) laø ñôn giaûn vaø daønh cho baïn ñoïc.

Baây giôø chuùng ta ñònh nghóa chuaån ma traän töông öùng vôùi chuaånvectô.

Ñònh nghóa 3.1. Chuaån ma traän töông öùng vôùi chuaån vectô ñöôïc xaùcñònh theo coâng thöùc:

‖A‖ = max‖x‖=1

‖Ax‖ = max‖x‖6=0

‖Ax‖‖x‖ (3.8)

Ví duï 3.8. Xaùc ñònh chuaån cuûa ma traän A =(

1 23 4

)töông öùng

vôùi chuaån moät cuûa vectô. Vôùi moïi x =(x1

x2

)∈ R2, sao cho

‖x‖1 = |x1| + |x2| = 1, ta coù

‖Ax‖1 = |x1 + 2x2|+ |3x1 + 4x2| 6 4 |x1|+ 6 |x2| = 4 + 2 |x2| 6 6

Do ñoù ‖A‖1 = 6.

Töø coâng thöùc (3.8) ta deã daøng suy ra ñöôïc raèng: ‖Ax‖ 6 ‖A‖‖x‖

Ñònh lí 3.4. Chuaån ma traän theo coâng thöùc (3.8) töông öùng vôùi chuaånvectô ñöôïc xaùc ñònh nhö sau:

‖A‖1 = max16j6n

n∑

i=1

|aij | (3.9)

‖A‖∞ = max16i6n

n∑

j=1

|aij| (3.10)

Ñònh nghóa 3.2. Xeùt daõy caùc vectô {x(m)}∞m=0 vôùi x(m) ∈ Rn. Ta noùidaõy caùc vectô naøy hoäi tuï veà vectô x khi m → +∞ neáu vaø chæ neáu‖x(m) − x‖ → 0 khi m → +∞ (hoäi tuï theo chuaån).

Page 20: Giao trinh phuong phap tinh 2

54 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

Khi ñoù ta kyù hieäu limm→∞

x(m) = x vaø chuaån coù theå laáy moät chuaånbaát kyø trong caùc coâng thöùc (3.6) hoaëc (3.7). Ta cuõng coù theå noùi daõyvectô {x(m)} hoäi tuï veà x theo chuaån ñaõ cho. Ta coù ñònh lí sau ñaây:

Ñònh lí 3.5. Ñeå daõy caùc vectô {x(m)} hoäi tuï tôùi vectô x khi m → +∞theo chuaån thì ñieàu kieän caàn vaø ñuû laø daõy {x(m)

k } hoäi tuï veà xk, ∀k = 1, n(hoäi tuï theo toaï ñoä).

Baây giôø xeùt heä phöông trình Ax = b(detA 6= 0) coù nghieäm x = A−1b.Cho b moät soá gia ∆b, khi ñoù nghieäm x töông öùng seõ coù soá gia laø ∆x,vaø A∆x = ∆b⇔ ∆x = A−1∆b. Ta coù

‖∆x‖ = ‖A−1∆b‖ 6 ‖A−1‖‖∆b‖

vaø‖b‖ = ‖Ax‖ 6 ‖A‖‖x‖

Töø ñaây chuùng ta deã daøng suy ra ñöôïc‖∆x‖‖x‖ 6 ‖A‖.‖A−1‖‖∆b‖‖b‖

Soá

k(A) = Cond(A) = ‖A‖.‖A−1‖ (3.11)

ñöôïc goïi laø soá ñieàu kieän cuûa ma traän A. Ta coù theå chöùng toû ñöôïc raèng

1 6 k(A) 6 +∞

Soá ñieàu kieän cuûa ma traän ñaëc tröng cho tính oån ñònh cuûa heä thoángphöông trình ñaïi soá tuyeán tính. Giaù trò cuûa k(A) caøng gaàn vôùi 1 thìheä caøng oån ñònh. Soá ñieàu kieän caøng lôùn thì heä caøng maát oån ñònh.

Ví duï 3.9. Xeùt heä phöông trình Ax = b vôùi A =(

1 21 2.01

)vaø

b =(

33.01

). Deã thaáy heä coù nghieäm laø x =

(11

). Baây giôø xeùt heä

Ax̃ = b̃ vôùi b̃ =(

33.1

). Nghieäm cuûa heä baây giôø laø x̃ =

(−17

10

).

Ta nhaän thaáy k∞(A) = 1207.01 � 1. Do ñoù b ≈ b̃, nhöng x vaø x̃khaùc nhau raát xa.

Page 21: Giao trinh phuong phap tinh 2

3.5 Phöông phaùp laëp 55

3.5 PHÖÔNG PHAÙP LAËP

Kó thuaät laëp duøng ñeå giaûi heä phöông trình ñaïi soá tuyeán tính (3.1)cuõng töông töï nhö phöông phaùp laëp ñaõ xeùt trong chöông 2. Muoán theá,chuùng ta chuyeån heä (3.1) veà daïng töông ñöông x = Tx+ c vôùi T laø moätma traän vuoâng caáp n vaø c laø moät vectô ñaõ bieát. Xuaát phaùt töø vectôban ñaàu x(0), ta xaây döïng moät daõy caùc vectô {x(m)}∞m=0 theo coâng thöùclaëp

x(m) = Tx(m−1) + c (3.12)

vôùi m = 1, 2, 3, . . . . Ta coù ñònh lí sau ñaây:

Ñònh lí 3.6. Neáu ‖T‖ < 1 thì daõy laëp caùc vectô xaùc ñònh theo coângthöùc (3.12) seõ hoäi tuï veà nghieäm x cuûa heä vôùi moïi vectô laëp ban ñaàux(0). Khi ñoù ta coù caùc coâng thöùc ñaùnh giaù sai soá nhö sau:

‖x(m) − x‖ 6 ‖T‖m

1 − ‖T‖‖x(1) − x(0)‖ (3.13)

‖x(m) − x‖ 6 ‖T‖1 − ‖T‖

‖x(m) − x(m−1)‖ (3.14)

Baây giôø chuùng ta seõ xeùt moät daïng ma traän heä soá cuûa heä phöôngtrình Ax = b maø coù theå chuyeån deã daøng veà daïng x = Tx+ c.

Ñònh nghóa 3.3. Ma traän A ñöôïc goïi laø ma traän ñöôøng cheùo troäinghieâm ngaët neáu noù thoaû maõn ñieàu kieän sau ñaây:

n∑

j=1,j 6=i

|aij| < |aii| (3.15)

Chuùng ta coù theå deã daøng kieåm tra raèng neáu A laø ma traän ñöôøngcheùo troäi nghieâm ngaët thì detA 6= 0 vaø aii 6= 0, ∀i = 1, n. Xeùt heäphöông trình (3.1) vôùi A laø ma traän ñöôøng cheùo troäi nghieâm ngaët. Ta

Page 22: Giao trinh phuong phap tinh 2

56 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

phaân tích ma traän A theo daïng

A =

a11 a12 · · · a1n

a21 a22 · · · a2n

· · · · · · · · · · · ·an1 an2 · · · ann

=

a11 0 · · · 00 a22 · · · 0· · · · · · · · · · · ·0 0 · · · ann

0 0 · · · 0−a21 0 · · · 0· · · · · · · · · · · ·−an1 −an2 · · · 0

0 −a12 · · · −a1n

0 0 · · · −a2n

· · · · · · · · · · · ·0 0 · · · −ann

=

= D − L− U

Chuù yù raèng do aii 6= 0, ∀i = 1, n neân detD 6= 0. Vaø nhö vaäy toàn taïi matraän nghòch ñaûo:

D−1 =

1a11

0 · · · 0

01a22

· · · 0

· · · · · · · · · · · ·0 0 · · · 1

ann

Khi ñoù heä

Ax = b⇐⇒ (D − L− U )x = b (3.16)

Baây giôø chuùng ta seõ xeùt moät vaøi phöông phaùp ñeå chuyeån heä phöôngtrình (3.1) veà daïng x = Tx+ c.

Töø heä (3.16) ta coù Dx = (L + U )x + b. Do toàn taïi D−1 neânx = D−1(L+ U )x+D−1b. Kyù hieäu Tj = D−1(L+ U ) vaø cj = D−1b. Khiñoù coâng thöùc laëp theo (3.12) seõ coù daïng

x(m) = Tjx(m−1) + cj, m = 1, 2, 3, . . . (3.17)

Phöông phaùp laëp döïa treân coâng thöùc laëp (3.17) ñöôïc goïi laø phöôngphaùp Jacobi. Daïng töôøng minh cuûa coâng thöùc (3.17) nhö sau:

x(m)i =

1aii

i−1∑

j=1

aijx(m−1)j −

n∑

j=i+1

aijx(m−1)j + bi

(3.18)

Page 23: Giao trinh phuong phap tinh 2

3.5 Phöông phaùp laëp 57

vôùi i = 1, 2, . . ., n. Ta coù

‖TJ‖∞ = ‖D−1(L + U )‖∞ = maxi=1,n

n∑

j=1,j 6=i

∣∣∣∣aij

aii

∣∣∣∣ = maxi=1,n

n∑j=1,j 6=i

|aij |

|aii|< 1

do A laø ma traän ñöôøng cheùo troäi nghieâm ngaët. Vaäy ‖TJ‖∞ < 1, nghóalaø phöông phaùp Jacobi luoân hoäi tuï vôùi moïi vectô laëp ban ñaàu x(0).

Ví duï 3.10. Xeùt heä phöông trình

10x1 + x2 − x3 = 7x1 + 10x2 + x3 = 8

−x1 + x2 + 10x3 = 9

Vôùi vectô laëp ban ñaàu x(0) = (0, 0, 0)T , haõy tính vectô x(3) vaø ñaùnhgiaù sai soá cuûa noù. Ta coù

Tj =

0.0 −0.1 0.1−0.1 0.0 −0.1

0.1 −0.1 0.0

vaø cj =

0.70.80.9

Do ñoù:

x(1) = Tjx(0) + cj =

0.70.80.9

; x(2) = Tjx

(1) + cj =

0.710.640.89

;

x(3) = Tjx(2) + cj =

0.7250.6400.907

. Ta coù ‖Tj‖∞ = 0.2. Vì vaäy

‖x(3) − x‖∞ 60.2

1− 0.2‖x(3) − x(2)‖∞ = 0.0043

Ví duï 3.11. Heä phöông trình Ax = b cho bôõi

10x1 − x2 + 2x3 = 6−x1 + 11x2 − x3 + 3x4 = 252x1 − x2 + 10x3 − x4 = −11

3x2 − x3 + 8x4 = 15

Page 24: Giao trinh phuong phap tinh 2

58 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

coù nghieäm duy nhaát x = [1, 2,−1, 1]T . Ñeå chuyeån töø heä Ax = b veàdaïng x = Tjx+ cj , ta bieán ñoåi nhö sau

x1 = 0.100x2 − 0.200x3 + 0.600x2 = 0.091x1 + 0.091x3 − 0.273x4 + 2.273x3 = 0.200x1 + 0.100x2 + 0.100x4 − 1.100x4 = −0.375x2 + 0.125x3 + 1.875

Khi ñoù ma traän Tj vaø vectô cj coù daïng:

Tj =

0 0.100 −0.200 00.091 0 0.091 −0.273

−0.200 0.100 0 0.1000 −0.375 0.125 0

, cj =

0.6002.273

−1.1001.875

Choïn chuaån voâ cuøng vaø ta coù ‖Tj‖∞ =12< 1. Do ñoù phöông phaùp

laëp hoäi tuï. Choïn x(0) = [0, 0, 0, 0]T. Baûng sau ñaây cho chuùng ta keátquaû tính toaùn sau 10 laàn laëp.

m 1 2 3 4 5x

(m)1 0.6000 1.0473 0.9326 1.0152 0.9890x

(m)2 2.2727 1.7159 2.0533 1.9537 2.0114x

(m)3 −1.1000 −0.8052 −1.0493 −0.9681 −1.0103x

(m)4 1.8750 0.8852 1.1309 0.9739 1.0214

m 6 7 8 9 10x

(m)1 1.0032 0.9981 1.0006 0.9997 1.0001x

(m)2 1.9922 2.0023 1.9987 2.0004 1.9998x

(m)3 −0.9945 −1.0020 −0.9990 −1.0004 −0.9998x

(m)4 0.9944 1.0036 0.9989 1.0006 0.9998

Quaù trình laëp döøng laïi döïa theo ñaùnh giaù:

‖x(10) − x‖∞ 6 1/21 − 1/2

‖x(10) − x(9)‖∞ = 8.0× 10−4 < 10−3

Trong khi sai soá thöïc söï laø ‖x(10) − x‖∞ = 0.0002.

Page 25: Giao trinh phuong phap tinh 2

3.5 Phöông phaùp laëp 59

Phöông phaùp laëp Jacobi ñöôïc theå hieän trong Chöông trình 3.8.Ñoái soá cuûa chöông trình goàm: N laø caáp cuûa ma traän, a laø ma traänheä soá caáp N ×(N+1 ), x0 laø vectô laëp ban ñaàu, eps laø sai soá (giaù tròmaëc ñònh laø 10−6) vaø maxit laø soá laàn laëp toái ña cho pheùp. Keát quaûtraû veà cuûa chöông trình laø vectô laëp x , sai soá ss vaø soá laàn laëp thöïcteá n .

Chöông trình 3.8. - c3jacobi : Phöông phaùp Jacobi.

function [x,ss,n]=c3jacobi(N,a,x0,eps,maxit)if nargin < 5, maxit = 100; end;if nargin < 4, eps = 1.0E-6; end;if nargin < 3, error('Haøm coù ít nhaát 3 ñoái soá.'); end;n=0;for l=1:maxit

n=n+1;for k=1:N

sum=0;for j=1:N

if j∼=k, sum=sum+a(k,j)*x0(j);end;end;x(k)=(a(k,N+1)-sum)/a(k,k);

end;ss=0;for k=1:N

if abs(x(k)-x0(k))>ssss=abs(x(k)-x0(k));

end;end;if ss<eps, break; end;for k=1:N, x0(k)=x(k); end;

end;

Trong coâng thöùc (3.18), ñeå tính caùc toaï ñoä cuûa vectô laëp x(m),

Page 26: Giao trinh phuong phap tinh 2

60 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

chuùng ta chæ söû duïng caùc toaï ñoä cuûa x(m−1). Tuy nhieân vôùii > 1, x(m)

1 , x(m)2 , . . . , x

(m)i−1 ñaõ ñöôïc tính vaø xaáp xæ nghieäm chính xaùc

x1, x2, . . . , xi−1 toát hôn x(m−1)1 , x

(m−1)2 , . . . , x

(m−1)i−1 . Do ñoù khi tính x

(m)i

chuùng ta neân söû duïng caùc giaù trò vöøa tính xong x(m)1 , x

(m)2 , . . . , x

(m)i−1. Ta

thu ñöôïc

x(m)i =

1aii

i−1∑

j=1

aijx(m)j −

n∑

j=i+1

aijx(m−1)j + bi

(3.19)

vôùi i = 1, 2, . . . , n. Coâng thöùc (3.19) thöôøng ñöôïc goïi laø coâng thöùc laëpGauss-Seidel. Baây giôø ta seõ vieát daïng ma traän cuûa phöông phaùpGauss-Seidel.

Töø heä phöông trình (3.16) ta ñöôïc (D−L)x = Ux+b. Ma traän D−Lcuõng coù ma traän nghòch ñaûo vaø do ñoù x = (D − L)−1Ux + (D − L)−1b.Ñaët Tg = (D − L)−1U vaø cg = (D − L)−1b. Khi ñoù coâng thöùc laëp coùdaïng

x(m) = Tgx(m−1) + cg, m = 1, 2, 3, . . .

Ví duï 3.12. Xeùt heä phöông trình trong ví duï 3.11

10x1 − x2 + 2x3 = 6−x1 + 11x2 − x3 + 3x4 = 252x1 − x2 + 10x3 − x4 = −11

3x2 − x3 + 8x4 = 15

Coâng thöùc laëp theo phöông phaùp Gauss-Seidel coù daïng

x(m)1 = 0.100x(m−1)

2 − 0.200x(m−1)3 + 0.600

x(m)2 = 0.091x(m)

1 + 0.091x(m−1)3 − 0.273x(m−1)

4 + 2.273x

(m)3 = 0.200x(m)

1 + 0.100x(m)2 + 0.100x(m−1)

4 − 1.100x

(m)4 = −0.375x(m)

2 + 0.125x(m)3 + 1.875

Choïn x0 = [0, 0, 0, 0]T. Baûng sau ñaây cho chuùng ta keát quaû tính

Page 27: Giao trinh phuong phap tinh 2

3.5 Phöông phaùp laëp 61

toaùn sau 5 laàn laëp.

m 1 2 3 4 5x

(m)1 0.6000 1.0300 1.0065 1.0009 1.0001x

(m)2 2.3272 2.0370 2.0036 2.0003 2.0000x

(m)3 −0.9873 −1.0140 −1.0025 −1.0003 −1.0000x

(m)4 0.8789 0.9844 0.9983 0.9999 1.0000

Ta thaáy ñeán laàn laëp thöù naêm, nghieäm thu ñöôïc baèng phöông phaùpGauss-Seidel toát hôn nhieàu so vôùi phöông phaùp Jacobi.

Phöông phaùp laëp Gauss-Seidel ñöôïc theå hieän trong Chöông trình3.9. Ñoái soá cuûa chöông trình goàm: N laø caáp cuûa ma traän, a laø matraän heä soá caáp N ×(N+1 ), x0 laø vectô laëp ban ñaàu, eps laø sai soá(giaù trò maëc ñònh laø 10−6) vaø maxit laø soá laàn laëp toái ña cho pheùp.Keát quaû traû veà cuûa chöông trình laø vectô laëp x , sai soá ss vaø soá laànlaëp thöïc teá n .

Chöông trình 3.9. - c3seidel : Phöông phaùp Gauss-Seidel.

function [x,ss,n]=c3seidel(N,a,x0,eps,maxit)n=0;for l=1:maxit

n=n+1;for k=1:N

sum=0;for j=1:N

if j<k, sum=sum+a(k,j)*x(j);elseif j>k, sum=sum+a(k,j)*x0(j);end;

end;x(k)=(a(k,N+1)-sum)/a(k,k);

end;ss=0;for k=1:N

Page 28: Giao trinh phuong phap tinh 2

62 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

if abs(x(k)-x0(k))>ssss=abs(x(k)-x0(k));

end;end;if ss<eps, break; end;for k=1:N, x0(k)=x(k); end;

end;

3.6 BAØI TAÄP1. Söû duïng phöông phaùp phaàn töû troäi giaûi caùc heä phöông trình sau

ñaây:

(a)

2x1 − 1.5x2 + 3x3 = 1−x1 + 2x3 = 34x1 − 4.5x2 + 5x3 = 1

(b)

2.13x1 + 3.45x2 − 6.21x3 = 1.450.43x1 + 4.24x2 − 5.05x3 = 2.232.67x1 − 1.13x2 + 3.27x3 = 3.21

(c)

x1 + x2 + x4 = 22x1 + x2 − x3 + x4 = 14x1 − x2 − 2x3 + 2x4 = 03x1 − x2 − x3 + 4x4 = −3

2. Duøng phöông phaùp Doolittle phaân tích caùc ma traän sau thaønhtích LU :

(a)

4 1 −24 5 18 12 9

(b)

2 2 −1−1 2 1−2 1 4

(c)

1 1 −3 2−1 2 1 4

2 1 2 −22 2 −1 1

3. Söû duïng caùc phöông phaùp nhaân töû LU (Doolittle) giaûi caùc heäphöông trình sau:

Page 29: Giao trinh phuong phap tinh 2

3.6 Baøi taäp 63

(a)

2x1 − 5x2 + 4x3 = 13x1 + 3x2 + 9x3 = 03x1 + 6x2 + 5x3 = 4

(b)

2.2x1 + 0.3x2 + 0.2x3 = 1.50.3x1 + 3.4x2 + 0.2x3 = 2.40.2x1 + 0.2x2 + 4.1x3 = 3.2

(c)

x2 + x3 = 1x1 − 2x2 − x3 = 0x1 − x2 + x3 = −1

(d)

x1 + x2 − x3 + x4 = 1x1 − x2 + 4x3 + 3x4 = 2

2x1 − x2 + 2x3 + 4x4 = 32x1 + x2 + 2x3 + 3x4 = 2

4. Cho A laø ma traän vuoâng, ba ñöôøng cheùo, caáp 10 vôùi caùc heä soáñöôïc xaùc ñònh bôõi aii = 2, ai,i+1 = ai,i−1 = −1 vôùi moïi i = 2, . . . , 9vaø a11 = a10,10 = 2, a12 = a10,9 = −1. Cho b laø vectô coät caáp 10ñöôïc cho bôõi b1 = b10 = 2 vaø bi = 1 vôùi moïi i = 2, . . . , 9. Haõy giaûiheä Ax = b söû duïng phöông phaùp nhaân töû LU.

5. Tìm caùc giaù trò cuûa α ñeå cho caùc ma traän sau ñaây laø xaùc ñònhdöông:

(a)

α 1 −11 2 1

−1 1 4

(b)

1 α 2α 4 −12 −1 8

(c)

1 −1 α−1 3 1α 1 5

6. Söû duïng phöông phaùp Choleski giaûi caùc heä phöông trình sau:

(a)

2x1 − x2 = 2−x1 + 2x2 − x3 = 1

− x2 + 2x3 = 2

(b)

x1 + 3x2 − 2x3 = 13x1 + 4x2 − 2x3 = 4

−2x1 − 2x2 + x3 = 3

(c)

4x1 + x2 + x3 + x4 = −1x1 + 3x2 − x3 + x4 = 0x1 − x2 + 2x3 = 1x1 + x2 + 2x4 = 2

Page 30: Giao trinh phuong phap tinh 2

64 HEÄ PHÖÔNG TRÌNH ÑAÏI SOÁ TUYEÁN TÍNH

(d)

5.5x1 + 1.2x2 + 1.3x3 + 1.4x4 = 1.51.2x1 + 5.5x2 + 1.4x3 + 1.5x4 = 1.61.3x1 + 1.4x2 + 5.5x3 + 1.6x4 = 1.71.4x1 + 1.5x2 + 1.6x3 + 5.5x4 = 1.8

7. Tính caùc chuaån ‖.‖1, ‖.‖∞ vaø soá ñieàu kieän theo caùc chuaån moät vaøvoâ cuøng cuûa caùc ma traän sau:

(a)(

5 −32 8

)(b)

3 1 −11 2 1

−1 1 4

(c)

2 −4 −12 2 1

−1 2 4

8. Tìm caùc giaù trò cuûa α > 0 vaø β > 0 ñeå cho caùc ma traän sau ñaâylaø ñöôøng cheùo troäi nghieâm ngaët:

(a)

4 α 12β 5 4β 2 α

(b)

3 2 βα 5 β2 1 α

(c)

β 2 42 α β4 −1 α

9. Söû duïng phöông phaùp Jacobi tìm nghieäm gaàn ñuùng cuûa caùc heäphöông trình sau vôùi sai soá 10−3, choïn chuaån voâ cuøng:

(a)

4x1 − x2 + x3 = 13x1 + 8x2 + 2x3 = 03x1 + 3x2 + 10x3 = 4

(b)

10x1 − x2 = 9−x1 + 10x2 − 2x3 = 7

− 2x2 + 10x3 = 6

(c)

10x1 + 5x2 = 65x1 + 10x2 − 4x3 = 25

− 4x2 + 8x3 − x4 = −11− x3 + 5x4 = −11

(d)

−4x1 + x2 + x3 = −2x1 − 4x2 + x4 = −1x1 + − 4x3 + x4 = 0

x2 + x3 − 4x4 = 1

10. Laëp laïi baøi taäp 9 söû duïng phöông phaùp Gauss-Seidel.