Funkcja interpolujaca
Kod: Zaznacz cały
void interp::Interpoluj(int rozm,lista *ptr)
{
wielomian = new double[rozm]; //tablica na wspolczynniki wielomianu i wezly
osX = new double[rozm];
for(int i = 0; i<rozm ; i++)
{
wielomian[i] = *ptr->index(i);
osX[i] = ptr->czasIndex(i);
}
int deg = rozm -1;
double val;
for(int k=1; k<=deg; k++) //liczneie wspoczynnikow
{
val=wielomian[deg];
for(int l=deg; l>=k; l--)
{
if(osX[l] != osX[l-k])
{
wielomian[l]=(val-wielomian[l-1])/(osX[l]-osX[l-k]);
val=wielomian[l-1];
}
else
wielomian[l]=wielomian[l-1]/k;
}
}
}