Найти в Дзене
Андрей Куликов

Глобальный кубический сплайн, программа на Borland Turbo Basic

....................................................."Даром дадено, даром давайте", - Исус Христос. Версия 2025.12.11, исправленная и дополненная. Локальные кубические сплайны проще глобальных, но глобальные точнее. Глобальный кубический сплайн - это многоряд (мультимногочлен, многополином, мультиполином) Тэйлора из множества рядов Тэйлора [1], усечённых до третьей степени. Ряд Тэйлора [1], усечённый до третьей степени (до четырёх членов): Коэффициенты a_i, b_i, c_i и d_i: Глобальный кубический сплайн в виде многоряда Тэйлора третьей степени [3][4]: Формулы для составления системы линейных алгебраических уравнений (СЛАУ) в виде трёхдиагональной матрицы: где M_i - вторые производные. Вторые производные находятся решением трёхдиагональной СЛАУ методом прогонки Томаса [5]. После нахождения вторых производных можно делать интерполяцию по формуле из справочника Дьяконова [2.§П5.11]: Для интерполяции по формуле в виде многоряда Тэйлора, усечённого до третьей степени, нужно найти коэффи
Оглавление

....................................................."Даром дадено, даром давайте", - Исус Христос.

Версия 2025.12.11, исправленная и дополненная.

Локальные кубические сплайны проще глобальных, но глобальные точнее.

Глобальный кубический сплайн - это многоряд (мультимногочлен, многополином, мультиполином) Тэйлора из множества рядов Тэйлора [1], усечённых до третьей степени.

Ряд Тэйлора [1], усечённый до третьей степени (до четырёх членов):

Коэффициенты a_i, b_i, c_i и d_i:

-2

Глобальный кубический сплайн в виде многоряда Тэйлора третьей степени [3][4]:

-3

Формулы для составления системы линейных алгебраических уравнений (СЛАУ) в виде трёхдиагональной матрицы:

-4

где M_i - вторые производные. Вторые производные находятся решением трёхдиагональной СЛАУ методом прогонки Томаса [5].

После нахождения вторых производных можно делать интерполяцию по формуле из справочника Дьяконова [2.§П5.11]:

-5

Для интерполяции по формуле в виде многоряда Тэйлора, усечённого до третьей степени, нужно найти коэффициенты a_i, b_i, c_i и d_i по формулам [3. Гл.II.(18)]:

-6

После нахождения коэффициентов a_i, b_i, c_i и d_i можно делать интерполяцию по формуле кубического сплайна в виде многоряда Тэйлора, усечённого до третьей степени.

1. Программы CUBSPL.BAS и CUBSPLG.BAS на Borland Turbo Basic

-7

Рис.1. Снимок с экрана результата прогона программы CUBSPL.BAS с контрольным примером "парабола" (y=x^2) в компиляторе Borland Turbo Basic (результат совпадает с результатом глобального кубического сплайна из справочника Дьяконова).

-8

Рис.2. Снимок с экрана результата прогона программы CUBSPLG.BAS с контрольным примером "парабола" (y=x^2) в компиляторе Borland Turbo Basic (одно деление по вертикали равно 4). Крупными кружками - входные узлы, мелкими - интерполированные значения сплайна.

Программа CUBSPL.BAS на Borland Turbo Basic с краевыми условиями для "натурального" ("естественного") сплайна.

Программа работает, как с равно отстоящими отсчётами, так и с не равно отстоящими отсчётами по оси абцисс x.

-9
-10
-11

2. Программы CUBSPL2.BAS и CUBSPL2G.BAS на Borland Turbo Basic

Версия программы CUBSPL.BAS с краевыми условиями для "clamped spline".

-12

Рис.3. Снимок с экрана результата прогона программы CUBSPL2.BAS с контрольным примером "парабола" (y=x^2) в компиляторе Borland Turbo Basic (результат более точный, чем результат глобального кубического сплайна из справочника Дьяконова).

В графическом варианте (CUBSPL2G.BAS) разница почти незаметна, а в числовом: вторая производная для y=x строго равна 0, для y=x^2 строго равна 2, а для y=x^3 строго равна 6*x.

Литература:

1. Ряд Тэйлора. Определение. Википедия.

2. Д ь я к о н о в В. П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ: Справочник. — М.: Наука. Гл. ред. физ.-мат. лит., 1989. — 240 с. — ISBN 5-02-014530-0. Файл: diakonovvp8.djvu

3. Сплайны в вычислительной математике. С т е ч к и н С. Б., С у б б о
т и н Ю. Н., Главная редакция физико-математической литературы
издательства "Наука", М., 1976, 248 стр.
https://disk.yandex.ru/d/agvjylaKKUo3Zg

4. Кубический сплайн. Википедия.

5. Решение трёхдиагональных СЛАУ методом прогонки Томаса. Куликов А. С. Дзен.

Приложения:

1. Программа CUBSPL.BAS

2. Программа CUBSPLG.BAS

3. Программа CUBSPL2.BAS

4. Программа CUBSPL2G.BAS

5. Borland Turbo Basic, архив TB.rar

6. Borland Turbo Basic, руководство TBASIC.TXT