0% encontró este documento útil (0 votos)
14 vistas2 páginas

Interpolación de Lagrange en C

El documento presenta un programa en C que implementa el método de interpolación de Lagrange. Permite al usuario ingresar puntos y sus valores correspondientes, y luego calcula la interpolación para un valor específico. Además, ofrece opciones para corregir datos o realizar nuevas interpolaciones con diferentes conjuntos de datos.

Cargado por

David Avendaño
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas2 páginas

Interpolación de Lagrange en C

El documento presenta un programa en C que implementa el método de interpolación de Lagrange. Permite al usuario ingresar puntos y sus valores correspondientes, y luego calcula la interpolación para un valor específico. Además, ofrece opciones para corregir datos o realizar nuevas interpolaciones con diferentes conjuntos de datos.

Cargado por

David Avendaño
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

#include <stdio.

h>
#include <stdlib.h>
#include <locale.h>

int n, e, r, corregir;
char f[50];
float x[100], y[100], xf, l, t;

float lagrange(float x[], float y[], int n, float xf);

int main() {
setlocale(LC_ALL, "");
printf("Método de la interpolacion de Lagrange \n\n");
printf("Escuela: Instituto Politécnico Nacional - IPN\n");
printf("Plantel: Escuela Superior de Ingeniería Mécanica y Eléctrica\n" );
printf("Carrera: Ingeniería Mécanica y Eléctrica\n");
printf("Materia: Metodos Numéricos\n");
printf("Fecha:31/10/2023\n");
printf("Boleta:2023350\n");
printf("Alumno: Alvarez Cruz Daniel Adalberto \n");
printf("Porf:Alfaro Martinez Adrian Dario\n\n");

printf("Hola, bienvenido. Este programa realiza la interpolación de Lagrange.\


n\n");
scanf("%[^\n]", &f);
system("cls");

do {
system("cls");
printf("%s, ingresa el número de puntos [X_k, f(X_k)] que deseas
interpolar: k = ", f);
scanf("%d", &n);
printf("\nDatos de X_k\n");

for (int z = 0; z < n; z++) {


printf("Ingrese el valor %i: ", z + 1);
scanf("%f", &x[z]);
}

printf("\n");
printf("\nDatos de f(X_k)\n");

for (int z = 0; z < n; z++) {


printf("Ingrese el valor %i: ", z + 1);
scanf("%f", &y[z]);
}

do {

printf("\nValores de la interpolación\n\n");
printf("\tX | f(X)\n\t....................\n");

t = 1;
while (t <= 10) {
l = lagrange(x, y, n, t);
printf("\t%.3f | %.3f\n", t, l);
t++;
}
printf("\nIngresa el valor especifico a interpolar: X_i= ");
scanf("%f", &xf);
l = lagrange(x, y, n, xf);
printf("\nEl punto interpolado es [%.3f, %.3f]\n", xf, l);

printf("\nQuieres corregir los datos introducidos?\n\n1.- Si\t2.- No\n\


nOpcion: ");
scanf("%i", &corregir);

if (corregir == 1) {
continue;
}

printf("\nQuieres interpolar otro valor con los mismos datos?\n\n1.-


Si\t2.- No\n\nOpcion: ");
scanf("%i", &e);
} while (e == 1);

printf("\nQuieres realizar otra interpolacion con datos diferentes?\n\n1.-


Si\t2.- No\n\nOpcion: ");
scanf("%i", &r);

} while (r == 1);

printf("\nAdios");
return 0;
}

float lagrange(float x[], float y[], int n, float xf) {


int i, j;
float aux1[100], aux2[100], ix = 0;

for (i = 0; i < n; i++) {


aux1[i] = 1;
aux2[i] = 1;
}

for (i = 0; i < n; i++) {


for (j = 0; j < n; j++) {
if (j != i) {
aux1[i] = aux1[i] * (xf - x[j]);
aux2[i] = aux2[i] * (x[i] - x[j]);
}
}
ix = ix + y[i] * (aux1[i] / aux2[i]);
}

return ix;
}

También podría gustarte