Материал: KTE (1)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.4.7. Інтерполяція та апроксимація функцій і даних

Якщо деяка функція y(x) представлена низкою табличних даних yi(xi), то інтерполяція – це обчислення значень y(x) при x, заданому в інтервалі між точками xi. За межами мінімального та максимального із заданих значень x, тобто при x < xmin та x > xmax, обчислення значень функції називається екстраполяцією.

Апроксимацією в системах комп'ютерної математики називають отримання наближених значень певного виразу. Апроксимація функції – отримання конкретної функції, значення якої з певною точністю відповідають вихідній залежності. Як правило, віддають перевагу знаходженню однієї залежності, що наближає задану послідовність вузлових точок. Для цього часто

використовують степеневі многочлени (поліноми).

2.4.7.1. Апроксимація функцій, заданих аналітично

Нехай заданий аналітичний вираз певної функції y = y(x) і необхідно знайти наближений спрощений аналітичний вираз цієї функції. У такому разі вдаються до розвинення вихідної функції в степеневий ряд, що можливо робити поблизу деякого значення змінної х. Розглянемо цю процедуру на такому прикладі.

Приклад 2.17. Отримати наближений вираз функції exp(x).

Першим кроком розвинемо exp(x) в ряд степеня 5 поблизу точки x = 0:

Доданок О(х6) є невідомим залишковим членом і його необхідно позбутися. Перетворимо отриманий ряд на поліном:

Порівняємо вихідну функцію та отримане наближення графічно:

71

Як бачимо, обидві функції добре збігаються поблизу точки

розвинення х = 0.

2.4.7.2. Поліноміальна інтерполяція табличних даних

Нехай дані деякої залежності y(x) задані векторами X та Y її дискретних значень:

X

x1

x2

x3

x4

x5

xn

.

Y

y1

y2

y3

y4

y5

yn

Тоді можна отримати інтерполяційний степеневий многочлен, або поліном, за допомогою команди interp(X, Y, var), де var – ім'я змінної, яке буде фігурувати в поліномі. Зверніть увагу, що степінь полінома залежить від кількості заданих точок: якщо їх кількість N, то степінь полінома буде N

1.

Приклад 2.18. Функція задана таблично:

X

1

2

3

4

5

.

Y

0,5

1

2

2

1

 

Знайти вираз інтерполяційного полінома. Розрахувати значення функції (полінома) в точці x=1,5, яка не належить до табличних даних. Побудувати графік полінома та вихідних точкових даних в одних координатах.

72

У даному прикладі зверніть також увагу, що поліном перетворюється на процедуру, для того щоб у подальшому можна було обчислювати його значення для будь-якого x та будувати графік. Для побудови графіків створено два графічні об'єкти з іменами p1 (графік полінома) та p2 (точковий графік pointplot вихідних даних), які в подальшому виводяться на екран одночасно в одній системі координат функцією display.

Функції pointplot та display належать до пакета команд plots.

2.4.7.3. Сплайн-інтерполяція та апроксимація

Зі збільшенням степеня апроксимувальних поліномів точність поліноміальної апроксимації значно зменшується. У такому разі використовують відрізки поліномів невисокого степеня, або сплайни. Це збільшує точність апроксимації, але додає інший недолік, а саме відсутність спільного виразу для всієї кривої.

Сплайн-апроксимація виконується командою Spline(X, Y, var, degree = n), яка належить до пакета команд CurveFitting. X та Y – одновимірні вектори однакового розміру, які мають значення координат вузлових точок вихідної функції; var – ім’я змінної, що буде використовуватися в сплайні; n – необов’язковий параметр, який задає вид (степінь) сплайна: 1

73

або linear, 2 або quadratic, 3 або cubic, 4 або quartic. За замовчуванням, якщо опція degree = n відсутня, використовується кубічний сплайн (cubic).

Приклад 2.19. Задана така залежність:

 

 

 

 

 

x

0

1

2

 

3

4

5

.

 

y

0

1

4

 

3

2

1

 

 

 

Побудувати апроксимацію цієї залежності чотирма видами сплайна. Зобразити результати графічно.

Тут для сплайнів порядку 2, 3, 4 опущені математичні вирази. Бачимо, що в межах інтервалу координат вузлових точок сплайни з різною точністю, але задовільно описують задану залежність. За межами крайніх точок існує дуже істотний розбіг в екстраполяції даних.

74

2.4.7.4. Апроксимація методом найменших квадратів

Суть апроксимації цим методом полягає у статистичній обробці всіх даних, виходячи з мінімуму середньоквадратичної похибки. Для цього використовується команда LeastSquares з пакета CurveFitting, синтаксис якої такий: LeastSquares(data, var, option), де data – вихідні дані, задані координатами точок

у вигляді

списків,

масивів

або векторів,

наприклад:

[[x1, y1], [x2, y2], …]

чи [x1, x2, …], [y1, y2, …];

var –

ім'я змінної;

option –

опція,

яка

задає

вигляд

функції

у вигляді

curve = expression. Розглянемо приклад:

 

 

Тут ми використовуємо апроксимальну функцію у вигляді квадратичної параболи. Нижче порівняємо візуально вихідні дані з отриманою функцією.

2.4.8. Дослідження аналітичних функцій

Аналітичні функції широко використовуються у фізиці та математиці. Розглянемо аналіз функцій на неперервність, екстремуми, максимальне та мінімальне значення на відрізку.

75