Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resumen
1. Introducción
Durante un desarrollo cualquiera que incluya un procesamiento de datos,
se pueden tener datos “con ruido” o “sin ruido”. En el primer caso, la idea es
encontrar una funcion f (x) que mejor represente al dataset que se obtuvo. Este
problema, se suele llamar “problema de Ajuste”.
En el segundo caso, sea un dataset proveniente de una medición “sin ruido”.
Es decir, una colección de pares (xi , fi ) donde las x representan los valores de las
abscisas y las f los valores de la función evaluada en dichos puntos. El problema
a enfrentar es el siguiente: quiero hallar una función f (x) tal que f (xi ) = fi ,
con i = 0, . . . , n, siendo f desconocida. Sin embargo, ¡Hay millones de ellas que
cumplan dicha condición!. De este tipo de situaciones se encarga la rama de los
métodos numéricos que estudia los problemas de interpolación y es el de interés
de esta publicación.
En la sección 2 explico un tipo de interpolacion llamada Interpolación de
Lagrange, con la utilización de los Nodos de Chebyshev y lo que se conoce como
fenómeno de Runge.
En la sección 3 muestro un ejemplo, interpolando la funcion f (x) = |x|, con
los fundamentos teóricos detallados en la sección 2.
En la sección 4 detallo las conclusiones y en la seccion Anexo describo los
codigos de programación que utilizo para obtener los resultados.
2. Interpolación de Lagrange
Interpolar significa estimar el valor desconocido de una función en un punto,
al tomar como base los valores conocidos en los puntos de las abscisas. Una
forma de interpolar es mediante la utilización de polinomios interpolantes. Es
decir, con los n + 1 puntos mencionados anteriormente, busco el polinomio de
grado n pn (x) tal que pn (xi ) = fi , continuando con la convención utilizada
anteriormente.
1
Por ejemplo, sea el caso de un dataset conformado por dos puntos, (x0 , f0 ), (x1 , f1 ).
J.L. Lagrange (matemático francés del siglo XVIII) demostró que se puede to-
mar como polinomio interpolante el siguiente
x − x1 x − x0
f = P1 (x) = f0 + f1 (1)
x0 − x1 x1 − x0
Defino a los coeficientes de la acuación anterior, llamados polinomios coefi-
cientes de Lagrange para los nodos x0 y x1 , como
x−x1 x−x0
L1,0 (x) = x0 −x1 y L1,1 (x) = x1 −x0 (2)
donde se ve claramente que L1,0 (x0 ) = 1, L1,0 (x1 ) = 0, L1,1 (x0 ) = 0 y
L1,1 (x1 ) = 1, y el polinomio definido en (1) pasa por los puntos dados.
La forma generalizada para construir un polinomio PN (x) que tenga grado
menor o igual que N y que pase por N + 1 puntos es la fómula
N
X
PN (x) = yk LN,k (x) (3)
k=0
donde
QN
j=0,j6=k (x − xj )
LN,k (x) = QN (4)
j=0,j6=k (xk − xj )
Es importante entender el error que se comete al utilizar un polinomio in-
terpolador de Lagrange para aproximar una función f (x). Supongamos que
f ∈ C N +1 [a, b] y que x0 , . . . , xN ∈ [a, b] son N + 1 nodos de interpolación.
Si x ∈ [a, b], entonces [Mathews, 2000]
(x − x0 )(x − x1 ) . . . (x − xN )f N +1 (c)
EN (x) = (6)
(N + 1)!
para algún valor c = c(x) del intervalo [a, b] (para la demostración se puede
consultar la referencia). Si el dataset proviene de una función cuya expresión
analı́tica es conocida, se puede estimar el error a través de la expresión (6). Una
forma de realizar esto, es mediante la relación
maxf N +1 (x) : −1 ≤ x ≤ 1
|EN (x)| ≤ |Q(x)| (7)
(N + 1)!
donde
2
2.1. Nodos de Chebyshev y fenómeno de Runge
P. L. Chebyshev (matemático ruso del siglo XIX) resolvió el problema,
utilizando la expresion (7), de cómo seleccionar el conjunto de nodos xk con
k = 0, . . . , N que haga mı́nimo el valor del numerador del témino de la derecha
de la relación. Para ello, es necesario conocer las propiedades de los polinomios
de Chebyshev (su demostracion excede el alcance de esta publicación, pero pue-
de consultarse la referencia para mayor detalle, [Mathews, 2000]). Dichos nodos,
cuando el dominio se encuentra en el intervalo [-1, 1] son de la forma
(2k + 1)π
xk = cos (9)
2N
para k = 0, 1, . . . , N − 1. Estos valores se llaman nodos de Chebyshev.
Ahora bien, ¿qué sucede con el error cuando se utiliza un polinomio inter-
polante de Lagrange y nodos equiespaciados? ¿tiende a cero a medida que se
incrementa N?. Acá hay que tener especial cuidado. Para algunas funciones,
como es el caso de sin(x) donde sus derivadas se encuentran acotadas por una
constante,la respuesta es afirmativa. Sin embargo, en general, no siempre sucede
1
esto. Ocurre, en funciones como f (x) = 1+x 3 , que el máximo del término del
error EN (x) crece a medida que N toma valores mas grandes, y ya no es cierto
que el error converge a cero. Esto se conoce como fenómeno de Runge y se da
porque los nodos se encuentran equiespaciados. Sin embargo, cuando se utilizan
nodos de Chebyshev, el error EN (x) tiende a cero cuando N → ∞.
Este fenómeno se pone en claro manifiesto cuando se grafica el polinomio
interpolante utilizando nodos equiespaciados: ¡los errores mas grandes se en-
cuentran en los extremos! Lo que sucede, es que la derivada f N +1 supera al
factorial N + 1, y al introducir mas puntos (incrementando de esta forma N ),
introduzco más error.
3
xi V alor fi V alor
x0 −1,00000000 f0 1,00000000
x1 −0,80000000 f1 0,80000000
x2 −0,60000000 f2 0,60000000
x3 −0,40000000 f3 0,40000000
x4 −0,20000000 f4 0,20000000
x5 0,00000000 f5 0,00000000
x6 0,20000000 f6 0,20000000
x7 0,40000000 f7 0,40000000
x8 0,60000000 f8 0,60000000
x9 0,80000000 f9 0,80000000
x10 1,00000000 f10 1,00000000
4
Figura 3: Polinomio interpolante de Lagrange con 11 puntos equiespaciados
5
Figura 5: Polinomio interpolante de Lagrange con 28 puntos equiespaciados
6
xk V alor fk V alor
x0 −0,98982144 f0 0,98982144
x1 −0,90963200 f1 0,90963200
x2 −0,75574957 f2 0,75574957
x3 −0,54064082 f3 0,54064082
x4 −0,28173256 f4 0,28173256
x5 0,00000000 f5 0,00000000
x6 0,28173256 f6 0,28173256
x7 0,54064082 f7 0,54064082
x7 0,54064082 f7 0,54064082
x9 0,90963200 f9 0,90963200
x10 0,98982144 f10 0,98982144
7
Figura 8: Polinomio interpolante de Lagrange con 11 puntos equiespaciados,
utilizando Nodos de Chebyshev
8
Figura 10:Polinomio interpolante de Lagrange con 27 puntos equiespaciados,
utilizando Nodos de Chebyshev
4. Conclusiones
Al tener la necesidad, cualquiera sea el caso, de tener que interpolar una
función, no solo es cuestión de calcular un numero grande de coeficientes de
Lagrange, sino que también la elección de los puntos del dataset es de suma
importancia. Aquellos valores de abscisas que se tomen siguiendo el método
de Chebyshev, siempre que se pueda, nos va a segurar que el error tiende a
cero a medida que tomamos más puntos. Sin embargo, esto último tiene una
desventaja: realizar el cálculo a mano, puede llegar a ser mas tedioso, ya que
ahora no es sólo dividir el intervalo de forma equiespaciada, sino que hay que
utilizar la expresion (9) y por ello, utilizar un sistema de cómputo simplifica de
forma significativa el trabajo.
Anexo
Para la implementación de la función que calcula los coeficientes de Lagrange,
se utilizan funciones integradas de Matlab que simplifican mucho el trabajo
en este caso. Una de ellas, es la función poly que produce un vector cuyas
componentes son los coeficientes de un polinomio del que se especifican las
raı́ces. La otra, es la función conv que proporciona un vector cuyas componentes
son los coeficientes de un polinomio que es el producto de otros dos dados. De
esta forma, voy formando la matriz de los polinomios coeficientes de Lagrange,
para luego multiplicarlo por los puntos de la funcion evaluados en los puntos
de abscisas y ası́ obtener los coeficientes de Lagrange. La implementación de
9
nodosTche para el cálculo de nodos de Chebyshev simplemente itera sobre un
vector, calculando los nodos siguiendo la expresión (9) y retorna dicho vector.
function C=lagrange(X,Y)
w = length(X);
n = w - 1;
L = zeros(w,w);
for k=1:n+1
V = 1;
for j=1:n+1
if k ~= j
V = conv(V, poly(X(j))) / (X(k) - X(j));
end
end
L(k, :) = V;
end
C = Y * L;
function v = nodosTche(n)
for i = 0:n-1
v(i+1) = cos ( (2*i + 1)*(pi/(2*n)) );
end
10
Referencias
[Mathews, 2000] Mathews, J.H. y Fink, K.D. (2000) Métodos Numéricos con
Matlab. Tercera Edición. Prentice Hall.
11