
- •О. О. Абакумова «Обчислювальна математика-1»
- •Теоретичні відомості Абсолютна та відносна похибки
- •Похибки округлення
- •Зразок виконання завдання
- •Контрольні питання
- •Теоретичні відомості
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Зразок виконання завдання Завдання: наближено відбудувати функцію , що задана таблицею
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості Кінцеві різниці
- •Перша інтерполяційна формула Ньютона
- •Друга інтерполяційна формула Ньютона
- •Зразок виконання завдання
- •Приклад програми
- •// Код у коментарях використовується для випадку інтерполяції назад
- •Контрольні питання
- •Теоретичні відомості
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Метод прямокутників
- •Метод Сімпсона
- •Метод трапецій
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Види матриць
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
- •Теоретичні відомості
- •Визначник матриці
- •Метод союзної (приєднаної) матриці
- •Зразок виконання завдання
- •Приклад програми
- •Контрольні питання
Зразок виконання завдання
Завдання: наближено відбудувати функцію , що задана таблицею
|
0 |
0.2 |
0.4 |
0.6 |
0.8 |
1 |
|
1.2715 |
2.4652 |
3.6443 |
4.8095 |
5.9614 |
7.1005 |
у точках 0.1 та 0.9 за допомогою інтерполяційних багаточленів Ньютона.
Розв’язання:
Складемо для заданої функції таблицю кінцевих різниць:
і |
|
|
|
|
|
|
|
0 |
0 |
1.2715 |
1.1937 |
-0.0146 |
0.0007 |
-0.0001 |
0.0000 |
1 |
0.2 |
2.4652 |
1.1791 |
-0.0139 |
0.0006 |
-0.0001 |
|
2 |
0.4 |
3.6443 |
1.1652 |
-0.0133 |
0.0005 |
|
|
3 |
0.6 |
4.8095 |
1.1519 |
-0.0128 |
|
|
|
4 |
0.8 |
5.9614 |
1.1391 |
|
|
|
|
5 |
1 |
7.1005 |
|
|
|
|
|
За
умовою крок таблиці
.
Для
за початкове значення беремо
.
Тоді
.
Обчислення проводимо за першою інтерполяційною формулою Ньютона:
.
Отже
.
Для
маємо:
,
.
Обчислення проводимо за другою інтерполяційною формулою Ньютона:
.
Отже
Відповідь:
1.8702,
6.5325.
Приклад програми
#include <conio.h>
#include <iostream.h>
double XX[] = {1.415, 1.42, 1.425, 1.43, 1.435, 1.44, 1.445, 1.45,1.455,1.46, 1.465};
double YY[] = {0.888551, 0.889599, 0.890637, 0.891667, 0.892687, 0.893698, 0.8947, 0.895693, 0.896667, 0.897653, 0.898619};
double y[10];
long int fakt;
double tt, t, G, L, r;
int p, k, i, j;
void main()
{
cout<<"Тable of values of a function:"<<endl;
cout<<"X: ";
for(i=0; i<10; i++)
cout<<XX[i]<<" | ";
cout<<endl;
cout<<"Y: ";
for(i=0; i<10; i++)
cout<<YY[i]<<" | ";
cout<<endl;
cout<<endl;
cout<<"Еnter value X: ";
// Код у коментарях використовується для випадку інтерполяції назад
cin>>r;
for(i=0; i<10; i++)
y[i]=YY[i];
fakt=1;
i=1;
t=(r-XX[i-1])/(XX[i]-XX[i-1]); // t=(r-XX[10])/(XX[i]-XX[i-1]);
tt=t;
p=10;
L=YY[0]; // L=YY[10];
for(i=1; i<10; i++)
{
k=0;
for(j=1; j<p; j++)
{
y[k]=y[j]-y[j-1];
k++;
}
p--;
fakt*=i;
G=y[0]*tt/fakt; // G=y[p]*tt/fakt;
tt*=t-i; // tt*=t+i;
L+=G;
}
cout<<"Y = "<< L;
getch();
}