Знаходження наближеного значення таблично заданої функції використовуючи кубічну сплайн-інтерполяцію

Використання однієї інтерполяційної формули для великого числа вузлів, як у випадку інтерполяційних формул Ньютона чи Лагранжа являється недоцільним. Такий інтерполяційний многочлен сильно проявляє свої коливальні властивості, і його значення між вузлами можуть сильно відрізнятися від значень інтерпольованої функції. Однією з можливостей обійти такий недолік є застосування сплайн-інтерполяції. Ідея сплайн-інтерполяції полягає в побудові поліномів між парами сусідніх вузлів інтерполяції, причому для кожної пари вузлів будується свій поліном. Найпоширеніший у практиці є кубічний сплайн, для побудови якого необхідно побудувати n многочленів третьої степені:

Сплайн-інтерполяція

Для визначення невідомих Сплайн-інтерполяція многочлена (1) необхідно 4n рівняннь. Частина з них, а саме 2n, може бути отримана з умови проходження сплайна через вузли інтерполяції Сплайн інтерполяція:

Сплайн-інтерполяція

де Сплайн-інтерполяція. Науступні (2n-2) рівняння знайдемо з умови неперервності перших і других похідних у вузлах інтерполяції, тобто з умови гладкості кривої в усіх точках. Для цього знайдемо першу і другу похідну тричлена (1):

Сплайн-інтерполяція

після чого прирівняємо отримані похідні в точці Сплайн-інтерполяція, обчисленні через лівий і правий інтервал від Сплайн-інтерполяція (Сплайн-інтерполяція):

Сплайн-інтерполяція

Замінивши у формулах (4), (5) Сплайн-інтерполяція з урахуванням Сплайн-інтерполяція, отримаємо:

Сплайн-інтерполяція

На даному етапі ми маємо 4n невідомих і (4n-2) рівняння. Тобто, необхідно знайти ще два рівняння. Їх отримаємо прирівнявши до нуля другі похідні в першому і останньому вузлах інтерполяції: Сплайн-інтерполяція. В результаті будемо мати:

Сплайн-інтерполяція

Таким чином ми отримали систему лінійних алгебраїчних рівнянь, яка складається з рівнянь (2), (3), (6) — (9) і з допомогою якої легко можна знайти невідомі коефіцієнти Сплайн-інтерполяція. Для цього приведемо її до більш зручного вигляду. З умови (2) знаходимо всі коефіцієнти Сплайн-інтерполяція. Далі, з (7) — (9) отримуємо:

Сплайн-інтерполяція

Підставляючи (2), (8) і (9) у формулу (3), отримаємо розрахункові формули для обчислення коефіцієнтів Сплайн-інтерполяція:

Сплайн-інтерполяція

Підставимо тепер формули (10), (11) у формулу (7), і таким чином виключимо з неї невідомі Сплайн-інтерполяція та Сплайн-інтерполяція. В рузультаті отримуємо систему рівнянь з трьохдіагональною матрицею у якій невідомими являються тільки коефіцієнти Сплайн-інтерполяція:

spline_interpolation44

Розв'язавши її методом прогонки, за  знайденими коефіцієнтами Сплайн-інтерполяція знаходимо Сплайн-інтерполяція і Сплайн-інтерполяція. Тобто, для того, щоб знайти наближене значення таблично заданої функції у вузлах відмінних від заданих, використовуючи для цього кубічну сплайн-інтерполяцію, необхідно в першу чергу знайти коефіцієнти Сплайн-інтерполяція, в наступній послідовності: спочатку з формули (2) знаходимо коефіцієнти Сплайн-інтерполяція; далі, розв'язавши систему (12) знаходимо Сплайн-інтерполяціяСплайн-інтерполяція та Сплайн-інтерполяція знаходимо з допомогою формул (10) та (11) відповідно. Наступним кроком є визначення інтервалу Сплайн-інтерполяція в який потрапляє аргумент Сплайн-інтерполяція після чого, в якості наближеного значення в цій точці береться значення: Сплайн-інтерполяція.

Кубічна сплайн-інтерполяція — приклад:

Знайти наближене значення функції spline_interpolation341 в точці spline_interpolation351, якщо відома наступна таблиця її значень:

Таблиця фіксованих значень функції

Розв'язок даної задачі будемо здійснювати використовуючи формулу кубічної сплайн-інтерполяції (1). Для цього, в першу чергу, необхідно відшукати значення її коефіцієнтів при невідомих.

Отже, як уже зазначалось вище, на першому кроці, скориставшись формулою (2) знаходимо коефіцієнти Сплайн-інтерполяція:

spline_interpolation43

Далі, використовуючи формулу (12), запишемо рівняння системи з трьохдіагональною матрицею. Розв'язавши дану систему, отримаємо значення коефіцієнтів Сплайн-інтерполяція:

spline_interpolation38

На останньому кроці, скориставшись формулами (10) та (11) знаходимо коефіцієнти Сплайн-інтерполяція таСплайн-інтерполяція:

spline_interpolation39

Після того, як значення всіх коефіцієнтів spline_interpolation46 відомі, переходимо до відшукання наближеного значення функції у заданій точці. Для цього, визначемо між якими вузлами фіксованих значень міститься точка spline_interpolation351. В нашому випадку вона міститься між вузлами spline_interpolation40 та spline_interpolation41. Далі, для даної пари сусідніх вузлів, побудуємо інтерполяційний поліном. В результаті отримаємо:

spline_interpolation45

Підставляючи в дану формулу spline_interpolation351, отримуємо наближене значення функції у заданій точці:

spline_interpolation42

Блок-схема програмної реалізації наближення таблично заданої функції використовуючи кубічну сплайн-інтерполяцію:

spline_interpolation47

Матеріал був корисним, поділись в соціальних мережах:

Якщо тобі сподобалась дана тема, залиш свій коментар