Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++]алгоритм интерполяции функции


Автор: ROOTS 10.4.2008, 21:44
Разработать алгоритм интерполяции значений функции методом Ньютона. В качестве тестового примера использовать функцию Рунге. Помогите плиз

Автор: ROOTS 13.4.2008, 22:46
Хелп smile , хотябы какую нибудь ссылочку с исходником

Автор: Torgot 15.4.2008, 17:37
Код


double Nn (double X, double **mas, int n) // Х - значения икса при котором необходимо
                                             //вычислить многочлен, mas - массив [2][n]. В mas[0][n] - иксы,
                                             //в mas[1][n] - значения y. n - кол-во элементов
{
  double ans,temp, h;
  h = mas[0][1] - mas[0][0];
  ans=mas[1][0];
  for(int i=1; i < n; i++)
    ans += deltY(i,0) * P(X,mas,i)/pow(h,i)/fact(i);
  return ans;
}

double deltY(int pow, int num) // y[n] - глобальная. Было лень передавать массив
{
  if(pow == 0) return y[num];
  if(pow == 1) return (y[num+1] - y[num]);
  return (deltY(pow-1,num+1) - deltY(pow-1,num));
}

double P(double X, double **mas, int n) // произведение первых n скобок.
{
  double temp=1;
  int i;
  for(i=0; i<n; i++)
    temp *= X - mas[0][i];
  return temp;
}

int fact(int i) //факториал
{
  if(i==0) return 1;
  return i * fact(i-1);
}


Сам недавно сдал. А про функцию Рунге поподробней.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)