- •Н. Б. Борковский Математические методы в экологии
- •Часть I. Численные методы
- •Тема 1 9
- •Тема 2 14
- •Тема 3 30
- •3.0 Постановка задачи 30
- •1. Постановка проблемы
- •2. Выбор или построение математической модели
- •3. Постановка вычислительной задачи
- •4. Предварительный анализ свойств вычислительной задачи
- •5. Выбор или построение численного метода
- •6. Алгоритмизация и программирование
- •7. Отладка программы
- •8. Счет по программе
- •9. Обработка и интерпретация результатов
- •10. Использование результатов и коррекция математической модели
- •1.0 Источники приближенных чисел
- •1.1 Источники и классификация погрешностей
- •1.2 Абсолютная и относительная погрешности вычисления
- •1.3 Погрешности арифметических операций
- •1.4 Обратная задача теории погрешностей
- •Постановка задачи
- •Метод половинного деления (метод «вилки», метод дихотомии)
- •Метод Ньютона (метод касательных)
- •Метод хорд (метод пропорциональных частей)
- •Метод итерации (метод последовательных приближений)
- •Постановка задачи
- •Решение систем линейных уравнений методом итерации
- •Решение систем нелинейных уравнений методом итерации
- •Решение систем линейных уравнений – «подводные камни»
- •4.0 Интерполирование – постановка задачи
- •4.1 Интерполирование полиномами
- •4.2 Аппроксимация функций. Метод наименьших квадратов
- •4.3 Интерполирование сплайнами
- •4.4 Интерполирование – примеры и «подводные камни»
- •4.5 Сглаживание данных (скользящее среднее)
- •5.0 Постановка задачи
- •5.1 Формула трапеций
- •5.2 Формула Симпсона
- •5.3 Формула Ньютона–Котеса
- •5.4 Формула Гаусса
- •5.5 Связь формул интегрирования
- •5.6 Численное интегрирование. Сравнение методов
- •5.7 Численное интегрирование – «подводные камни»
- •6.0 Введение
- •6.1 Обыкновенные ду. Метод Эйлера
- •6.2 Обыкновенные ду. Основные методы решения
- •6.3 Обыкновенные ду. Методы прогноза и коррекции
- •6.5 Обыкновенные ду. Сравнение методов
- •6.6 Оду. Влияние неточности исходной информации
- •6.7 Оду. Представление о конечных разностях
- •6.8 Оду. Краевые задачи – введение
- •8.0 Ду в частных производных. Постановка задачи
- •8.1 Ду в частных производных. Эллиптические уравнения
- •8.2 Ду в частных производных. Гиперболические уравнения
- •8.3 Ду в частных производных. Параболические уравнения
- •9.0 Методы безусловной оптимизации. Введение
- •9.1 Методы безусловной оптимизации. Классификация методов
- •9.2 Методы безусловной оптимизации нулевого порядка
- •9.3 Методы безусловной оптимизации первого порядка
- •9.4 Методы оптимизации второго порядка
- •Тема 10
- •10.0 Метод Монте–Карло. Некоторые задачи
- •10.1 Проблема получения случайных чисел
- •10.2 Общая схема метода
- •10.3 Метод Монте–Карло. Пример
- •10.4 Вычисление кратных интегралов
- •Число испытаний n не зависит от размерности интеграла i0
4.3 Интерполирование сплайнами
На практике многие кривые нельзя описать простыми функциями. Однако их можно составить из отрезков полиномов или других сравнительно простых кривых.
В теории приближения функций такие кривые называются сплайнами. На практике чаще всего применяются кубические сплайны.
Постановка задачи
Пусть на отрезке [a, b] задана сетка a = x0 < x1 < …< xn = b, в узлах которой заданы значения f(xi) (i = 0, 1, 2, …, n) функции f(x), определенной на [a, b].
Причем узлы сетки a = x0 < x1 < …< xn = b не обязательно расположены равномерно.
Выберем, например, интервал между xj и xj+1.
Цель интерполяции кубическими сплайнами – получить такую интерполяционную формулу, которая будет иметь гладкую первую производную и непрерывную вторую производную как внутри интервала, так и на его границах.
Рассмотрим задачу построения интерполяционного кубического сплайна, приближающего функцию f(x), заданную на отрезке [a, b].
Кубическим
сплайном, соответствующим данной функции
f(x) и узлам
,
является функция S(x), удовлетворяющая
следующим условиям:
на каждом из отрезков [xi, xi+1] (i = 0, 1, 2,…, n) функция S(x) является многочленом третьей степени вида
i = 0, 1, 2, …, n–1;(4.26)
непрерывны
на [a, b];должно выполняться условие интерполяции, т. е.
-
,
i = 0, 1, 2, …,
n–1.(4.27)
Сказанное иллюстрируется на рис. 4.4, где показаны первые три отрезка сетки разбиения.
Р
ис.
4.4. Интерполирование кубическими
сплайнами. Сплайн строится для каждого
отрезка
Поскольку на каждом из n отрезков [xi, xi+1] между узлами сетки сплайн S(x) определяется четырьмя коэффициентами a, b, c, d, то для его полного построения необходимо найти 4n чисел.
Построение сплайна
Найдем первую, вторую и третью производные многочлена Si(x):
|
(4.28) |
|
(4.29) |
Для любой точки x = xi из (4.26), (4.28), (4.29) получаем
.
Согласно условию интерполяции (4.27), будем иметь
,
|
(4.30) |
|
(4.31) |
Введем шаг разбиения интервала [a, b] (шаг сетки):
hi = xi – xi-1 (hi+1 = xi+1 – xi) .
Тогда (4.31) запишем в виде
.
Т. к. Si(xi) = ai = yi, то
|
(4.32) |
Согласно условию б) (условие непрерывности), в каждом узле xi левая и правая производные должны быть равны, т. е. не должно быть точек разрыва и должны выполняться условия
|
(4.33) (4.34) |
;
.
Тогда
|
(4.35) |
Используя (4.34), получим
;
;
|
(4.36) |
Полученные соотношения представляют собой алгебраическую систему для определения (4n–2) коэффициентов. Недостающие два уравнения получают из граничных условий. В общем случае рассматривают три вида граничных условий, которым должен удовлетворять сплайн S(x):
или
;
или
;
.
Условия 1), 2) применяют, если известны значения соответствующих производных функции f(x) на концах отрезка [a, b].
Условия вида 3) называют периодическими и их выполнения требуют, если функция f(x) периодическая с периодом (b–a).
Для концевых
узлов x0, xn
полагаем
(что соответствует нулевой кривизне
графика на концах рассматриваемого
отрезка). Тогда используя условия (4.11),
получим
|
(4.37) |
Заметим, что
условие
совпадает
с (4.36) при i = n – 1, если положить cn
= 0.
Из (4.36) получим
|
(4.38) |
После подстановки ai и di в (4.31) получим выражение для bi:
|
(4.39) |
Далее подставим bi и di в (4.35) (и уменьшим значение индекса i на единицу для симметрии записи) и приходим к уравнениям:
|
(4.40) |
Система (4.40) вместе с условиями c0 = 0, cn = 0 образует систему для определения коэффициентов.
Другие коэффициенты сплайна вычисляются по формулам (4.30), (4.38) и (4.39).

;
;
.
;
,
i = 0, 1, 2, …, n–1.
.
.
;
;
,
i = 0, 1, 2, …, n–2.
,
i = 0, 1, 2, …, n–2.
.
.
.
,
i = 1, 2, …, n–1.