Tải bản đầy đủ (.pdf) (37 trang)

Chương 5: Symbolic math toolboxes

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (393.04 KB, 37 trang )

CHNG5:SYMBOLICMATHTOOLBOXES

§1.KHÁINIMCHUNG
 Symbolic Math Toolboxes kt hp tính toán bng ch vào môi trng
MATLAB.Cáctoolboxnàybsungcáctiníchsvàđthvicáckiutính
toántoánhckhácnhau.

Tiních
Nidung
Calculusđo hàm, tích phân, gii hn, tng và chui
Taylor
LinearAlgebra nghchđo,đnhthc,giátrriêng,phântíchvà
dngchínhtccamatrn.
Simplification phngpháprútgncácbiuthcđis
SolutionofEquations giibngchvàbngscácphngtrìnhđis
vàviphân
VariablePrecision
Arithmetic
đánhgiáđchínhxáccacácbiuthcđis
Transform binđiLaplace,Fourriervàz
Special Mathematical
Function
cáchàmtoánhcđcbitcacácngdngtoán
hckinhđin

ĐnglctínhtoánnmdicáctoolboxlànhânMaple,mththng
tínhtoánđcpháttrinđutiêntrngđihcWaterloo,Canadavàsau
đó ti Eidgenroessiche Technische Hochschule Zurich, Thu sĩ. Mapleđc
th
ngmihoávàhtrcacôngtyWaterlooMaple.



§2.KHIĐNGTOOLBOX
1.Cácđitngch:Trongphnnàychúngtasxemxétcáchtovàdùng
cácđitngch.Chúngtacũngs
xemxétcácbinchmcđnh.Symbolic
MathToolboxđnhnghĩamtkiudliuMATLABmigilàđitngch
haysym.Bêntrong,mtđitngchlàmtcutrúcsliu
mànólubiu
dinchuicáckít.SymbolicMathToolboxdùngcácđitngchđbiu
dincácbinch,cácbiuthcch,cácmatrnch.

2.Tocácbi
nvàcácbiuthcch:Lnhsymchophéptaxâydngcácbin
vàcácbiuthcch.Vídlnh:

85
x=sym(x)
a=sym(alpha)
toracácbinchlàxvàavixlàxvàalàalpha.
 Gi s ta mun ta mun dùng bin ch đ biu din t l vàng
2
51 +
=ρ .Tadùnglnh:
rho=sym((1+sqrt(5))/2)
Bâygitacóththchiêncácphéptoánkhácnhauvirho.Víd:
f=rho^2rho1
 f=
(1/2+1/2*5^(1/2))^23/21/2*5^(1/2)
Tarútgnbiuthc:
 simplify(f)
 ans=

0
Bâygigistamungiiphngtrìnhbc2 c
bxaxf
2
+
+= .Phátbiu:
f=sym(a*x^2+b*x+c)
gán biu thc ch ax
2
+ bx + c cho bin f. Tuy nhiên trong trng hp này
SymbolicMathToolboxkhôngtoracácbintngngvicácshnga,b,
cvàxtrongbiuthc.Đthchincácphéptoánbngch(vídtíchphân,
đohàm,thaythv.v)trênftaphitocácbinmtcáchrõràng,nghĩalàcn
vit:
a=sym(a)
b=sym(b)
c=sym(c)
x=sym(x)

hayđnginlà:
symsabcx
Nói chung là ta có th dùng sym hay symsđto các bin ch nhng nên
dùngsymsđtitkimthigian.

2.Binđigiasvàch:
 a.Tocácbinthcvàphc:Lnhsymchophéptamôtcácthuctính
toánhccacácbinchbngcáchdùngtuchnreal.Phátbiu:
x=sym(x,real);
y=sym(y,real);
hayhiuquhn:


