Jeden z kodów:
#include <iostream>
#include <cstdlib>
#include <iomanip>
using namespace std;
double Lagrange (double*, double*, double, int);
int main (int argc, char *argv[])
{
double x = atof (argv[1]) ;
int Np = 3;
double X[3], F[3];
X[0] = -1; F[0] = 2; // P1 (-1 , 2)
X[1] = 0; F[1] = 1; // P2 ( 0 , 1)
X[2] = 2; F[2] = 5; // P3 ( 2 , 5)
cout << "f (" << x << ") = " << Lagrange (X, F, x, Np) << endl;
return 0;
}
double Lagrange (double *X, double *F, double x, int Np)
{
double Suma=0, Li;
for (int i=0; i <= Np-1 ; i++)
{
Li = 1;
for (int j=0; j <= Np-1 ; j++)
{
if (i != j) Li *= (x-X[j]) / (X[i]-X[j]) ;
}
Suma += F[i] * Li ;
}
return Suma;
}
Program powinien, z tego co wiem, wziąć ode mnie wartość x podczas otwierania, a tego nie robi. Pokazuje mi się tylko:
1386698494 506
inf
1386698494 508
dodanie znacznika <code class="cpp"> - fp