- •Глава 2 Аппроксимация
- •Интерполяция Постановка задачи
- •Единственность интерполяционного полинома
- •Полином Лагранжа
- •Оценка погрешности интерполяционного полинома
- •Полином Ньютона
- •Интерполяционный полином Ньютона
- •Задача интерполяции в точке Постановка задачи
- •Метод наименьших квадратов
- •Сплайн-интерполяция
Метод наименьших квадратов
Напомним постановку задачу аппроксимации. Дана таблица 2.1 исходных данных. Требуется получить функцию j(x, a0, a1, …am) близкую к табличным значениям. Здесь подчеркнуто, что функция j(x) зависит от набора параметров и задача сводится к подбору оптимальных значений этих параметров в соответствии с критерием близости функции j(x, a0, a1, …am) к табличным данным.
В качестве критерия близости в методе наименьших квадратов (МНК) используется сумма квадратов разницы значений функции j(x) на сетке x0 , x1, …,xn и соответствующих значений y0, y1, …, yn. Задача состоит в поиске минимума этой величины путем подбора самой функции j(x) и её параметров а0, a1, …am.
S
=
2
min
(2.22)
Классический пример аппроксимирующей функции – полином, то есть функция вида
jm(x) = a0 + a1 x + a2 x2 + … + am xm (2.23)
В этом случае говорят о параболической или полиномиальной аппроксимации.
Логарифмическая функция применяется для таблиц, значения которых вначале быстро меняются, а затем постепенно стабилизируются. Строится в соответствии с уравнением:j(x)=a*ln(x) + b.
Степенная функция используется, если значения таблицы характеризуются постоянным изменением скорости роста: :j(x)=a*xb .
Экспоненциальная функция используется в том случае, если скорость изменения данных непрерывно возрастает: j(x)=a*exp(b*x).
Рассмотрим решение задачи (2.22) для полиномиальной аппроксимации (2.23).
Эту задачу следует интерпретировать как задачу многомерной оптимизации, и её решение (набор оптимальных значений a0, a1, …am) находится как решение системы уравнений
=
0,
= 0,
= 0, …,
= 0 (2.24)
Как пример получим решение задачи для линейной аппроксимирующей функции
j1(x) = a0 + a1 x.
Но прежде чем заниматься формальными математическими операциями, проиллюстрируем её решение графически.
Рис.2.10. Графическая иллюстрация МНК для полинома первого порядка.
На
рис.2.10 показаны исходные данные (
,
),
(
,
)
…, (
,
)
и полином первой степени
=
в
виде прямой линии. Разницы значений
полинома и исходных данных выделены
жирными отрезками. Вертикальная стрелка
с
и дуга с
демонстрируют
то, что передвигая прямую вверх-вниз, и
меняя угол наклона, следует сделать
так, чтобы сумма квадратов разницы была
наименьшей.
Сумма квадратов отклонения запишется следующим образом:
S
= S(a0,
a1)
=
2
=
2
min
Для нахождения коэффициентов a0 , a1 необходимо найти минимум функции S(a0, a1) из условия
или
После упрощения получим линейную систему уравнений относительно неизвестных a0 , a1 :
В МНК такая система носит название системы нормальных уравнений и её решение дает оптимальный набор коэффициентов аппроксимирующего полинома первой степени в смысле МНК.
Для того, чтобы понять структуру системы нормальных уравнений в общем виде, получим решение для полинома второго порядка.
S
= S(
,
,
)
=
2
=
2
min
или
Или после упрощений
(2.26)
Сравнивая
(2.25) и (2.26), можно увидеть закономерности
при неизвестных в левых частях системы
уравнений - на побочным ко-диагоналям
стоят одинаковые коэффициенты (
У
правых частей системы уравнений также
видна закономерность:
,
,
.
Ну а дальше предстоит неблагодарная с вычислительной точки зрения задача решения системы нормальных уравнений с целью нахождения наилучших с точки зрения МНК коэффициентов аппроксимирующего полинома.
Для оценки погрешности в МНК используется величина, называемая среднеквадратичным отклонением (СКО), которая определяется так:
=
(2.27)
где k – степень аппроксимирующего по МНК полинома.
Возникает вопрос: как изменяется СКО с увеличением степени полинома k?
И до каких пор можно увеличивать эту степень?
Ответ
на первый вопрос очевидный – СКО не
может увеличиваться, так как полином
степени k
есть и полином степени (k+1)
со старшим коэффициентом
= 0.
Ответ
на второй вопрос звучит так: максимальная
степень аппроксимирующего по МНК
полинома k
= n
, то есть на единицу меньше количества
узлов таблицы исходных данных. Полином
МНК превратиться в интерполяционный
полином, будет проходить через все узлы
таблицы и для него
= 0. Таким образом получается, что задача
интерполяции является частным случаем
задачи МНК.
Нужен пример построения нескольких полиномов для cos(x) на всем периоде.
