Задачи интерполирования функции — различия между версиями
Komarov (обсуждение | вклад) м |
м (rollbackEdits.php mass rollback) |
||
(не показана 31 промежуточная версия 5 участников) | |||
Строка 1: | Строка 1: | ||
− | == Задача | + | == Задача интерполяции == |
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Система узлов — набор чисел <tex>x_1 < x_2 | + | Система узлов — набор из чисел <tex>x_0 < x_1 < x_2 < \ldots < x_n</tex> и <tex>y_0, y_1, y_2, \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>. Тогда <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>. Получили противоречие. | ||
+ | |||
+ | |||
Будем искать его в форме Лагранжа. Для этого построим ''фундаментальные полиномы''. | Будем искать его в форме Лагранжа. Для этого построим ''фундаментальные полиномы''. | ||
Строка 17: | Строка 21: | ||
|definition= | |definition= | ||
Фундаментальные полиномы <tex>\Phi_j(x)</tex> степени не выше <tex>n</tex> — полиномы, отвечающие заданной | Фундаментальные полиномы <tex>\Phi_j(x)</tex> степени не выше <tex>n</tex> — полиномы, отвечающие заданной | ||
− | системе узлов <tex>x_0 < x_1 < \ldots < x_n</tex> такие, что | + | системе узлов <tex>x_0 < x_1 < x_2 <\ldots < x_n</tex> такие, что |
<tex> | <tex> | ||
\Phi_j(x_k) = \left\{ | \Phi_j(x_k) = \left\{ | ||
Строка 29: | Строка 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>. |
Тогда | Тогда | ||
Строка 42: | Строка 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>. | ||
Строка 49: | Строка 53: | ||
Требуемый полином <tex>L_n(x)</tex> найден. | Требуемый полином <tex>L_n(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)} | ||
Строка 57: | Строка 61: | ||
</tex> | </tex> | ||
− | == | + | == Трактовки и другие задачи == |
− | Выведенную ранее формулу Тейлора можно трактовать следующим образом: | + | Выведенную ранее [[Формула Тейлора для произвольной функции|формулу Тейлора]] можно трактовать следующим образом: |
− | + | «Дана функция <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>». | |
Ранее мы обнаружили, что это | Ранее мы обнаружили, что это | ||
Строка 68: | Строка 72: | ||
</tex>. | </tex>. | ||
− | Теперь другая задача: «Дана функция и система узлов. Требуется найти полином степени не выше <tex>n</tex> такой, что | + | Теперь другая задача: «Дана функция <tex>f</tex> и система узлов. Требуется найти полином <tex>L_n</tex> степени не выше <tex>n</tex> такой, что |
− | <tex>\forall x_j: j = \overline{0..n}\quad | + | <tex>\forall x_j: j = \overline{0..n}\quad L_n(x_j) = f(x_j)</tex> |
» | » | ||
Строка 78: | Строка 82: | ||
</tex>. | </tex>. | ||
− | Сейчас будет доказана теорема аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса. | + | Сейчас будет доказана теорема, аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса. |
Во втором случае это изложено на языке производных, а в первом — через значения функции в точках. | Во втором случае это изложено на языке производных, а в первом — через значения функции в точках. | ||
Строка 90: | Строка 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>. | ||
Строка 100: | Строка 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>. | ||
Строка 108: | Строка 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>. | ||
Строка 120: | Строка 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>. | ||
Строка 128: | Строка 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 этот полином решает поставленную задачу. Для полинома Тейлора .Сейчас будет доказана теорема, аналогичная теореме об интерполяционном полиноме Лагранжа, после чего станет ясно, что это задачи одного класса. Во втором случае это изложено на языке производных, а в первом — через значения функции в точках.
Эти два метода метода можно комбинировать, лишь бы информативных значений было Но они никому не нужны.
Теорема Лагранжа
Теорема (Лагранжа): |
Пусть раз дифференцируема на . На этом промежутке задана система узлов.
Тогда для соответственного интерполяционного полинома Лагранжа выполняется равенство , где — некоторая точка из , зависящая от . |
Доказательство: |
Случай тривиален. Пусть тогда .Для доказательства применим теорему Ролля. Определим вспомогательную функцию , где — коэффициент, подлежащий определению, а дано.
Для определения потребуем, чтобы было равно .
, так как .
Итак, при выбранном производной. Из полученных корней можно сделать отрезков, на каждом из них по теореме Ролля найдётся по корню второй производной… В конце концов останется один отрезок, границами которого будут корни . Тогда по теореме Ролля на этом отрезке найдётся корень . Его и обозначим за . будет , , то есть принимает нулевые значения в точках. Очевидно, из узлов и точки можно сделать последовательный отрезок. На конце каждого из них принимает значение . Значит, по теореме Ролля на каждом из них найдётся по корнюПодведём промежуточный итог: найдено такое, что .
Продифференцируем раз. . .Таким образом, .Подставим .
Утверждение теоремы напрямую следует из равенств и . |
Следствие
В условиях теоремы выполняется неравенство
, гдеОно следует из того, что для всех
наЗамечание
Следует понимать, что на самом деле какую бы систему узлов мы не взяли на
как по числу точек в ней, так и по характеру распределения значений, для этого промежутка всегда можно построить непрерывную функцию, для которой ее интерполяционный многочлен будет отличаться от неё сколь угодно много.