giao trinh phuong phap tinh 2
TRANSCRIPT
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.
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
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;
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
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
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;
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
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
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;
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
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
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
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
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;
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)
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
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.
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)
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).
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.
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
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)
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
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.
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),
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
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
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:
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
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.