Escolar Documentos
Profissional Documentos
Cultura Documentos
Polinomios
Polinomios
Representao
No Matlab, um polinmio representado por um vetor-linha contendo os coeficientes do
polinmio em ordem descrescente. Por exemplo, o polinmio de 4o grau: x4 3x3 + 10x2 7x 48 representado pelo vetor:
p = [1 3 10 7 48]
Razes
Para calcular as razes de um polinmio utiliza-se o comando roots:
>> r = roots(p)
r =
0.8995 + 3.3273i
0.8995 - 3.3273i
2.6984
-1.4973
que, para o exemplo, apresenta duas razes reais (2,6984 e 1,2973) e duas razes complexas
(0,8995 + i 3,3273 e 0,8995 i 3,3273).
Se forem conhecidas as razes de um polinmio, ento o comando poly retorna os coeficientes
desse polinmio:
>> poly(r)
ans =
1.0000
-3.0000
10.0000
-7.0000
-48.0000
-15.0000
-18.0000
0.0000
Polinmios no Matlab
= 3 152 18
Produto de polinmios
Se tivermos dois polinmios y1 e y2 e quisermos calcular o produto y1*y2, utiliza-se o comando
conv:
>>
y1 = [1 1 9]
y1 =
1
>> y2 = [2 -4 0 1]
y2 =
2
-4
14
-35
>> conv(y1,y2)
ans =
2
-2
( x 2 + x + 9) (2 x 3 4x 2 + 1) = 2 x 5 2x 4 + 14 x 3 35x 2 + x + 9
Diviso de polinmios
A diviso de polinmios feita com o comando deconv:
>> z1 = [1 2 1 -3 1]
z1 =
1
-3
>> z2 = [-1 1 3]
z2 =
-1
-3
-7
r =
Polinmios no Matlab
13
22
Aplicando a funo residue sobre os polinmios B(s) e A(s) obtm-se as seguintes fraes
parciais:
B(s )
9
7
2
=
+
+
+ 10
A (s ) s + 4 s + 3 s + 1
No Matlab:
>> B = [10 80 177 95]
B =
10
80
177
95
>> A = [1 8 19 12]
A =
1
19
12
Polinmios no Matlab
[r,p,k] = residue(num,den),
sendo num o vetor-linha que contm o polinmio do numerador e analogamente, den o vetorlinha do polinmio do denominador. Os vetores-coluna r, p e k so, respectivamente, o
resduo, o plo e o termo direto.
No por outra razo, o clculo das fraes parciais tambm chamado de clculo de
resduos. Por outro lado, a aplicao da funo residue com os argumento contendo os vetores
r, p e k, permite o clculo dos vetores num e den:
[num,den] = residue(r,p,k),
Exemplo:
>> r = [2; -0.5]
r =
2.0000
-0.5000
>> p = [1.0; 0.5]
p =
1.0000
0.5000
>> k = 1
k =
1
>> [n,d] = residue(r,p,k)
n =
1
d =
1.0000
-1.5000
0.5000
de modo que:
F(s ) =
2
0. 5
+1 =
s 1.0 s 0.5
s2
s 2 1.5s + 0.5
Avaliao de polinmios
Polinmios no Matlab
Se, no entanto, a varivel x for um vetor contendo um intervalo de valores, ento ser necessrio
utilizar o operador ponto-escalar, como no exemplo:
>> x = 0:0.5:2;
>> f = 2*x.^4 - 5*x.^3 + 8*x.^2 - 10*x + 40
f =
40.0000
36.5000
35.0000
36.2500
44.0000
36.5000
35.0000
36.2500
44.0000
pp2 = polyfit(x,y,2);
pp3 = polyfit(x,y,3);
pp4 = polyfit(x,y,4);
yp2 = polyval(pp2,x);
yp3 = polyval(pp3,x);
yp4 = polyval(pp4,x);
plot(x,y,'o',x,yp2,x,yp3,x,yp4)
Polinmios no Matlab