Anda di halaman 1dari 32

REPRESENTACIN

Y TRATAMIENTO
DE POLINOMIOS
Matlab
Matlab nos brinda una serie de funciones para trabajar con
los polinomios.
Aqu los polinomios se representan como vectores, por
ejemplo, sea:

Ing. Viviana Ortellado


en Matlab debemos ingresar a p de la siguiente manera
>> p = [ 8 - 5 1 3 4 ] p=8-5134

Observe que Matlab al responder no reescribe los


corchetes. De ahora en adelante utilizaremos los trminos
vector y polinomio indistintamente para referirnos al
mismo concepto.
2
Funciones bsicas:
roots(p): Obtiene races de un polinomio dado
Calcula las races de un polinomio cuyos coeficientes son los
elementos del vector p.
Si p tiene N+1 componentes, el polinomio es p(1)*X^N + ... +
p(N)*X + p(N+1).
>> q = [ 1 - 5 6 ] q = 1 - 5 6

Ing. Viviana Ortellado


>> roots(q) ans = 3 2

poly(v): Construye un polinomio a partir de sus races


Retorna un vector (polinomio) cuyos elementos son los
coeficientes del polinomio cuyas races son los elementos de v.
Puede apreciarse que roots y poly son funciones inversas.
>> v = roots(q) v=32
3
>> q =poly(v) q=1-56
O si desea verlo un poco ms claro note que:
>> poly(roots(q)) ans = 1 - 5 6
>> roots(poly(v)) ans = 3 2

polyval(p, x): Evala un polinomio en un punto dado


Si p tiene N+1 elementos, retorna el valor del polinomio al

Ing. Viviana Ortellado


evaluarlo en x.
Es decir y = p(1)* xN + p(2)*xN-1 + ... + p(N)*x + p(N+1)

conv(p, q): Multiplicacin de polinomios


conv viene de convolucin, en el caso de los vectores
convolucionar dos vectores es equivalente a multiplicarlos.
El resultado es un vector de 4
longitud = longitud(p)+longitud(q)-1
Veamos un ejemplo:
Sean p(x) = 2x + 1 y q(x) = 3x + 4
>> p = [ 2 1 ] p=21
>> q = [ 3 4 ] q=34
>> r = conv(p, q) r = 6 11 4

Observe que retorna el polinomio r(x) = 6x2 + 11x + 4, y que

Ing. Viviana Ortellado


la longitud del vector resultado es 3 = 2 + 2 -1.

deconv(p, q): Divisin entre polinomios


Se utiliza de la siguiente manera
>> [Q, R] = deconv(p, q);

5
El resultado de la divisin de p por q queda almacenado en la
variable Q, y el resto de esta operacin en la variable R.
Ejemplo:
>> r r = 6 11 4
>> p p=21
>> [Q, R] = deconv(r, p);
>> Q Q=34
>> R R=000

Ing. Viviana Ortellado


Como era de esperarse (por que?).

Verifiquemos este resultado con la frmula r = Q*p + R:


>> conv(Q, p) + R ans = 6 11 4
>> r r = 6 11 4
6
Suma y resta:
Uno deseara poder sumar y restar polinomios de manera gil y
sencilla, lo ptimo sera utilizar los smbolos + y -, nada ms.
Veamos que sucede:
>> p = [ 2 1 0 5 ];
>> q = [ 3 4 ];
>> p + q;

Ing. Viviana Ortellado


??? Error using ==> + Matrix dimensions must agree.
En castellano: Error usando ==> + Las matrices deben tener la
misma dimensin.

Lo anterior nos informa que ocurri un error al momento de


utilizar el smbolo +, lo que sucede es que estos vectores (los
vectores son un caso particular de matriz) no poseen la misma
dimensin (cantidad de elementos). 7
Una opcin que tenemos para sortear este obstculo es
completar el vector p o q con tantos ceros a la izquierda
como sean necesarios, de esta manera conseguimos un
par de vectores que continan representando los
polinomios que tenamos inicialmente.

Nota:

Ing. Viviana Ortellado


En nuestro caso:
>> p = [ 2 1 0 5 ];
>> q = [ 0 0 3 4 ];
>> p + q ans = 2 1 3 9 8
INTERPOLACION
DEFINICION
Se denomina interpolacin a la obtencin de nuevos puntos
partiendo del conocimiento de un conjunto discreto de puntos.

En ingeniera y algunas ciencias es frecuente disponer de un


cierto nmero de puntos obtenidos por muestreo o a partir de

Ing. Viviana Ortellado


un experimento y pretender construir una funcin que los
ajuste.

Otro problema estrechamente ligado con el de la interpolacin


es la aproximacin de una funcin complicada por una ms
simple. Si tenemos una funcin cuyo clculo resulta difcil,
podemos partir de un cierto nmero de sus valores e interpolar 10
dichos datos construyendo una funcin ms simple.
INTERPOLACION DE
NEWTON
DEFINICION
Es un mtodo de interpolacin polinmica. Aunque slo existe un
nico polinomio que interpola una serie de puntos, existen
diferentes formas de calcularlo. Este mtodo es til para
situaciones que requieran un nmero bajo de puntos para
interpolar, ya que a medida que crece el nmero de puntos,
tambin lo hace el grado del polinomio.

