Professional Documents
Culture Documents
Computación 1
- 2008 -
Polinomios en Matlab
Polinomios
Elementos básicos
Variable: x
Coeficientes: ai , i = 0 .. N
Grado: N
» a = [ 1 1 1] % x2+x+1
representa:
» a = [ 2 0 1 3] % 2x3+0x2+x+3
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 3
Polinomios
Operaciones: Suma y resta
»[1111]+[3210]
ans =
4 3 2 1 % = 4x3 + 3x2 + 2x + 1
¡Ambas representaciones deben ser de
igual largo (cantidad de elementos)!
% (x + 1) + (3x3 + 2x2 + x)
»[0011]+[3210]
ans =
3 2 2 1 % la resta es análoga
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 4
Polinomios
Operaciones: Producto
Polinomio x escalar
»[3210]*3 % (3x3 + 2x2 + x) 3
ans =
9 6 3 0 % 9x3 + 6x2 + 3x
» conv( [ 1 1 ],, [ 3 2 1 0 ] )
ans =
3 5 3 1 0
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 6
Polinomios
Operaciones: Cociente
» [ c, r] = deconv( [3 5 3 1 0],, [ 3 2 1 0 ] ) % El resultado se
c= devuelve en 2
vectores
1.0000 1.0000 (cociente y resto)
r= % vectores
1.0e-015 * completos
0 0 0 0.1110 0 % Observar el
coeficiente del
» [ c, r] = deconv( [3 5 3 1 0],, [ 1 1 ] ) resultado
c= % Si no se recibe el
resultado en un
3 2 1 0 vector sólo
r= obtenemos el
0 0 0 0 0 cociente
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 7
Polinomios
Operaciones: Raí
Raíces
Matlab provee una » roots( [ 4 2 1 ] )
función que halla las ans =
raíces de polinomios -0.2500 + 0.4330i
con una precisión
-0.2500 - 0.4330i
determinada; puede no
ser la que le sirve al
usuario. » roots( [ 8 4 2 1 ] )
Éste deberá verificar si ans =
precisión y tiempo de -0.5000
cálculo se adecuan a 0.0000 + 0.5000i
su problema
0.0000 - 0.5000i
(en Métodos Numéricos se verán
algunas alternativas)
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 8
Polinomios
Operaciones: poly() Construir un polinomio
La función inversa a hallar las raíces es construir un
polinomio que tenga raíces dadas:
» poly(
poly( roots(
roots( [ 4 2 1 ] ) ) % ~ [ 1 0.5 0.25 ]
ans =
1.0000 0.5000 0.2500
» r1 = roots(
roots( [ 4 2 1 ] )
r1 =
-0.2500 + 0.4330i
-0.2500 - 0.4330i
» poly(
poly( r1 )
ans =
1.0000 0.5000 0.2500
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 9
Polinomios
Operaciones: polyval() Evaluar un polinomio
Argumentos: polinomio y un escalar
» polyval(
polyval( [ 4 2 1 ],2 )
ans =
21
Argumentos: polinomio y una matriz
» polyvalm([3,2,1],[1,0;0,1])
polyvalm([3,2,1],[1,0;0,1])
ans =
6 0
0 6
22/11/2008 Computación 1, 2008 - Facultad de Ingeniería 10
Polinomios
Operaciones: polyder()
polyder() Deriva un polinomio
» polyder(
polyder( [ 4 2 1 ])
ans =
8 2
Operaciones: polyint()Integra
polyint()Integra un polinomio
» polyint([4,2])
polyint([4,2])
ans =
2 2 0