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

sin imagen de perfil

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


C/Visual C

Publicado el 23 de Julio del 2002 por Oliver Mar Ramirez (4 códigos)
66.785 visualizaciones desde el 23 de Julio del 2002
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(5)

Publicado el 23 de Julio del 2002gráfica de visualizaciones de la versión: Versión 1
66.786 visualizaciones desde el 23 de Julio del 2002
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 (5)

9 de Agosto del 2002
estrellaestrellaestrellaestrellaestrella
PESIMO, MAL EXPLICADO Y CON 6 ERRORES!!!!
ADEMAS NO ESTA VALIDADO Y MUCHO CODIGO BASURA!!!!
Responder
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
9 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
21 de Abril del 2012
estrellaestrellaestrellaestrellaestrella
no me corre el anterior codigo esta mal
Responder
chicharo
1 de Noviembre del 2017
estrellaestrellaestrellaestrellaestrella
# include <stdio.h>
# include <conio.h>
# include <malloc.h>
# include <stdio.h>
void lagrange(double x, double X[], double y[], int Lit)
{
int i,j;
double r=0, num=1, den=1;
for(i=0; i<Lit;i++){ //para el total de polinomios
for(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,i;
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(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();
}


(para algunos no les sirve el tener el int i o int j.) por eso lo modifique solo eso y ya funciono gracias
Responder

Comentar la versión: Versión 1

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

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s266