Изменения

Перейти к: навигация, поиск

Задачи интерполирования функции

1284 байта добавлено, 03:24, 22 января 2011
Теорема Лагранжа
== Собственно интерполяция Задача интерполяции ==Пусть есть числа {{Определение|definition=Система узлов &mdash; набор из чисел <tex>x_0 < x_1 < x_2 < x_3 < \ldots < x_n</tex> и <tex>y_0, y_1, y_2, y_3, \ldots ,y_n</tex> (''система узлов'').}}
Дана система узлов. Требуется найти полином <tex>P_n</tex> степени не выше <tex>n</tex> такой, что <tex>P_n(x_k) = y_k, k=\overline{0,n}</tex>.
Будем искать его в форме Лагранжа, хотя имеется ряд равносильных представлений, например, в
форме Ньютона.
ОчевидноДокажем от противного, что если таких полиномов не более одного. Допустим, что существует еще один такой полином существует<tex>\tilde P_n</tex>.Рассмотрим полином <tex>M_n = P_n - \tilde P_n</tex>. Тогда&nbsp;<tex>M_n(x_k) = y_k - y_k = 0, k = \overline{0,n}</tex>, то только одинесть этот полином имеет <tex>n+1</tex> корень, но <tex>\deg M_n \le n</tex>. Получили противоречие.
  Будем искать его в форме Лагранжа. Для этого построим ''фундаментальные полиномы'' . {{Определение|definition=Фундаментальные полиномы <tex>\Phi_j(x)</tex> степени не выше <tex>n</tex>&mdash; полиномы, отвечающие заданной системе узлов <tex>x_0 < x_1 < x_2 < \ldots < x_n</tex> такие, что
<tex>
\Phi_j(x_k) = \left\{
\end{aligned}\right.
</tex>.
}}
Для его построения обозначим за <tex>\omega_n(x) = \prod\limits_{j = 0}^n (x - x_j)</tex>. Это полином степени <tex>n + 1</tex>.
Составим выражение <texdpi = "150">\frac{\omega_n(x)}{(x - x_j) \cdot \omega_n'(x_j)}</tex>, <tex>x \ne x_j</tex>. В этом случае дробь корректно определена.если При <tex>x \to x_j</tex>. Получаем получаем неопределённость <texdpi = "150">\frac00</tex>. Раскроем её по правилу Лопиталя: <texdpi = "150">\frac{\omega'_n(x)}{\omega_n'(x_j)} = 1</tex> при <tex>x \to x_j</tex>.Тогда доопределим по непрерывности дробь единицей. Но при <tex>x \ne x_j</tex> &mdash; это полином <tex>n</tex>-й степени. Значит, <texdpi = "150">\Phi_j(x) = \frac{\omega_n(x)}{(x-x_j) \cdot \omega_n'(x_j)}</tex>.
Тогда
\end{aligned}\right.
</tex>, что и требовалось.
`
Обозначим <tex>L_n(x) = \sum\limits_{j = 0}^n y_j \Phi_j(x)</tex>.
Требуемый полином <tex>L_n(x)</tex> найден.
Замечание: из формулы для фундаментальных полномов полиномов <tex>\Phi_j(x)</tex> легко записать в развёрнутом виде:
<texdpi = "150">
\Phi_j(x) = \frac
{(x-x_0)(x - x_1)\cdots(x - x_{j- 1})(x - x_{j + 1})\cdots(x - x_n)}
</tex>
== TODO: заголовок Трактовки и другие задачи ==Выведенную ранее [[Формула Тейлора для произвольной функции|формулу Тейлора ]] можно трактовать следующим образом: <<Дано «Дана функция <tex>f(x)</tex>. Найти полином <tex>T_n</tex> степени не выше <tex>n</tex> такой, что <tex>f^{(k)}(x_0) = T_n^{(k)}(x_0), k = \overline{0, n}</tex>>>».
Ранее мы обнаружили, что это
<tex>T_NT_n(x) = \sum\limits_{k = 0}^n \frac
{f^{(k)}(x_0)}
{k!}
</tex>.
Теперь другая задача: «Дана функция <tex>f<Дана функция /tex> и система узлов. Требуется найти полином <tex>L_n</tex> степени не выше <tex>n</tex> такой, что<tex>\forall x_j: j = \overline{0..n}\quad TL_n(x_j) = f(x_j)</tex>>>»
Положим <tex>L_n(x) = \sum\limits_{j = 0}^n \Phi_j(x_j) \cdot f(x_j)</tex>. По пункту 1 этот полином решает поставленную задачу.
</tex>.
Сейчас будет доказана теорема , аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса.Во втором случае это изложено на языке производных, а в первом~--- &mdash; через значения функции в точках.
Эти два метода метода можно комбинировать, лишь бы информативных значений было <tex>n + 1</tex>. Такие промежуточные задачи называют
''интерполированием по Эрмиту''. <s>Но они никому не нужны.</s>
=== Теорема Лагранжа ===
\newtheorem{Lagrange}{Lagrange}Теорема|about=Лагранжа\begin{Lagrange}|statement= Пусть <tex>f</tex> <tex>n + 1</tex> раз дифференцируема на <tex>\langle a; b\rangle</tex>. На этом промежутке дана задана система узлов. Тогда для соответственного интерполяционного полинома Лагранжа выполняется равенство<tex>f(x) = L_n(x) + \frac{f^{(n + 1)}(c_x)}{(n+1)!} \cdot \omega_n(x)</tex>, где <tex>c_x</tex>~--- &mdash; некоторая точка из <tex>\langle a; b \rangle</tex>, зависящая от <tex>x</tex>.  Доказательство %%\begin{|proof}=Случай <tex>x = x_k, k = \overline{1, n}</tex> тривиален.
Пусть тогда <tex>x \ne x_k</tex>.
Для доказательства применим теорему Ролля. Определим вспомогательную функцию <tex>g(t) = f(t) - L_n(t)- k \omega_n(t)</tex>, где <tex>k</tex>~--- &mdash; коэффициент,
подлежащий определению, а <tex>x</tex> дано.
<tex>\forall j = \overline{0, n}:\quad g(x_j) = f(x_j) - L_n(x_j) - k \omega_n(x_j) = 0</tex>
Для определения <tex>k</tex> потребуем, чтобы <tex>g(x)</tex> было равно <tex>0</tex>.
<tex>\omega_n(x) \ne 0</tex>, так как <tex>x \ne x_j</tex>.
<tex>k = \frac{f(x) - L_n(x)}{\omega_n(x)}\quad (1)\, .</tex>
Итак, при выбранном <tex>k</tex> будет <tex>g(x_j) = 0</tex>, <tex>g(x) = 0</tex>, то есть <tex>g</tex> принимает нулевые значения в <tex>n + 2</tex> точках. Очевидно,
из узлов и точки <tex>x</tex> можно сделать <tex>n + 1</tex> последовательный отрезок. На конце каждого из них <tex>g</tex> принимает значение <tex>0</tex>.
Значит, по теореме Ролля на каждом из них найдётся по корню [[Дифференциал и производная|производной]]. Из полученных корней можно сделать <tex>n</tex> отрезков, на каждом из них по теореме Ролля найдётся по корню второй производной\ldots производной… В конце концов останется один отрезок, границами которого
будут корни <tex>g^{(n)}</tex>. Тогда по теореме Ролля на этом отрезке найдётся корень <tex>g^{(n + 1)}</tex>. Его и обозначим за <tex>c_x</tex>.
<tex>g(t) = f(t) - L_n(t) - k \omega_n(t)</tex>
Продифференцируем <tex>n + 1</tex> раз. <tex>\deg L_n(x) \leq n \Rightarrow L_n^{(n + 1) } = 0}</tex>. <tex>\omega_n(t) = t^{n + 1} + \ldots \Rightarrow \omega'^{(n + 1)}_n = (n + 1)!</tex>.
Таким образом, <tex>g^{(n + 1)}(t) = f^{(n + 1)}(t) - k\cdot (n + 1)!</tex>.
<tex>0 = g^{(n + 1)}(c_x) = f^{(n + 1)}(c_x) - k\cdot (n + 1)!</tex>
<tex>k = \frac{f^{(n + 1)}(c_x)}{(n + 1)!}$, $k = \frac{f(x) - L_nquad (x2)}{\omega_n(x)}, .</tex>%%\end{proof}
\end{LagrangeУтверждение теоремы напрямую следует из равенств <tex>(1)</tex> и <tex>(2)</tex> .}}
=== Следствие: в условии теоремы было неравенство <tex>|f(x) - L_n(x)| \leq \frac{M_{n + 1}}{(n + 1)!} (b - a)^{n + 1}</tex>, <tex>M_{n + 1} = \sup\limits_{\langle a; b \rangle} |f^{(n + 1)}|</tex>==
В условиях теоремы выполняется неравенство <tex>|f(x) - L_n(x)| \leq \frac{M_{n + 1}}{(n + 1)!} (b - a)^{n + 1}</tex>, где <tex>M_{n + 1} = \sup\limits_{\langle a; b \rangle} |f^{(n + 1)}|.</tex> Оно следует из того, что для всех <tex>x</tex> на <tex>\langle a; b \rangle\,|x - x_j| \le b - a.</tex> === Замечание:===
Следует понимать, что на самом деле какую бы систему узлов мы не взяли на <tex>\langle a; b \rangle</tex> как по числу
точек в ней, так и по характеру распределения значений, для этого промежутка всегда можно построить непрерывную функцию, для которой ее интерполяционный многочлен, который будет отличаться от неё сколь угодно много(нипанянтна~--- прим. наборщика) [[Категория:Математический анализ 1 курс]]
Анонимный участник

Навигация