Ing. Viviana Ortellado


Supongamos que es el polinomio de interpolacin para los
datos

y tenemos un nuevo dato queremos contruir un


nuevo polinomio que interpole a los datos
anteriores y a 12
Idea del mtodo Newton

El polinomio as construdo es de grado , interpola a los datos anteriores e

Ing. Viviana Ortellado


imponiendo que se verifique la nueva condicin de interpolacin

13
Diferencias divididas
Trataremos de construir el polinomio de interpolacin de los
datos con k = 0, , n de una muestra sin tener que
recurrir a resolver un sistema. Lo escribiremos siguiendo la idea
antes planteada

Ing. Viviana Ortellado


Definicin:
i) Llamaremos diferencia dividida de orden cero de la funcin f y
lo notaremos,

ii) Llamaremos diferencia dividida de orden uno de la funcin f ,


y lo notaremos 14
iii) Llamaremos diferencia dividida de orden dos de la funcin f
,y lo notaremos

y as sucesivamente, el siguiente resultado establece cmo


formar las diferencias divididas de cada orden.

Ing. Viviana Ortellado


Ley de recurrencia de las diferencias divididas

15
Pasamos a aplicar las anteriores definiciones al clculo de

Diferencia dividida de orden 1 en x0 y x1

Ing. Viviana Ortellado


En general, al imponer la condicin sale la condicin

La ley de recurrencia me permite ir formando las diferencias


divididas de orden superior a partir de las de un orden menos 16
Tabla de diferencias divididas

Ing. Viviana Ortellado


17
Frmula de Newton para el
polinomio de interpolacin

Ing. Viviana Ortellado


18
Ejemplo
Calcule el polinomio de interpolacin de Newton para los datos

Solucin:
El polinomio que se nos pide se puede escribir

Ing. Viviana Ortellado


Formamos la tabla de diferencias divididas para obtener los coeficientes

19
Ing. Viviana Ortellado
20
Propuestos

Ing. Viviana Ortellado


21
Newton - Matlab

Ing. Viviana Ortellado


22
Newton - Matlab
1. x=[1.32,1.23,1.05,0.73,0.19]; %ordenadas
2. y=[0,-0.38,-0.89,-1.34,-1.19]; %abscisas

3. n=length(x);
4. p=[1 -x(1)];
5. a=y(1);

Ing. Viviana Ortellado


6. P=a;
7. for i=2:n
8. a=(y(i)-polyval(P,x(i)))/polyval(p,x(i));
9. resultN(1,i)=a;
10. P=[a*p(1) a*p(2:end)+P];
11. p=conv(p,[1 -x(i)]);
12. end 23
13. resultN=[resultN;P]
INTERPOLACION DE
LAGRANGE
Ing. Viviana Ortellado
La formacin del polinomio p slo precisa formar los polinomios
de Lagrange y escribir una combinacin lineal de ellos donde los
coeficiente nos vienen dados, los yi.

25
Ejemplo
Calcule el nico polinomio de grado menor o igual que tres que
interpola a los datos (1, 1), (0, 2), (1, 1) y (2, 2).

Solucin:

Ing. Viviana Ortellado


Formemos los polinomios de Lagrange

26
Ing. Viviana Ortellado
P(x) = 1*p0(x) + 2*p1(x)-1*p2(x)+2*p(x)

P(x)= 61 x x 1 x 2 + (x + 1) x 1 x 2 + 21 x x + 1 (x

27
Si ya hemos formado el polinomio de interpolacin pn para los
datos (xk, yk) con k = 0, , n
y surge la necesidad de interpolar, adems en un nuevo punto
(xn+1, yn+1) todos los clculos anteriores no seran vlidos.

Tendramos que formar los correspondientes polinomios de


Lagrange de grado n + 1 con lo empezaramos de nuevo desde el

Ing. Viviana Ortellado


principio.

Para que podamos aprovechar "el polinomio de interpolacin pn


para formar el polinomio que, adems, interpola un nuevo
punto (xn+1, yn+1) usamos la interpolacin con el mtodo de
Newton
28
Ejercicio
Escribir el polinomio de interpolacin de Lagrange para los
siguientes datos, Hallar el valor de f(x) para x=1,5:

Ing. Viviana Ortellado


29
Ing. Viviana Ortellado
30
Lagrange - Matlab

Ing. Viviana Ortellado


31
Lagrange - Matlab
1. x=[1.32,1.23,1.05,0.73,0.19]; % VECTOR DE LAS ABSCISAS
2. y=[0,-0.38,-0.89,-1.34,-1.19]; %VECTOR DE LAS COORDENADAS

3. n=length(x);
4. P=zeros(1,n);
5. for i=1:n

Ing. Viviana Ortellado


6. a=x([1:i-1 i+1:n]);
7. p=[1, -a(1)];
8. for j=2:n-1
9. p=conv(p,[1,-a(j)]);
10. end
11. pj=y(i)*p/polyval(p,x(i));
12. resultL(i,:)=[i,pj];
13. P=P+pj; 32
14. end
15. resultL(n+1,:)=[n+1,P]

Anda mungkin juga menyukai