Вы находитесь на странице: 1из 6

PRCTICA

INTERPOLACIN NUMRICA

Objetivos
El alumno conocer, aplicar y comparar algunos mtodos de interpolacin
numrica de funciones.
Al final de esta prctica el alumno podr:
1. Obtener una funcin que contenga un conjunto dado de puntos en un plano,
utilizando los mtodos de interpolacin de Lagrange y Newton.
2. Implementar dichos mtodos en el lenguaje de programacin C
Antecedentes
1.
2.
3.
4.

Dominar el uso de ciclos de repeticin en lenguaje C


Manejar arreglos y estructuras en lenguaje C
Haber creado y utilizado funciones de tipo entero y real en lenguaje C
Manejar operaciones con polinomios
Introduccin

De un conjunto de puntos en un plano, pueden existir varias funciones que unan dichos
puntos. Este tipo de funciones nos ayuda a modelar sistemas fsicos.
Dichas funciones se pueden obtener por diversos mtodos, y nos ayudan a calcular
valores intermedios entre el conjunto de puntos dado; a este proceso, se le llama
interpolacin.
Polinomio de Interpolacin con Diferencias Divididas de Newton.
Este mtodo se basa en la obtencin de un polinomio a partir de un conjunto de puntos
dado, aproximndose lo ms posible a la curva buscada.
La ecuacin general para la obtencin de la funcin por este mtodo es:
f n ( x ) = b0 + b1 ( x x 0 ) + b2 ( x x0 )( x x1 ) + ... + bn ( x x0 )( x x1 )...( x x n 1 )
Donde las bi se obtienen mediante la aplicacin de una serie de funciones incluidas en
una tabla de diferencias.
NOTA: Con este mtodo, haciendo la multiplicacin de los binomios para cada
diferencia, y simplificando trminos, es posible encontrar un polinomio caracterstico
al conjunto de puntos dado.
Por ejemplo, suponiendo que tenemos 4 puntos, la tabla de diferencias tiene la siguiente
forma:

Elaborada por:
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Programacin Avanzada y Mtodos Numricos

f(x)
f(x0)=b0

f [ x 2 , x1 ] f [ x1 , x0 ]
f [ x 2 , x1 , x0 ] = b2 =
x2 x0

f [ x2 , x1 ] =

f(x2)

f (x ) f (x0)
f [x1, x0] = b1 = 1
x1 x0

f(x3)

Segunda Diferencia

x2

Primera Diferencia

x3

x1

x0

f(x1)

PRCTICA
INTERPOLACIN NUMRICA

f [ x3 , x2 , x1 , x0 ] = b3
b3 =

f [ x3 , x2 , x1 ] f [ x2 , x1 , x0 ]
x3 x0

f ( x 2 ) f ( x1 )
f [ x3 , x 2 ] f [ x 2 , x1 ]
f [ x3 , x 2 , x1 ] =
x 2 x1
x x
3

f [ x3 , x 2 ] =

Tercera Diferencia

f ( x3 ) f ( x 2 )
x3 x 2

Con esto, la ecuacin quedara de la siguiente forma:


f 3 ( x) = b0 + b1 ( x x0 ) + b2 ( x x0 )( x x1 ) + b3 ( x x0 )( x x1 )( x x 2 )
Por ejemplo:
Si tenemos los siguientes puntos
x
0.1
0.4
0.7
1

f(x)
2.31
3.36
4.59
6

Calculamos su tabla
x
0.1
0.4
0.7
1

f(x)
2.31
3.36
4.59
6

Primera
3.5
4.1
4.7

Elaborada por:
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Segunda
1
1

Tercera
0

Programacin Avanzada y Mtodos Numricos

PRCTICA
INTERPOLACIN NUMRICA

Obteniendo el siguiente polinomio:

f 3 ( x) = 2.31 + 3.5( x 0.1) + 1( x 0.1)( x 0.4) + 0( x 0.1)( x 0.4)( x 0.7)


f 3 ( x) = x 2 + 3 x + 2
El algoritmo que calcula la tabla de diferencias para N puntos es el siguiente:

