Лінійна інтерполяція — один із найпростіших способів наближеного визначення значень функції за відомими табличними даними. Її використовують тоді, коли потрібно знайти значення функції між двома сусідніми вузлами без побудови інтерполяційного полінома високого степеня. Розглянемо принцип побудови лінійного інтерполяційного полінома, а потім застосуємо його для розв’язання практичних прикладів.
Лінійна Інтерполяція: Ідея Наближення Між Вузлами
Нехай функція задана таблицею значень у вузлах
\[ (x_0,y_0),\quad(x_1,y_1),\quad\dots,\quad(x_n,y_n), \]
причому значення аргументу впорядковані:
\[ x_0<x_1<\dots<x_n. \]
Такий порядок дає змогу однозначно визначати сусідні вузли та відповідні проміжки між ними. При цьому вузли не обов’язково мають бути рівновіддаленими: для лінійної інтерполяції достатньо знати координати двох сусідніх точок із різними значеннями аргументу.
Якщо кількість вузлів велика, побудова одного інтерполяційного полінома для всього проміжку може бути незручною, оскільки його степінь зростає разом із кількістю заданих точок. Простіший підхід полягає в тому, щоб розглядати кожну пару сусідніх вузлів окремо.
Точки \( (x_i,y_i) \) та \( (x_{i+1},y_{i+1}) \) з’єднують відрізком прямої. На проміжку між цими вузлами задану функцію наближено замінюють цією прямою.
Якщо таку побудову виконати для всіх сусідніх пар вузлів, отримаємо ламану лінію, вершини якої збігаються із заданими точками. Такий спосіб наближення називають кусково-лінійною інтерполяцією.

На кожному окремому проміжку
\[ x_i\leq x\leq x_{i+1} \]
наближення задається поліномом першого степеня
\[ F(x)=a\cdot x+b. \]
Для різних проміжків коефіцієнти \( a \) і \( b \) можуть мати різні значення, оскільки кожна пряма будується за своєю парою сусідніх вузлів. Таким чином, замість одного полінома високого степеня використовують набір лінійних поліномів, кожен із яких описує функцію на відповідному проміжку.
Лінійний Інтерполяційний Поліном: Визначення Коефіцієнтів
Щоб побудувати лінійний поліном для проміжку між вузлами \( (x_i,y_i) \) та \( (x_{i+1},y_{i+1}) \), необхідно визначити його коефіцієнти \( a \) і \( b \):
\[ F(x)=a\cdot x+b. \]
Оскільки пряма повинна проходити через обидва задані вузли, маємо умови
\[ y_i=a\cdot x_i+b,\qquad y_{i+1}=a\cdot x_{i+1}+b. \]
Тому коефіцієнти визначаються із системи двох лінійних рівнянь
\[ \begin{cases} y_i=a\cdot x_i+b,\\ y_{i+1}=a\cdot x_{i+1}+b. \end{cases} \]
Віднімаючи перше рівняння від другого, отримуємо
\[ y_{i+1}-y_i=a\cdot(x_{i+1}-x_i). \]
Звідси
\[ a=\frac{y_{i+1}-y_i}{x_{i+1}-x_i}. \]
Коефіцієнт \( a \) визначає нахил прямої та показує, як змінюється значення лінійного полінома при зміні аргументу на одиницю. Оскільки \( x_{i+1}\neq x_i \), знаменник у цій формулі не дорівнює нулю.

