Está en la página 1de 3

Prctica 1: Polinomios en MATLAB. Interpolacin a o de Lagrange I.

En MATLAB un polinomio se representa mediante un vector la que contiene los coecientes de las potencias en orden decreciente: empezando por el coeciente principal y terminando por el trmino independiente. e Por ejemplo, el polinomio p(x) = 3x2 2x 1 se representa con p = [3 -2 -1];

MATLAB contempla las siguientes operaciones bsicas con polinomios: a Clculo de las ra a ces a partir de la lista coecientes, por medio del comando roots( ), por ejemplo r=roots(p) nos devuelve r = 1.0000 -0.3333

El resultado es un vector columna de ceros. Clculo de los coecientes a partir del vector columna de ceros, por mea dio del comando poly( ), por ejemplo poly(r) nos devuelve ans = 1.0000 -0.6667 -0.3333

Observe que el polinomio devuelto siempre es mnico. o Multiplicacin de dos polinomios dados por la lista de sus coecientes, o por medio del comando conv( , ). Por ejemplo, para comprobar que (x 5)(x + 1) = x2 4x 5 basta ejecutar

Prctica de ordenador I a

conv([1 obteniendo ans =

-5], [1

1])

-4

-5

La divisin se realiza por medio del comando deconv( , ): si p(x) = o s(x)q(x) + r(x), se puede usar el formato [s, r] = deconv(p, q]) Evaluacin de un polinomio dado por la lista de sus coecientes p en o un valor x, por medio del comando polyval(p, x). Por ejemplo, para comprobar que p(1)0 = basta realizar polyval(p, 1) obteniendo ans = 0

polyval( ) realiza la evaluacin siguiendo el algoritmo de Horner o de o multiplicacin anidada. o Si x es un vector o una matriz, MATLAB devuelve la matriz con el polinomio evaluado en cada elemento. Recordemos que dados unos nodos de interpolacin x = [x0 , x1 , . . . , xn ], o los polinomios bsicos de Lagrange se denen por la frmula a o li (t) = (t x0 ) . . . (t xi1 )(t xi+1 ) . . . (t xn ) , (xi x0 ) . . . (xi xi1 )(xi xi+1 ) . . . (xi xn ) i = 0, 1, . . . , n .

Entonces el polinomio pn de menor grado que interpola la nube de puntos (x0 , f0 ), . . . , (xn , fn ) est dado por a pn (t) = f0 l0 (t) + + fn ln (t) . Problema 1 Vamos a construir los polinomios bsicos de Lagrange para a los nodos x = [3, 1, 1], usando los comandos vistos hasta ahora. Un procedimiento, aunque poco eciente, podr ser: a 1. construir el polinomio nodal (el polinomio mnico que se anula en o todos los nodos de interpolacin) por medio de la funcin poly; o o 2. para cada uno de los nodos eliminar el factor que contiene ese nodo, dividiendo con deconv el polinomio nodal entre el factor lineal que se anula en dicho nodo;
Andrei Mart nez Finkelshtein

Prctica de ordenador I a

3. normalizar cada polinomio, dividindolo entre su valor en el nodo omie tido; utilizar polyval. Dibuje las grcas de cada uno de los polinomios obtenidos en el intervaa lo [4, 2] y compruebe visualmente que en efecto los polinomios obtenidos satisfacen la propiedad li (xj ) = ij . Para ello tabule los valores de cada polinomio en 200 puntos equiespaciados del intervalo, creados con linspace(-4, 2, 200); Problema 2 Usando los resultados del problema anterior construya el polinomio de menor grado que interpole la funcin f (t) = exp(t) en los nodos o 3, 1, 1. Dibuje su grca junto con la de la funcin f en el intervalo a o [4, 2] y compruebe visualmente que el polinomio obtenido interpola a f en los nodos indicados. Para diferenciar las dos curvas puede despus de plot usar el comando e legend(Funcion, Polinomio); Problema 3 (Opcional) Escribir una funcin lagrange con el formato o function [c]=lagrange(x, f) que dados los nodos (vector x) y los valores correspondientes de ordenada (vector f ) devuelva los coecientes del polinomio interpolador de Lagrange.

Andrei Mart nez Finkelshtein

También podría gustarte