Giáo trình Matlab cơ bản - Chương 2: Sử dụng Symbolic Math Toolbox
Ch−¬ng 2 : sö dông symbolic math toolbox
§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
Calculus
Linear Algebra
Néi dung
®¹o hµm,tÝch ph©n,giíi h¹n,tæng vµ chuçi Taylor
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
Solution
Equations
ph−¬ng ph¸p rót gän c¸c biÓu thøc ®¹i sè
of gi¶i b»ng ch÷ vµ b»ng sè c¸c ph−¬ng tr×nh ®¹i sè vµ vi
ph©n
Variable-Precision
Arithmetic
Transform
Special
®¸nh gi¸ ®é chÝnh x¸c cña c¸c biÓu thøc ®¹i sè
biÕn ®æi laplace,fourrier vµ z
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
Mathematical
Function
§é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:
x = sym('x')
a = sym('alpha')
t¹o ra c¸c biÕn ch÷ lµ x vµ vµ a víi x lµ x vµ a lµ alpha.
1+ 5
Gi¶ sö ta muèn ta muèn dïng biÕn ch÷ ®Ó biÓu diÔn tØ lÖ vµng ρ =
.Ta dïng lÖnh:
2
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)
28
ans =
0
B©y giê gi¶ sö ta muèn gi¶i ph−¬ng tr×nh bËc 2 f = ax2 + bx + c .Ph¸t biÓu:
f = sym('a*x^2 + b*x + c')
g¸n biÓu thøc ch÷ ax2+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:
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:
29
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:
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)) % This is a logical test.
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]
30
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.
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 = x^n
f = xn
g = sin(at+b)
h = Jv(z)
g = sin(a*t+b)
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), vµ 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:
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
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 cã néi dung nh− sau:
function z = sinc(x)
%SINC The symbolic sinc function
% sin(x)/x. This function
% accepts a sym as the input argument.
if isequal(x,sym(0))
z = 1;
else
z = sin(x)/x;
end
31
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
f = xn
LÖnh MATLAB
f = x^n
diff(f) hay diff(f,x)
g = sin(a*t+b)
diff(g) hay diff(g,t)
h = besselj(nu,z)
f’ = nxn-1
g = sin(at+b)
g’ = acos(at+b)
h = Jv(z)
h’ = Jv(z)(v/z) - Jv+1(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]
32
[ -cos(a*x)*a,
-sin(a*x)*a]
Ta cã thÓ vec t¬ theo vec t¬ hµng.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ϕ vµ z= rsinλ.§Ó tÝnh ma trËn
Jacobi J cña phÐp biÕn ®æi nµy ta dïng hµm jacobian.§inh nghÜa to¸n häc cña J lµ:
∂(x,y,z)
∂(r,λ,ϕ)
J =
§Ó dÔ viÕt ta dïng kÝ tù l thay cho λ vµ f thay cho ϕ.C¸c lÖnh:
syms r l f
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),
[ cos(l)*sin(f),
[ sin(l),
-r*sin(l)*cos(f), -r*cos(l)*sin(f) ]
-r*sin(l)*sin(f),
r*cos(l),
r*cos(l)*cos(f)]
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
f = exp(ax + b)
LÖnh MATLAB
syms a b x
f = exp(a*x + b)
diff(x) hay
diff(f,x)
df
dx
df
diff(f,a)
da
d2f
diff(f,a,2)
d2a
r = u2 + v2
t = arctan(v/u)
syms r t u v
r = u^2 + v^2
t = atan(v/u)
J = jacobian([r ; t],[u , v])
∂(r,t)
J =
∂(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 :
33
f(x + h) − f(x)
′
f (x) = lim
h→0
h
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 :
lim f(x)
x→a
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:
1
1
1
lim , lim , lim
x→0
x→−0
x→+0
x
x
x
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) % Equivalently, limit(1/x)
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:
Hµm to¸n häc
LÖnh MATLAB
limit(f)
lim f(x)
x→0
limit(f,x,a) hay limit(f,a)
limit(f,x,a,’left’)
lim f(x)
x→a
lim f(x)
x→−a
34
limit(f,x,a,’right’)
lim f(x)
x→+a
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
xn+1
LÖnh MATLAB
int(x^n) hay
int(x^n,x)
xndx =
∫
n +1
π
int(sin(2*x),0,pi/2) hay
int(sin(2*x),x,0,pi/2)
2
sin(2x)dx = 1
∫
0
g = cos(at+b)
g = cos(a*t + b)
int(g) hay
int(g,t)
1
g(t)dt = sin(at + b)
∫
a
int(besselj(1,z) hay
int(besselj((1,z),z)
J1(z)dz = −J0 (z)
∫
Khi MATLAB kh«ng t×m ®−îc tÝch ph©n nã viÕt k¹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 e−(kx)2 .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
1
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ô k =
vµ vÏ ®å
2
thÞ cña hµm b»ng c¸c lÖnh:
syms x
k = sym(1/sqrt(2));
f = exp(-(k*x)^2);
ezplot(f)
Tuy nhiªn nh©n Maple kh«ng coi k2 vµ x2 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 e−(kx)2 dx b»ng c¸c lÖnh:
∫
−∞
syms x k;
f = exp(-(k*x)^2);
int(f,x,-inf,inf) % Equivalently, inf(f,-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 =
35
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 k2 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 k2.VËy
chóng ta gi¶i quyÕt khhã 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 % Be sure that x has been declared a sym.
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:
Hµm to¸n häc
LÖnh MATLAB
f(x) = e−kx
syms k x
f = exp(-k*x)
int(f) hay int(f,x)
f(x)dx
∫
int(f,k)
f(k)dk
∫
1
int(f,0,1) hay
int(f,x,0,1)
f(x)dx
∫
0
2
g(x) = e−(kx)
syms k x real
g=exp(-(k*x)^2)
int(g,-inf,inf) hay
int(g,x,-inf,inf)
∞
g(x)dx
∫
−∞
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 :
1
1
1+
+
+ ⋅⋅⋅
22 32
cho tæng lµ π2/6 cßn chuçi :
1 + x2 + x3 +. . .
cho tæng lµ 1/(1-x).C¸c tæng ®−îc tÝnh nh− sau:
syms x k
s1 = symsum(1/k^2,1,inf)
s2 = symsum(x^k,k,0,inf)
s1 =
36
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))
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 Taylá víi hµm thùc g:
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')
Xap xi Taylor
Ham
Taylor
6
5
4
3
2
1
1
1.5
2
x
2.5
3
TiÕp ®ã ta dïng lÖnh:
pretty(T)
®Ó in kÕt qu¶ d−íi d¹ng c¸c biÓu thøc to¸n häc dÔ ®äc.
6. C¸c vÝ dô kh¸c:Ta xÐt hµm:
1
f(x) =
5 + 4cosx
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).
37
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è (ezplot vµ ezplot3) va 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 vÞ 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:
1/(5+4 cos(x))
f2 = diff(f,x
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
-6
-4
-2
0
x
2
4
6
Ta vÏ ®å thÞ cña f2:
ezplot(f2)
axis([-2*pi 2*pi -5 2])
3
2
2
32/(5+4 cos(x)) sin(x) +4/(5+4 cos(x)) cos(x)
2
1
0
-1
-2
-3
-4
-5
-6
-4
-2
0
x
2
4
6
38
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:
sin(x)3
(5 + 4cos(x))4
sin(x)cos(x)
(5 + 4cos(x))3
sin(x)
(5 + 4cos(x))2
384
+ 96
− 4
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µ:
sin(x)(96sin(x)2 + 80cos(x) + 80cos(x)2 − 25)
4
(5 + 4cos(x))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:
z =
[
0]
10+3*19^(1/2))]
10+3*19^(1/2))]
[ atan((-255-60*19^(1/2))^(1/2) ,
[ atan(-(-255-60*19^(1/2))^(1/2),
[ atan((-255+60*19^(1/2))^(1/2)/(10-3*19^(1/2)))+pi]
[ -atan((-255+60*19^(1/2))^(1/2)/(10-3*19^(1/2)))-pi]
Mçi hµng lµ mét nghiÖm cña f”’(x).LÖnh:
format; % Default format of 5 digits
zr = double(z)
converts the zeros to double form.
zr =
Zero cua f3
0
0
3
0
2
2.4483
-2.4483
1
0
Nh− vËy ta ®· t×m ®−îc 5
nghiÖm.Tuy nhiªn ®å thÞ
cña f3 cho thÊy ta ch−a t×m
®ñ nghiÖm cña nã.
-1
-2
-3
-6
-4
-2
0
x
2
4
6
39
ezplot(f3)
hold on;
plot(zr,0*zr,'ro')
plot([-2*pi,2*pi], [0,0],'g-.');
title('Zeros of f3')
§iÒu nµy x¶y ra do f”’(x) chøa sè h¹ng sinx,b»ng 0 t¹i c¸c gi¸ trÞ nguyªn lÇn π nh−ng hµm
solve(sin(x)) l¹i chØ ®−a ra gi¸ trÞ 0 t¹i x = 0.Chóng ta cã thÓ nhËn ®−îc tÊt c¶ c¸c nghiÖm b»ng
c¸ch biÕn ®æi zr = [0 zr(4) pi 2*pi -zr(4)] b»ng c¸ch nh©n 2π vµ cã zr = [zr-2*pi zr zr+2*pi]
B©y giê ta vÏ zr ®· biÕn ®æi lªn ®å thÞ cña f3:
plot(zr,0*zr,'kx')
Zero cua f3
§iÓm 0 ®Çu tiªn cña f”’(x) t×m bëi
solve lµ t¹i x = 0.Chóng ta thay thÕ 0
3
vµo biÕn ch÷ trong f2:
f20 = subs(f2,x,0)
®Ó t×m gi¸ trÞ t−¬ng øng cña
f”(0).KÕt qu¶ lµ:
2
1
0
f20 =
0.0494
-1
-2
-3
Trªn ®å thÞ cña f”(x) gi¸ trÞ nµy chØ
lµ cùc tiÓu ®Þa ph−¬ng.Ta thÓ hiÓn
®iÒu nµy trªn ®å thÞ b»ng c¸c lÖnh:
clf
ezplot(f2)
-6
-4
-2
0
2
4
6
axis([-2*pi 2*pi -4.25 1.25])
Ve do thi f2 = f''(x)
ylabel('f2');
title('Ve do thi f2 = f''''(x)')
hold on
plot(0,double(f20),'ro')
text(-1,-0.25,'Local minimum')
KÕt qu¶ ®å thÞ nh− sau:
1
0
Local minimum
-1
-2
-3
-4
2
f
-6
-4
-2
0
x
2
4
6
Tõ ®å thÞ ta thÊy r»ng ®iÓm cùc tiÓu x¶y ra t¹i x gÇn ±π.Ta cã thÓ tÝnh chÝnh x¸c lµ diÓm cùc
tiÓu ®óng t¹i ±π b»ng c¸ch dïng c¸c lÖnh theo tr×nh tù sau.Tr−íc hÕt ta thay ±π vµo f”’(x):
simple([subs(f3,x,-pi),subs(f3,x,pi)])
Ve do thi f2 = f''(x)
1
40
0
KÕt qu¶:
ans =
[ 0, 0]
Nh− vËy x = ±π lµ ®iÓm ®Æc
biÖt cña f”’(x).Ta thÊy r»ng
x = ±π lµ ®iÓm cùc tiÓu
toµn côc cña f2.
m1 = double(subs(f2,x,-pi));
m2 = double(subs(f2,x,pi));
plot(-pi,m1,'go',pi,m2,'go')
text(-1,-4,'Global minima')
Gi¸ trÞ cùc tiÓu ®ã lµ:
[m1 m2]
ans =
-4 -4
C¸c ph©n tÝch trªn cho thÊy lµ ph¹m vi gi¸ trÞ cña f”(x) lµ tõ [ -4 ,1].Ta tiÕp tôc kiÓm tra c¸c
®iÓm 0 kh¸c cho bëi solve.Tr−íc hÕt ta t¸ch nghiÖm thø 4 trong z vµ g¸n nã cho mét biÕn riªng:
s = z(4)
vµ nhËn ®−îc kÕt qu¶:
s =
atan((-255+60*19^(1/2))^(1/2)/(10-3*19^(1/2)))+pi
Thùc hiÖn:
sd = double(s)
®Ó nhËn ®−îc gi¸ trÞ sè cña s
sd =
2.4483
Ta vÏ ®iÓm (s,f2(s) theo f2:
M1 = double(subs(f2,x,s));
plot(sd,M1,'ko')
text(-1,1,'Global maximum')
®Ó thÊy ®−îc lµ s lµ ®iÓm max.Gi¸ trÞ max nµy lµ M1 = 1.0051
B©y giê ta tÝch ph©n f”(x) hai lÇn b»ng lÖnh:
g = int(int(f2))
vµ cã kÕt qu¶:
g =
-8/(tan(1/2*x)^2+9)
41
§©y kh«ng ph¶i lµ hµm f(x) ta xÐt ban ®Çu.Sai kh¸c gi÷a g(x) vµ f(x) lµ:
d = f - g
cho ta:
d =
1/(5+4*cos(x))+8/(9+tan(1/2*x)^2)
pretty(d)
1
8
+
9 + tan(1/ 2 x)2
5 + 4cos(x)
Ta cã thÓ rót gän d b»ng lÖnh simple(d) hay simplify(d).C¶ hai cho kÕt qu¶:
ans =
1
§iÒu nµy minh ho¹ cho kh¸i niÖm lµ ®¹o hµm hµm f(x) hai lÇn vµ råi tÝch ph©n kÕt qu¶ hai lÇn
ta nhËn ®−îc mét hµm kh¸c víi f(x) bëi mét hµm tuyÕn tÝnh cña x.
Cuèi cïng tÝch ph©n f(x) mét lÇn ta cã:
F = int(f)
F =
2/3*atan(1/3*tan(1/2*x))
bao gåm c¶ hµm arctan.Nh− vËy F(x) lµ nguyªn hµm cña mét hµm liªn tôc nh−ng b¶n th©n l¹i lµ
hµm kh«ng liªn tôc mµ cã ®å thÞ nh− sau:
ezplot(F)
2/3 atan(1/3 tan(1/2 x))
1
0.5
0
-0.5
-1
-6
-4
-2
0
x
2
4
6
Hµm F(x) gi¸n ®o¹n t¹i ±π.
§4. Rót gän vµ thay sè
1. Rót gän biÓu thøc:Ta xÐt 3 biÓu thøc kh¸c nhau:
syms x
f = x^3-6*x^2+11*x-6
g = (x-1)*(x-2)*(x-3)
42
h = x*(x*(x-6)+11)-6
Thùc hiÖn c¸c lÖnh:
pretty(f), pretty(g), pretty(h)
ta nhËn ®−îc:
f = x3 - 6x2 +11x-6
g = (x-1)(x-2)(x-3)
h = x(x(x-6)+11)-6
C¶ 3 biÓu thøc nµy lµ c¸c d¹ng biÓu diÔn to¸n häc kh¸c nhau cña cïng mét hµm to¸n häc-®ã lµ
®a thøc bËc 3 theo x.Mçi mét d¹ng thÝch hîp víi mét d¹ng tÝnh to¸n.D¹ng thø nhÊt f lµ d¹ng
chung nhÊt th−êng ®−îc dïng biÓu diÔn ®a thøc.Nã ®¬n gi¶n lµ mét tæ hîp tuyÕn tÝnh cña c¸c
sè mò cña x.D¹ng thø 2,hµm g,lµ d¹ng ph©n tÝch thµnh thõa sè.Nã biÓu diÔn nghiÖm cña ®a
thøc.Tuy nhiªn kh«ng phai ®a thøc nµo còng cã nghiÖm,nghÜa lµ cã thÓ ph©n tÝch thµnh thõa
sè.D¹ng thø 2 lµ d¹ng Horner cña ®a thøc.Nã rÊt tiÖn dïng ®Ó tÝnh trÞ sè cña ®a thøc t¹i mét gi¸
trÞ nµo ®ã cña x.
Symbolic Math Toolbox cung cÊp mét sè hµm dïng ®Ó biÕn ®æi c¸c biÓu thøc ®¹i sè vµ
l−îng gi¸c thµnh c¸c biÓu thøc ®¬n gi¶n h¬n.Chóng gåm: collect,expand, horner, factor,
simplify, vµ simple.
a.collect:Ph¸t biÓu:
collect(f)
xem f nh− mét ®a thøc gåm c¸c biÕn ch÷ x vµ gép tÊt c¶ c¸c hÖ cïng bËc cña x.§èi sè thø 2 cña
chØ râ biÕn ®Þnh gép nÕu cã nhiÒu iÕn trong biÓu th−c.Sau ®©y lµ mét sè vÝ dô:
f
collect(f)
x^3-6*x^2+11*x-6
x^3-6*x^2+11*x-6
2*x*t+t
(x-1)(x-2)(x-3)
x*(x*(x-6)+11)-6
(1+x)*t + x*t
b.expand:Ph¸t biÓu:
expand(f)
khai triÓn biÓu thøc.Sau ®©y lµ mét sè vÝ dô:
f
expand(f)
a*(x+y)
a*x+a*y
(x-1)*(x-2)*(x-3)
x*(x*(x-6)+11)-6
exp(a+b)
x^3-6*x^2+11*x-6
x^3-6*x^2+11*x-6
exp(a) + exp(b)
cos(x+y)
cos(3*acos(x))
cos(x)*cos(y)-sin(x)*sin(y)
4*x^3-3*x
c.horner:Ph¸t biÓu:
horner(f)
biÕn ®æi mét ®a thøc thµnh d¹ng Horner hay biÓu diÔn lång nhau.VÝ dô:
f
horner(f)
x^3-6*x^2+11*x-6
1.1+2.2*x+3.3*x^2
-6+(11+(-6+x)*x)*x
11/10+(11/5+33/10*x)*x
43
d.factor:NÕu f lµ ®a thøc hÖ sè h÷u tØ,ph¸t biÓu:
factor(f)
biÓu diÔn f nh− lµ tÝch cña c¸c ®a thøc cã bËc thÊp h¬n víi hÖ sè h÷u tû.VÝ dô:
f
factor(f)
x^3-6*x^2+11*x-6
x^3–6*x^2+11*x–5
x^6+1
(x-1)*(x-2)*(x-3)
x^3–6*x^2+11*x–5
(x^2+1)*(x^4–x^2+1)
§©y lµ mét vÝ dô kh¸c vÒ ph©n tÝch ®a thøc xn +1 thµnh thõa sè:
syms x;
n = 1:9;
x = x(ones(size(n)));
p = x.^n + 1;
f = factor(p);
[p; f].'
tr¶ vÒ ma trËn víi c¸c ®a thøc ë cét thø nhÊt vµ c¸c thõa sè ë c«th thø 2:
[
x+1,
x+1 ]
[ x^2+1,
[ x^3+1,
[ x^4+1,
[ x^5+1,
[ x^6+1,
x^2+1 ]
(x+1)*(x^2-x+1) ]
x^4+1 ]
(x+1)*(x^4-x^3+x^2-x+1)]
(x^2+1)*(x^4-x^2+1) ]
[ x^7+1, (x+1)*(1-x+x^2-x^3+x^4-x^5+x^6) ]
[ x^8+1,
[ x^9+1,
x^8+1 ]
(x+1)*(x^2-x+1)*(x^6-x^3+1) ]
Hµm factor cã thÓ ph©n tÝch c¸c ®èi t−îng ch÷ cã chøa sè nguyªn thµnh thõa sè.VÝ dô:
one = '1'
for n = 1:11
N(n,:) = sym(one(1,ones(1,n)));
end
[N factor(N)]
cho kÕt qu¶:
[
[
[
[
[
[
[
[
[
1,
11,
111,
1 ]
(11) ]
(3)*(37) ]
(11)*(101) ]
(41)*(271) ]
1111,
11111,
111111, (3)*(7)*(11)*(13)*(37) ]
1111111,
11111111,
111111111,
(239)*(4649) ]
(11)*(73)*(101)*(137) ]
(3)^2*(37)*(333667) ]
[ 1111111111, (11)*(41)*(271)*(9091)]
[ 11111111111, (513239)*(21649) ]
44
e.simplify:Hµm simplify lµ mét hµm m¹nh,dïng rót gän c¸c biÓu thøc.Sau ®©y lµ mét sè
vÝ dô:
f
x*(x*(x-6)+11)-6
(1-x^2)/(1-x)
simplify(f)
x^3-6*x^2+11*x-6
x + 1
(1/a^3+6/a^2+12/a+8)^(1/3) ((2*a+1)^3/a^3)^(1/3)
syms x y positive
log(x*y)
log(x) + log(y)
exp(x) * exp(y)
besselj(2,x) - ...
2*besselj(1,x)/x +
besselj(0,x)
exp(x+y)
0
gamma(x+1)-x*gamma(x)
cos(x)^2 + sin(x)^2
0
1
f.simple: Hµm simple ®−a ra d¹ng ng¾n nhÊt cã thÓ cã cña mét biÓu thøc.Hµm nµy cã
nhiÒu d¹ng,mçi d¹ng tr¶ vÒ kÕt qu¶ kh¸c nhau.D¹ng:
simple(f)
hiÓn thÞ d¹ng ng¾n nhÊt.VÝ dô:
syms x
simple(cos(x)^2 + sin(x)^2)
ans =
1
Trong mét sè tr−êng hîp,¸p dông simple 2 lÇn ®Ó nhËn ®−îc hiÖu qu¶ rót gän cao h¬n.VÝ dô:
syms a
f = (1/a^3+6/a^2+12/a+8)^(1/3);
simple(simple(f))
cho ta:
1/a+2
Trong khi lÖnh :
syms a
simple(f)
cho ta:
(2*a+1)/a
Hµm simple ®Æc biÖt cã hiÖu qu¶ trªn c¸c biÓu thøc l−îng gi¸c.Sau ®©y lµ mét sè vÝ dô:
f
simple(f)
1
3*cos(x)^2-1
cos(2*x)
cos(x)+i*sin(x)
exp(i*x)
cos(x)^2+sin(x)^2
2*cos(x)^2-sin(x)^2
cos(x)^2-sin(x)^2
cos(x)+(-sin(x)^2)^(1/2)
cos(x)+i*sin(x)
cos(3*acos(x))
4*x^3-3*x
45
2. Thay sè: Cã hai hµm dïng ®Ó thay trÞ lµ subexpr vµ subs
a. subexpr:LÖnh :
syms a x
s = solve(x^3+a*x+1)
gi¶i ph−¬ng tr×nh : x^3+a*x+1 = 0 theo x.
KÕt qu¶:
[
1/6*(-
108+12*(12*a^3+81)^(1/2))^(1/3)-2*a/(-108+12*(12*a^3+81)^(1/2))^(1/3)]
[
-1/12*(-108+12*(12*a^3+81)^(1/2))^(1/3)+a/(-
108+12*(12*a^3+81)^(1/2))^(1/3)+1/2*i*3^(1/2)*(1/6*(-
108+12*(12*a^3+81)^(1/2))^(1/3)+2*a/(-108+12*(12*a^3+81)^(1/2))^(1/3))]
[
-1/12*(-108+12*(12*a^3+81)^(1/2))^(1/3)+a/(-108+12*(12*a^3+81)^(1/2))^(1/3)-
1/2*i*3^(1/2)*(1/6*(-108+12*(12*a^3+81)^(1/2))^(1/3)+2*a/(-
108+12*(12*a^3+81)^(1/2))^(1/3))]
Dïng lÖnh pretty ®Ó nhËn ®−îc d¹ng dÔ ®äc h¬n:
[
[
[
[
[
[
1/3
a
- 2 -----
1/3
]
]
]
]
1/6 %1
%1
]
1/3
a
1/2 /
1/3
a \ ]
[- 1/12 %1 + ----- + 1/2 i 3 | 1/6 %1 + 2 ----- | ]
[
[
[
[
1/3
%1
|
1/3 | ]
%1 / ]
\
]
1/3
a
1/2 /
1/3
a \ ]
[- 1/12 %1 + ----- - 1/2 i 3
| 1/6 %1 + 2 ----- | ]
[
[
1/3
%1
|
1/3 | ]
\
%1 / ]
3
1/2
%1 := -108 + 12 (12 a + 81)
LÖnh pretty thõa kÕ kh¸i niÖm %n(n lµ mét sè nguyªn) tõ Maple ®Ó ®Þnh nghÜ biÓu thøc con gÆp
hiÒu lÇn trong ®èi t−îng ch÷.Hµm subexpr cho phÐp ta l−u c¸c biÓu thøc con nµy còng nh− c¸c
®èi t−îng ch÷ ®−îc viÕt trong biÓu thøc con.C¸c biÓu thøc con ®−îc l−u trong mét ma trËn cét
gäi lµ sigma.
TiÕp tôc vÝ dô cña ta:
r = subexpr(s)
cho ta
sigma =
-108+12*(12*a^3+81)^(1/2)
r =
[
1/6*sigma^(1/3)-2*a/sigma^(1/3)]
[ -1/12*sigma^(1/3)+a/sigma^(1/3)+1/2*i*3^(1/2)*(1/6*sigma^(1/3)+2*a/sigma^(1/3))]
46
[ -1/12*sigma^(1/3)+a/sigma^(1/3)-1/2*i*3^(1/2)*(1/6*sigma^(1/3)+2*a/sigma^(1/3))]
ta thÊy r»ng subexpr t¹o biÕn signma rg vïng lµm viÖc cña MATLAB.
b.subs:Ta t×m gi¸ trÞ riªng vµ vec t¬ riªng cña ma trËn vßng A:
syms a b c
A = [a b c; b c a; c a b];
[v,E] = eig(A)
v =
[
1, -(a+(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)-b)/(a-c), -(a-(b^2-b*a-
c*b-c*a+a^2+c^2)^(1/2)-b)/(a-c)]
[
1, -(b-c-(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2))/(a-c), -(b-c+(b^2-b*a-
c*b-c*a+a^2+c^2)^(1/2))/(a-c)]
[
1,
1,
1]
E =
[
[
[
b+a+c,
0, (b^2-b*a-c*b-c*a+a^2+c^2)^(1/2),
0, 0, -(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)]
0,
0]
0]
Gi¶ sö ta muèn thay biÓu thøc kh¸ dµi:
(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)
trong v vµ E.Tr−íc hÕt ta dïng subexpr:
v = subexpr(v,'S')
cho ta kÕt qu¶:
S =
(b^2-b*a-c*b-c*a+a^2+c^2)^(1/2)
v =
[ -(a+S-b)/(a-c), -(a-S-b)/(a-c), 1]
[ -(b-c-S)/(a-c), -(b-c+S)/(a-c), 1]
[ 1, 1, 1]
Sau ®ã thay S vµo E:
E = subs(E,S,'S')
E =
[ S, 0, 0]
[ 0, -S, 0]
[ 0, 0, b+c+a]
B©y giê gi¶ sö ta muèn tÝnh v khi a = 10.Ta dïng lÖnh sau:
subs(v,a,10)
sÏ thay c¸c biÕn a trong v b»ng sè 10:
[ -(10+S-b)/(10-c), -(10-S-b)/(10-c), 1]
[ -(b-c-S)/(10-c), -(b-c+S)/(10-c), 1]
[ 1, 1, 1]
Chó ý lµ c¸c biÓu thøc cã S kh«ng bÞ ¶nh h−ëng g× c¶,nghÜa lµ biÕn a trong S kh«ng ®−îc thay
b»ng 10.Hµm subs lµ hµm h÷u Ých ®Ó thay thÕ nhiÒu gi¸ trÞ cña nhiÒu biÕn trong mét biÓu
thøc.Ta xem S.Gi¶ sö ngoµi viÖc thay a =10 ta còng muèn thay gi¸ trÞ b = 2 vµ c = 10 vµo biÓu
47
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Matlab cơ bản - Chương 2: Sử dụng Symbolic Math Toolbox", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_matlab_co_ban_chuong_2_su_dung_symbolic_math_tool.pdf

