Você está na página 1de 15

PROYECTO DE MÉTODOS NUMÉRICOS

INTERPOLACIÓN DE NEWTON Y LAGRANGE

AUTORES

FRANCISCO ANTONIO CABEZAS VEGA

LUIS FERNANDO IMBETT OSORIO

JOSE MANUEL MONTES CONTRERAS

ESPECIALIDAD DEL PROBLEMA

INGENIERÍA DE SISTEMAS

DOCENTE

MOISES RAMON QUINTANA ALVAREZ

UNIVERSIDAD TECNOLÓGICA DE BOLÍVAR

FECHA DE PRESENTACIÓN

26/05/2018
TABLA DE CONTENIDO

Introducción .......................................................................................................................... 3
Problema ............................................................................................................................... 4
Proceso De Solución ............................................................................................................. 5
Explicación Grafica De La Interpolación ........................................................................ 5-6
Ejemplos Resueltos ............................................................................................................. 7

Ejemplo #1 ...................................................................................................................... 7
Ejemplo #2 ...................................................................................................................... 8
Codificación De La Solución................................................................................................ 9
Diagrama De Flujo Newton ................................................................................................ 9
Código De Newton ................................................................................................... 10-11
Diagrama De Flujo Lagrange............................................................................................ 12
Código De Newton ........................................................................................................ 13
Conclusión ........................................................................................................................... 14
Bibliografía .......................................................................................................................... 15

2
INTRODUCCIÓN

La interpolación de Newton y Lagrange son métodos que permiten la creación de un


polinomio de grado n-1, donde n es el número de datos que se tienen. Ambos métodos
asumen que no existe ruido en sus mediciones de dato; Es decir, que el polinomio generado
por el método pasara por todas las coordenadas insertadas al método. A menos que se
conozca la función original (Lo cual es prácticamente imposible al aplicarlos en la vida
real), no hay manera de calcular algún error.

3
PROBLEMA

El objetivo de los proyectos es crear herramientas (aplicaciones) que ayuden a los


estudiantes a entender y utilizar los métodos numéricos que aprenden en la asignatura,
sobre todo cuando en algunos casos es necesario trabajar con funciones complicadas,
evaluarlas, graficarlas, etc.

Para nuestro caso en específico debemos diseñar e implementar un programa para el


sistema operativo Windows basado en el lenguaje Visual C++ con ayuda de Windows
Form por medio de la interfaz gráfica de Visual Community, desarrollar el programa
solicitado que resuelva la necesidad de graficar y ejecutar de forma fácil y explicita los
métodos de interpolación de Newton y Lagrange.

4
PROCESO DE SOLUCIÓN

El propósito de ambos métodos es poder generar una función para la cual se puedan
introducir todos los datos originales y obtener 0 error, pues la curva se va modelando punto
a punto. Al obtener una función, se puede crear aproximaciones y estimaciones.(En
nuestros métodos, no proporcionamos al usuario la función, solamente el valor f(x)
para la x deseada).

El método de Newton utiliza la fórmula de polinomios de Newton

Donde las “y” entre corchetes se refieren al cálculo de diferencias dividas, el cual es un
algoritmo usado para computar tablas de funciones logarítmicas y trigonométricas, usando
división recursiva.

El método de Larange obtiene una misma función, pero elimina por completo la necesidad
de usar diferencias divididas:

, Donde

Los polinomios de Lagrange son más fáciles de computar, pues elimina la necesidad de
recurrir a métodos de recursión.

Explicación Gráfica De La Interpolación

Estas gráficas representan dado un conjunto de puntos la interpolación de grado 1 a 4 de


una función con la intención de obtener el valor de f(10), y cómo se ve reflejado esto en
una gráfica.

Para la gráfica a) se hace una interpolación de grado 4, por lo que se utilizan los 5 puntos
dados y se obtiene una función que cruce por estos puntos, luego se evalúa en x = 10.

Para la gráfica b) se hace una interpolación cúbica, por lo que sólo se utilizan los 4 puntos
más cercanos a 10, se obtiene una función que cruce por estos puntos y se evalúa en x = 10.

Para la gráfica c) se hace una interpolación cuadrática, por lo que sólo se utilizan los 3
puntos más cercanos a 10, se obtiene una función cuadrática que cruce por estos puntos y
se evalúa esa función en x = 10.

5
Para la gráfica d) se hace una interpolación lineal, por lo que sólo se utilizan los 2 puntos
más cercanos a 10, se obtiene una función lineal que cruce por estos puntos y se evalúa esa
función en x = 10.

Por estas gráficas se puede observar, también, la influencia que tiene el tamaño de la
muestra para el resultado.

6
EJEMPLOS RESUELTOS

EJEMPLO #1

A continuación se muestra los resultados de varias muestras resueltas por ambos métodos:

