151
>> findsym(3*i + 4*j) % i vµ j t¬ng tù nh sqrt(-1)
ans =
' '
NÕu
findsym
kh«ng t×m thÊy biÕn ®Æc trng, nã sÏ tr¶ l¹i chuçi rçng.
20.5 PhÐp to¸n trªn biÓu thøc ®Æc trng
Gi¶ sö b¹n ®· t¹o t¹o ®îc biÓu thøc ®Æc trng, b¹n rÊt cã thÓ muèn thay ®æi nã b»ng bÊt cø
c¸ch nµo. B¹n muèn lÊy ra mét phÇn cña biÓu thøc, kÕt hîp hai biªu thøc hoÆc t×m mét gi¸ trÞ sè cña
mét biÓu thøc ®Æc trng. Cã rÊt nhiÒu c«ng cô cho phÐp b¹n lµm ®iÒu nµy.
TÊt c¶ c¸c hµm ®Æc trng, ( víi vµi ®iÓm ®Æc biÖt sÏ nãi ë phÇn sau) dùa trªn c¸c biÓu thøc ®Æc
trng vµ c¸c m¶ng ®Æc trng. KÕt qu¶ gièng nh mét sè nhng nã lµ mét biÓu thøc ®Æc trng. Nh
chóng ta ®· nãi ë trªn, b¹n cã thÓ t×m ra ®©u lµ kiÓu sè nguyªn, mét chuçi ®Æc trng hoÆc mét ®èi
tîng ®Æc trng b»ng c¸ch sö dông hµm
class
tõ MATLAB c¬ së.
20.6 T¸ch c¸c tö sè vµ mÉu sè
NÕu biÓu thøc cña b¹n lµ mét ®a thøc h÷u tØ hoÆc cã thÓ më réng tíi mét ®a thøc h÷u tØ t¬ng
®¬ng ( bao gåm toµn bé c¸c phÇn tö cña tö sè cã chung mÉu sè), b¹n cã thÓ t¸ch tö sè vµ mÉu sè
b»ng c¸ch sö dông hµm
numden
. VÝ dô:
m = x2, f = a x2/( b-x) g = 3 x 2 /2 + 2 x /3 -3/5.
h = (x
2 + 3)/ ( 2 x - 1 ) + 3x/(x-1)
numden
tæ hîp hoÆc h÷u tØ ho¸ biÓu thøc nÕu cÇn thiÕt, vµ tr¶ l¹i kÕt qu¶ tö sè vµ mÉu sè. C©u lÖnh
MATLAB ®îc thùc hiÖn nh sau:
>> sym x a b % t¹o mét sè biÕn ®Æc trng
>> m = x^2 % t¹o mét biÓu thøc ®¬n gi¶n
m =
x^2
>> [n,d] = numden(m) % t¸ch tö sè vµ mÉu sè.
n =
x^2
d =
1
>> f = a*x^2/(b-x) % t¹o mét biÓu thøc liªn quan
f =
a*x^2/(b-x)
>> [n d] = numden(f) % t¸ch tö sè vµ mÉu sè.
m =
-a*x^2
d=
-b + x
Hai biÓu thøc ®Çu tiªn cho ta kÕt qu¶ nh mong muèn
>> g = 3/2*x^2 + 2*x - 3/4 % t¹o mét biÓu thøc kh¸c.
g =
3/2*x^2 + 2*x - 3/4
>> [n,d] = numden(g) % h÷u tØ ho¸ vµ t¸ch c¸c phÇn
n =
6*x^2 + 8*x - 3
d =
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
152
4
>> h = (x^2 + 3)/(2*x - 1) + 3*x/(x - 1) % tæng cña ®a thøc h÷u tØ
h =
x^3 + 5*x^2 - 3
d= (2*x - 1)*(x - 1)
>> h2 = n/d % t¹o l¹i biÓu thøc cho h
h2 =
(x^2 + 3)/(2*x - 1) + 3*x/(x - 1)
Hai biÓu thøc g vµ h ®îc h÷u tØ ho¸ hoÆc trë vÒ biÓu thøc ®¬n gi¶n víi mét tö sè vµ mÉu sè, tríc
khi c¸c phÇn tö ®îc t¸ch cã thÓ chia tö sè cho mÉu sè t¹o l¹i biÓu thøc nguyªn gèc.
20.7 PhÐp to¸n ®¹i sè tiªu chuÈn
Mét sè phÐp to¸n tiªu chuÈn cã thÓ biÓu diÔn trªn biÓu thøc ®Æc trng sö dông c¸c to¸n tö
quen thuéc. VÝ dô cho hai hµm:
f = 2x2 + 3x - 5 g = x2 - x + 7
>> sym('x') % ®Þnh nghÜa mét biÕn sè ®Æc trng
>> f = (2*x^2 + 3*x - 5) % ®Þnh nghÜa biÓu thøc ®Æc trng f vµ g
f=
(2*x^2 + 3*x - 5 )
>> x^2 - x + 7
g =
x^2 - x + 7
>> f +
ans =
3*x^2 + 2*x + 2
>> f - g % t×m biÓu thøc cña f-g
ans =
x^2 + 4*x - 12
>> f*g % t×m mét biÓu thøc cña f*g
ans =
(2*x^2 + 3*x -5 ) *( x^2 - x + 7)
>> f/g % t×m mét biÓu thøc cña f/g
ans =
(2*x^2 + 3*x - 5 )/(x^2 - x + 7)
>> f ^(3*x) % t×m nét biÓu thøc cho f3x
ans =
(2*x^2 + 3*x - 5)*3*x
Thùc sù lµ mét phÐp to¸n trªn bÊt cø biÓu thøc nµo chøa Ýt nhÊt mét biÕn sè ®Æc trng sÏ cho
kÕt qu¶ cña mét biÓu thøc ®Æc trng, b¹n h·y tæ hîp c¸c biÓu thøc cè ®Þnh ®Ó t¹o nh÷ng biÓu thøc
míi. VÝ dô:
>> a = 1; b = 3/2 ; x = sym('x'); % t¹o mét sè vµ nh÷ng biÕn sè ®Æc trng
>> f = sin(a - x) % t¹o mét sè biÓu thøc
ans=
-sin(x-1)
>> g = sin(b*x^2)
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
153
ans=
sin(3/2*x^2)
>> b*f/(g - 5)+ x % kÕt hîp chóng
ans =
-3/2*sin(x - 1)/(sin(3/2*x^2)- 5 )+ x )
TÊt c¶ c¸c phÐp to¸n nµy ®Òu thùc hiÖn tèt víi c¸c ®èi sè lµ m¶ng.
20.8 c phÐp to¸n n©ng cao
MATLAB cã thÓ biÓu diÔn nhiÒu phÐp to¸n n©ng cao h¬n biÓu thøc ®Æc trng. Hµm
compose
kÕt hîp f(x ) vµ g ( x) thµnh f ( g(x)). Hµm
finverse
t×m hµm nghÞch ®¶o cña mét biÓu thøc vµ hµm
symsum
t×m tæng ®Æc trng cña mét biÓu thøc. VÝ dô :
f = 1/ ( 1 + x2 ) g = sin ( x ) h = x/ ( 1 + u 2 ) k = cos ( x+v )
>> syms x u v % ®Þnh nghÜa 3 biÕn ®Æc trng
>> f = 1/(1+x^2) % t¹o 4 biÓu thøc
>> g = sin(x)
>> h = x/(1 + u^2)
>> k = cos(x + v)
>> compose(f,g) % t×m biÓu thøc cña f( g ( x ))
ans =
sym(1/(1 + x^2))
compose
cã thÓ ®îc sö dông ë c¸c hµm mµ cã c¸c biÕn ®éc lËp kh¸c nhau.
>> compose(h,k) % cho h( x), k ( x ), t×m h( k(x) )
ans=
cos(x + v)/(1 + u^2)
>> compose(h,k,u,v) % cho h( u), k( v ), t×m h( k( v))
ans =
x/(1 + cos(2*v)^2)
Hµm nghÞch ®¶o cña mét biÓu thøc, gäi lµ f(x), lµ biÓu thøc g (x) mµ tho¶ m·n ®iÒu kiÖn
g( f (x)) = x. VÝ dô hµm nghich ®¶o cña ex lµ ln(x), do vËy ln(ex) =x. Hµm nghÞch ®¶o cña sin(x) lµ
arcsin(x), vµ hµm nghÞch ®¶o cña 1/tan(x) lµ arctan(1/x). Hµm
finverse
trë thµnh hµm nghÞch ®¶o cña
mét biÓu thøc. Chó ý
finverse
tr¶ l¹i duy nhÊt mét kÕt qu¶ thËm chÝ nÕu kÕt qu¶ ®ã kh«ng lµ duy nhÊt.
>> syms x a b c d z % ®Þnh nghÜa mét sè biÕn ®Æc trng
>> finverse(1/x) % nghÞch ®¶o cña 1/x lµ x
ans =
1/x
>> finverse(x^2) % t×m mét trong c¸c gi¶i ph¸p ®Ó g(x2 ) =x
ans =
x^(1/2)
>> finverse(a*x + b) % t×m gi¶i ph¸p ®Ó g(f(x)) = x
ans =
-(b - x)/a
>> finverse(a*b + c*d - a*z,a) %t×m gi¶i ph¸p ®Ó g(f(a))=a
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
154
ans=
-(c*d - a)/(b - z)
Hµm
symsum
t×m tæng ®Æc trng cña mét biÓu thøc. Cã 4 có ph¸p cña hµm:
symsum(f)
tr¶ l¹i
tæng ,
symsum(f,s)
tr¶ l¹i tæng ,
symsum(f,a,b)
tr¶ l¹i tæng , cßn hµm
symsum(f, a, b, s)
tr¶ l¹i tæng .
Chóng ta cïng xem xÐt tæng , tr¶ l¹i x3/3-x2/2+x/6
>> syms x n
>> symsum(x^2)
ans =
1/3*x^3 - 1/2*x^2 + 1/6*x
20.9 Hµm nghÞch ®¶o
Môc nµy tr×nh bµy c¸c c«ng cô ®Ó chuyÓn ®æi biÓu thøc ®Æc trng sang gi¸ trÞ sè vµ ngîc l¹i.
Cã mét sè rÊt Ýt c¸c hµm ®Æc trng cã thÓ trë thµnh gi¸ trÞ sè.
Hµm
sym
cã thÓ chuyÓn ®æi mét chuçi hoÆc mét m¶ng sè thµnh sù biÓu diÔn ®Æc trng; hµm
double
thùc hiÖn ngîc l¹i. d
uble
chuyÓn ®æi mét h»ng ®Æc trng ( mét biÓu thøc ®Æc trng kh«ng cã
biÕn) thµnh gi¸ trÞ sè cã kiÓu x¸c ®Þnh
double
.
>> phi = sym('(1 + sqrt(5))/2')
phi =
(1 + sqrt(5))/2
>> double(phi) % nghÞch ®¶o cña gi¸ trÞ sè
ans =
1.6180
Hai c¸ch trªn cho ta cïng mét kÕt qu¶.
B¹n ®· lµm viÖc víi ®a thøc trªn MATLAB c¬ b¶n, sö dông vector mµ c¸c phÇn tö cña nã lµ c¸c
hÖ sè cña ®a thøc. Hµm ®Æc trng
sym2poli
chuyÓn ®æi mét ®a thøc ®Æc trng thµnh vector cña hÖ hÖ
sè ®ã. Hµm
poli2sym
th× lµm ngîc l¹i, vµ b¹n h·y khai b¸o biÕn ®Ó sö dông trong phÐp to¸n cuèi
cïng.
>> x = sym('x')
>> f = x^3 + 2*x^2 - 3*x + 5 % f lµ ®a thøc ®Æc trng
f =
x^3 + 2*x^2 - 3*x + 5
>> n = sym2poli(f) % t¸ch vector c¸c hÖ sè
n =
1 2 -3 5
>> poly2sym(n) % t¹o l¹i ®a thøc cña x ( mÆc ®Þnh )
ans =
x^3 + 2*x^2 - 3*x + 5
>> s = sym('s') % ®Þnh nghÜa s nh lµ biÕn ®Æc trng
>> poly2sym(n,s) % t¹o l¹i ®a thøc cña f
ans=
s^3 + 2*s^2 - 3*s + 5
20.10 Sù thay thÕ biÕn sè
Gi¶ sö b¹n cã mét biÓu thøc ®Æc trng cña x, vµ b¹n muèn ®æi biÕn thµnh y. MATLAB cung
cÊp cho b¹n c«ng cô ®Ó thay ®æi trong biÓu thøc ®Æc trng, gäi lµ
subs
. Có ph¸p lµ:
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
155
subs
( f, old, new ), trong ®ã f lµ mét biÓu thøc ®Æc trng, old lµ biÕn hoÆc biÓu thøc ®Æc trng, vµ new
lµ biÕn ®Æc trng, biÓu thøc hoÆc ma trËn hoÆc mét gi¸ trÞ sè hoÆc ma trËn. Néi dung cña new sÏ thay
thÕ old trong biÓu thøc f. Díi ®©y lµ mét sè vÝ dô:
>> syms a alpha b c s x % ®Þnh nghÜa mét vµi biÕn ®Æc trng
>> f = a*x^2 + b*x + c % t¹o mét hµm f(x)
f =
a*x^2 + b*x + c
>> subs(f,x,s) % thay thÕ xb»ng s trong biÓu thøc cña f
ans=
a*s^2 + b*s + c
>> subs(f,a,[alpha;s]) % thay thÕ a b»ng ma trËn ®Æc trng a
ans=
[alpha*x^2 + b*x + c]
[s*x^2 + b*x + c]
>> g= 3*x^2 + 5*x - 4 % t¹o mét hµm kh¸c
g=
3*x^2 + 5*x - 4
>> h = subs(g,x,2) % new lµ mét gi¸ trÞ sè
h =
18
>> class(h) % biÓu diÔn kÕt qu¶ ®ã lµ mét néi dung ®Æc trng
ans =
sym
VÝ dô tríc biÓu diÔn c¸ch
subs
t¹o hÖ sè, vµ sau ®ã lµm ®¬n gi¶n ho¸ biÓu thøc. Tõ ®ã kÕt qu¶
cña hÖ sè lµ mét néi dung ®Æc trng, MATLAB cã thÓ rót gän nã thµnh mét gi¸ trÞ ®¬n. Chó ý r»ng
subs
lµ mét hµm ®Æc trng, nã trë thµnh mét biÓu thøc ®Æc trng, mét néi dung ®Æc trng thËm chÝ nã
lµ mét sè. §Ó nhËn mét sè chóng ta cÇn sö dông hµm
double
®Ó chuyÓn ®æi chuçi .
>> double(h) % chuyÓn ®æi mét biÓu thøc ®Æc trng thµnh mét sè
ans=
18
>> class(ans) % biÓu diÔn kÕt qu¶ ®ã lµ mét gi¸ trÞ sè
ans=
double
20.11 PhÐp lÊy vi ph©n
PhÐp lÊy vi ph©n cña mét biÓu thøc ®Æc trng sö dông hµm
diff
theo mét trong 4 mÉu sau:
>> syms a b c d x s % ®Þnh nghÜa mét vµi biÕn ®Æc trng
>> f = a*x^3 + x^2 - b*x - c % ®Þnh nghÜa mét biÓu thøc ®Æc trng
f =
a*x^3 + x^2 - b*x - c
>> diff(f) % lÊy vi ph©n cña f víi x lµ biÕn mÆc ®Þnh
ans =
3*a*x^2 + 2*x - b
>> diff(f,a) % lÊy vi ph©n cña f víi a thay cho x
ans =
x^3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com