Lee N pares de puntos y colcalos en la matriz M


DESDE QUE i = 1 HASTA N
DESDE QUE j = 0 HASTA (N-i)
M[j][i+1]=(M[j+1][i]-M[j][i])/(M[j+i][0]-M[j][0])
FIN
FIN
Imprime en pantalla la tabla de las diferencias calculadas.

El programa utiliza una matriz M de N renglones por N+1 columnas, donde N es el


nmero de puntos dados para obtener el polinomio de interpolacin.
TIP: Para poder calcular la aproximacin dentro del mismo programa, es
recomendable usar un arreglo de N elementos que tenga como primer elemento un 1, en
el segundo (x-x0), en el tercero, el resultado multiplicar el segundo elemento del vector
con (x-x1), y as sucesivamente para solo multiplicar las bi de la tabla por este vector y
obtener la aproximacin en el punto deseado (x).

Elaborada por:
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Programacin Avanzada y Mtodos Numricos

PRCTICA
INTERPOLACIN NUMRICA

Mtodo de Lagrange
La interpolacin permite el clculo de valores intermedios de datos experimentales los
cuales no tienen una funcin que los represente. El mtodo ms comn para interpolar
valores intermedios, es la interpolacin polinomial, la cual consiste en determinar el
polinomio de orden n que ajusta a n+1 datos. La interpolacin de Lagrange es una de
las alternativas ms atractivas que existe para interpolar, debido a la facilidad de
programar.
La interpolacin de Lagrange se expresa de la siguiente manera:

fn ( X ) =

j =0
j i

i =0

Li ( X ) f ( X i )

X Xj

en donde: Li ( X ) =

Xi X j

, denota el "producto de".

Por ejemplo, siguiendo la frmula, para el polinomio de 1er orden (n = 1) es:

X X0
X X1
f (X0) +
f ( X1)
X 0 X1
X1 X 0

f1 ( X ) =

y para el polinomio de segundo orden es:

f2 ( X ) =

( X X 1 )( X X 2 ) f ( X ) + ( X X 0 )( X X 2 ) f ( X ) + ( X X 0 )( X X 1 ) f ( X )
0
2
( X 0 X 1 )( X 0 X 2 )
( X 1 X 0 )( X 1 X 2 ) 1 ( X 2 X 0 )( X 2 X 1 )

para un polinomio de 3er orden sera:


f2 ( X ) =

( X X 1 )( X X 2 )( X X 3 ) f ( X ) + ( X X 0 )( X X 2 )( X X 3 ) f ( X )
0
( X 0 X 1 )( X 0 X 2 )( X 0 X 3 )
( X 1 X 0 )( X 1 X 2 )( X 1 X 3 ) 1
+

( X X 0 )( X X 1 )( X X 3 ) f ( X ) + ( X X 0 )( X X 1 )( X X 2 ) f ( X )
2
3
( X 2 X 0 )( X 2 X 1 )( X 2 X 3 )
( X 3 X 0 )( X 3 X 1 )( X 3 X 2 )

Ejemplo:
Usando un polinomio de interpolacin de Lagrange de primer y segundo orden, evaluar
X=0.2 con base en los datos:

x
0.1
0.4
0.7
1

Elaborada por:
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

f(x)
2.31
3.36
4.59
6

Programacin Avanzada y Mtodos Numricos

PRCTICA
INTERPOLACIN NUMRICA

Solucin:

X X0
X X1
f (X0) +
f ( X1)
X 0 X1
X1 X 0
Sustituyendo los valores de la tabla, el polinomio de primer orden queda como sigue:
El polinomio de primer orden es: f1 ( X ) =

X 0.4
X 0.1
(2.31) +
(3.36)
0.1 0.4
0.4 0.1
Sustituyendo X = 0.2:
0.2 0.4
0.2 0.1
f1 ( X ) =
(2.31) +
(3.36) = 1.54 + 1.12 = 2.66
0.1 0.4
0.4 0.1
f1 ( X ) =

De manera similar, se desarrolla el polinomio de segundo orden:


