Definición
Un polinomio de grado n es una expresión de la forma:
P(x) = anxn + an-1xn-1 + … +a1x + a0
Donde an 0
Teorema (teorema de aproximación de Weierstrass)
Suponga que f está definida y es continua en [a, b]. Para e > 0 existe un polinomio P definido en [a, b], con la propiedad de que
|f(x) P(x)| < e, para toda x en [a, b]
Desarrollo en series de Taylor
Sea f(x) = ex
Desarrollando en serie de Taylor alrededor de x = 0
P0(x) = 1 P1(x) = 1 + x P2(x) = 1 + x + x2/2
P3(x) = 1 + x + x2/2 + x3/6 P4(x) = 1 + x + x2/2 + x3/6 + x4/24
P5(x) = 1 + x + x2/2 + x3/6 + x4/24 + x5/120
Valores de ex
Valores de las aproximaciones de ex con polinomios de Taylor
Expansión de Taylor para 1/x
Interpolación polinomial de Newton
Revisaremos solo algunos casos: lineal, de segundo grado y de tercer grado.
Interpolación lineal
x0
x
x1
f(x0)
f1(x)
f(x1)
f(x)
Utilizando triángulos semejantes
Reordenando
Ejemplo
Estimar ln 2 mediante interpolación lineal si ln1 = 0 y ln 6 = 1.791759 y ln 4 = 1.386294
Valor real ln 2 = 0.6931472
Error relativo porcentual = 33.3%
f(x) = ln x
f1(x)
Estimaciones lineales
Valor verdadero
Interpolación cuadrática
Polinomio cuadrático
f2(x) = b0 + b1(x x0) + b2(x x0)(x x1) (1)
simplificado
f2(x) = b0 + b1x b1x0 + b2x2 + b2x0 x1 b2xx0 b2xx1
Podemos escribirlo como
f2(x) = a0 + a1x + a2x2
Donde
a0 = b0 b1x0 + b2x0 x1, a1 = b1 b2x0 b2x1, a2=b2
Podemos evaluar b0, b1 y b2 sustituyendo x0, x1 y x2 en la ecuación (1), se obtiene
b0 = f(x0)
ejemplo 2
Calculemos ln 2 con ln 4 y ln 6, los punto que se conocen son:
x0 = 1 f(x0) = 0
x1 = 4 f(x0) = 1.386294
x0 = 6 f(x0) = 1.791759
Aplicando las ecs. anteriores
b0 = 0
b1 = (1.386294 0)/(4 1) = 0.4620981
b2 = ((1.791759 1.386294)
/(6 4) 0.4620981)/(6 1)
= 0.0518731
El polinomio es
f2(x) = 0.4620981(x 1) 0.0518731(x 1)(x 4)
f2(2) = 0.5658444
f(x) = ln x
Estimación cuadrática
Valor verdadero
Estimación lineal
Valor real ln 2 = 0.6931472
Error relativo porcentual = 18.4%
Forma general
Polinomio general
fn(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 paréntesis cuadrados se denominan diferencias divididas finitas.
La n-ésima diferencia dividida finita es:
Se conoce como polinomio de interpolación de Newton en diferencias divididas.
ejemplo 3
Calculemos ln 2 con ln 0, ln 4, ln 5 y ln 6, los punto que se conocen son:
x0 = 1 f(x0) = 0
x1 = 4 f(x1) = 1.386294
x2 = 6 f(x3) = 1.791759
x3 = 5 f(x2) = 1.609438
primeras diferencias
f [x1, x0] = (1.386294 0)/(4 1) = 0.4602981
f [x2, x1] = (1.791759 1.386294)/(6 4) = 0.2027326
f [x3, x2] = (1.609438 1.791759)/(5 6) = 0.1823216
Segundas diferencias
f [x2, x1, x0] = (0.2027326 0.4602981)/(6 1) = 0.05187311
f [x3, x2, x1] = (0.1823216 0.2027326)/(5 4) = 0.02041100
tercera diferencia
f [x3, x2, x1 , x0] = (0.02041100(0.05187311))/(5 1) = 0.007865529
Polinomio
f3(x) = 0 + 0.4602981(x 1) 0.05187311(x 1) (x 4) + 0.007865529(x 1) (x 4) (x 6)
Valor calculado con el polinomio
f3(2) = 0.6287686
Ejemplo 3 (cont.)
f(x) = ln x
Valor verdadero
Estimación cúbica
f3(x)
Estimación del error
Rn = f [,xn+1, xn, …, x1, x0](x x0) (x x1)… (x xn)
Para estimar el error requerimos de un datos más (xn+1). La siguiente fórmula puede utilizarse para estimar el error.
Interpolación y polinomio de Lagrange
Se 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 Ln,k(xk) con la propiedad de que
Ln,k(xi) = 0 cuando i ? k y Ln,k(xk) = 1
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 Lagrange
Teorema
Si x0, x1, x2, … xn, son n+1 números distintos y si f es una función cuyos valores están dados en esos números, entonces existe un polinomio de grado a lo más n, con la propiedad de que
f(xk) = P(xk) para cada k = 0, 1, 2, …n
Este polinomio está dado por
donde
Aproximación a 1/x con interpolantes de Lagrange
P(x) = 0.5*((x6.5)x+10)+0.4*((4x+24)x32)/3+ 0.25*((x + 4.5)x+5)/3
P(x) = (0.05x 0.425)x + 1.15 = 0.05×2 0.425x + 1.15
f(3) = P(3) = 0.325
Usaremos 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:
Aproximación a 1/x con interpolantes de Lagrange
P(x) = (0.05x 0.425)x + 1.15
f(3) = P(3) = 0.325
El error en la interpolación de Lagrange
El error en la interpolación de Lagrange puede calcularse con
Algoritmo en Matlab
function 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);
end
return
Calcula coeficientes de P2(x)
%Calcula el polinomio interpolante de Lagrange de grado 2
function [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;
Interpolación Inversa
Tabla 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 interpolación de grado 2 con los puntos (2, 0.5), (3, 0.3333) y (4, 0.25) y resolviendo la ecuación:
f (x) = 0.3 = 1.08333 0.375x + 0.041667×2
Lo que da x = 5.704158 y x = 3.295842, el valor real es 3.333.
Trazadores (Splines)
Dados n +1 puntos podemos construir un polinomio de grado n para interpolar valores dentro del intervalo.
También se pueden usar líneas rectas entre cada par de puntos para hacer interpolación lineal entre ellos o polinomios cuadráticos o cúbicos.
Tales interpoladores se llaman trazadores lineales, cuadráticos y cúbicos, respectivamente.
La ventaja de los trazadores es que no presentan el efecto de oscilación de los polinomios de alto grado.
f (x)
x
f (x)
f (x)
f (x)
Trazadores lineales
Para los trazadores lineales se definen rectas entre cada intervalo para calcular los valores intermedios.
f (x) = f (x0) + m0(x x0) x0