//============================================================================ // Name : ej9.cpp // Author : PC // Description : Programa para calcular la interpolación de Lagrange // (método para interpolar una serie de N puntos (xi, yi). Datos: // Número de puntos N. // Puntos a interpolar (x1, y1), (x2, y2),....,(xN, yN). // Valor x a interpolar. // Usa arrays dinamicos //============================================================================ #include #include #include using namespace std; float lagrange(int, float *, float *, float); void lee_datos(int , float *, float *); int main() { float *pto_x=NULL, *pto_y=NULL, x; int np; char resp; cout << "Ingresa numero de puntos : "; cin >> np ; pto_x = new float[np]; pto_y = new float[np]; lee_datos(np, pto_x, pto_y); do { cout << "Ingresa valor x = " ; cin >> x; cout << "Valor interpolado = " << lagrange(np,pto_x,pto_y,x) << endl; cout << "Desea continuar? (s / n): "; cin >> resp; } while (resp == 's'); cout << "Fin de programa\n"; return 0; } void lee_datos(int np, float *pto_x, float *pto_y) { cout << "Ingresa coordenada x y punto " << endl; for (int i=0; i < np; i++) { cout << (i + 1) << ": "; cin >> pto_x[i] >> pto_y[i]; } } float lagrange( int np, float *arr_x, float *arr_y, float x ) { int i,j; float suma=0; float producto; for (i=0; i < np; i++) cout << i << " : " << arr_x[i] << " " << arr_y[i] << endl; for (j=0; j