interpolacion(Metodos Numericos)

24
 INTERPOLACIÓN

description

Aplicaciciones de los metodos Numericos

Transcript of interpolacion(Metodos Numericos)

  • INTERPOLACIN

  • INTERPOLACIN POLINOMIAL DE LAGRANGEEn algunas ocasiones los datos obtenidos no contienen un cambio constante en la variable. Si adems, los valores puntuales no se agrupan en una recta (Fig.1), con mayor razn la interpolacin lineal no es la ms apropiada. En este caso se debe usar una interpolacin polinomial, a la cual corresponde la frmula de Lagrange. Considere una serie de puntos de coordenadas [xi, f (xi)] donde las xi no estn, en general, igualmente espaciados e i puede tomar todos los valores enteros de 0 a n (lo que indica que hay n+1 de esos puntos).

  • INTERPOLACIN Y POLINOMIO DE LAGRANGESe trata de encontrar un polinomio de grado n que pase por los puntos (x0, f(x0)), (x1, f(x1)), ... (xn, f(xn)), se construye un cociente Pn,k(xk) con la propiedad de que:Pn,k(xi) = 0 cuando i k y Pn,k(xk) = 1 cuando i = k Se requiere entonces que el numerador contenga(x x0) (x x1)... (x xk1)(x xk+1)... (x xn)El denominador debe coincidir con el numerador cuando x = xk.

  • N-simo polinomio interpolante de LagrangeTeoremaSi x0, x1, x2, ... xn, son n+1 nmeros distintos y si f es una funcin cuyos valores estn dados en esos nmeros, entonces existe un polinomio de grado a lo ms n, con la propiedad de quef(xk) = P(xk) para cada k = 0, 1, 2, ...nEste polinomio est dado por

    donde

  • Aproximacin a 1/x con interpolantes de LagrangeP(x) = 0.5*((x6.5)x+10)+0.4*((4x+24)x32)/3+ 0.25*((x + 4.5)x+5)/3P(x) = (0.05x 0.425)x + 1.15 = 0.05x2 0.425x + 1.15f(3) = P(3) = 0.325Usaremos x0 = 2, x1 = 2.5 y x2 = 4, para obtener un polinomio de grado 2 para 1/x. f(x0) = 0.5, f(x1)= 0.4 y f(x2) = 0.25.Los polinomios de Lagrange son:

  • Aproximacin a 1/x con interpolantes de LagrangeP(x) = (0.05x 0.425)x + 1.15f(3) = P(3) = 0.325

  • El error en la interpolacin de LagrangeEl error en la interpolacin de Lagrange puede calcularse con

  • Algoritmo en Matlabfunction fi = Lagran_(x, f, xi)fi=zeros(size(xi));np1=length(f);for i=1:np1 z=ones(size(xi)); for j=1:np1 if i~=j, z = z.*(xi - x(j))/(x(i)-x(j));end end fi=fi+z*f(i);endreturn

  • Calcula coeficientes de P2(x)%Calcula el polinomio interpolante de Lagrange de grado 2function [a,b,c] = Lagrange(x0,x1,x2,fx0,fx1,fx2)t0 = (x0 - x1)*(x0 - x2);t1 = (x1 - x0)*(x1 - x2);t2 = (x2 - x0)*(x2 - x1);a = fx0/t0 +fx1/t1 +fx2/t2;b = -fx0*(x1 + x2)/t0 - fx1*(x0 + x2)/t1 - fx2*(x0 + x1)/t2;c = fx0*x1*x2/t0 + fx1*x0*x2/t1 + fx2*x0*x1/t2;

  • Interpolacin InversaTabla de valores de f (x) = 1/x.Se desea conocer el valor de x tal que f (x) = 0.3.El problema se resuelve definiendo un polinomio de interpolacin de grado 2 con los puntos (2, 0.5), (3, 0.3333) y (4, 0.25) y resolviendo la ecuacin:f (x) = 0.3 = 1.08333 0.375x + 0.041667x2Lo que da x = 5.704158 y x = 3.295842, el valor real es 3.333.

    x1 2 3 4 5 6 7f (x)1 0.5 0.3333 0.25 0.2 0.1667 0.1429

  • Aplicando las condiciones de continuidad se llega a

    La ecuacin anterior, genera un sistema de n1 ecuaciones lineales con n+1 incgnitas.donde

  • Los valores del spline S se calculan eficientemente conDonde

  • Los coeficientes de los polinomios se pueden calcular con:c1 = yi xi Dc2 = D xi Ec3 = E xi Ac4 = APara obtener: fi (x) = c1 + c2 x + c3 x2 + c4 x3Donde

  • Guin en MatLab%encuentra los trazadores cbicos para un conjunto de puntos x,y% x - vector con los n valores de x% y - vector con los n valores de y% w - matriz de n-1 por 4 con los coeficientes de los polinomios cbicosfunction w = spline3(x,y) [dummy n] = size(x); for i = 1:n-1 h(i) = x(i+1)-x(i); b(i) = 6*(y(i+1)-y(i))/h(i); end u(2) = 2*(h(1)+h(2)); v(2) = b(2)-b(1); for i = 3:n-1 u(i) = 2*(h(i)+h(i-1))-h(i-1)^2/u(i-1); v(i) = b(i)-b(i-1)-h(i-1)*v(i-1)/u(i-1); end

  • z(n) = 0; for i = n-1:-1:2; z(i) = (v(i)-h(i)*z(i+1))/u(i); end z(1) = 0; for i = 1:n-1 A = (z(i+1)-z(i))/6/h(i); B = z(i)/2; C = -h(i)*z(i+1)/6-h(i)*z(i)/3+(y(i+1)-y(i))/h(i); D = C-x(i)*B+A*x(i)^2; E = B-2*x(i)*A; w(i,4) = y(i)-x(i)*D; w(i,3) = D-x(i)*E; w(i,2) = E-x(i)*A; w(i,1) = A; end end

  • Interpolacin polinomial de NewtonRevisaremos solo algunos casos: lineal, de segundo grado y de tercer grado.

  • Interpolacin linealx0xx1f(x0)f1(x)f(x1)f(x)Utilizando tringulos semejantesReordenando

  • EjemploEstimar ln 2 mediante interpolacin lineal si ln1 = 0 y ln 6 = 1.791759 y ln 4 = 1.386294Valor real ln 2 = 0.6931472Error relativo porcentual = 33.3%f(x) = ln xf1(x)Estimaciones linealesValor verdadero

  • Interpolacin cuadrticaPolinomio cuadrticof2(x) = b0 + b1(x x0) + b2(x x0)(x x1)(1)simplificadof2(x) = b0 + b1x b1x0 + b2x2 + b2x0 x1 b2xx0 b2xx1Podemos escribirlo comof2(x) = a0 + a1x + a2x2Donde a0 = b0 b1x0 + b2x0 x1, a1 = b1 b2x0 b2x1, a2=b2 Podemos evaluar b0, b1 y b2 sustituyendo x0, x1 y x2 en la ecuacin (1), se obtiene b0 = f(x0)

  • ejemplo 2Calculemos ln 2 con ln 4 y ln 6, los punto que se conocen son:x0 = 1f(x0) = 0x1 = 4f(x0) = 1.386294x0 = 6f(x0) = 1.791759Aplicando las ecs. anterioresb0 = 0b1 = (1.386294 0)/(4 1) = 0.4620981b2 = ((1.791759 1.386294) /(6 4) 0.4620981)/(6 1) = 0.0518731El polinomio esf2(x) = 0.4620981(x 1) 0.0518731(x 1)(x 4)

    f2(2) = 0.5658444f(x) = ln xEstimacin cuadrticaValor verdaderoEstimacin linealValor real ln 2 = 0.6931472Error relativo porcentual = 18.4%

  • Forma generalPolinomio generalfn(x) = b0 + b1(x x0) +...+ bn(x x0)(x x1)... (x xn1) Los coeficientes se calculan con b0 = f(x0) b1 = f [x1, x0] b2 = f [x2, x1, x0]

    bn = f [,xn, xn1, ..., x1, x0]Donde los parntesis cuadrados se denominan diferencias divididas finitas.La n-sima diferencia dividida finita es:

    Se conoce como polinomio de interpolacin de Newton en diferencias divididas.

  • ejemplo 3Calculemos ln 2 con ln 0, ln 4, ln 5 y ln 6, los punto que se conocen son:x0 = 1f(x0) = 0x1 = 4f(x1) = 1.386294x2 = 6f(x3) = 1.791759x3 = 5f(x2) = 1.609438primeras diferenciasf [x1, x0] = (1.386294 0)/(4 1) = 0.4602981f [x2, x1] = (1.791759 1.386294)/(6 4) = 0.2027326f [x3, x2] = (1.609438 1.791759)/(5 6) = 0.1823216Segundas diferenciasf [x2, x1, x0] = (0.2027326 0.4602981)/(6 1) = 0.05187311f [x3, x2, x1] = (0.1823216 0.2027326)/(5 4) = 0.02041100tercera diferenciaf [x3, x2, x1 , x0] = (0.02041100(0.05187311))/(5 1) = 0.007865529Polinomiof3(x) = 0 + 0.4602981(x 1) 0.05187311(x 1) (x 4) + 0.007865529(x 1) (x 4) (x 6)Valor calculado con el polinomiof3(2) = 0.6287686

  • Ejemplo 3 (cont.)f(x) = ln xValor verdaderoEstimacin cbicaf3(x)

  • Estimacin del errorRn = f [,xn+1, xn, ..., x1, x0](x x0) (x x1)... (x xn)Para estimar el error requerimos de un datos ms (xn+1). La siguiente frmula puede utilizarse para estimar el error.

    ****************