Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Polinomios
Polinomios
Computacin 1
- 2008 -
Polinomios en Matlab
Polinomios
Elementos bsicos
f(x) = a0 x N + a1 x N-1 + a3 x N-3 + a2 x N-2 + . . .
+ aN-2 x 2 + aN-1 x + aN
Variable:
x
Coeficientes: ai , i = 0 .. N
Grado:
N
22/11/2008
Polinomios
Reglas de representacin en Matlab
Los coeficientes ordenados en forma
decreciente por su grado
Completitud: deben estar TODOS los
coeficientes, an si su valor = 0
(estructura posicional)
a = [ 1 1 1]
a = [ 2 0 1 3] %
22/11/2008
x2+x+1
2x3+0x2+x+3
representa:
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 anloga
22/11/2008
Polinomios
Operaciones: Producto
Polinomio x escalar
[3210]*3
ans =
9 6 3 0
% (3x3 + 2x2 + x) 3
Polinomio x polinomio
% 9x3 + 6x2 + 3x
[ 0 0 1 1 ] * [ 3 2 1 0 ]
ans =
1
% Este resultado no es correcto!
22/11/2008
Polinomios
Operaciones: Producto
conv( [ 0 0 1 1 ],, [ 3 2 1 0 ] )
ans =
0 0 3 5 3 1 0
No es necesario que sean de
igual largo:
Objetivo:
(x + 1)(3x3 + 2x2 + x)
3x4 + 2x3 + x2
3x3 + 2x2 + x
---------------------3x4 + 5x3 + 3x2 + x + 0
conv( [ 1 1 ],, [ 3 2 1 0 ] )
ans =
3 5 3 1 0
22/11/2008
Polinomios
Operaciones: Cociente
[ c, r] = deconv( [3 5 3 1 0],, [ 3 2 1 0 ] ) % El resultado se
devuelve en 2
c=
vectores
1.0000 1.0000
(cociente y resto)
r=
% vectores
1.0e-015 *
completos
0
0
0 0.1110
0 % Observar el
coeficiente del
resultado
[ c, r] = deconv( [3 5 3 1 0],, [ 1 1 ] )
% Si no se recibe el
c=
resultado en un
3 2 1 0
vector slo
r=
obtenemos el
0 0 0 0 0
cociente
22/11/2008
Polinomios
Operaciones: Ra
Races
Matlab provee una
funcin que halla las
races de polinomios
con una precisin
determinada; puede no
ser la que le sirve al
usuario.
ste deber verificar si
precisin y tiempo de
clculo se adecuan a
su problema
(en Mtodos Numricos se vern
algunas alternativas)
22/11/2008
roots( [ 4 2 1 ] )
ans =
-0.2500 + 0.4330i
-0.2500 - 0.4330i
roots( [ 8 4 2 1 ] )
ans =
-0.5000
0.0000 + 0.5000i
0.0000 - 0.5000i
Polinomios
Operaciones: poly() Construir un polinomio
La funcin inversa a hallar las races es construir un
polinomio que tenga races 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
Polinomios
Operaciones:
polyval()
Evaluar un polinomio
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
22/11/2008
11
Polinomios
Operaciones: Resumen
Se
22/11/2008
Suma (y resta)
Producto de un polinomio por un escalar
12
Polinomios
Operaciones: Resumen
En
22/11/2008
13