Задачи интерполирования функции — различия между версиями
Rybak (обсуждение | вклад) (→Задача интерполяции) |
м (rollbackEdits.php mass rollback) |
||
| (не показано 18 промежуточных версий 5 участников) | |||
| Строка 5: | Строка 5: | ||
}} | }} | ||
| − | Дана система узлов. Требуется найти полином <tex>P_n</tex> степени не выше <tex>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 | + | Рассмотрим полином <tex>M_n = P_n - \tilde P_n</tex>. Тогда <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>. Получили противоречие. | |
| Строка 33: | Строка 33: | ||
Для его построения обозначим за <tex>\omega_n(x) = \prod\limits_{j = 0}^n (x - x_j)</tex>. Это полином степени <tex>n + 1</tex>. | Для его построения обозначим за <tex>\omega_n(x) = \prod\limits_{j = 0}^n (x - x_j)</tex>. Это полином степени <tex>n + 1</tex>. | ||
| − | Составим выражение <tex>\frac{\omega_n(x)}{(x - x_j) \cdot \omega_n'(x_j)}</tex>, <tex>x \ne x_j</tex>. В этом случае дробь корректно определена. | + | Составим выражение <tex dpi = "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> получаем неопределённость <tex>\frac00</tex>. Раскроем её по правилу Лопиталя: <tex>\frac{\omega'_n(x)}{\omega_n'(x_j)} = 1</tex> при <tex>x \to x_j</tex>. | + | При <tex>x \to x_j</tex> получаем неопределённость <tex dpi = "150">\frac00</tex>. Раскроем её по правилу Лопиталя: <tex dpi = "150">\frac{\omega'_n(x)}{\omega_n'(x_j)} = 1</tex> при <tex>x \to x_j</tex>. |
Тогда доопределим по непрерывности дробь единицей. Но при <tex>x \ne x_j</tex> — это полином <tex>n</tex>-й степени. Значит, | Тогда доопределим по непрерывности дробь единицей. Но при <tex>x \ne x_j</tex> — это полином <tex>n</tex>-й степени. Значит, | ||
| − | <tex>\Phi_j(x) = \frac{\omega_n(x)}{(x-x_j) \cdot \omega_n'(x_j)}</tex>. | + | <tex dpi = "150">\Phi_j(x) = \frac{\omega_n(x)}{(x-x_j) \cdot \omega_n'(x_j)}</tex>. |
Тогда | Тогда | ||
| Строка 46: | Строка 46: | ||
\end{aligned}\right. | \end{aligned}\right. | ||
</tex>, что и требовалось. | </tex>, что и требовалось. | ||
| − | + | ||
Обозначим <tex>L_n(x) = \sum\limits_{j = 0}^n y_j \Phi_j(x)</tex>. | Обозначим <tex>L_n(x) = \sum\limits_{j = 0}^n y_j \Phi_j(x)</tex>. | ||
| Строка 55: | Строка 55: | ||
Замечание: из формулы для фундаментальных полиномов <tex>\Phi_j(x)</tex> легко записать в развёрнутом виде: | Замечание: из формулы для фундаментальных полиномов <tex>\Phi_j(x)</tex> легко записать в развёрнутом виде: | ||
| − | <tex> | + | <tex dpi = "150"> |
\Phi_j(x) = \frac | \Phi_j(x) = \frac | ||
{(x-x_0)(x - x_1)\cdots(x - x_{j- 1})(x - x_{j + 1})\cdots(x - x_n)} | {(x-x_0)(x - x_1)\cdots(x - x_{j- 1})(x - x_{j + 1})\cdots(x - x_n)} | ||
| Строка 62: | Строка 62: | ||
== Трактовки и другие задачи == | == Трактовки и другие задачи == | ||
| − | Выведенную ранее формулу Тейлора можно трактовать следующим образом: | + | Выведенную ранее [[Формула Тейлора для произвольной функции|формулу Тейлора]] можно трактовать следующим образом: |
| − | + | «Дана функция <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>». | |
Ранее мы обнаружили, что это | Ранее мы обнаружили, что это | ||
| Строка 82: | Строка 82: | ||
</tex>. | </tex>. | ||
| − | Сейчас будет доказана теорема аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса. | + | Сейчас будет доказана теорема, аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса. |
Во втором случае это изложено на языке производных, а в первом — через значения функции в точках. | Во втором случае это изложено на языке производных, а в первом — через значения функции в точках. | ||
| Строка 94: | Строка 94: | ||
Лагранжа | Лагранжа | ||
|statement= | |statement= | ||
| − | Пусть <tex>f</tex> <tex>n + 1</tex> раз дифференцируема на <tex>\langle a; b\rangle</tex>. На этом промежутке задана система узлов. Тогда для соответственного | + | Пусть <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> — некоторая точка из <tex>\langle a; b \rangle</tex>, зависящая от <tex>x</tex>. | + | <tex>f(x) = L_n(x) + \frac{f^{(n + 1)}(c_x)}{(n+1)!} \cdot \omega_n(x)</tex>, где <tex>c_x</tex> — некоторая точка из <tex>\langle a; b \rangle</tex>, зависящая от <tex>x</tex>. |
|proof= | |proof= | ||
| − | Случай <tex>x = x_k | + | Случай <tex>x = x_k</tex> тривиален. |
Пусть тогда <tex>x \ne x_k</tex>. | Пусть тогда <tex>x \ne x_k</tex>. | ||
| Строка 104: | Строка 104: | ||
подлежащий определению, а <tex>x</tex> дано. | подлежащий определению, а <tex>x</tex> дано. | ||
| − | <tex>g(x_j) = f(x_j) - L_n(x_j) - k \omega_n(x_j) = 0</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>k</tex> потребуем, чтобы <tex>g(x)</tex> было равно <tex>0</tex>. | ||
| Строка 112: | Строка 112: | ||
<tex>\omega_n(x) \ne 0</tex>, так как <tex>x \ne x_j</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)}</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>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>x</tex> можно сделать <tex>n + 1</tex> последовательный отрезок. На конце каждого из них <tex>g</tex> принимает значение <tex>0</tex>. | ||
| − | Значит, по теореме Ролля на каждом из них найдётся по корню производной. Из полученных корней можно сделать <tex>n</tex> отрезков, | + | Значит, по теореме Ролля на каждом из них найдётся по корню [[Дифференциал и производная|производной]]. Из полученных корней можно сделать <tex>n</tex> отрезков, |
на каждом из них по теореме Ролля найдётся по корню второй производной… В конце концов останется один отрезок, границами которого | на каждом из них по теореме Ролля найдётся по корню второй производной… В конце концов останется один отрезок, границами которого | ||
будут корни <tex>g^{(n)}</tex>. Тогда по теореме Ролля на этом отрезке найдётся корень <tex>g^{(n + 1)}</tex>. Его и обозначим за <tex>c_x</tex>. | будут корни <tex>g^{(n)}</tex>. Тогда по теореме Ролля на этом отрезке найдётся корень <tex>g^{(n + 1)}</tex>. Его и обозначим за <tex>c_x</tex>. | ||
| Строка 124: | Строка 124: | ||
<tex>g(t) = f(t) - L_n(t) - k \omega_n(t)</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>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>g^{(n + 1)}(t) = f^{(n + 1)}(t) - k\cdot (n + 1)!</tex>. | ||
| Строка 132: | Строка 132: | ||
<tex>0 = g^{(n + 1)}(c_x) = f^{(n + 1)}(c_x) - 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)!} | + | <tex>k = \frac{f^{(n + 1)}(c_x)}{(n + 1)!}\quad (2)\, .</tex> |
| + | |||
| + | Утверждение теоремы напрямую следует из равенств <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>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> как по числу | Следует понимать, что на самом деле какую бы систему узлов мы не взяли на <tex>\langle a; b \rangle</tex> как по числу | ||
| − | точек в ней, так и по характеру распределения значений, для этого промежутка всегда можно построить интерполяционный многочлен | + | точек в ней, так и по характеру распределения значений, для этого промежутка всегда можно построить непрерывную функцию, для которой ее интерполяционный многочлен будет отличаться от неё сколь угодно много. |
| − | |||
[[Категория:Математический анализ 1 курс]] | [[Категория:Математический анализ 1 курс]] | ||
Текущая версия на 19:27, 4 сентября 2022
Задача интерполяции
| Определение: |
| Система узлов — набор из чисел и . |
Дана система узлов. Требуется найти полином степени не выше такой, что .
Будем искать его в форме Лагранжа, хотя имеется ряд равносильных представлений, например, в форме Ньютона.
Докажем от противного, что таких полиномов не более одного. Допустим, что существует еще один такой полином . Рассмотрим полином . Тогда , то есть этот полином имеет корень, но . Получили противоречие.
Будем искать его в форме Лагранжа. Для этого построим фундаментальные полиномы.
| Определение: |
| Фундаментальные полиномы степени не выше — полиномы, отвечающие заданной
системе узлов такие, что . |
Для его построения обозначим за . Это полином степени .
Составим выражение , . В этом случае дробь корректно определена. При получаем неопределённость . Раскроем её по правилу Лопиталя: при . Тогда доопределим по непрерывности дробь единицей. Но при — это полином -й степени. Значит, .
Тогда , что и требовалось.
Обозначим .
.
Требуемый полином найден.
Замечание: из формулы для фундаментальных полиномов легко записать в развёрнутом виде:
Трактовки и другие задачи
Выведенную ранее формулу Тейлора можно трактовать следующим образом: «Дана функция . Найти полином степени не выше такой, что ».
Ранее мы обнаружили, что это .
Теперь другая задача: «Дана функция и система узлов. Требуется найти полином степени не выше такой, что »
Положим . По пункту 1 этот полином решает поставленную задачу. Для полинома Тейлора .
Сейчас будет доказана теорема, аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса. Во втором случае это изложено на языке производных, а в первом — через значения функции в точках.
Эти два метода метода можно комбинировать, лишь бы информативных значений было . Такие промежуточные задачи называют
интерполированием по Эрмиту. Но они никому не нужны.
Теорема Лагранжа
| Теорема (Лагранжа): |
Пусть раз дифференцируема на . На этом промежутке задана система узлов.
Тогда для соответственного интерполяционного полинома Лагранжа выполняется равенство , где — некоторая точка из , зависящая от . |
| Доказательство: |
|
Случай тривиален. Пусть тогда . Для доказательства применим теорему Ролля. Определим вспомогательную функцию , где — коэффициент, подлежащий определению, а дано.
Для определения потребуем, чтобы было равно .
, так как .
Итак, при выбранном будет , , то есть принимает нулевые значения в точках. Очевидно, из узлов и точки можно сделать последовательный отрезок. На конце каждого из них принимает значение . Значит, по теореме Ролля на каждом из них найдётся по корню производной. Из полученных корней можно сделать отрезков, на каждом из них по теореме Ролля найдётся по корню второй производной… В конце концов останется один отрезок, границами которого будут корни . Тогда по теореме Ролля на этом отрезке найдётся корень . Его и обозначим за . Подведём промежуточный итог: найдено такое, что .
Продифференцируем раз. . . Таким образом, . Подставим .
Утверждение теоремы напрямую следует из равенств и . |
Следствие
В условиях теоремы выполняется неравенство , где
Оно следует из того, что для всех на
Замечание
Следует понимать, что на самом деле какую бы систему узлов мы не взяли на как по числу точек в ней, так и по характеру распределения значений, для этого промежутка всегда можно построить непрерывную функцию, для которой ее интерполяционный многочлен будет отличаться от неё сколь угодно много.