Интерполяция полиномами Лагранжа и Ньютона

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 4: Строка 4:
<tex> y = f(x) </tex>. <br>
<tex> y = f(x) </tex>. <br>
Пусть заданы точки
Пусть заданы точки
-
<tex> \bf{x} = \{ x_i | i = 1..n \}</tex>
+
<tex> \bf{X} = \{ x_i | i = 1..n \}</tex>
из некоторой области <tex> \bf D </tex>.<br>
из некоторой области <tex> \bf D </tex>.<br>
Пусть значения функции <tex> f </tex> известны только в этих точках.<br>
Пусть значения функции <tex> f </tex> известны только в этих точках.<br>
-
Точки <tex> \bf{x} </tex> называют узлами интерполяции.<br>
+
Точки <tex> \bf{X} </tex> называют узлами интерполяции.<br>
<tex> \delta x_i = x_i - x_{i-1}</tex> - шаг интерполяционной сетки.<br>
<tex> \delta x_i = x_i - x_{i-1}</tex> - шаг интерполяционной сетки.<br>
Задача интерполяции состоит в поиске такой функции <tex> F </tex> из заданного класса функций, что
Задача интерполяции состоит в поиске такой функции <tex> F </tex> из заданного класса функций, что
Строка 20: Строка 20:
Очевидно, что <tex>Q_{n,i}(x)</tex> принимает значение 1 в точке <tex>x_i</tex> и 0 в остальных узлах интерполяции. Следовательно в точке <tex>x_i</tex> исходный полином принимает значение <tex>y_i</tex><br>
Очевидно, что <tex>Q_{n,i}(x)</tex> принимает значение 1 в точке <tex>x_i</tex> и 0 в остальных узлах интерполяции. Следовательно в точке <tex>x_i</tex> исходный полином принимает значение <tex>y_i</tex><br>
Таким образом, построенный полином <tex>P_n(x)</tex> является интерполяционным полиномом для функции
Таким образом, построенный полином <tex>P_n(x)</tex> является интерполяционным полиномом для функции
-
<tex> y = f(x) </tex> на сетке <tex> \bf{x} </tex>. <br>
+
<tex> y = f(x) </tex> на сетке <tex> \bf{X} </tex>. <br>
===Полином Ньютона===
===Полином Ньютона===
Интерполяционный полином в форме Лагранжа не удобен для вычислений тем, что при увеличении числа узло интерполции приходится перестраивать весь полином заного.<br>
Интерполяционный полином в форме Лагранжа не удобен для вычислений тем, что при увеличении числа узло интерполции приходится перестраивать весь полином заного.<br>
Строка 38: Строка 38:
Рекуррентно выражая <tex>P_i(x)</tex> пролучам окончательную формулу для полинома: <br>
Рекуррентно выражая <tex>P_i(x)</tex> пролучам окончательную формулу для полинома: <br>
<tex>P_n(x) = A_0 + A_1(x-x_0) + ...+ A_n(x - x_0)...(x - x_{n-1})</tex><br>
<tex>P_n(x) = A_0 + A_1(x-x_0) + ...+ A_n(x - x_0)...(x - x_{n-1})</tex><br>
-
Такое представление полинома удобно для вычисления, почтому что увеличение числа узлов на единицу требует добавления только одного слагаемого.<br>
+
Такое представление полинома удобно для вычисления, потому что увеличение числа узлов на единицу требует добавления только одного слагаемого.<br>
==Погрешность интерполирования==
==Погрешность интерполирования==
-
 
+
Поставим вопрос о том, насколько хорошо интерполяционный полином <tex>P_n(x)</tex> приближает функцию <tex>f(x)</tex> на отрезке [a,b].<br>
 +
Рассмотри м остаточный член:<br>
 +
<tex>R_n(x) = f(x) - P_n(x)</tex>, x ∈ [a, b].<br>
 +
По определению интерполяционного полинома <tex><br>R_n(x_i) = 0, x_i \in \bf X</tex> <br>
 +
поэтому речь идет об оценке <tex>R_n(x)</tex> при значениях <tex>x \not= x_i</tex>.<br>
 +
Пусть <tex>f(x)</tex> имеет непрерывную (n+1) производную на отрезке [a, b].
== Пример ==
== Пример ==
== Литература ==
== Литература ==

Версия 15:19, 20 октября 2008

Содержание

Постановка задачи

Пусть задана функция  y = f(x) .
Пусть заданы точки  \bf{X} = \{ x_i | i = 1..n \} из некоторой области  \bf D .
Пусть значения функции  f известны только в этих точках.
Точки  \bf{X} называют узлами интерполяции.
 \delta x_i = x_i - x_{i-1} - шаг интерполяционной сетки.
Задача интерполяции состоит в поиске такой функции  F из заданного класса функций, что  F(x_i) = y_i

Метод решения задачи

Полином Лагранжа

Представим интерполяционную функцию в виде полинома
P_n(x) = \sum_{i=0}^n y_i Q_{n,i}(x)
где Q_{n,i}(x) - полиномы степели n вида:
Q_{n,i}(x) = \prod_{j=0, j\neq i}^{n} \frac{(x-x_j)}{(x_i-x_j)}
Очевидно, что Q_{n,i}(x) принимает значение 1 в точке x_i и 0 в остальных узлах интерполяции. Следовательно в точке x_i исходный полином принимает значение y_i
Таким образом, построенный полином P_n(x) является интерполяционным полиномом для функции  y = f(x) на сетке  \bf{X} .

Полином Ньютона

Интерполяционный полином в форме Лагранжа не удобен для вычислений тем, что при увеличении числа узло интерполции приходится перестраивать весь полином заного.
Перепишем полином Лагранжа в другом виде:
P_n(x) = P_0(x) + \sum_{i=1}^n{(P_i(x) - P_{i-1}(x))}
где P_i(x) - полиномы Лагранжа степени i ≤ n.
Пусть Q_i(x) = P_i(x) - P_{i-1}(x) \qquad(*)
. Этот полином инеет степень i и обращается в нуль при x = x_0, x = x_1, ..., x = x_{i-1}{.
Поэтому он представим в виде:
Q_i(x) = A_i(x - x_0)...(x - x_{i-1}), где A_i - коэффициент при x^i. Так как x^i не входити в P_{i-1}(x), то A_i совпадает с коэффициентом при x^i в полиноме P_i(x). Таким образом из определения P_i(x) получаем:
 A_i = \sum_{k=0}^i\frac{f(x_k)}{w_{k,i}}
где
 w_{k,i} = (x_k - x_0)...(x_k - x_{k-1})(x_k - x_{k+1})...(x_k - x_i)
Препишем формулу \qquad(*) в виде
P_n(x) = P_{n-1} + A_n(x - x_0)...(x - x_{n-1})
Рекуррентно выражая P_i(x) пролучам окончательную формулу для полинома:
P_n(x) = A_0 + A_1(x-x_0) + ...+ A_n(x - x_0)...(x - x_{n-1})
Такое представление полинома удобно для вычисления, потому что увеличение числа узлов на единицу требует добавления только одного слагаемого.


Погрешность интерполирования

Поставим вопрос о том, насколько хорошо интерполяционный полином P_n(x) приближает функцию f(x) на отрезке [a,b].
Рассмотри м остаточный член:
R_n(x) = f(x) - P_n(x), x ∈ [a, b].
По определению интерполяционного полинома <br>R_n(x_i) = 0, x_i \in \bf X
поэтому речь идет об оценке R_n(x) при значениях x \not= x_i.
Пусть f(x) имеет непрерывную (n+1) производную на отрезке [a, b].

Пример

Литература

Личные инструменты