Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica AM1
Practica AM1
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
-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.