
91
thøc. Trong MATLAB mét ®a thøc ®−îc biÓu diÔn b»ng mét vector hµng c¸c hÖ sè víi bËc gi¶m dÇn.
VÝ dô ®a thøc
x4-12x3+25x+116 ®−îc nhËp vµo nh− sau:
>> p = [1 -12 0 25 116]
p=
1 -12 0 25 116
Nhí r»ng môc dµnh cho hÖ sè 0 còng ph¶i ®−îc gâ vµo nÕu kh«ng MATLAB sÏ kh«ng hiÓu ®−îc
hÖ sè cña biªñ thøc bËc mÊy lµ kh«ng. Sö dông d¹ng nµy th× nghiÖm cña mét ®a thøc cã thÓ t×m ®−îc
b»ng c¸ch dïng hµm
roots
:
>> r = roots(p)
r=
11.7374
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
Bëi v× trong MATLAB c¶ ®a thøc vµ c¸c nghiÖm cña nã ®Òu lµ vector nªn MATLAB ngÇm quy
−íc r»ng ®a thøc lµ vector hµng, cßn c¸c nghiÖm lµ c¸c vector cét. NÕu biÕt tr−íc nghiÖm cña mét ®a
thøc th× ta dÔ dµng biÕt ®−îc ®a thøc ®ã. Trong MATLAB lÖnh
poly
sÏ thùc hiÖn c«ng viÖc nµy:
>> pp = poly(r)
pp=
1 -12 -1.7764e-14 25 116
>> pp(abs(pp)< 1e-12 = 0 % G¸n nh÷ng phÇn tö qu¸ nhá b»ng kh«ng
1 -12 0 25 116
Bëi v× trong tÝnh to¸n thêng gÆp nh÷ng sai sè nªn ®«i khi kÕt qu¶ cña lÖnh
poly
cho ra c¸c ®a thøc
cã c¸c hÖ sè gÇn b»ng kh«ng vµ c¸c ®a thøc cã phÇn ¶o rÊt nhá nh− ®−îc chØ ra ë trªn, c¸c gi¸ trÞ b»ng
kh«ng cã thÓ ®−îc lµm trßn b»ng c¸c c«ng cô vÒ m¶ng. T−¬ng tù nh− vËy, ta cã thÓ lµm trßn mét sè
phøc ®Ó trë thµnh mét sè thùc b»ng hµm
real
.
14.2 Nh©n ®a thøc
Hµm
conv
thùc hiÖn nh©n hai ®a thøc (thùc ra lµ hai ma trËn), xÐt tÝch cña hai ®a thøc sau:
a(x) = x3+2x2+3x+4 vµ b(x) = x3+4x2+9x+16
>> a = [1 2 3 4]; b = [1 4 9 16];
>> c = conv(a,b)
c=
1 6 20 50 75 84 64
KÕt qu¶ lµ c(x) = x6 +6x5 +20x4 +50x3+75x2+84x+64
khi ta nh©n nhiÒu ®a thøc víi nhau th× ta ph¶i sö dông lÖnh
conv
nhiÒu lÇn.
14.3 PhÐp céng ®a thøc
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

92
MATLAB kh«ng cung cÊp c¸c hµm trùc tiÕp thùc hiÖn phÐp céng hai ®a thøc, dïng phÐp céng ma
trËn chØ cã t¸c dông khi hai ®a thøc lµ hai vector cã cïng kÝch th−íc. VÝ dô nh− céng hai ®a thøc a(x)
vµ b(x) ë trªn:
>> d = a + b
d=
2 6 12 20
KÕt qu¶ lµ d(x)=2x3+6x2+12x+20. Khi hai ®a thøc cã bËc kh¸c nhau th× ®a thøc cã bËc thÊp h¬n
ph¶i ®−îc thªm vµo c¸c hÖ sè 0 ®Ó cho bËc cña nã cã cïng bËc víi ®a thøc cã bËc cao h¬n. XÐt phÐp
céng hai ®a thøc c vµ d ë trªn:
>> e = c + [0 0 0 d]
e=
1 6 20 52 81 96 84
KÕt qu¶ lµ e(x)=x6+6x5+20x4+52x3+81x2+84. C¸c gi¸ trÞ 0 cÇn ph¶i ®−îc thªm vµo ë phÝa ®Çu
cña vector chø kh«ng ph¶i phÝa ®u«i, bëi v× c¸c hÖ sè ®ã ph¶i t−¬ng øng víi c¸c hÖ sè bËc cao cña x.
NÕu b¹n muèn, b¹n cã thÓ t¹o mét hµm M_file ®Ó thùc hiÖn phÐp c«ng ®a thøc tæng qu¸t:
function p=polyadd(a,b)
%POLYADD Polynomial addition
%POLYADD(A,B) adds the polynomials A and B
if nargin<2
error(‘Not enough input arguments’)
end
a=a(:).’; %make sureinputs are row vectors
b=b(:).’;
na=length(a); %find lengths of a and b
nb=length(b);
p=[zeros(1,nb-na) a]+[zeros(1,na-nb) b];
% pad with zeros as necessary
B©y giê cã thÓ minh ho¹ cho viÖc dïng hµm polyadd, h·y xÐt vÝ dô tr−íc ®©y:
>> f = polyadd(c,d)
f=
1 6 20 52 81 96 84
KÕt qu¶ còng gièng nh− ®a thøc e ë trªn. TÊt nhiªn polyadd còng cã thÓ dïng ®Ó thùc hiÖn phÐp trõ.
>> g = polyadd(c,-d)
g=
1 6 20 48 69 72 44
14.4 Chia hai ®a thøc
Trong mét sè tr−êng hîp ta ph¶i chia ®a thøc nµy cho mét ®a thøc kh¸c, trong MATLAB c«ng
viÖc nµy ®−îc thùc hiÖn bëi hµm
deconv
, sö dông c¸c ®a thøc b vµ c ë trªn ta cã:
>> [q,r] = deconv(c,b)
q=
1 2 3 4
r=
0 0 0 0 0 0 0
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

93
KÕt qu¶ nµy chØ ra r»ng c ®em chia cho b th× ®−îc ®a thøc lµ q vµ ®a thøc d lµ r trong tr−êng hîp nµy
®a thøc d lµ ®a thøc 0 bëi v× c lµ ®a thøc chia hÕt cho q (nhí r»ng trªn ®©y ta ®· nhËn ®−îc ®a thøc c
b»ng c¸ch ®em nh©n ®a thøc a víi ®a thøc b)
14.5 §¹o hµm
Bëi v× dÔ dµng tÝnh ®−îc vi ph©n cña mét ®a thøc nªn MATLAB ®a ra hµm
polyder
®Ó tÝnh vi
ph©n ®a thøc:
>> h = polyder(g)
h=
6 30 80 144 138 72
14.6 TÝnh gi¸ trÞ cña mét ®a thøc
Râ rµng r»ng b¹n cã thÓ céng, trõ, nh©n, chia, ®¹o hµm mét ®a thøc bÊt kú dùa trªn c¸c hÖ sè cña
nã, b¹n còng cã thÓ dÔ dµng tÝnh ®−îc gi¸ trÞ c¸c ®a thøc nµy. Trong MATLAB hµm
polyval
sÏ thùc
hiÖn c«ng viÖc nµy:
>> x = linspace(-1,3);
SÏ chän 100 ®iÓm d÷ liÖu gi÷a -1 vµ 3
>> p = [1 4 -7 -10];
Dïng ®a thøc p(x) = x3+4x2-7x-10
>> v = polyval(p,x);
TÝnh gi¸ trÞ cña p(x) t¹i c¸c gi¸ trÞ cña x vµ l−u tr÷ kÕt qu¶ vµo trong m¶ng v. Sau ®ã kÕt qu¶ sÏ ®−îc
vÏ ra b»ng lÖnh plot
>> plot(x, v), title(‘x^3+4x^2-7x-10’), xlabel(‘x’)
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

94
H×nh 14.1
14.7 Ph©n thøc h÷u tØ
§«i khi b¹n gÆp nh÷ng bµi to¸n liªn quan ®Õn tØ sè cña hai ®a thøc hay cßn gäi lµ ph©n thøc h÷u
tØ, vÝ dô nh− c¸c hµm truyÒn hay c¸c hµm xÊp xØ
pade
cã d¹ng nh− sau:
Trong MATLAB ph©n thøc còng ®−îc m« pháng b»ng hai ®a thøc riªng rÏ.
VÝ dô nh−:
>> n=[1 -10 100] % a numerator
n =
1 -10 100
>> d=[1 10 100 0] % a dimominator
d =
1 10 100 0
>> z=roots(n) % the zeros of n(x)/d(x)
z =
5.0000 + 8.6603i
5.0000 - 8.6603i
>> p=roots(d) % the poles of n(x)/d(x)
p =
0
-5.0000 + 8.6603i
-5.0000 - 8.6603i
§¹o hµm cña ph©n thøc nµy theo biÕn x ®−îc tÝnh dùa trªn hµm
polyder
:
>> [nd,dd]=polyder(n,d)
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

95
nd =
-1 20 -100 -2000 -10000
dd =
Columns 1 through 6
1 20 300 2000 10000 0
Column 7
0
ë ®©y nd vµ dd lµ tö thøc vµ mÉu thøc cña ®¹o hµm. Mét thao t¸c th«ng th−êng kh¸c lµ t×m phÇn d
cña ph©n thøc.
>> [r,p,k]=residue(n,d)
r =
0.0000 + 1.1547i
0.0000 - 1.1547i
1.0000
p =
-5.0000 + 8.6603i
-5.0000 - 8.6603i
0
k =
[]
Trong tr−êng hîp nµy hµm
residue
tr¶ vÒ c¸c hÖ sè më réng ph©n thøc tõng phÇn r, c¸c nghiÖm cña
ph©n thøc lµ p vµ phÇn th−¬ng chia hÕt cña ph©n thøc lµ k. NÕu bËc cña tö sè nhá h¬n bËc cña mÉu sè
th× ph©n thøc chia hÕt sÏ b»ng kh«ng. Trong vÝ dô trªn th× më réng ph©n thøc tõng phÇn cña ph©n thøc
®· cho lµ:
NÕu cho tr−íc c¸c ®a thøc nµy th× ph©n thøc ban ®Çu sÏ t×m ®−îc b»ng c¸ch sö dông hµm
residue
:
>> [nn,dd]=residue(r,p,k)
nn =
1.0000 -10.0000 100.0000
dd =
1.0000 10.0000 100.0000 0
V× vËy trong tr−êng hîp nµy, hµm
residue
cã thÓ thùc hiÖn ®−îc viÖc chuyÓn ®æi hai chiÒu tuú
thuéc vµo sè l−îng c¸c tham sè vµo vµ ra truyÒn cho nã.
--------------------oOo------------------
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com