
- •5. Аппроксимация зависимостей
- •5. Аппроксимация зависимостей
- •5.1. Постановка задачи, основные понятия
- •5.2. Полиномиальная интерполяция
- •Интерполяция каноническим полиномом
- •Интерполяционный полином Лагранжа
- •Интерполяционный полином Ньютона
- •5.3. Интерполяция сплайнами
- •5.4. Метод наименьших квадратов
- •Математически минимум величины q достигается при равенстве нулю частных производных от q по всем коэффициентам с0, с1, …, сm:
- •Прологарифмируем значения аппроксимируемой функции f (X) в узловых точках:
Интерполяционный полином Лагранжа
Лагранж предложил следующую форму интерполяционного полинома:
-
(5.5)
Старшая степень аргумента x в этом полиноме равна n, так как каждое произведение в (5.5) содержит n сомножителей типа ( x - x j ).
Рис.5.3. Алгоритм интерполяции с использованием полинома Лагранжа |
В узлах x = x i выполняются условия Лагранжа Pn (x i )=f i. Например, при n=3 полином Лагранжа выглядит следующим образом: P3(x)=f0 +
f1 +
f2 +
f3 Тогда, например, при x = x2 получаем: P3(x2)=f0 +
f1 +
f2 +
f3 |
Сомножители при f0, f1 и f3 из-за наличия члена x2 - x2 обращаются в ноль, а сомножитель при f2 равен единице, т.е. P3(x2)=f2, что и требовалось доказать.
Блок-схема интерполяции полиномом Лагранжа приведена на рис.5.3.
В отличие от канонического полинома для вычислений значений полинома Лагранжа не требуется предварительного определения коэффициентов полинома, но для каждой новой точки интерполяции полином приходится пересчитывать вновь. Поэтому практическое применение полинома Лагранжа оправдано в том случае, когда интерполяция проводится в сравнительно небольшом количестве точек.
Интерполяционный полином Ньютона
Ньютон предложил следующий вид интерполяционного полинома:
-
Pn(x)=A0+A1(x-x0)+A2(x-x0)(x-x1)+...+An(x-x0)(x-x1)...(x-xn-1)
(5.6)
Коэффициенты этого полинома A0, A1, A2,...,An определяются из условий Лагранжа (5.3).
Полагаем x=x0. Тогда в (5.6) все слагаемые, кроме A0, обращаются в нуль, следовательно,
A0 = f0.
Затем полагаем x=x1, тогда из (5.3) имеем:
f0 + A1(x1-x0)= f1,
откуда находим коэффициент A1:
A1
=
или
A1
=
f01.
Величина
f01
=
называется разделенной
разностью первого порядка.
При малом расстоянии между x0
и x1
эта величина
близка к первой производной
от функции
f(x),
вычисленной в точке x=x0.
При x=x2 полином (5.6) принимает вид:
Pn(x)= f0+f01(x-x0)+A2(x-x0)(x-x1) ,
откуда с учетом (5.3) получаем:
f2 = f0+f01(x2-x0)+A2(x2-x0)(x2-x1) или f2 -f0-f01(x2-x0) = A2(x2-x0)(x2-x1) ,
следовательно, коэффициент A2:
A2=
=
=
=
,
где
. Обозначая
=
f012
(разделенная разность второго порядка),
окончательно получаем выражение для A2:
A2 = f012 .
Аналогично, при x=x3, находим коэффициент A3:
,
где
;
.
Методом математической индукции можно получить для любого Ak (k=0,...,n) следующее выражение:
.
Полученные результаты сведены в представленной ниже таблице.
Следует отметить, что добавление новых узлов в исходных данных не изменяет уже вычисленные коэффициенты; таблица будет лишь дополняться новыми строками и столбцами.
В интерполяционный полином Ньютона входят только диагональные элементы данной таблицы, а остальные являются промежуточными данными. Для вычисления любого элемента этой таблицы необходимы: диагональный элемент предыдущего столбца и предыдущий элемент данной строки. Поэтому в программе, реализующей данный алгоритм,
|
|
Разделенные разности |
|||||||
x |
f |
1 |
2 |
3 |
4 |
||||
x0 |
f0 |
=A0 |
|
|
|
||||
x1 |
f1 |
f01= |
=A1 |
|
|
|
|||
x2 |
f2 |
f02= |
f012= |
=A2 |
|
|
|||
x3 |
f3 |
f03= |
f013= |
f0123= |
=A3 |
|
|||
x4 |
f4 |
f04= |
f014= |
f0124= |
f01234= |
=A4 |
полиномом Ньютона |
не нужно организовывать двумерный массив. Более того, все разделенные разности, в том числе и диагональные элементы (коэффициенты полинома) можно помещать по мере вычисления на место исходных значений fk. Следовательно, в программе можно ограничиться только двумя массивами: Х-для узлов и F-для значений аппроксимируемой функции. Массив F по мере выполнения программы будет заполняться разделенными разностями, и в конце концов в нем будут получены коэффициенты полинома A0,A1,A2,... ,An. Таким образом, данный метод аппроксимации, так же как и в случае канонического полинома, дает в качестве результата коэффициенты интерполяционного полинома. После определения коэффициентов A0,A1,A2,... ,An вычисление значений полинома Ньютона при конкретных аргументах x рекомендуется выполнять также по схеме Горнера, для чего полином (5.8) надо преобразовать к виду: Pn(x)=A0+(x-x0)(A1+(x-x1)(A2+...+(x-xn-1)An)...)). На рис.5.4 представлена блок-схема вычисления коэффициентов полинома Ньютона и его значений в точках интерполяции по схеме Горнера. |