Интерполяционный многочлен: различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
Нет описания правки |
Nickst (обсуждение | вклад) сделаем дизамбиг |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
'''Интерполяционный многочлен''': |
|||
{{перенести|Интерполяция алгебраическими многочленами}} |
|||
* [[Интерполяционный многочлен Лагранжа]] |
|||
== Задача интерполяции == |
|||
* [[Интерполяционный многочлен Ньютона]] |
|||
Пусть в пространстве заданы <math>n</math> точек <math>P_1, P_2,\dots, P_n</math>, которые в некоторой |
|||
* [[Интерполяция алгебраическими многочленами]] |
|||
системе координат имеют радиус-векторы <math>\mathbf{r}_1, \mathbf{r}_2,\dots, \mathbf{r}_n</math>. |
|||
Задача интерполяции состоит в построении кривой, проходящей через указанные точки |
|||
в указанном порядке. |
|||
Конечно, через фиксированный набор точек можно провести бесконечное число кривых, |
|||
так что задача интерполяции не имеет единственного решения. |
|||
Будем строить кривые в виде <math>\mathbf{r}(t)</math>, где параметр <math>t</math> изменяется на некотором отрезке |
|||
<math>~ [a, b] </math>: |
|||
<math>~ a\leq t \leq b </math>. Введем на отрезке <math>~ [a, b] </math> |
|||
сетку <math>~ \{t_i\}</math> из <math>~ n </math> точек: <math>~ a=t_1 < t_2 < t_3<\dots < t_n=b </math> и потребуем, чтобы при значении параметра |
|||
<math>~ t=t_i </math> кривая проходила через точку <math>~ P_i </math>, так что <math>~ \mathbf{r}(t_i)=\mathbf{r}_i</math>. |
|||
Введение параметризации и сетки может быть выполнено различными способами. Обычно выбирают либо равномерную сетку, полагая |
|||
<math>~ a=0 </math>, <math>~ b=n-1</math>, <math>~ t_i=i-1</math>, либо, что более предпочтительно, соединяют точки отрезками и |
|||
в качестве разности значений параметра <math>~ t_{i+1}-t_i</math> берут длину отрезка <math>~ \mathbf{r}_{i+1}- |
|||
\mathbf{r}_{i}</math>. |
|||
{{неоднозначность}} |
|||
Одним из распространенных способов интерполяции является использование кривой в виде многочлена от <math>~ t</math> |
|||
степени <math>~ n-1</math>, то есть в виде функции |
|||
<math>~ |
|||
\mathbf{r}(t) = \mathbf{p}^{(n-1)}(t) =\sum_{k=1}^n \mathbf{a}_k t^{n-k} |
|||
</math> |
|||
Многочлен имеет <math>~ n</math> коэффициентов <math>~ \mathbf{a}_k</math>, которые можно найти из условий |
|||
<math>~ \mathbf{r}(t_i)=\mathbf{r}_i</math>. |
|||
Эти условия приводят к системе линейных уравнений для коэффициентов <math>~ \mathbf{a}_k</math> |
|||
<math>~ |
|||
\begin{pmatrix} |
|||
1 & t_1 & t_1^2 & \ldots & t_1^{n-1} \\ |
|||
1 & t_2 & t_2^2 & \ldots & t_2^{n-1} \\ |
|||
\vdots & \vdots& \vdots& & \vdots \\ |
|||
1 & t_n & t_n^2 & \ldots & t_n^{n-1} |
|||
\end{pmatrix} |
|||
\begin{pmatrix} |
|||
\mathbf{a}_{n} \\ \mathbf{a}_{n-1} \\ \vdots \\ \mathbf{a}_1 |
|||
\end{pmatrix}= |
|||
\begin{pmatrix} |
|||
\mathbf{r}_1 \\ \mathbf{r}_2 \\ \vdots \\ \mathbf{r}_n |
|||
\end{pmatrix} |
|||
</math> |
|||
Обратим внимание, что нужно решить три системы уравнений: для <math>~ x</math>, <math>~ y</math> и |
|||
<math>~ z</math> координат. Все они имеют одну матрицу коэффициентов, |
|||
обращая которую, по значениям радиус-векторов <math>~ \mathbf{r}_i</math> точек вычисляются векторы |
|||
<math>~ \mathbf{a}_k</math> коэффициентов многочлена. Определитель матрицы |
|||
<math>~ |
|||
W(t_1, t_2, \ldots , t_n) = \begin{vmatrix} |
|||
1 & t_1 & t_1^2 & \ldots & t_1^{n-1} \\ |
|||
1 & t_2 & t_2^2 & \ldots & t_2^{n-1} \\ |
|||
\vdots & \vdots& \vdots& & \vdots \\ |
|||
1 & t_n & t_n^2 & \ldots & t_n^{n-1} |
|||
\end{vmatrix} = \prod_{{i,j, i>j}} (t_i -t_j) |
|||
</math> |
|||
называется [[Определитель Вандермонда| определителем Вандермонда]]. Если узлы сетки не совпадают, он отличен от нуля, так что |
|||
система уравнений имеет решение. |
|||
Кроме прямого обращения матрицы, имеются несколько других способов вычисления |
|||
интерполяционного многочлена, некоторые из которых мы рассмотрим далее. Подчеркнем, что в силу единственности многочлена, |
|||
речь идет о различных формах его записи. |
|||
Обсудим достоинства и недостатки интерполяционного многочлена. |
|||
К достоинствам можно отнести его следующие свойства: |
|||
* Для заданного набора точек и сетки параметра кривая строится однозначно. |
|||
* Кривая является интерполяционной, то есть проходит через все заданные точки. |
|||
* Кривая имеет непрерывные производные любого порядка. |
|||
Основные недостатки состоят в том, что: |
|||
* С ростом числа точек порядок многочлена возрастает, а вместе с ним возрастает число операций, которое нужно выполнить для вычисления точки на кривой. |
|||
* С ростом числа точек у интерполяционной кривой могут возникнуть осцилляции (см. пример ниже). |
|||
;Пример |
|||
[[Файл:Runge01.svg|thumb|Интерполяция на последовательности сеток. Пример Рунге.]] |
|||
Классическим примером ([[Рунге, Карл|Рунге]]), показывающим возникновение осцилляций у интерполяционного |
|||
многочлена, служит интерполяция на равномерной сетке значений функции |
|||
<math>~ |
|||
f(x) = \frac{1}{1+x^2} |
|||
</math> |
|||
Введем на отрезке <math>~ [-5, 5]</math> равномерную сетку <math>~ x_i=-5+(i-1)h</math>, |
|||
<math>~ h=10/(n-1)</math>, <math>~ 1 \leq i \leq n</math> и рассмотрим поведение многочлена |
|||
<math>~ |
|||
y(x) = \sum_{i=1}^n a_i x^{n-i} |
|||
</math> |
|||
который в точках <math>~ x_i</math> принимает значения <math>~ y_i=1/(1+x_i^2)</math>. |
|||
На рисунке представлены графики самой функции (штрих-пунктирная линия) и трех интерполяционных кривых при <math>~ n=3, 5, 9</math>: |
|||
* интерполяция на сетке <math>~ x_1=-5, x_2=0, x_3=5</math> — квадратичная парабола; |
|||
* интерполяция на сетке <math>~ x_1=-5, x_2=-2.5, x_3=0, x_4=2.5, x_5=5</math> — многочлен четвертой степени; |
|||
* интерполяция на сетке <math>~ x_1=-5, x_2=-3.75, x_3=-2.5, x_4=-1.25, x_5=0, x_6=1.25, x_7=2.5, x_8=-3.75, x_9=5</math> — многочлен восьмой степени. |
|||
Мы видим, что значения интерполяционного многочлена даже для гладких функций в промежуточных точках |
|||
могут сильно уклоняться от значений самой функции. |
|||
{{rq|sources|topic=math}} |
|||
[[Категория:Интерполяция]] |
|||
[[Категория:Многочлены]] |
|||
[[Категория:Математический анализ]] |
Текущая версия от 23:30, 28 апреля 2009
Интерполяционный многочлен:
- Интерполяционный многочлен Лагранжа
- Интерполяционный многочлен Ньютона
- Интерполяция алгебраическими многочленами
Примечания