Código de C/Visual C - Método de interpolación de Lagrange

Método de interpolación de Lagrangegráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(4)
Publicado el 23 de Julio del 2002 por Oliver Mar Ramirez
40.343 visualizaciones desde el 23 de Julio del 2002. Una media de 56 por semana
Método de interpolación de Lagrange. La interpolación es una herramienta usada para conocer los valores de Y en un conjunto de datos tabulares, se evalua la función en una X dada por el usuario, sin conocer la función usando solo los valores de la tabla.

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 23 de Julio del 2002gráfica de visualizaciones de la versión: Versión 1
40.344 visualizaciones desde el 23 de Julio del 2002. Una media de 56 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# include <stdio.h>
# include <conio.h>
# include <graphics.h>
# include <malloc.h>
# include <stdio.h>
void lagranja(double 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("Interacion %d valor %lf\n", i, num/den);
   getch();
   r+=num/den;
   num=den=1;
 }
 printf("\nEl resultado es: %lf", r);
}
 
void main()
{
 int m, modo=DETECT, medio;
 double *X,*Y,x;
 clrscr();
 printf("cuantas entradas tendra la tabla?\n\t\t");
 scanf("%d",&m);
 X=(double*)malloc(sizeof(double)*m);
 printf("Ingresa la tabla los valores de X:\n");
 for(int i=0; i<m; i++)    scanf("%lf", &X[i]);
 printf("\nIngresa la tabla los valores de Y:\n");
 for(i=0; i<m; i++)        scanf("%lf", &Y[i]);
 printf("Escribe el valor X para el cual se encontrara el valor de Y\n");
 scanf("%lf",&x);
 lagranja(x, X, Y, m);
 getch();
}



Comentarios sobre la versión: Versión 1 (4)

krobert
09 de Agosto del 2002
estrellaestrellaestrellaestrellaestrella
PESIMO, MAL EXPLICADO Y CON 6 ERRORES!!!!
ADEMAS NO ESTA VALIDADO Y MUCHO CODIGO BASURA!!!!
Responder
AiOn
30 de Marzo del 2007
estrellaestrellaestrellaestrellaestrella
# include <stdio.h>
# include <conio.h>
# include <malloc.h>
# include <stdio.h>
void lagrange(double 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("Interacion %d valor %lf\n", i, num/den);
getch();
r+=num/den;
num=den=1;
}
printf("\nEl resultado es: %lf", r);
}

void main()
{
int m;
double *X,*Y,x;
void clrscr();
printf("cuantas entradas tendra la tabla?\n\t\t");
scanf("%d",&m);
X=(double*)malloc(sizeof(double)*m);
printf("Ingresa la tabla los valores de X:\n");
for(int i=0; i<m; i++) scanf("%lf", &X[i]);
printf("\nIngresa la tabla los valores de Y:\n");
Y=(double*)malloc(sizeof(double)*m);
for(i=0; i<m; i++) scanf("%lf", &Y[i]);
printf("Escribe el valor X para el cual se encontrara el valor de Y\n");
scanf("%lf",&x);
lagrange(x, X, Y, m);
getch();
}

//Nota: el codigo estaba bien solo tenia q modificarse en lagranja q el correcto era "lagrange" y poner la variable "Y" q faltaba.
Este es el programa modificado
Responder
Lucia Marlene
09 de Diciembre del 2008
estrellaestrellaestrellaestrellaestrella
aveces hay problema con <graphics.h>, mejor lo cambio por #include <winbgim.h>, puedes quitarle el void para que no maruqe error y la variable " i " de los ciclos for no estaba declarada

#include <winbgim.h>
# include <stdio.h>
# include <conio.h>
# include <malloc.h>
# include <stdio.h>
void lagrange(double 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("Interacion %d valor %lf ", i, num/den);
getch();
r+=num/den;
num=den=1;
}
printf(" El resultado es: %lf", r);
}

main()
{
int m,i;
double *X,*Y,x;
void clrscr();
printf("cuantas entradas tendra la tabla? ");
scanf("%d",&m);
X=(double*)malloc(sizeof(double)*m);
printf("Ingresa la tabla los valores de X: ");
for(int i=0; i<m; i++) scanf("%lf", &X[i]);
printf(" Ingresa la tabla los valores de Y: ");
Y=(double*)malloc(sizeof(double)*m);
for(i=0; i<m; i++) scanf("%lf", &Y[i]);
printf("Escribe el valor X para el cual se encontrara el valor de Y ");
scanf("%lf",&x);
lagrange(x, X, Y, m);
getch();
}
Responder
santiago
21 de Abril del 2012
estrellaestrellaestrellaestrellaestrella
no me corre el anterior codigo esta mal
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s266