- •Лабораторна робота №1 поліноміальна інтерполяція
- •1.1.1 Інтерполяційний багаточлен Лагранжа
- •1.1.2 Схема Ейткена
- •1.1.3 Кінцеворізницеві інтерполяційні формули
- •1.2 Завдання до роботи
- •1.3 Контрольні питання
- •Лабораторна робота № 2 апроксимація функцій, які задані таблицею
- •2.1 Короткі теоретичні положення
- •2.2 Завдання до роботи
- •2.3 Контрольні питання
- •Лабораторна робота №3 інтерполяція функції кубічними сплайнами
- •3.1 Короткі теоретичні положення
- •3.2 Завдання до роботи
- •3.3 Контрольні питання
- •Лабораторна робота №4 чисельне інтегрування
- •4.1 Короткі теоретичні положення
- •4.1.1 Квадратурні формули прямокутників, трапецій і Сімпсона
- •4.1.2 Алгоритм прямокутників-трапецій
- •4.2 Завдання до роботи
- •4.3 Контрольні питання
- •Лабораторна робота №5 чисельне диференціювання
- •5.1 Короткі теоретичні положення
- •5.1.1 Обчислення похідної за її визначенням
- •5.2 Кінцеворізницеві апроксимації похідних
- •5.3 Формули чисельного диференціювання на основі інтерполяційних багаточленів Лагранжа
- •5.2 Завдання до роботи
- •5.3 Контрольні питання
- •6 Література
- •Навчальне видання
5.3 Контрольні питання
1. Що називається лівою, правою і центральною різницевими похідними? Який порядок апроксимації забезпечують різницеві похідні?
2. Чому операцію обчислення різницевих відношень називають некоректною?
3. Чому дорівнює оптимальний крок при апроксимації першої похідної правим (лівим) різницевим відношенням?
4. Чому дорівнює оптимальний крок при апроксимації першої похідної за допомогою формули симетричної апроксимації другого порядку точності?
5. Виведіть приватні формули апроксимації другої похідної в рівновіддалених вузлах, грунтуючись на кубічній конечноразностной інтерполяції.
6. Чому дорівнює оптимальний крок при апроксимації другої похідної за допомогою формули симетричної апроксимації другого порядку точності?
7. Як будуються формули чисельного диференціювання, які засновані на вживанні інтерполяційного многочлена?
8. Який порядок апроксимації забезпечують ці формули чисельного диференціювання?
Додаток 5.1
/*Обчислення похідної функції по її визначенню на прикладі функції y = cosx */
#include <stdio.h>
#include <conio.h>
#include <cmath>
float derivative(float, float);
void main()
{
float deltax,der1,der2,e,e1,x;
const int a=10;
printf ("Enter the value of x and accuracy of epsilon\n");
scanf_s("%f%f",&x,&e);
deltax = 0.1; der1 = derivative(x,deltax);
do
{
deltax = deltax/a;
der2 = derivative(x, deltax);
e1 = fabs(der1-der2);
der1 = der2;
}
while (e1>=e);
printf ("\n\nx = %f Derivative y'= %f",x,der2);
printf ("\nApproach error= %f\n",e1);
printf("\nPress any key for continuation...");
_getch();
}
//функція
float derivative(float x, float y)
{
float f;
f = (cos(x+y) - cos(x))/y;
return f;
}
Додаток 5.2
/*Обчислення похідних першого й другого порядків з однаковою похибкою
залежно від кроку за формулами чисельного диференціювання*/
#include <stdio.h>
#include <conio.h>
#include <cmath>
void main ()
{
int i,n=15;
double a,b,h,h1,h2,x,y1,y2;
double *y=new double[n];;
printf ("Enter n \n");// n - число розбіття відрізку [a,b]
scanf_s("%i",&n);
if((n>=3)&&(n<=15))
{
printf ("Enter the coordinates а, b\n");
//a, b - координати краєвих крапок
scanf_s("%lf%lf",&a, &b);
printf ("Enter the values of function y(i) in knots,");
printf ("thus y(0) = f(a), y(n) =f(b)\n");
for (i = 0; i<=n; i++)
scanf_s("%lf", &y[i]);
printf ("Enter the value of x\n");
scanf_s("%lf", &x);
h=(b-a)/n;
i=floor((x-a)/h+h/2);
h1=2*h;
h2=h*h;
if(i==0)
{
y1=(-3*y[0]+4*y[1]-y[2])/h1;
y2=(2*y[0]-5*y[1]+4*y[2]-y[3])/h2;
};
if((i>0)&&(i<n))
{
y1=(-y[i-1]+y[i+1])/h1;
y2=(y[i-1]-2*y[i]+y[i+1])/h2;
};
if(i==n)
{
y1=(y[n-2]-4*y[n-1]+3*y[n])/h1;
y2=(-y[n-3]+4*y[n-2]-5*y[n-1]+2*y[n])/h2;
};
printf ("x = %f derivative1 = %f",x,y1); //перша похідна
printf ("derivative2 = %f",y2); //друга похідна
};
printf("\nPress any key for continuation...");
_getch();
delete []y;
}
