- •Задачи оптимизации
- •Метод градиентного спуска
- •Алгоритм
- •Метод квадратичной интерполяции-экстраполяции
- •Алгоритм
- •Интерполяционные формулы Ньютона
- •Первая интерполяционная формула Ньютона
- •Вторая интерполяционная формула Ньютона
- •Решение обыкновенных дифференциальных уравнений. Многошаговые методы
- •Суть многошаговых методов
- •Метод Адамса (четырехшаговый)
- •Методы прогноза и коррекции
- •XI-3 XI-2 XI-1 XI
- •Интерполяция сплайнами
- •Контрольные вопросы
- •620002, Екатеринбург, ул. Мира, 19
Методы прогноза и коррекции
Рассмотрим еще одно семейство методов – методы прогноза и коррекции (методы «предиктор-корректор»).
Каждый шаг таких методов состоит из двух этапов:
С помощью явногометода (предиктора) по известным значениям
функции в предыдущих узлах находится
начальное приближение
в новом, (
)-ом
узле.
Используя неявныйметод (корректор), находится следующее
приближение в точке (
):
.
К методам «предиктор-корректор» относится, например, метод Эйлера – Коши, где мы вычисляем
![]()
начальное приближение, с помощью явного метода – Эйлера (предиктор), затем
![]()
– следующее
приближение значения функции
в
-ой
точке,
(корректор).
Рассмотрим метод прогноза и коррекции («предиктор-корректор»), полученный на основе метода Адамса четвертого порядка. Формула Адамса, которую мы вывели
![]()
является явной
(
в
правой части не содержит). И поэтому
может использоваться как предиктор,
для нахождения
по предыдущим значениям. Для корректора
необходимо вывести формулу, которая
содержала бы
в правой части, т.е. была бы неявной.
Сделаем это. Ранее мы строили полином
по точкам
(рис.
4),
XI-3 XI-2 XI-1 XI
Рис. 4
предшествовавшим
точке
,
и предполагали, что на отрезке
функция
описывается
этим же полиномом. Т.е., по сути, это была
экстраполяция – мы выходили за пределы
отрезка, где таблично задана функция.
А далее мы интегрировали полином
на отрезке
.
Было бы надежнее построить полином по
точкам
,
т.е. так, чтобы отрезок
,
где мы интегрируем полином, принадлежал
бы к области интерполяции, а не
экстраполяции (погрешность интерполяции
много меньше, чем экстраполяции;
предсказать как ведет себя функция за
пределами отрезка интерполяции –
сложно). Таким образом, нам необходимо
знать
.
Для расчета
нам
необходимы
и
.
В качестве
используем
приближение
,
найденное на этапе предикции.
Для построения
используем полином Ньютона «назад»:

Такую запись он
имеет, когда строится по точкам
.
Теперь мы будем строить его по точкам
,
т.е. индексы в формуле надо увеличить
на единицу:

Введем новую переменную
![]()
тогда

и полином запишется
.
При интегрировании
xменяется на отрезке
,
аuменяется
При интегрировании полинома поuпридется интегрировать поuвыражения:

Интегрирование этих выражений сведется к вычислению интегралов:

В результате, интегрирование полинома даст:

.
,
поэтому
,
![]()
Запишем конечные
разности через значения функции
:
![]()
![]()
![]()
тогда
.
Итак, мы получили
корректор: для вычисления
в правой части будет использоваться
начальное приближение
,
т.е. будем вычислять
.
Итак,
Предиктор:
![]()
Корректор:
.
Таким образом, мы
можем проводить вычисления по схеме
«предиктор-корректор», находя по формуле
предиктора
и
уточняя (корректируя) его по формуле
корректора.
Отметим, что
глобальная погрешность приближенного
значения y, найденногоk-шаговым
методом Адамса, равна
.
Для неявногоk-шагового
метода Адамса погрешность –
.
Интерполяция сплайнами
При большом количестве узлов интерполяции возрастает степень интерполяционных полиномов, что неудобно.
Разобьем отрезок интерполяции на части. Построим на каждой части свой интерполяционный многочлен.
Интерполяция сплайнами – это кусочно-полиномиальная интерполяция.
Функция
называется
интерполяционным сплайном порядкаmдля функции
,
заданной таблицей
|
x |
x0 |
x1 |
… |
xn |
|
y |
y0 |
y1 |
… |
yn |
если:
на каждом отрезке
![]()
![]()
1.
является многочленом порядкаm
2.
и
еe производные до
порядка включительно непрерывны на![]()
3.
![]()
– выполняется условие интерполяции.
Рассмотрим аппроксимацию функции кубическими сплайнами, т.е.
m = 3. Кубический сплайн, согласно определению, можно представить в виде:

где
–
многочлен 3-ей степени:
.
Подчеркнем, что
на каждом отрезке
(рис. 5) свой многочлен
:
P1(x)
P2(x)
……. Pi(x)
Pi+1(x)
..…. Pn(x)
Рис. 5
Будем искать
коэффициенты полиномов
.
Т.к.
,
то
,
т.е.
.
Условие непрерывности требует, чтобы
![]()
![]()
![]()
![]()
![]()
![]()
введем
,
понизим индекс на
единицу, т.е.
.
![]()
![]()
,
,
поэтому
![]()
Условие непрерывности первой производной требует, чтобы
.
.
Продифференцируем по x.
![]()
![]()
![]()
![]()
.
Понизим индекс,
т.е.
.
![]()
вспомним, что
,
тогда
(2)
Из условия непрерывности второй производной,
.
.
![]()
![]()
![]()
![]()
![]()
Понизим индекс,
,
![]()
(3)
Таким образом, из
условий
![]()
,
,
мы имеем равенства:
(1)
(2)
(3)
Это система
относительно 3nнеизвестных
.
,
т.е. в каждом равенстве содержится (n-1)
уравнений. Т.е. в системе 3(n-1) уравнений,
а неизвестных 3n. Систему надо
доопределить. Вспомним непосредственное
условие интерполяции:
.
Для определения
коэффициентов
мы
использовалиi от
1 доn, но ведь кроме
этого должно выполняться
,
т.е.
.
![]()
,
![]()
или
–это из условия
интерполяции.
Т.е. в равенствах
(1) индекс i можно менять не от 2, а от
1. Теперь система содержит уже (
)
уравнения. Надо еще 2 уравнения. Потребуем
«гладкости» второй производной на
концах отрезка интерполирования:
![]()
т.е.
![]()
![]()
![]()
![]()
.
Отсюда
![]()
Заметим, что (*)
совпадает с равенствами (3) в системе,
если формально ввести
и
прогнать индексi от 1.
В итоге получим систему:

Будем решать полученную систему.
Выразим biиз (I):
![]()
Соответственно bi-1будет:
![]()
Найдем разность

отсюда
.
Из этого равенства исключим di. Выразимdiиз (III):

После подстановки получим:
![]()
![]()
Повысим индекс,
,
тогда
.
Таким образом, мы
получили систему уравнений относительно
ci -ых.
При этом помним, чтосn
= 0. Теперь мы можем найти
,
а затем
и после этого
.
Т.е. последовательно надо решить три системы:
![]()
![]()
![]()
После этого мы
будем знать все коэффициенты полиномов
:
-итые.
