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

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

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

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

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Чисельні методи

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Лабораторна робота №3 Тема: «Дослідження похибки інтерполяції функцій многочленом Ньютона» з курсу чисельні методи 1 Завдання: Для функції  заданої на рівномірній сітці в точках  на інтервалі  знайти аналітичний вираз залишкового члена інтерполяційного многочлена; обчислити йогомаксимальне значення і значення в точках ; побудувати інтерполяційний многочлен Ньютона через розділені різниці; обчислити похибки інтерполяції у точках  і порівняти їх із значеннями залишкового члена. N      2  4 0    Короткі теоретичні відомості Замінюючи функцію  інтерполяційним многочленом , ми припускаємо похибку , яка називається похибкою інтерполяції або, що те ж саме, залишковим членом інтерполяційної формули. Ясно, що у вузлах інтерполяції ця похибка дорівнює нулю. Похибку інтерполяції можна подати у вигляді , де  і залежить від x. Звідси випливає оцінка , де , . 1. і 2. Знаходження аналітичного виразу залишкового члена інтерполяційного многочлена і обчислення його максимального значення і значення в точках  за допомогою пакету Maple 12. > / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / аналітичний вигляд многочлена > / / його максимальне значення > / x’ / > / / Значення в точці x’ > / x’’ / > / / Значення в точці x’’ > / x’’’ / > / / Значення в точці x’’’ > / 3. і 4. Побудова інтерполяційого многчлена Ньютона і обчислення похибок інтерполяції в точках  за допомогою мови програмування С++. Код програми: #include <iostream> #include <math.h> using namespace std; double const pi = 3.1415926; const int n = 4; double f(double x); double Gorner(double x, double A[n+1][n+2]); void main() { int N = n+1; double a = 0, b = pi/4; double x1 = b/2.5,x2 = b/3,x3 = b/5; //double X[n] = {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9}; //double F[n] = {0.00000,0.09983,0.19866,0.29552,0.38941,0.47942,0.56464,0.64421,0.71735, // 0.78332}; double mat[n+1][n+2] = {0}; for (int i = 0; i < N; ++i) { mat[i][0] = ((b-a)*i)/n; mat[i][1] = f(mat[i][0]); } for (int i =1; i < N; ++i) { for (int j =0; j < N-i;++j) mat[j][i+1] = (mat[j+1][i] - mat[j][i])/(mat[j+i][0]-mat[j][0]); } cout << "\t\t\tRozdileni riznuci: \n"; for (int i = 2; i < N+1; ++i) cout << mat [0][i] << "\t "; cout << "\n\n\n"; cout << "\t\t\tMnogochlen Newtona:\n"; cout << "L(x) = " << mat[0][1]; for (int i = 2; i < n+1; ++i) { cout << " + (x - " << mat[i-2][0] << ") (" << mat[0][i]; } for (int i = 2; i < N+1; ++i) cout << ")"; cout << "\n"; cout << "\t\t Znachennja Funcii v tochkah x1, x2, x3:\n"; cout <<"L[" << x1 << "] = " << Gorner(x1,mat) << endl; cout <<"L[" << x2 << "] = " << Gorner(x2,mat) << endl; cout <<"L[" << x3 << "] = " << Gorner(x3,mat) << endl; cout <<"F[" << x1 << "] = " << f(x1) << endl; cout <<"F[" << x2 << "] = " << f(x2) << endl; cout <<"F[" << x3 << "] = " << f(x3 )<< endl; cout << "\n\n"; cout << "\t\t\tpohybky:\n"; cout << "R[" << x1 << "]=" << (Gorner(x1,mat)-f(x1)) << endl; cout << "R[" << x2 << "]=" << (Gorner(x2,mat)-f(x2)) << endl; cout << "R[" << x3 << "]=" << (Gorner(x3,mat)-f(x3)) << endl; } double Gorner(double x, double A[n+1][n+2]) { double suma = A[0][n]; for (int i =n-1;i; --i) suma = (x-A[i-1][0])*suma + A[0][i]; //suma += A[1][0]; return suma; } double f(double x) { return 3*(sin (x + pi/4)); } Результат виконання програми: / Висновок: Похибки і значення залишкового члена у точках  відрізняюься точністю.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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