Powered By Blogger

martes, 11 de diciembre de 2012

Programa que realiza diferencias divididas para determinar el valor de una funcion conocida en base a una tabla de datos, por medio del método de "INTERPOLACION DE LAGRANGE"


//Torres Martinez Gustavo Alan
//Grupo:4CM1
//Programa que realiza diferencias divididas para determinar el valor de
//una funcion conocida en base a una tabla de datos, por medio del mÇtodo de
//"INTERPOLACION DE LAGRANGE"

#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
#include<stdlib.h>
#include<iostream.h>

void main(void)
{
double x,x0,x1,x2,x3,x4,fx,fx0,fx1,fx2,fx3,fx4,f1x,f2x,f3x,f4x,erv;
clrscr();
cout<<"Calculando el ln(2) por medio del polinomio de interpolacion"<<endl<<"de Lagrange en base a la siguiente tabla:"<<endl;
cout<<endl<<" x   1    4       6       9      11"<<endl;
cout<<endl<<"f(x) 0 1.3863  1.7918  2.1972  2.3979"<<endl<<endl;
cout<<"          ln(2)=0.6931"<<endl;
x=2;
x0=1;
x1=4;
x2=6;
x3=9;
x4=11;
fx=log(x);
fx0=0;
fx1=1.3863;
fx2=1.7918;
fx3=2.1972;
fx4=2.3979;
f1x=((x-x1)/(x0-x1))*fx0+((x-x0)/(x1-x0))*fx1;
erv=(fx-f1x)/fx*100;
printf("\n\nf1(x)=%2.4f   Erv=%2.2f%",f1x,fabs(erv));
f2x=(((x-x0)*(x-x2))/((x1-x0)*(x1-x2)))*fx1+(((x-x0)*(x-x1))/((x2-x0)*(x2-x1)))*fx2;
erv=(fx-f2x)/fx*100;
printf("\n\nf2(x)=%2.4f   Erv=%2.2f%",f2x,fabs(erv));
f3x=(((x-x0)*(x-x2)*(x-x3))/((x1-x0)*(x1-x2)*(x1-x3)))*fx1+(((x-x0)*(x-x1)*(x-x3))/((x2-x0)*(x2-x1)*(x2-x3)))*fx2+(((x-x0)*(x-x1)*(x-x2))/((x3-x0)*(x3-x1)*(x3-x2)))*fx3;
erv=(fx-f3x)/fx*100;
printf("\n\nf3(x)=%2.4f   Erv=%2.2f%",f3x,fabs(erv));
f4x=(((x-x0)*(x-x2)*(x-x3)*(x-x4))/((x1-x0)*(x1-x2)*(x1-x3)*(x1-x4)))*fx1+(((x-x0)*(x-x1)*(x-x3)*(x-x4))/((x2-x0)*(x2-x1)*(x2-x3)*(x2-x4)))*fx2+(((x-x0)*(x-x1)*(x-x2)*(x-x4))/((x3-x0)*(x3-x1)*(x3-x2)*(x3-x4)))*fx3+(((x-x0)*(x-x1)*(x-x2)*(x-x3))/((x4-x0)*(x4-x1)*(x4-x2)*(x4-x3)))*fx4;
erv=(fx-f4x)/fx*100;
printf("\n\nf4(x)=%2.4f   Erv=%2.2f%",f4x,fabs(erv));
cout<<endl<<endl;
textcolor(10+128);
cprintf("             Presiona cualquier tecla....");
getch();
}

No hay comentarios:

Publicar un comentario