Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ Interpolacja Lagrange'a

Ostatnio zmodyfikowano 2012-12-30 10:43
Autor Wiadomość
dzilorek
Temat założony przez niniejszego użytkownika
C++ Interpolacja Lagrange'a
» 2012-12-30 10:43:02
Witam.
Napisałem tą interpolacje, wydaje mi się że wszystko powinno być ok, a jednak źle liczy.
Czy mógłby ktoś pokazać gdzie jest błąd??
C/C++
#include <iostream>
using namespace std;

const int n = 4;

double x[ n + 1 ] = { - 2, - 1, 0, 2, 4 };
double y[ n + 1 ] = { - 96, 45, - 32, - 96, - 480 };

double interpol( double z, double x[ n ], double y[ n ] )
{
    double wnz = 0, om = 1.0, w = 1.0;
    for( int i = 0; i <= n; i++ )
    {
        w = 1.0;
        for( int j = 0; j <= n; j++ )
             if( i != j ) w = w *( x[ i ] - x[ j ] );
       
        wnz = wnz + y[ i ] /( w *( z - x[ i ] ) );
    }
   
    return wnz = wnz * om;
}

int main()
{
    double z = 1;
    cout << "Wartosc funkcji F(" << z << ") wynosi: " << interpol( z, x, y ) << endl;
    cout << endl;
}
P-72353
« 1 »
  Strona 1 z 1