Дослідження похибки інтерполяції функцій многочленом Ньютона

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Лабораторна робота №4 Тема: «Дослідження похибки інтерполяції функцій многочленом Ньютона» Завдання: Для функції  заданої на рівномірній сітці в точках  на інтервалі  знайти аналітичний вираз залишкового члена інтерполяційного многочлена; обчислити його максимальне значення і значення в точках ; побудувати інтерполяційний многочлен Ньютона через розділені різниці; обчислити похибки інтерполяції у точках  і порівняти їх із значеннями залишкового члена. N      18  3 0 2   Короткі теоретичні відомості Замінюючи функцію  інтерполяційним многочленом , ми припускаємо похибку , яка називається похибкою інтерполяції або, що те ж саме, залишковим членом інтерполяційної формули. Ясно, що у вузлах інтерполяції ця похибка дорівнює нулю. Похибку інтерполяції можна подати у вигляді , де  і залежить від x. Звідси випливає оцінка , де , . 1. і 2. Знаходження аналітичного виразу залишкового члена інтерполяційного многочлена і обчислення його максимального значення і значення в точках  за допомогою пакету Maple 12. > / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / 3. і 4. Побудова інтерполяційного многочлена Ньютона і обчислення похибок інтерполяції в точках  за допомогою мови програмування С++. Код програми: #include <iostream.h> #include <math.h> #define k 4 const double X[k] = {0.000, 0.666, 1.333, 2.0}; const double x1 = 0.233, x2 = 1.109, x3 = 1.894; double Rozd_Rizn[k]; double F[k]; void Calc_Rozd_Rizn(); double Calc_Func(double); double f(double); void main() { for(int i = 0; i < k; i++) F[i] = f(X[i]); cout<<" x\t F(x)\n"; for(i = 0; i < k; i++) cout<<X[i]<<"\t"<<F[i]<<endl; cout<<"\nx1 = "<<x1<<endl <<"x2 = "<<x2<<endl <<"x3 = "<<x3<<endl; Calc_Rozd_Rizn(); //for(i = 0; i < k; i++) // cout<<Rozd_Rizn[i]<<endl; cout<<endl; cout<<"Rn(x1) = "<<fabs(f(x1) - Calc_Func(x1))<<endl <<"Rn(x2) = "<<fabs(f(x2) - Calc_Func(x2))<<endl <<"Rn(x3) = "<<fabs(f(x3) - Calc_Func(x3))<<endl; } void Calc_Rozd_Rizn() { for(int i = 0; i < k; i++) { Rozd_Rizn[i] = 0; for(int j = 0; j < i + 1; j++) { double temp = 1; for(int l = 0; l < i + 1; l++) if(l != j) temp = temp * (X[j] - X[l]); Rozd_Rizn[i] += F[j] / temp; } } } double Calc_Func(double x) { double Ln = 0; for(int i = 1; i < k + 1; i++) Ln = (x - X[k - i]) * Ln + Rozd_Rizn[k - i]; return Ln; } double f(double x) { double func = 2 * log(x + 2); return func; } Результат виконання програми: / Висновок: В процесі виконання даної лабораторної роботи я дослідив похибки інтерполяції функції многочленом Ньютона. Їх значення і значення залишкового члена у точках  дещо відрізняються, проте похибки все-одно менші за максимальне значення залишкового члена обчислене в Maple.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!