f2 ( X ) =

( X X 1 )( X X 2 ) f ( X ) + ( X X 0 )( X X 2 ) f ( X ) + ( X X 0 )( X X 1 ) f ( X )
0
2
( X 0 X 1 )( X 0 X 2 )
( X 1 X 0 )( X 1 X 2 ) 1 ( X 2 X 0 )( X 2 X 1 )

Sustituyendo los valores de la tabla, el polinomio de segundo orden queda como:


f2 (X ) =

( X 0.4)( X 0.7 ) (2.31) + ( X 0.1)( X 0.4) (3.36) + ( X 0.1)( X 0.4) (4.59)


(0.1 0.4)(0.1 0.7 )
(0.4 0.1)(0.4 0.7 )
(0.7 0.1)(0.7 0.4)

Sustituyendo X = 0.2
f2 ( X ) =

(0.2 0.4)(0.2 0.7 ) (2.31) + (0.2 0.1)(0.2 0.4) (3.36) + (0.2 0.1)(0.2 0.4) (4.59) = 2.64
(0.1 0.4)(0.1 0.7 )
(0.4 0.1)(0.4 0.7 )
(0.7 0.1)(0.7 0.4)

Para el polinomio de tercer orden, sustituyendo los valores de la tabla en la ecuacin


general, tenemos que:
f2 (X ) =

( X 0.4)( X 0.7 )( X 1.0) (2.31) + ( X 0.1)( X 0.7 )( X 1.0) (3.36)


(0.1 0.4)(0.1 0.7 )(0.1 1.0)
(0.4 0.1)(0.4 0.7 )(0.4 1.0)
+

( X 0.1)( X 0.4)( X 1.0) (4.59) + ( X 0.1)( X 0.4)( X 0.7 ) (6) = 1.897


(0.7 0.1)(0.7 0.4)(0.7 1.0)
(1.0 0.1)(1.0 0.4)(1.0 0.7 )

Sustituyendo X= = 0.2
f2 ( X ) =

(0.2 0.4)(0.2 0.7 )(0.2 1.0) (2.31) + (0.2 0.1)(0.2 0.7 )(0.2 1.0) (3.36)
(0.1 0.4)(0.1 0.7 )(0.1 1.0)
(0.4 0.1)(0.4 0.7 )(0.4 1.0)
+

(0.2 0.1)(0.2 0.4)(0.2 1.0) (4.59) + (0.2 0.1)(0.2 0.4)(0.2 0.7 ) (6) = 1.897
(0.7 0.1)(0.7 0.4)(0.7 1.0)
(1.0 0.1)(1.0 0.4)(1.0 0.7 )

Elaborada por:
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Programacin Avanzada y Mtodos Numricos

PRCTICA
INTERPOLACIN NUMRICA

EJERCICIOS PROPUESTOS
1. Hacer un programa que calcule el polinomio de primer orden de Lagrange.
2. Dada la funcin tabular, hacer un programa que calcule el polinomio de
interpolacin de Lagrange de primer y segundo orden, para aproximar en x=2.

x
0
1
4
6

f(x)
2
3
18
38

3. Implemente el algoritmo para el mtodo de Newton de Diferencias Divididas


para N puntos.
4. De los siguientes puntos:
x
0.1
1
1.5
2

f(x)
5.77
6
6.61
7.39

Utilice el programa anterior para obtener los coeficientes del polinomio. Y


obtenga el valor de la funcin para x = 1.1
5. De la siguiente tabla:
x
-1
0
1
1.2

f(x)
-2.28
0
2.28
0.935

Resuelva utilizando Lagrange para tercer orden y Newton; compare resultados


para x = 0.8.
6. Hacer un programa que implemente el mtodo de interpolacin de Lagrange, es
decir la frmula: f n ( X ) =

n
i =0

Li ( X ) f ( X i )

Elaborada por:
Ing. Laura Sandoval Montao
Viridiana del Carmen De Luna Bonilla
Virgilio Green Prez

Programacin Avanzada y Mtodos Numricos

Вам также может понравиться