Con los siguientes puntos:

x, f(x) = (1, 0), (4, 1.386294), (6, 1.791759)

Se interpola usando estos datos para obtener una aproximación de f(5). Estos datos son
muestras de la función f(x) = ln(x), por lo que ya conocemos el valor de f(5) = 1.61.

Con Polinomios de Interpolación de Newton se obtienen los valores para b0… bn y


aproximación siguientes:

Para Polinomios de Interpolación de Lagrange se obtienen los coeficientes de Lagrange y


aproximación siguientes:

7
EJEMPLO #2

Con los siguientes puntos:

x, f(x) = (1, 1), (2, 0.5), (2.5, 0.4), (4, 0.25), (7, 0.14)

Se interpola usando estos datos para obtener una aproximación de f(3). Estos datos son
muestras de la función f(x) = 1/x, por lo que ya conocemos el valor de f(3) = 0.33.

Con Polinomios de Interpolación de Newton se obtienen los valores para b0… bn y


aproximación siguientes:

Para Polinomios de Interpolación de Lagrange se obtienen los coeficientes de Lagrange y


aproximación siguientes:

8
CODIFICACIÓN DE LA SOLUCIÓN

DIAGRAMAS DE FLUJO NEWTON

9
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

double diffDivFin(int i0, int i1, double* xAt, double* yAt) {

if (i1 - i0 == 0) {
return yAt[i0];
}
else {
return (diffDivFin(i0 + 1, i1, xAt, yAt) - diffDivFin(i0, i1 - 1, xAt,
yAt)) / (xAt[i1] - xAt[i0]);
}
}

double NewtonInterpolation(double xAprox, int l, double* x, double* y) {

double yAprox;
double diffsDivs[l];

for (int i = 0; i < l; i++) {


diffsDivs[i] = diffDivFin(0, i, x, y);
cout << diffsDivs[i] << endl;
}

yAprox = 0;

for (int i = 0; i < l; i++) {


double aprox = diffsDivs[i];

for (int j = 0; j < i; j++) {


aprox *= (xAprox - x[j]);
}

yAprox += aprox;
}

return yAprox;
}

int main() {

double xAprox, yAprox;


int l;

cout << "Write the number of coordinates ";


cin >> l;

cout << "Write the x to aproximate y: ";


cin >> xAprox;

double x[l];
double y[l];

ifstream myX("x.txt");
ifstream myY("y.txt");

10
for (int i = 0; i < l && myX && myY; i++) {
myX >> x[i];
myY >> y[i];
}

myX.close();
myY.close();

yAprox = NewtonInterpolation(xAprox, l, x, y);

cout << "f(x) = " << yAprox;

11
DIAGRAMAS DE FLUJO LAGRANGE

12
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;

double NewtonInterpolation(double xAprox, int l, double* x, double* y) {

double yAprox = 0;

for (int i = 0; i < l; i++) {


double aproxIt = y[i];
for (int j = 0; j < l; j++) {
if (j == i) {
continue;
}
aproxIt *= (xAprox - x[j]) / (x[i] - x[j]);
}
yAprox += aproxIt;
}

return yAprox;
}

int main() {

double xAprox, yAprox;


int l;

cout << "Write the number of coordinates ";


cin >> l;

cout << "Write the x to aproximate y: ";


cin >> xAprox;

double x[l];
double y[l];

ifstream myX("x.txt");
ifstream myY("y.txt");

for (int i = 0; i < l && myX && myY; i++) {


myX >> x[i];
myY >> y[i];
}

myX.close();
myY.close();

yAprox = NewtonInterpolation(xAprox, l, x, y);

cout << "f(x) = " << yAprox;

13
CONCLUSIÓN

Los métodos numéricos son elementos esenciales para el desarrollo de diversos tipos de
problemas matemáticos que involucran una serie de procesos lógicos para la solución del
mismo, de esta manera hemos logrado entender algunos de estos pasos y aplicarlos de
forma exitosa como parte de un algoritmo que nos ayuda a desarrollar de forma automática
varios problemas relacionados con la interpolación de Newton y Lagrange, además de
ejecutar las gráficas correspondientes para un mejor entendimiento de estos métodos.

14
BIBLIOGRAFÍA

[1] That Class Blog. (2017). Interpolación de Newton y Lagrange. [online] Available at:
https://miguelmzbiblog.wordpress.com/2017/04/22/interpolacion-de-newton-y-lagrange/
[Accessed 18 May 2018].

[2] Tinoco Paniagua, J. (2012). FUNCIONES MATEMÁTICA EN C++. [online] Unn-


lenguajec.blogspot.com.co. Available at: http://unn-
lenguajec.blogspot.com.co/2012/08/funciones-matematica-en-c.html [Accessed 17 May
2018].

15

Você também pode gostar