Після знаходження \( a \) коефіцієнт \( b \) визначаємо з першого рівняння:
\[ b=y_i-a\cdot x_i. \]
Підставивши отримані коефіцієнти в рівняння прямої та виконавши перетворення, одержуємо лінійний інтерполяційний поліном:
\[ F(x)=y_i+\frac{y_{i+1}-y_i}{x_{i+1}-x_i}\cdot(x-x_i),\qquad x_i\leq x\leq x_{i+1}. \]
Ця формула дає змогу безпосередньо визначати наближене значення функції за координатами двох сусідніх вузлів. Якщо підставити \( x=x_i \), отримаємо
\[ F(x_i)=y_i, \]
а при \( x=x_{i+1} \)
\[ F(x_{i+1})=y_{i+1}. \]
Отже, у самих вузлах інтерполяційний поліном точно відтворює задані значення функції. Наближеними є значення, які визначаються для аргументів, розташованих між сусідніми вузлами.
Лінійна Інтерполяція: Покрокові Приклади
Перейдемо до практичного застосування лінійної інтерполяції для табличних даних із нерівновіддаленими вузлами. У кожному випадку визначимо сусідні вузли, між якими знаходиться задане значення аргументу, та використаємо їх для обчислення наближеного значення функції.
Приклад 1. За наведеними табличними значеннями функції знайти наближене значення \( f(2.1) \)
| \( i \) | \( x_i \) | \( y_i \) |
|---|---|---|
| \( 0 \) | \( 0 \) | \( 2 \) |
| \( 1 \) | \( 1.5 \) | \( 5 \) |
| \( 2 \) | \( 3.2 \) | \( 9 \) |
Насамперед визначимо, між якими сусідніми вузлами знаходиться задане значення аргументу:
\[ 1.5<2.1<3.2. \]
Отже, для інтерполяції використовуємо точки
\[ (x_i,y_i)=(1.5,5) \]
та
\[ (x_{i+1},y_{i+1})=(3.2,9). \]
Запишемо формулу лінійного інтерполяційного полінома:
\[ F(x)=y_i+\frac{y_{i+1}-y_i}{x_{i+1}-x_i}\cdot(x-x_i). \]
Підставимо координати вибраних вузлів:
\[ F(x)=5+\frac{9-5}{3.2-1.5}\cdot(x-1.5). \]
Для \( x=2.1 \) маємо
\[ F(2.1)=5+\frac{9-5}{3.2-1.5}\cdot(2.1-1.5). \]
Обчислимо необхідні різниці:
\[ 9-5=4,\qquad 3.2-1.5=1.7,\qquad 2.1-1.5=0.6. \]
Тоді
\[ F(2.1)=5+\frac{4}{1.7}\cdot0.6\approx5+1.412=6.412. \]
Отже,
\[ f(2.1)\approx6.412. \]
Приклад 2. За наведеними табличними значеннями функції знайти наближене значення \( f(5.2) \)
| \( i \) | \( x_i \) | \( y_i \) |
|---|---|---|
| \( 0 \) | \( 1 \) | \( 3 \) |
| \( 1 \) | \( 2.4 \) | \( 6.5 \) |
| \( 2 \) | \( 4 \) | \( 9 \) |
| \( 3 \) | \( 7 \) | \( 15 \) |
Визначимо, між якими сусідніми вузлами розташоване значення \( x=5.2 \):
\[ 4<5.2<7. \]
Тому для інтерполяції використовуємо точки
\[ (x_i,y_i)=(4,9) \]
та
\[ (x_{i+1},y_{i+1})=(7,15). \]
Підставимо координати вибраних вузлів у формулу лінійної інтерполяції:
\[ F(x)=9+\frac{15-9}{7-4}\cdot(x-4). \]
Для \( x=5.2 \) отримуємо
\[ F(5.2)=9+\frac{15-9}{7-4}\cdot(5.2-4). \]
Обчислимо необхідні різниці:
\[ 15-9=6,\qquad 7-4=3,\qquad 5.2-4=1.2. \]
Тоді
\[ F(5.2)=9+\frac{6}{3}\cdot1.2=9+2.4=11.4. \]
Отже,
\[ f(5.2)\approx11.4. \]
Приклад 3. За наведеними табличними значеннями функції знайти наближене значення \( f(0.7) \)
| \( i \) | \( x_i \) | \( y_i \) |
|---|---|---|
| \( 0 \) | \( -2 \) | \( 4 \) |
| \( 1 \) | \( -0.5 \) | \( 1.5 \) |
| \( 2 \) | \( 1.8 \) | \( 5.2 \) |
| \( 3 \) | \( 3 \) | \( 8 \) |
| \( 4 \) | \( 6.5 \) | \( 20 \) |
Визначимо, між якими сусідніми вузлами знаходиться значення \( x=0.7 \):
\[ -0.5<0.7<1.8. \]
Отже, використовуємо точки
\[ (x_i,y_i)=(-0.5,1.5) \]
та
\[ (x_{i+1},y_{i+1})=(1.8,5.2). \]
Підставимо координати вибраних вузлів у формулу лінійної інтерполяції:
\[ F(x)=1.5+\frac{5.2-1.5}{1.8-(-0.5)}\cdot(x-(-0.5)). \]
Для \( x=0.7 \) маємо
\[ F(0.7)=1.5+\frac{5.2-1.5}{1.8-(-0.5)}\cdot(0.7-(-0.5)). \]
Обчислимо необхідні різниці:
\[ 5.2-1.5=3.7,\qquad 1.8-(-0.5)=2.3,\qquad 0.7-(-0.5)=1.2. \]
Тоді
\[ F(0.7)=1.5+\frac{3.7}{2.3}\cdot1.2. \]
Виконаємо обчислення:
\[ F(0.7)\approx1.5+1.93=3.43. \]
Отже,
\[ f(0.7)\approx3.43. \]
Наступні Методи Інтерполяції: Що Варто Розглянути Далі
Лінійна інтерполяція добре показує основну ідею наближення між сусідніми вузлами. Далі варто ознайомитися з методами, які дають змогу будувати складніші наближення для таблично заданих функцій.
- Квадратична інтерполяція: Наближення за трьома вузлами — У статті розглянемо, як за трьома сусідніми вузлами побудувати квадратичний поліном і знайти проміжне значення функції.
- Кубічна сплайн-інтерполяція: Плавне наближення між вузлами — Розберемо, як кубічні сплайни утворюють узгоджене наближення на окремих проміжках і допомагають обчислювати значення функції.
- Тригонометрична інтерполяція: Наближення періодичних функцій — Дізнаємося, як за табличними значеннями побудувати тригонометричний поліном для наближення періодичних функцій.
Лінійна Інтерполяція: Від Блок-Схеми До Програмного Коду
Якщо вам подобається програмування, спробуйте перетворити алгоритм методу лінійної інтерполяції на власну програму. Скористайтеся наведеною блок-схемою: реалізуйте введення табличних даних, пошук проміжку, до якого належить задане значення аргументу, та обчислення наближеного значення функції. Мову програмування можна обрати самостійно — Pascal, Python, JavaScript, C++ або будь-яку іншу. Це хороший спосіб перевірити, наскільки зрозумілим став алгоритм, і побачити, як математичний метод працює вже у вигляді програмного коду.
