CHƯƠNG2:ĐẠISỐTUYẾNTÍNH
§1.CÁCPHƯƠNGTRÌNHĐẠISỐTUYẾNTÍNH
1.Hệphươngtrìnhđầyđủ:TaxéthệphươngtrìnhAx=B.Đểtìmnghiệmcủa
hệtadùnglệnhMATLAB:
x=inv(A)*B
hay:
x=A\B
2.Hệphươngtrìnhcóít
phươngtrìnhhơnsốẩn(underdetermined):Khigiải
hệtrêntađãdùngnghịchđảomatrận.Nhưvậy tachỉnhậnđượckếtquảkhi
matrậnAvuông(sốphương trìnhbằngsốẩnsốvàđịnhthứcc
ủaAphảikhác
không).HệcósốphươngtrìnhíthơnsốẩnhayđịnhthứccủamatrậnAcủa
hệđầyđủbằng0gọilàhệunderdetermined.Mộthệnhưvậycóthểcóvôs ố
nghiệmvớimộthaynhiềubiếnphụthuộcvàocácbiếncònlại.Vớimộthệnhư
vậyphươngphápCramerhayphươngphápmatrậnnghịchđảokhôngdùng
được.Khisốphương
trìnhnhiềuhơnsốẩnphươngphápchiatráicũngcho
nghiệm với một vàiẩn số đượcchobằng0.Mộtvídụđơngiản là phương
trìnhx+3y=6.Phươngtrìnhnàycór
ấtnhiềunghiệm trongđócómộtnghiệm
làx=6vày=0:
a=[13];
b=6;
x=a\b
x=
6
0
Sốnghiệmvôhạncóthểtồn tại
ngaycảkhisốphươngtrìnhbằngsốẩn.Điều
này xảy ra khi det(A) = 0. Với hệ này ta không dùngđược phương pháp
Cramervàphươngpháp matrậnnghịchđảo vàphươngphápchiatráicho
thông
báolàma trậnAsuybiến.Trongtrườnghợpnhưvậytacóthểdùng
phươngphápgiảnghịchđảođểtìmđượcmộtnghiệmgọilànghiệmchuẩn
minimum.
Vídụ:Chohệphươngtrình
x+2y+z=8
0x+y+0z=2
x+y+z=6
29
Khidùngphépchiatráitanhậnđược:
y=a\b
Warning:Matrixissingulartoworkingprecision.
y=
Inf
Inf
Inf
Nếutadùngphươngphápgiảnghịchđảothìcó:
a=[121;010;111]
b=[8;2;6]
x=pinv(a)*b
x=
2.00000000000000
2.00000000000000
2.00000000000000
Mộthệcũngcóthểcóvôsốnghiệmkhicóđủsốphươngtrình.Vídụta
cóhệ:
2x‐4y+5z=‐4
‐4x‐2y+3z=4
2x+6y‐8z
=0
Tronghệnàyphươngtrìnhthứ3làtổngcủahaiphương trìnhtrênnênhệthật
sựchỉcó2phươngtrình.
Tómlạimộthệmuốncónghiệmduynhấtphảicócácph
ươngtrìnhđộc
lập.Việcxácđịnhcácphươngtrìnhtronghệcóđộclậphaykhôngkhákhó,
nhấtlàđối vớihệcónhiềuphươngtrình.Tađưaramộtphươngphápcho
phépxácđịnhhệphươ
ngtrìnhcónghiệmvàliệunghiệmđócóduynhấthay
không.Phươngphápnàyđòihỏisựhiểubiếtvềhạngcủamatrận.
Taxemxétđịnhthứccủamatrậnsau:
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
−
−
379
2106
143
Nếutaloạitrừmộthàngvàmộtcộtcủamatrậnchúngta cònlạimatrận2
×2.
Tuỳtheohàngvàcộtbịloạitacó9matrậncon.Địnhthứccủacácmatrậnnày
gọilàđịnhthứccon.Vídụnếutabỏhàng1vàcột1tacó:
44
37
210
=
−
30
Cácđịnhthứcconcóthểdùngđểxácđịnhhạngcủamatrận.Hạngcủama
trậnđượcđịnhnghĩanhưsau:
MộtmatrậnAm
×
ncóhạngr
≥
1nếuvàchỉnếu
địnhthứccủaAchứamộtđịnh thứcr
×
rvàmọiđịnhthứcconvuôngcór+1hàng
hayhơnbằng0.
Đểxácđịnhhạngcủamatrậntacólệnhrank
Vídụ:
a=[3‐41;6102;9‐73];
rank(a)
ans=
2
HệphươngtrìnhAx=Bcómphươngtrìnhvànẩncónghiệmnếuvàchỉnếu
rank(A)=rank([AB]).GọihạngcủaAlàr,nếur=nthìnghiệmlàduynhất.
Nế
ur<nthìhệcóvôsốnghiệmvàrẩncóth ểbiểudiễnnhưlàtổhợptuyến
tínhcủan‐rẩncònlạimàgiátrịcóthểchọnbấtkì.
Vídụ:Giảihệphươngtrình
3x‐2y+8z=48
‐6x+5y+z=‐12
9x+4y+2z=24
Taviết:
a=[3‐28;‐651;942];
b=[48;‐12;24];
rank(a)
ans=
3
rank([ab])
ans=
3
Vậyhệcónghiệmduynhất:
x=a\b
x=
2
‐1
5
Vídụ:Giảihệ
2x‐4y+5z=‐4
‐6x‐2y+3z=4
2x+6y‐8z=0
31
Taviết:
a=[2‐45;‐6‐23;26‐8];
b=[‐4;4;0];
rank(a)
ans=
2
rank([ab])
ans=
2
Vậyhệcóvôsốnghiệm.Mộttrongcácnghiệmlà:
x=pinv(a)*b
x=
‐1.21481481481481
0.20740740740741
‐0.14814814814815
3.Hệphươngtrìnhoverdetermined:Hệphương trình trongđó số phương
trìnhđộc lập nhiều hơn số ẩn gọi là hệ overdetermined.Đối với hệ này
phươngphápCramervàphươngphápnghịchđảomatrậnkhôngdùngđược.
Tuynhiênmột
sốhệchonghiệmđúngxácđịnhbằngphépchiatrái.Đốivới
các hệ khác không có nghiệm chính xác. Khi r = rank(a)=rank([ab])hệcó
nghiệmvànếur=nnghiệmlàduynhất.Khirank(a)
≠rank([ab])hệkhôngcó
nghiệm.
Vídụ:Giảimạchđiệngồm3nhánhnốisongsong:nhánh1cótổngtrởZ1=
5+2jvànguồne=100sin(314t+30
0
),nhánh2cótổngtrởZ2=3+4jvànhánh3
cótổngtrở5+6j.Taviếtphương trìnhcủamạchđiệntheodòngnhánh.Sauđó
rútramatrậnAvàB.CáclệnhMATLAB:
a=[111;5+2*i3+4*i0;0‐(3+4*i)5+6*i]
e=100*exp(i*(30*pi/180))
b=[0;e;0];
i=a\b
i=
25.25569272231586+19.27124163998603i
‐15.63482777750950‐11.44276084484129i
‐9.62086494480636‐7.82848079514474i
32
§2.NỘISUY
1.Nộisuyhàmmộtbiến
:MATLABdùng2kiểunộisuy:nộisuyđathứcvà
nộisuytrêncơsởbiếnđổiFourriernhanh,
a.Nộisuyđathức:MATLABdùnghàminterp1(x,y,xi,<phươngpháp>)
vớix,làgiátrịcủahàmtạinhữngđiểmđãchovàxilàgiátrịmàtạiđótacần
nộisuyragiátrịyi.<phươngpháp>cóthểlà
mộttrongcácgiátrịsau:
‘nearest’‐ phương pháp nàyđặt giá trị nội suy vàogiá trị đã cho gần
nhất,Phươngphápnàynhanhnhưngkếtquảkémchínhxácnhất
Vídụ: x=[12345];
y=[5.543.1128290.7498.4];
yi=interp1(x,y,1.6,ʹnearestʹ)
yi=
43.1000
‘linear’‐phươngphápnày coiđường congđi qua 2điểmchotrướclà
đườngthẳng.
Vídụ: yi=interp1(x,y,1.6,ʹlinearʹ)
yi=
28.0600
‘spline”‐dùngphươngphápnộisuyspline
Vídụ: yi=interp1(x,y,1.6,ʹsplineʹ)
yi=
24.9782
‘cubic’‐phươngphápnàycoiđườngcongqua2điểmlàđườngcongbậc
3
Vídụ: yi=interp1(x,y,1.6,ʹcubicʹ)
yi=
22.3840
b.NộisuyFTT:Hàminterpftth ựchiệnnộisuyhàmmộtbiếnsửdụng
phươngphápFFT(FastFourrierTransform).Phươngphápnàytínhtoánbiến
đổiFourriermộtvectơchứacácgiátrịcủamộthàmchukì.
Nhưvậyphương
phápnàytínhbiếnđổiFourrierngượcsửdụngnhiềuđiểm.Dạnghàmlà:
y=interpft(x,n)
Vídụ: y=interpft(x,4)
y=
1.00002.62363.00005.3764
33
2.Nộisuy hàmhaibiến:Hàm interp2thựchiệnnộisuyhàm2 biến.Dạng
hàmtổngquát:
ZI=interp2(X,Y,Z,XI,YI,<phươngpháp>)
Z–matrậnchữnhậtchứagiátrịcủahàm2biến
X,Y–mảngcócùng
kíchthước,chứagiátrịx,yđãcho
XI,YI‐mảngchứagiátrịcầnnộisuy
Các<phươngpháp>gồm:‘nearest’,’linear’,’cubic’
3.Nộisuyvàmảngnhiềuchiều:
interp3 nộisuyhàm3biến
interpn nộisuyhàmnhiềubiến
§3.TÍCHPHÂNVÀPHƯƠNGTRÌNHVIPHÂN
1.Tíchphân
:Đểtínhtíchphântadùnghàmquad(tínhtíchphântheophương
phápSimpson)vàhàmquadl(tínhtíchphânbằngphươngphápLobatto).
Vídụ(lưutrongct2_1.m):
f=inline(ʹ1./((x‐0.3).^2+0.01)+1./((x‐0.9).^2+0.04)‐6ʹ);
q=quad(f,0,1)
q=
29.8583
r=quadl(f,0,1)
r=
29.8583
Vídụ(lưutrongct2_2.m)
y=sin(x)
quad(‘sin’,0,pi)
ans=
2.00001659104794
quadl(ʹsinʹ,0,pi)
ans=
1.99999999999989
Tacũngcóthểdùngphươngpháphìnhthanhđểtínhtíchphân:
Vídụ(lưutrongct2_3.m):
y=sin(x)
x=[0:pi/100:pi]];
y=sin(x);
34
trapz(x,y)
ans=
1.99983550388744
2.Viphânsố
:Đểtínhviphântadùngdiff
Vídụ:
a=[1425748];
diff(a)
ans=
3‐232‐34
3.Phươngtrìnhviphân
:Phươngtrìnhviphâncấpcaoy
(n)
=f(t,y,y’,..,y
(n‐1)
)
cóthểđưavềhệphươngtrìnhviphâncấp1bằngcáchđặty
1=y;y2=y’,..,
yn=y
(n‐1)
.Nhưvậy:
)y.,,.y,y,t(fy
yy
yy
n21n
32
21
=
′
=
′
=
′
làhệcónphươngtrìnhviphâncấp1.
Vídụ:
y’’’‐3y”‐y’y=0vớiy(0)=0y’(0)=1y”=‐1
đượcbiếnđổithành
1233
32
21
yyy3y
yy
yy
+=
′
=
′
=
′
vớiđiềukiệnđầu:y
1(0)=0y2(0)=1y3(0)=‐1
ĐểnhậpphươngtrìnhnàyvàoMATLABtadùngM‐filef.mnhưsau:
functiondy=f(t,y);
dy=[y(2);y(3);3*y(3)+y(3)*y(1)];
vàgiảiphươngtrìnhbằnglệnh:
[t,f]=solver(‘file’,tspan,y0)
với “file”làM‐filechứaODE
tspanlàvectơ[t0tfinal]xacđịnhkhoảngtìmnghiệm
y0làvectơgiátrịđiềukiệnđầu.
solver là cách giải, thường dùng phương pháp Runge‐Kutta bậc
2/3(ode23)hay4/5(ode45)
35
[t,y]=ode45(‘f’,[01],[0;1;‐1])
Mỗihàngtrongvectơnghiệmtươngứngvớimộtthờiđiểmtrongvectơcộtt.
Như vậy trong ví dụ trên, y(:,1) là nghiệm, y(:,1) làđạo hàm bậc nhất của
nghiệmvày(:,2)là
đạohàmbậchaicủanghiệm.
Vídụ:TìmdòngquađộkhiđóngmạchRCnốitiếpvàonguồnmộtchiềubiết
tíchsốRC=0.1,điệnápnguồnlà10Vvàđiệnápbanđầutrêntụlà2V.
Phươngtrìnhcủamạ
chlà:
e(t)=RC
C
C
u
dt
du
+
Thaysốvàotacó:
0.1u′+u=10
u′=‐10u+100
TacócáclệnhMATLABđểtạohàm:
functionuc=rc(t,u)
uc=‐10*u+100;
vàgiảibàitoán:
[t,u]=ode45(ʹrcʹ,[04],2);
plot(t,u,ʹ‐oʹ)
§4.ĐẠISỐMATRẬN
1.PhântíchCholesky:PhươngphápCholeskyphântíchmatrậnAxácđịnh
dương thành tích của hai ma trận A=R’*RvớiRlàmatrậntamgiác trên.
MuốnnhậnđượcmatrậnRtadùnghàmchol(A).
Vídụ:
n=5;
X=pascal(n)
X=
11111
12345
1361015
14102035
15153570
R=chol(X)
2.PhântíchLU:TaphântíchmatrậnA=L*UtrongđóLlàmatrậntamgiác
dướivàUlàmatrậntamgiáctrên.Taviết[L,U]=lu(A).
Vídụ(lưutrongct2_4.m):
36
A=[
123
456
780]
[L,U]=lu(A)
3.PhântíchQR:TaphântíchmatrậnA=Q*RvớiQlàmatrậntrựcgiaovàR
làmatrậntamgiáctrên.
Vídụ(lưutrongct2_5.m):
A=[
123
456
789
101112]
[Q,R]=qr(A)
4.Luỹthừa:NếucómatrậnAvuôngvàsốp>0thìA^plàtíchplầncủaA:
Y=A^2
5.Giátrịriêngvàvectơriêng:eig(A)
[d,r]=eig(A)
6.Quaymatrận
:b=rot90(a)
a=[210;‐25‐1;346]
a=
210
‐25‐1
346
b=rot90(a)
b=
0‐16
154
2‐23
7.Đảomatrận:fliplr(a)đảomatrậntừtráisangphải
c=fliplr(a)
c=
37
012
‐15‐2
643
flipud(a)đảomatrậntừtrênxuốngdưới
d=flipud(a)
d=
346
‐25‐1
210
8.Cáchàmxửlímatrậnkhác:
reshape(a,m,n)địnhdạnglạimatrậnavớisốhàngmớimvàsốcộtmới
n
a=[123;567;891];
reshape(a,1,9)
ans=
158269371
diag(a)lấycácphầntửtrênđườngchéochínhcủamatrậnavàlưuvào
mộtvectơ
diag(a,k)chọnđườngchéotuỳtheogiátrịcủak
k=0‐chọnđườngchéochính
k>0‐chọnđườngchéothứktrênđườngchéochính
k<0‐chọnđườngchéothứkdướiđườngchéochính
a=
123
567
891
v=diag(a,1)
v=
2
7
a=diag(v)n ếuvlàvectơthìalàmatrậnvuôngvớivlàđườngchéo
chính
b=triu(a)tạora matrậnbcùngcỡvớimatrậna,chứacácphầntửcủa
ma trận a nằm trênđường chéo chính và phía trênđường chéo chính. Các
phầntửkhácbằng0.
a=[123;456;789]
38
a=
123
456
789
b=triu(a)
b=
123
056
009
b=triu(a,k)tạoramatrậnbcùngcỡv ớimatrậna,chứacácphầntửcủa
matrậnangaytrênđườngchéovàphíatrênđườngchéochính.Cácphầntử
khácbằng0.
b= tril(a)tạoramatrậnbcùngcỡvớimatrậna,chứacácphầntửcủa
matrậnanằmdướiđườngchéochính.Cácphầntửkhácbằng0.
b=tril(a,k)tạoramatrậnbcùngcỡvớimatrậna,chứacácphầntửcủa
matrậnangaytrênđườngchéovàphíadướiđườngchéothứk.Cácphầntử
khácbằng0.
b=tril(a,‐1)
b=
000
400
780
§5.ĐATHỨC
1.Cáchàmxửlíđathức
:
conv nhânđathức
deconv chiađathức
poly tìmđathứccónghiệmđãcho
polyder đạohàmđathức
polyfit xấpxỉbằngđathức
polyval tínhtrịcủađathức
polyvalm tínhtrịma
trậnđathức
roots tìmnghiệmcủađathức
2.Bi ểudiễnđathức:MATLABbiểudiễnđathứcnhưlàmộtvectơhàngchứa
cáchệsốcủađathứctheothứtựsốmũgiảmdần
Vídụ: P(x)=x
3
–2x–5
39
ĐểnhậpđathứcnàyvàoMATLABtaviết:
p=[10–2–5]
3
.Nghiệmcủađathức:Đểtìmnghiệmcủađathứctadùnghàmroots
Vídụ: roots(p)
ans=
2.0946
‐1.0473+1.1359i
‐1.0473‐1.1359i
4.Đathứcđặctính:ChomatrậnA,hàmpolyxácđịnhđathứcđặctínhcủa
matrậnA
Vídụ: a=[123;345;456]
a=
123
345
456
poly(a)
ans=
1.0000‐11.0000‐9.0000‐0.0000
5.Tínhtrịđathức
:Đểtínhtrịcủađathứctạix=x0tadùnghàmpolyval(p)
Vídụ: polyval(p,0.2)
ans=
‐5.3920
Tacóthểtínhtrịcủamatrậnđathức.Trongtrườnghợpđóđathức
P(x)=x
3
–2x–5
trởthành:P(X)=X
3
–2X–5IvớiXlàmatrậnvuôngvàIlàmatrậnđơnvị.
Vídụ: X=[245;‐103;715]
X=
245
‐103
715
Y=polyvalm(p,X)
Y=
377179439
11181136
490253639
40
6.Nhânvàchiađathức
:Chođathứca=x
2
+2x+3vàđathứcb=4x
2
+5x+6.
Đểtínhtích2đathứctaviết:
a=[123];b=[456];
c=conv(a,b)
c=
413282718
Đểtínhthươnghaiđathứctaviết
[q,r]=deconv(c,a)
q=
456
r=
00000
Trongđóqlàthươngnguyêncònrlàphầndư.
7.Đạohàmđathức:Tínhđạohàmđathứcbằnghàmpolyder
q=polyder(p)
q=
30‐2
Đểtínhđạohàmcủatíchhaiđathứcavàbtaviết
c=polyder(a,b)
c=
16395627
8.Xấpxỉbằngđathức
:Giảsửtacómộtloạtsốliệunhậnđượctừthựcnghiệm
vàmuốnxấpxỉchúngbằngmộthàmdạngđathứctheophươngphápbình
phươngbénhấtthìtadùnghàm
polyfit(x,y,n)vớix,ylàcácvectơchứacác
giátrịđođượcvànlàbậccủađathứcxấpxỉ.
Vídụ: x=[12345];
y=[5.543.1128290.7498.4];
p=polyfit(x,y,3)
p=
‐0.191731.5821‐60.326235.3400
41