86
symsxyreal
z=x+i*y
torabinchxvàycóthuctínhlàsthc.Đcbit:
f=x^2+y^2
thcslàskhôngâm.Nhvyzlàbinphcvàcáclnh:
conj(x)
conj(z)
expand(z*conj(z))
choktqu:
returnthecomplexconjugatesofthevariables
x
xi*y
x^2+y^2
Lnhconjlàtoánttosphcliênhp.
Đxóathuctínhrealcaxtadùnglnh:
symsxunreal
hay:
x=sym(x,unreal)
Lnhclearxkhôngxoáthuctínhsrealcax.
b.Tocáchàmtrutng:Nutamuntomthàmtrtng(nghĩalà
mthàmkhôngxácđnh)f(x)cndùnglnh:
f=sym(f(x))
Khinàyfhotđngnhlàf(x)vàcóthxlíbngcáclnhtoolbox.Vídđ
tínhviphânbc1tavit:
df=(subs(f,x,x+h)–f)/h
hay
symsxh
df=(subs(f,x,x+h)–f)/h

trv:
df=
(f(x+h)f(x))/h
ngdngnàycahàmsymsrthuíchtrongbinđiFourrier,Laplacevà
z.
c.DùngsymđtruycpcáchàmcaMaple:Tacóthtruycphàmgiai
thak!caMaplekhidùngsym.
kfac=sym(k!)
Đtính6!hayk!tavit(lutrongct5_1.m):

87
symskn
subs(kfac,k,6)
ans=
720
subs(kfac,k,n)
ans=
n!

haynutính12!tacũngcóthvit:
prod(1:12)
d.Vídtomatrnch:Mtmatrnvònglàmatrnmàhàngsaucó
đcbngcáchdchcácphntcahàngtrcđi1ln.Tatomtmatrn
vòngAbngcácphnta,bvàc:
symsabc
A=
[abc;bca;cab]
ktqu:
A=
[a,b,c]

[b,c,a]
[c,a,b]
DoAlàmatrnvòngtngmihàngvàctnhnhau:
sum(A(1,:))
ans=
a+b+c
sum(A(1,:))==sum(A(:,2))
ans=
1
BâygitathayA(2,3)bngbetavàbbngalpha:
 symsalphabeta
A(2,3)=beta;
A=subs(A,b,alpha)
A
=
[a,alpha,c]
[alpha,c,beta]
[c,a,alpha]
Tvídnàytathydùngcácđitngchcũngtngtnhdùngstrong
MATLAB.

88
e.Binchmcđnh:Khidùngcáchàmtoánhc,vicchncácbinđc
lpthngrtrõràng.Vídxembngsau:

Hàmtoánhc LnhMATLAB
f=xn

f=x^n
g=sin(at+b) g=sin(a*t+b)

h=Jv(z) h=besselj(nu,z)

Nutatìmđohàmcacáchàmnàynhngkhôngmôtbinđclp
(nghĩalàđohàmtheobinnào)thìktqulà:
f’=nxn
1

g=acos(at+b)
h=Jv(z)(v/z)Jv+1(z).
Nhvycácbinđclplàx,tvàz.MATLABhiucácbinđclplà
cácchthngvànmcuibngchcáinhx,y,z.Khikhôngthycácch
cáinày,MATLABstìmchgnnhtvàcoiđólàbinđclp.Cácbinkhác
nhn,a,bvàvđccoilàhng haythông s.Tuynhiên tacó thlyđo
hàmcaftheonbngcáchvitrõbinđclpra.Tadùngcáclnhsauđto
racáchàm(lutrongct5_2.m):
symsabnnutxz
f=x^n;
g=sin(a*t+b);
h=besselj(nu,z);
Đđohàmhàmftavit:
 diff(f);
 ans=
  x^n*n/x

Trongvídtrênxlàbinđclp.Numuntínhđohàmcaftheontacn
vit:
diff(f,n)
 ans=
  x^n*log(x)


4.Tocáchàmtoánhcbngch
:
a.Dùngcácbiuthcch:Cáclnh:
symsxyz

89
r=sqrt(x^2+y^2+z^2)
t=atan(y/x)
f=sin(x*y)/(x*y)
toracácbiuthcchr,tvàf.Tacóthdùngcáclnhdiff,int,subshaycác
lnhSymbolicMathToolboxkhácđxlícácbiuthcnhvy.
b.TocácMfile:Mfilechophéptadùngcáchàmtngquáthn.Víd
tamuntorahàmsinc=sin(x)/xtasvitmtMfile(sinc.m)cónidung
nhsau:
functionz=sinc(x)
ifisequal(x,sym(0))
z=1;
else
z=sin(x)/x;
end
Tacóthmrngcácvídnhvychocáchàmvàbinkhácnhau.

