вузла інтерполяції
k = i;
}
В
if (flag == 0)// якщо збігів, введеного з клавіатури значення, "х" з масивом табличних значень немає, обчислюються кінцеві різниці
{
В
for (int j = 3; j <= n +2; j + +)
for (int i = k; i <= n-j +2; i + +)
arg [i] [j] = arg [i +1] [j-1]-arg [i] [j-1];/* обчислення кінцевих різниць. Кінцеві різниці записуються в двовимірний масив
починаючи з третього стовпця */
q = (x-arg [k] [1])/h;
arg [0] [0] = arg [1] [0] = arg [max] [max] = 0;
В
for (int m = 1; m <= n-k; m + +)
{
arg [0] [0] = arg [k] [2];// ініціалізація першого доданка (y0) полінома
for (int j = 3; j <= m +2; j + +)// обчислення доданків полінома
{
s = arg [k] [j];// змінної s присвоюється значення dY порядку j
В
for (int i = 1; i <= j-2; i + +)
s = s * ((q-i +1)/i);
arg [0] [0] = arg [0] [0] + s;// обчислення значення функції в заданій точці
}
arg [1] [0] = s;// в елементі першого рядка нульового стовпця записується приблизна погрішність інтерполяції
arg [max] [max] = m;// в елемент останнього стовпця нижнього рядка зберігається порядок полінома
if (fabs (s)
break;
В
}
}
else
{
s = arg [flag] [2];
}
}// кінець функції В«ньютон"
int main ()// початок основної програми
{
В
double arg [max] [max], x, e;
float h;
int n;
cout <<"Enter quantity of figures N =";
cin>> n;// введення кількості вузлів інтерполяції
cout <
cout <<"Enter value of argument X =";
cin>> x;// введення значення "х"
cout <
cout <<"Enter an interpolation error E =";
cin>> e;// введення заданої похибки інтерполяції
cout <
cout <<"Enter distance between knots h =";
cin>> h;// введення відстані між вузлами
cout <
for (int i = 0; i <= n; i + +)
{
arg [i] [1] = i * h;// заповнення масиву табличних значень аргументу функції "x", аргументи функції заповнюють перший стовпець двовимірного масиву
cout <<"Enter values ​​of function Y" <
cin>> arg [i] [2];// заповнення масиву табличних значень функції "y", значення функції заповнюють другий стовпець двовимірного масиву
cout <<" n";
}
newton (arg, x, n, e);
cout <В
for (int i = 0; i <= n; i + +)
cout <
cout <
cout <<"X =" <