• Viernes 8 de Noviembre de 2024, 17:52

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - hackman

Páginas: [1]
1
C/C++ / [Código Fuente] Interporlacion de Lagrange
« en: Martes 26 de Agosto de 2008, 23:48 »
/*Figueroa Bernal jaime eduardo
UNAM FES ACATLAN METODOS NUMERICOS II*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
double *cons(int);
void leer(double []int);
void dest(double []);
void solution(double[]double[]doubleint);
void main(void)
{
   int ing;
   char dt;
   double *X*Yein;
   clrscr();
   textcolor(10);
   cprintf("\t\t\t Interpolacion de Lagrange.\n");
   puts("\n¨No de elementos de la tabla?:");
   scanf("%d"&n);
   X=cons(n);
   Y=cons(n);
   do
   {
   puts("\n¨Grado del polinomio.?");
   scanf("\t%d"&g);
   if(g<n)
   {
      puts("¨Punto a interpolar.?");
      scanf("%lf"&in);
      do
      {
         puts("\nIngresa los elementos de x:");
         leer(Xn);
         puts("Ingresa los elemtos de F(x).");
         leer(Yn);
         puts("¨Datos correctos.?");
         puts("(s/n)");
         }while(d=tolower(getch())!='s');
         solution(XYing);
         dest(X);
         dest(Y);
   }
    else
   {
      puts("No hay sufucientes puntos.");
   }
   getch();
   puts("\n¨Deseas continuar.?\n");
   puts("(s/n)");
   }while(t=tolower(getch())!='n');
 }
double *cons(int N)
{
   double *T;
   T=(double*)calloc(Nsizeof(double));
   if(T==NULL)
   {
      puts("No hay memoria disponible");
   }
   return(T);

}
void leer(double A[]int N)
{
   int i;
   for(i=0;i<N;i++)
   {
      printf("\t%d="i);
      scanf("%lf"&A);
   }
}
void dest(double A[])
{
   free(A);
}
void solution(double X[]double Y[]double xint gr)
{
   int ij;
   double num=1den=1s=0;
   for(i=0;i<=gr;i++)
   {
      for(j=0;j<=gr;j++)
      {
         if(i!=j)
         {
            num*=(x-X[j]);
            den*=(X-X[j]);
         }
      }

      num*=Y;
      printf("\nL(%d)=%lf"inum/den);
      s+=num/den;
      num=den=1;
   }
   printf("\nEl resultado es=%lf"s);
}











Autor: jaime

Páginas: [1]