- •Численные методы решения задач радиофизики и электроники
- •Содержание
- •1. Аппроксимация нелинейных характеристик. Интерполяция.
- •1.1. Полиномы Ньютона и Лагранжа.
- •1.2. Сплайн-интерполяция.
- •1.3. Метод наименьших квадратов.
- •2. Системы алгебраических уравнений.
- •2.1. Cистемы линейных уравнений. Метод Гаусса.
- •2.2. Разреженные системы уравнений. Lu-факторизация.
- •2.3. Решение нелинейных уравнений.
- •2.3. Решение систем нелинейных уравнений.
- •Тогда точное решение (1;2)
- •2.4. Дифференциальные уравнения.
- •3. Методы поиска экстремума. Оптимизация.
- •3.1. Методы поиска экстремума.
- •3.2. Пассивный поиск.
- •3.3. Последовательный поиск.
- •3.4. Многомерная оптимизация.
- •Список литературы
1.2. Сплайн-интерполяция.
При
интерполяции функции
по ее
значениям
в узлах
полиномы Лагранжа высокого порядка
применяются сравнительно редко. Гораздо
чаще функция
интерполируется в интервалах между
несколькими соседними опорными точками
полиномами низких степеней. Такая
интерполяция называется кусочной.
Примером может служить кусочно-линейная
интерполяция по двум соседним точкам
на интервале
или кусочно-параболическая по трем
соседним точкам
.
Однако многие численные методы требуют
определения производной, а производные
в вышеприведенных методах будут терпеть
разрыв в узлах кусочной интерполяции.
Эти трудности преодолеваются при использовании методов интерполяционных сплайнов, получивших значительное развитие, начиная с 60-х годов ХХ века. Из них наиболее распространены кубические сплайны, у которых в узлах достигается непрерывность первой и второй производных.
Кубический
сплайн строится следующим образом.
Пусть заданы
узлов интерполяции
функции
(в общем случае неэквидистантные). На
каждом интервале
кубический сплайн является алгебраическим
полиномом третьей степени:
(1)
Причем эти многочлены
подобраны так, что при всех
непрерывны и сами сплайны (1) и их первая
и вторая производные.
Наша
цель получить
многочленов
,
т.е. вычислить все неизвестные коэффициенты
.
Эти неизвестные
коэффициентов определяются из следующих
требований:
1. Сплайн-полиномы должны проходить через узловые точки:
,
(2.1)
2. Первые производные должны быть непрерывны во внутренних узлах:
,
(2.2)
3. Вторые производные должны быть непрерывны во внутренних узлах:
,
(2.3)
В
(2.1)-(2.3) сформулировано
ограничений, а число неизвестных
составляет
.
Поэтому, для однозначного определения
коэффициентов
необходимы еще два дополнительных
условия. Чаще всего используются
естественные граничные условия:
, (2.4)
т.е. через крайние точки сплайны должны проходить с нулевой кривизной.
Запишем полиномы в форме, которая значительно упростит все операции с полиномами:
, (3)
где
- расстояние между соседними узлами,
,
- относительные расстояния от левого
ого
и правого
ого
узла,
-
тангенс угла наклона прямой,
-
неизвестные константы, подлежащие
определению.
При
таком представлении сплайна получим,
что при
,
а при
,
а для производных -
и
.
Вычисление полинома (3) в точках
показывает, что
ограничений (2.1) удовлетворяются
автоматически.
Первая производная полинома (3) равна
,
(4)
Из (4) видим, что требование (2.2) при и также выполняется.
Наконец, вычисляя вторую производную полинома (3), получим
.
Тогда во внутренних узлах получаем
,
.
Приравнивая эти производные друг к другу в соответствии с требованием (2.3), приходим к следующей системе уравнений:
,
(5)
где
.
Оставшееся условие (2.4) дает еще два уравнения
,
(5.1)
Вместе взятые (5) и (5.1) можно записать в форме симметричной трехдиагональной системы уравнений:
(6)
Эта
система уравнений обычно хорошо
обусловлена и может быть легко решена
относительно констант
.
После нахождения коэффициентов
можно определить коэффициенты
по формулам:
,
,
,
(7)
,
Для решения системы уравнений (6) можно воспользоваться методом исключения Гаусса. Однако его целесообразно адаптировать под специальный вид трехдиагональной системы уравнений (6). Нужно учитывать, что в системе уравнений (6) заполняются только главная диагональ и две дополнительные диагонали (наддиагональ и поддиагональ). Поэтому коэффициенты системы уравнений целесообразно запоминать не в двумерном массиве, а в двух одномерных: DIAG (диагональ) и UPDIAG (наддиагональ и поддиагональ). Решение системы можно получать на месте столбца свободных членов.
Вообще-то во всей литературе для решения таких систем рекомендуется использовать метод прогонки
Так как
,
то наибольшие по модулю коэффициенты
уже стоят на главной диагонали и
перестановка уравнений, которая обычно
производится в алгоритме Гаусса, здесь
не нужна. Следует учитывать также, что
при прямой подстановке на каждом шаге
исключаются только коэффициенты, стоящие
над главной диагональю, а остальные
коэффициенты равны нулю изначально.. В
ходе прямой подстановки изменяться
будут только диагональные и свободные
члены.. при обратной подстановке из
последнего уравнения находится
,
из предпоследнего -
и т.д.
Задание
Разработать
программу, производящую сплайн-интерполирование
таблично заданной функции
.
В состав программы должны входить:
Процедура вычисления коэффициентов сплайна SPLINE_COEFFICIENT(x, y, N, A, B, C, D), в которой вычисляются коэффициенты трехдиагональной системы уравнений (6). В ней осуществляется привидение системы к верхней треугольной форме (прямая подстановка), нахождение (обратная подстановка) и расчет коэффициентов по формулам (7).
Процедура
SPLINE_VALUE(x,
y, N, A,
B, C, D,
xx, P, P1)
, будет служить для вычисления в точке
хх значения кубического сплайна
и его производной
.
В процедуре находится рабочий интервал
.
Значения сплайна и его производная в
процедуре вычисляются по схеме Гориера
,
,
.
Проверку
работы программы можно осуществить,
сравнивая значения некоторой исходной
функции
со значениями сплайн-функции, построенной
по ее
опорным точкам
,
а также по значениям ее производных.
