Interpolacion lagrange, newton y splines

Solo disponible en BuenasTareas
  • Páginas : 6 (1471 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de mayo de 2011
Leer documento completo
Vista previa del texto
UNIVERSIDAD DE OVIEDO
DEPARTAMENTO DE MATEMÁTICAS

Asignatura Tema Práctica Autor

Cálculo Numérico Interpolación Splines 3 Lagrange,

Página 1 de 4 Newton y

César Menéndez Fernández

1

Formas de Lagrange, Newton y Splines

Se conoce como problema de interpolación de Lagrange el que se plantea cuando se conoce un conjunto de puntos {x0, x1, x2, …xn} denominados soporte y el valorde la función en ellos {f(x0), f(x1), f(x2), …f(xn)}, y se desea obtener un polinomio Pn(x) que coincida con la función en los puntos del soporte. La primera opción para resolver este problema es plantear directamente el sistema lineal de ecuaciones a que da lugar el conjunto de condiciones, esto es, Pn(xk)=f(xk), k=0, 1, 2, … n, siendo Pn ( x ) = an x n + an−1 x n−1 + an−2 x n−2 … + a2 x 2 + a1x + a0 . Esto conduce al sistema
⎛1 ⎜ ⎜1 ⎜1 ⎜ ⎜ ⎜ ⎝1 x0 x1 x2 xn
2 x0 n x0 ⎞ ⎛ a0 ⎞ ⎛ ⎟ ⎜ ⎟ ⎜ x1n ⎟ ⎜ a1 ⎟ ⎜ n x2 ⎟ ⋅ ⎜ a2 ⎟ = ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ n⎟ ⎜ xn ⎠ ⎝ an ⎠ ⎝

x x

2 1 2 2

2 xn

f ( x0 )⎞ ⎟ f (x1 ) ⎟ f ( x 2 )⎟ ⎟ ⎟ f ( x n )⎟ ⎠

Pero este método da lugar a un sistema muy mal condicionado, con importantes errores numéricos. Su implementación en MATLAB se realiza mediante lainstrucción polyfit tomando como grado del polinomio el número de datos menos uno.
p=polyfit(x,y,n) Obtiene el polinomio de grado n con ajuste mínimo cuadrático a los datos (x,y). Error si length(x) ≤n [p,S,m]=polyfit(x,y,n) Realiza previamente un centrado y escalado de los datos x tomando respectivamente la media y la varianza devueltos en m, esto es, x = polinomio y del algoritmo de ajuste.x−x . Esto mejora las propiedades numéricas del sx

Utilizamos las instrucciones anteriores para interpolar el polinomio x4+2x-1 mediante 10 puntos equiespaciados en el intervalo [-3,3], y posteriormente representar los puntos y el interpolante.
» f=inline(‘x.^4+2*x-1’);x=linspace(-3,3,10);y=f(x); » p=polyfit(x,y,length(x)-1) » X=linspace(-3,3);Y=f(X);P=polyval(p,X); » plot(X,Y,X,P,x,y,'*');gridon; » legend('funcion','Interpolante','datos')

A continuación comparamos las instrucciones anteriores usando la función f ( x ) = x sin ( x 2 ) en

el intervalo [-π,π] tomando 8 puntos equiespaciados.
» f=inline('x.*sin(x.^2)');

Cálculo Numérico

Interpolación – (Lagrange, Newton y Splines)

Práctica 3

» n=8;a=-pi;b=pi; » x=linspace(a,b,n);y=f(x); » p0=polyfit(x,y,n-1) »[p1,s,m]=polyfit(x,y,n-1) » X=linspace(a,b);Y=f(X);P0=polyval(p0,X);P1=polyval(p1,(X-m(1))/m(2)); » plot(X,Y,X,P0,X,P1,x,y,'*');grid on; » legend('funcion','Interp','InterpN','datos') Se pide: 1. Calcular el polinomio de interpolación de la función f ( x ) = e
− x2

utilizando un soporte de 9

puntos equiespaciados en el intervalo [-2,2]. Representar la función y el polinomio de interpolación.También se puede obtener el polinomio mediante la forma de Newton de diferencias divididas: Pn ( x ) = ∑ f [ x0 , x1 ,
k =0 n

, xk ] ( x − x0 )( x − x1 )

( x − xk −1 ) .

o calcularlo como combinación de los polinomios de Lagrange, definidos como

Ln ( x ) = k

n ( x − x0 )...( x − xk −1 ).( x − xk +1 )...( x − xn ) y así Pn ( x ) = ∑ f ( xk )Ln ( x ) k ( xk − x0 )...( xk − xk −1 ).( xk −xk +1 )...( xk − xn ) k =0

Las siguientes instrucciones obtienen una matriz cuyas filas son los coeficientes de los polinomios de interpolación de Lagrange a partir de un soporte de puntos X.
n=size(x);p=zeros(n); for i=1:n q=x;q(i)=[];q=poly(q);p(i,:)=q/polyval(q,x(i)); end

Utilizando los datos del ejemplo f ( x ) = x sin ( x 2 ) , el polinomio de interpolación se obtiene

mediante
»P=y*p Se pide: 2. Representar los polinomios de Lagrange cuando se toma como soporte el {0, 1}. Verificar que la suma de ambos polinomios es una recta constante. ¿Cual es su valor?. Repetir lo anterior con {0,1,2}, {0,1,2,3} y {0,1,2,3,4}. 3. Comprobar, con el ejemplo

f ( x ) = e − x , que el polinomio obtenido usando los polinomios de
2

Lagrange coincide con el obtenido inicialmente....
tracking img