§3.TÍNHTOÁN
1.Đohàm:Tatobiuthcch:
symsax
f=sin(a*x)
Vythì:
df=diff(f)
tínhđohàmcahàmf(x)theox.Ktqulà:
df=

cos(a*x)*a
Đtínhđohàmcaftheoatavit:
dfa=diff(f,a)
ktqu:
dfa=
cos(a*x)*x

Hàmtoánhc LnhMATLAB
f=xn
f’=nxn
1
f=x^n
diff(f)haydiff(f,x)
g=sin(at+b)
g’=acos(at+b)
g=sin(a*t+b)
diff(g)haydiff(g,t)

90
h=Jv(z)
h’ = Jv(z)(v/z)
Jv+1(z)
h=besselj(nu,z)
diff(h)haydiff(h,z)

Đtínhđohàmbc2caftheoxvàatavit:
diff(f,2)
ans=
sin(a*x)*a^2
diff(f,x,2)

ans=
sin(a*x)*x^2
Hàmdiffcóthdùngđislàmatrn.Trongtrnghpnàyđohàmđc
thchintrêntngphnt.Víd:
symsax
A=[cos(a*x),sin(a*x);sin(a*x),cos(a*x)]
ktqu:
A=
[cos(a*x), sin(a*x)]
[sin(a*x), cos(a*x)]
lnh:
dy=diff(A)
choktqu:
dy=
[sin(a*x)*a, cos(a*x)*a]
[cos(a*x)*a, sin(a*x)*a]
TakhosátbinđittođEuclid(x,y,z)sangtođcu(r,λ,ϕ)thchin
bngcáccôngthc:
x=rcosλcosϕ
y=rcosλsinϕ
z=rsinλ
Đtính matrn JacobiJcaphép binđinày tadùng hàmjacobian.Đnh
nghĩatoánhccaJlà:
),,r(
)z,y,x(
J
ϕλ∂

= 
Đ d vit ta dùng kí t l thay cho λ và f thay cho ϕ. Các lnh (lu trong

ct5_5.m):
symsrlf

91
x=r*cos(l)*cos(f);
y=r*cos(l)*sin(f);
z=r*sin(l);
J=jacobian([x;y;z],[rlf])
chotaktqu:
J=
[
cos(l)*cos(f), –r*sin(l)*cos(f),–r*cos(l)*sin(f)]
[
cos(l)*sin(f), –r*sin(l)*sin(f), r*cos(l)*cos(f)]
[sin(l),  r*cos(l),   0]
vàlnh:
detJ=simple(det(J))
cho:
detJ=
–cos(l)*r^2
Chúýlàđisthnhtcahàmjacobianphilàvectctvàđisthhai
làvecthàng.HnnadođnhthccamatrnJacobianlàbiuthclng
giáckháphctpnêntadùnglnh
simpleđthaythvàrútgn.
Bngsautnghphàm
diffvàhàmjacobian

Toánttoánhc LnhMATLAB
f=exp(ax+b) symsabx
f=exp(a*x+b)

dx
d
f

diff(x)hay
diff(f,x)
da
d
f

diff(f,a)
ad
fd
2
2

diff(f,a,2)
r=u
2
+v
2
t=arctan(v/u)
symsrtuv
r=u^2+v^2
t=atan(v/u)
)v,u(
)t,r(
J



=

J=jacobian([r;t],[u,v])

2.Giihn:Đohàmcamthàmlàgiihnsauđâynunótnti:
h
)x(f)hx(f
lim)x(f
0h
−+
=




92
Symbolic Math Toolbox cho phép gii hn ca mt hàm mt cách trc tip
hn.Lnh:
symshnx
dc=limit((cos(x+h)–cos(x))/h,h,0)
choktqu:
dc=
–sin(x)
và:
limit((1+x/n)^n,n,inf)
cho:
ans=
exp(x)
minh ho 2 trong s các gii hn quan trng ca toán hc:đo hàm(trong
trnghpcosx)vàhàmmũ.Trongkhinhiugiihn:

)x(
flim
ax→

là“haiphía”(nghĩalàktqunhnhauchodùxtintibênphihaybêntrái
caa)licónhnghàmgiihnphivàtráikhácnhau.Dođó3giihn:
x
1
lim,
x
1
lim,
x
1
lim
0x0x0x +→−→→

cho3ktqukhácnhau:khôngxácđnh,
∞và+∞
TrongtrnghpkhôngtntigihnSymbolicMathToolboxtrvktqu
NaN.Víd:
limit(1/x,x,0)
cho:
ans=
NaN
Lnh:
limit(1/x,x,0,left)
cho:
ans=
–inf

Lnh:
limit(1/x,x,0,right)
cho:
ans=
inf
Nhvylimit(f)tngđngvilimit(f,x,0).Bngsauchocácgiihn:

93
Hàmtoánhc LnhMATLAB
)x(flim
0x→

limit(f)
)x(flim
ax→

limit(f,x,a) hay
limit(f,a)
)x(flim
ax −→

limit(f,x,a,’left’)
)x(flim
ax +→

limit(f,x,a,’right’)

3.Tíchphân:
a.Cácvnđchung:Nuflàmtbiuthcchthìint(f)tìmmtbiu
thckhácFsaochodiff(F)=f.Nhvyint(f)chotatíchphânbtđnhcaf.

Tngtnhđohàmint(f,v)lytíchphântheobinđclpv.Tacóbng
sau:

Hàmtoánhc LnhMATLAB
1n
x
dxx
1n
n
+
=
+


int(x^n)hay
int(x^n,x)

π
=
2
0
1dx)x2sin( 
int(sin(2*x),0,pi/2)hay
int(sin(2*x),x,0,pi/2)
g=cos(at+b)

+= )batsin(
a
1
dt)t(g 

g=cos(a*t+b)
int(g)hay
int(g,t)
)z(Jdz)z(J
01
−=


int(besselj(1,z)hay
int(besselj((1,z),z)

KhiMATLABkhôngtìmđctíchphânnóvitlilnhđãnhpvào.
b.Tíchphânvihngsthc:Mttrongcácvnđkhitínhtíchphânlà
giátrcacácthôngs.Taxéthàm .Hàmnàyrõrànglàcógiátrdng
vimikvàxvàcódnghìnhchuông.Giátrcahàmtinđn0khix→±∞
vimisthck.Talyvíd
2
)kx(
e

2
1
k = vàvđthcahàmbngcáclnh(
lutrong
ct5_6.m):
symsx
k=sym(1/sqrt(2));
f=exp(–(k*x)^2);
ezplot(f)


94
TuynhiênnhânMaplekhôngcoik
2
vàx
2
lànhngsdngmàchlàcácbin
hìnhthc,khôngcóthuctínhtoánhc.Dovykhitính bngcác
lnh:
dxe
2
)kx(


∞−

symsxk;
f=exp(–(k*x)^2);
int(f,x,–inf,inf)
ktquslà:
Definiteintegration:Cantdetermineifthe
integralisconvergent.
Needtoknowthesignof>k^2
Willnowtryindefiniteintegrationandthentakelimits.
Warning:Explicitintegralcouldnotbefound.
ans=
int(exp(–k^2*x^2),x=–inf..inf)
TrongphnsauchúngtasxétcáchlàmchoMATLABhiurngklàsthc
vàdođócoik
2
làsdng.

c.Cácbinthctheosym:ChúýlàMaplekhôngthxácđnhđcdu
cak
2
.Vychúngtagiiquytkhókhănnàynhthnào?Câutrlilàlàm
choktrthànhsthcbngdùnglnhsym.Mtđcđimcóíchcasymgi
là tu chn real cho phép ta khai báo k là bin thc. Do vy tích phân trên
hoàntoàntínhđctrongtoolboxnhcáclnh:
symskreal
int(f,x,–inf,inf)
ktqulà:
ans=
signum(k)/k*pi^(1/2)
ChúýlàkbâygilàđitngchtrongvùnglàmviccaMATLABvàlà
binthctrongvùnglàmviccaMaple.Khinhplnh:
 cleark
tachxoáđcktrongvùnglàmviccaMATLAB.Munlàchokkhôngcòn
làsthctrongvùnglàmviccaMapletaphidùnglnh:
symskunreal.
Tacóbngsau:




95
Hàmtoánhc LnhMATLAB
kx
e)x(f

= 
symskx

f=exp(k*x)

dx)x(f 
int(f)hayint(f,x)

dk)k(f 
int(f,k)

1
0
dx)x(f 
int(f,0,1)hay
int(f,x,0,1)
2
)kx(
e)x(g

= 
symskxreal
g=exp((k*x)^2)


∞−
dx)x(g 
int(g,inf,inf)hay
int(g,x,inf,inf)

4.Tínhtng: Ta cóth tính tng biuthcch khi chúngtn tibng cách
dùnglnhsymcum.Vídchui:
⋅⋅⋅+++

22
3
1
2
1
1 
chotnglàπ
2
/6cònchui:
 1+x
2
+x
3
+...
chotnglà1/(1x).Cáctngđctínhnhsau(lutrongct5_7.m):
symsxk
s1=symsum(1/k^2,1,inf)
s2=symsum(x^k,k,0,inf)
s1=
1/6*pi^2
s2=
1/(x1)

5.ChuiTaylor
:Chohàmf(x).Phátbiu:
T=taylor(f,8)
choktqu:
T=
1/9+2/81*x^2+5/1458*x^4+49/131220*x^6
làkhaitrinTaylorcaf(x)lâncnx=0(khaitrinMacLaurin)cócha8s

hngkhác0.Phátbiu:
symsx
g=exp(x*sin(x))

96
t=taylor(g,12,2)
torakhaitrinTaylorcaf(x)tix=2vàchađn12shngkhác0.Tav
các hàm này lên cùng mtđth đ thyđc kh năng xp x ca chui
Taylorvihàmthcg(lutrongct5_8.m):
xd=1:0.05:3;
yd=subs(g,x,xd);
ezplot(t,[1,3]);
holdon;
plot(xd,yd,r.)
title(XapxiTaylor);
legend(Ham,Taylor)











Tipđótadùnglnh:
1 1.5 2 2.5 3
1

2
3
4
5
6
x
Xap xi Taylo r
Ham
Taylor
pretty(T)
đinktqudidngcácbiuthctoánhcdđc.

6.Tínhtoánmrng:Taxéthàm:
xcos45
1
)x(f
+
= 
Cáclnh:
symsx
f=1/(5+4*cos(x))
lubiuthcchđnhnghĩahàmf(x).
 SymbolicMathToolboxcungcpmtbcáclnhddùngđvđth
các biu ch, bao gm cácđng cong trong mt phng(ezplot), cácđng
đng mc(ezcontour và ezcontourf), các mt cong(ezsurf, ezsurfc, ezmesh và
ezmeshc),đthtrongtođcc(ezpolar)vàđngcongdidngthôngs

97
(ezplotvàezplot3)vàmtdidngthôngs(ezsurf).Trongphnnàychúng
taxemcáchdùnghàmezplotvđthhàmf(x).Đthcahàmnhsau:

Phmvimcđnhkhivđthcahàmlà[2π÷2π].Đchcthphmvi
vđthtadùnglnh:
ezplot(f,[ab])
Lúcnàyđthcahàmđcvtrongđon[a,b]
Bâygitatìmđohàmbc2caf(x):
f2=diff(f,2)
f2=
32/(5+4*cos(x))^3*sin(x)^2+4/(5+4*cos(x))^2*cos(x)

Tacóthnhplnh:
f2=diff(f,x,2).
Tavđthcaf2:
ezplot(f2)
axis([–2*pi2*pi–52])
Tđthtathyrnggiátrcaf”(x)nmtrongkhong[4,1].Giátrmaxvà
mincaf”(x)xuthintif”’(x)=0.Phátbiu:
f3=diff(f2);
cho
32/(5+4*cos(x))^3*sin(x)^2+4/(5+4*cos(x))^2*cos(x)
và:
pretty(f3)
cho:
234
3
))xcos(45(
)xsin(
4
))xcos(45(
)xcos()xsin(
96

))xcos(45(
)xsin(
384
+

+
+
+

Tarútgnf3vàvitlididngdđc:
f3=simple(f3);
pretty(f3)
Ktqulà:

4
22
))xcos(45(
)25)xcos(80)xcos(80)xsin(96)(xsin(
4
+
−++


Bâygitatìmcácgiátrzerocuf3bnglnh:
z=solve(f3)
ktquchotamatrn:

98

×