domingo, 2 de diciembre de 2012

Lagrange

Compilador: Borland C++
Código:


# include <stdio.h>
# include <conio.h>
#include <iostream.h>
# include <malloc.h>
# include <stdio.h>
void lagrange(float x, double X[], double y[], int Lit)
{
 double r=0, num=1, den=1;
 for(int i=0; i<Lit;i++){ //para el total de polinomios
   for(int j=0; j<Lit;j++){ //para cada polinomio
       if (i!=j){  num*=(x - X[j]); den*=(X[i] - X[j] ); }
   }
   num*=y[i];
   printf("Iteracion %d valor %lf\n", i, num/den);
   getch();
   r+=num/den;
   num=den=1;
 }
 cout<<"\nf("<<x<<")= "<< r;
}
void main()
{
 int m,i, medio;
 double *X,*Y,x;
 clrscr();
 printf("Ingresa n puntos deseados:\n\t\t");
 scanf("%d",&m);
 X=(double*)malloc(sizeof(double)*m);
 printf("Ingresa los valores de X de la tabla:\n");
 for(int i=0; i<m; i++)    scanf("%lf", &X[i]);
 Y=(double*)malloc(sizeof(double)*m);
 printf("\nIngresa los valores de Y de la tabla:\n");
 for(i=0; i<m; i++)        scanf("%lf", &Y[i]);
//   cout<<"\nLa ecuacion de la recta de ajuste es: \ty="<<endl;
   printf("\nEscribe el valor X que se desea interpolar:\n");
   scanf("%lf",&x);
 lagrange(x, X, Y, m);
 getch();
}

No hay comentarios:

Publicar un comentario