Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 4 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 4 часа [ Летнее время ]


Методы функциональной интерполяции

Методы функциональной интерполяции


Содержание

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


Пусть на множестве [math]\Omega=[a,b][/math] задана сетка [math]\Omega_n= \{x_i,\, i=\overline{0,n}\}[/math], определяемая [math]n+1[/math] точкой [math]x_0,x_1,\ldots,x_n[/math], а на сетке задана сеточная функция [math]y_i=f(x_i),~ i=\overline{0,n}[/math]


[math]y_0=f(x_0),~ y_1=f(x_1),~ \ldots,~ y_n=f(x_n).\qquad \mathsf{(4.6)}[/math]

В некоторых случаях [math]y_i=f(x_i),~ i=\overline{0,n}[/math] является сеточным представлением заданной формульной функции [math]y=f(x)[/math]. Сеточная функция может задаваться совокупностью пар: [math](x_0,y_0),(x_1,y_1),\ldots,(x_n,y_n)[/math].


Требуется найти функцию [math]y=F(x)[/math], принимающую в точках [math]x_0,x_1,\ldots, x_n[/math] те же значения, что и функция [math]y_i=f(x_i),~ i=\overline{0,n}[/math], то есть [math]F(x_i)=y_i,~ i=\overline{0,n}[/math].


Точки [math]x_0,x_1,\ldots, x_n[/math] называются узлами интерполяции, а искомая функция [math]y=F(x)[/math] — интерполирующей.


Геометрически это означает, что нужно найти кривую, проходящую через заданное множество точек [math](x_i,y_i),~ i=\overline{0,n}[/math] (рис. 4.2).


Одной из целей задачи интерполяции является вычисление значения функции в произвольной точке [math]x_{\ast}[/math]. При этом различаются собственно интерполирование, когда точка [math]x_{\ast}\in [x_0,x_n][/math] и экстраполирование, когда [math]x_{\ast}\notin [x_0,x_n][/math].


Заметим, что можно провести бесчисленное множество "плавных" кривых, проходящих через заданное множество точек. Поэтому задача интерполяции в общей постановке не имеет единственного решения.


Если в качестве интерполирующей функции выбрать алгебраический многочлен, степень которого связана с числом заданных узлов интерполяции (на единицу меньше), решение задачи является единственным. Покажем это. Воспользуемся сначала кусочным способом. Выделим из отрезка [math][x_0,x_n][/math] частичный отрезок [x_i,x_{i+k}] и рассмотрим сеточную функцию [math]y_i=f(x_i)[/math], заданную в (k+1)-м узле [math]x_i,x_{i+1},\ldots,x_{i+k}[/math] (узлы не совпадают):


[math]y_i=f(x_i),~ y_{i+1}=f(x_{i+1}),~ \ldots,~ y_{i+k}= f(x_{i+k}).[/math]
(4.7)

В качестве интерполирующей функции выберем алгебраический многочлен k-й степени (степень многочлена на единицу меньше количества узлов):


[math]F(x)= \widetilde{f}_k(x,\overline{a})= \sum\limits_{j=0}^{k} a_jx^j= a_0+a_1x+ \ldots+a_kx^k.[/math]
(4.8)

Будем искать неизвестные коэффициенты [math]a_0,a_1,\ldots,a_k[/math] из условия интерполяции (4.3) , т.е. [math]\delta \widetilde{f}_k(x_i,\overline{a})=0\colon[/math]


[math]\widetilde{f}_k(x_i,\overline{a})=y_i,~ \widetilde{f}_k (x_{i+1}, \overline{a})= y_{i+1},~ \ldots,~ \widetilde{f}_k(x_{i+k}, \overline{a})= y_{i+k}.[/math]
(4.9)

Теорема 4.1 (о единственности решения задачи интерполяции). Задача о нахождении интерполяционного многочлена [math]\textstyle{\widetilde{f}_k(x,\overline{a})= \sum\limits_{j=0}^{k} a_jx^j}[/math], удовлетворяющего условиям (4.9), на частичном отрезке [math][x_i,x_{i+k}][/math] по заданной сеточной функции (4.7) имеет единственное решение.


Доказательство. Запишем условия интерполяции (4.9) с учетом (4.8) и обозначения [math]y_i= f(x_i)= f_i\colon[/math]


[math]\begin{aligned}& a_0+a_1x_i+ a_2x_i^2+ \ldots+ a_kx_i^k=f_i,\\ & a_0+a_1x_{i+1}+ a_2x_{i+1}^2+ \ldots+ a_kx_{i+1}^k=f_{i+1},\\ & \quad\vdots\\ & a_0+a_1x_{i+k}+ a_2x_{i+k}^2+ \ldots+ a_kx_{i+k}^k=f_{i+k}. \end{aligned}[/math]
(4.10)

Эта система линейных алгебраических уравнений относительно коэффициентов [math]a_0,a_1, \ldots,a_k[/math] имеет единственное решение, так как определитель матрицы системы


[math]C_k(x_i,x_{i+1},\ldots,x_{i+k})= \begin{pmatrix}1& x_i& x_i^2& \cdots& x_i^k\\ 1& x_{i+1}& x_{i+1}^2& \cdots& x_{i+1}^k\\ \vdots& \vdots& \vdots& \ddots& \vdots\\ 1& x_{i+k}& x_{i+k}^2& \cdots& x_{i+k}^k\end{pmatrix}[/math]
(4.11)

не равен нулю (доказательство последнего факта содержится в курсе линейной алгебры, где этот определитель называется определителем Вандермонда). Следовательно, задача интерполяции также имеет единственное решение.


Полагая [math]i=0,~ k=n[/math], приходим к глобальному способу решения поставленной задачи. А именно, если задана сеточная функция в (n+1)-м узле [math]x_0,x_1,\ldots,x_n[/math] и требуется найти алгебраический многочлен с использованием условий интерполяции, то единственным решением задачи интерполяции является интерполяционный многочлен n-й степени:


[math]F(x)= \widetilde{f}_n(x,\overline{a})= \sum\limits_{j=0}^{n} a_jx^j= a_0+a_1x+ \ldots+ a_nx^n,[/math]
(4.12)

коэффициенты которого находятся из системы (4.10) при [math]i=0,~ k=n[/math].


Замечания


1. Матрица (4.11) имеет дискретный (точечный) характер, так как ее элементы вычисляются по дискретным значениям [math]x_i,x_{i+1},\ldots,x_{i+k}[/math].

2. При решении поставленной задачи предполагается, что исходная сеточная функция задана своими точными значениями, хотя класс задач, для которых используются такие функции, ограничен.

3. Имеются и другие формы записи интерполяционных многочленов. По теореме 4.1 все эти многочлены степени [math]n[/math], удовлетворяющие функциональным условиям интерполяции и построенные по одним и тем же точкам, являются одним многочленом, записанным в разных формах.

4. При большом числе узлов решение системы (4.10) затруднительно. Искомый интерполяционный многочлен можно построить, не решая этой системы. Многочлены могут быть построены так, чтобы в самой структуре формулы многочлена условие интерполяции учитывалось.

5. При решении задачи функциональной интерполяции и в ее приложениях требуется:

а) выбрать наиболее удобную форму и степень интерполяционного многочлена. При этом можно использовать многочлены Лагранжа или Ньютона, а также формулу (4.8);

б) оценить погрешность интерполяции;

в) определить значения функции в точках, не совпадающих с узлами;

г) вычислить значения производных или определенных интегралов с использованием полученных интерполяционных многочленов.


Методика решения задачи интерполяции


1. По заданной сеточной функции составить интерполяционный многочлен определенной степени. При выборе степени многочлена следует руководствоваться желаемой точностью интерполяции.

2. Вычислить значения интерполяционного многочлена в заданных точках [math]x_{\ast j},~ j=1,\ldots,p[/math], путем их подстановки в формулу многочлена.




Многочлен Лагранжа


Пусть исходная сеточная функция задана в (n+1)-й точках сетки [math]\Omega_n\colon\, y_i=f(x_i),\, i=\overline{0,n}[/math], где [math]x_i\in [a,b]=[x_0,x_n][/math] — в общем случае неравноотстоящие узлы, определяемые шагами [math]h_{i+1}= x_{i+1}-x_i~ (h_{i+1}=\text{var})[/math].


Воспользуемся сначала кусочным способом. Здесь и далее будем использовать обозначение [math]f_i=f(x_i)[/math].


Выделим "окно" или частичный отрезок [math][x_i,x_{i+1}][/math], содержащий только две точки (шаблон [math](x_i,x_{i+1})[/math]). Тогда многочлен Лагранжа, интерполирующий исходную функцию на данном шаблоне, имеет вид (где [math]P_{1i}(x),\,P_{1i+1}(x)[/math] — коэффициенты)


[math]L_1(x)= \frac{(x-x_{i+1})}{(x_{i}-x_{i+1})}f_i+ \frac{(x-x_{i})}{x_{i+1}-x_i}f_{i+1}= P_{1i}(x)\cdot f_i+ P_{1i+1}(x)\cdot f_{i+1}.[/math]
(4.13)

Действительно, легко убедиться в том, что [math]L_1(x)[/math] — алгебраический многочлен первой степени, который удовлетворяет условиям функциональной интерполяции (4.3) , т.е. [math]L_1(x_i)=f_i,~ L_1(x_{i+1})= f_{i+1}[/math].


Выделим "окно" в виде двойного частичного отрезка [math][x_i,x_{i+2}][/math] c шаблоном [math](x_i,x_{i+1},x_{i+2})[/math]. Тогда многочлен Лагранжа записывается в виде (где [math]P_{2i}(x),\, P_{2i+1}(x),\, P_{2i+2}(x)[/math] коэффициенты)


[math]\begin{aligned}L_2(x)&= \frac{(x-x_{i+1})(x-x_{i+2})}{(x_{i}-x_{i+1})(x_{i}-x_{i+2})}f_i+ \frac{(x-x_{i})(x-x_{i+2})}{(x_{i+1}-x_{i})(x_{i+1}-x_{i+2})}f_{i+1}+ \frac{(x-x_{i})(x-x_{i+1})}{(x_{i+2}-x_{i})(x_{i+2}-x_{i+1})}f_{i+2}=\\ &= P_{2i}(x)\cdot f_{i}+ P_{2i+1}(x)\cdot f_{i+1}+ P_{2i+2}(x)\cdot f_{i+2}.\end{aligned}[/math]
(4.14)

Легко проверить, что (4.14) — многочлен второй степени и также удовлетворяет условиям функциональной интерполяции:


[math]L_2(x_i)= f_i;\qquad L_2(x_{i+1})=f_{i+1},\qquad L_2(x_{i+2})=f_{i+2}.[/math]

Обобщив запись многочлена на "окно" для к -кратного частичного отрезка [math][x_i,x_{i+k}][/math] с шаблоном [math](x_i,x_{i+1},\ldots,x_{i+k})[/math], можно записать многочлен Лагранжа в виде


[math]L_k(x)= \sum\limits_{m=i}^{i+k} \frac{(x-x_i)(x-x_{i+1})\ldots (x-x_{m-1})(x-x_{m+1})\ldots (x-x_k)}{(x_m-x_i)(x_m-x_{i+1})\ldots (x_m-x_{m-1})(x_m-x_{m+1})\ldots (x_m-x_k)}f_m= \sum\limits_{m=i}^{i+k} P_{km}(x)\cdot f_m.[/math]
(4.15)

где [math]P_{km}(x)[/math]коэффициенты Лагранжа, которые для внутренних точек шаблона записываются следующим образом:


[math]P_{km}(x)= \frac{(x-x_i)(x-x_{i+1})\ldots (x-x_{m-1})(x-x_{m+1})\ldots (x-x_k)}{(x_m-x_i)(x_m-x_{i+1})\ldots (x_m-x_{m-1})(x_m-x_{m+1})\ldots (x_m-x_k)}\,.[/math]
(4.16)

Легко проверить, что [math]P_{km}(x)[/math] удовлетворяют условию


[math]P_{km}(x_j)= \begin{cases}1,& j=m,\\ 0,& j\ne m,\end{cases} i \leqslant j \leqslant i+k.[/math]
(4.16)

Если положить [math]i=0,\, k=n[/math], то приходим к глобальному способу решения задачи. Тогда интерполяционный многочлен Лагранжа n-й степени имеет вид


[math]L_n(x)= \sum\limits_{i=0}^{n} \frac{(x-x_0)(x-x_{1})\ldots (x-x_{i-1})(x-x_{i+1})\ldots (x-x_n)}{(x_i-x_0)(x_i-x_{1})\ldots (x_i-x_{i-1})(x_i-x_{i+1})\ldots (x_i-x_n)}f_i= \sum\limits_{i=0}^{n} P_{ni}(x)\cdot f_i,[/math]
(4.17)

где коэффициенты Лагранжа [math]P_{ni}(x)[/math] во внутренних точках отрезка записываются в форме


[math]P_{ni}(x)= \frac{(x-x_0)(x-x_{1})\ldots (x-x_{i-1})(x-x_{i+1})\ldots (x-x_n)}{(x_i-x_0)(x_i-x_{1})\ldots (x_i-x_{i-1})(x_i-x_{i+1})\ldots (x_i-x_n)}\,.[/math]

Очевидно, многочлен [math]L_n(x)[/math], заданный равенством (4.17), является многочленом степени [math]n[/math] и удовлетворяет функциональным условиям интерполяции (4.3): [math]L_n(x_i)=f_i,~ i=\overline{0,n}[/math]. Для записи интерполяционного многочлена Лагранжа удобно пользоваться табл. 4.1.


[math]\begin{array}{|c|c|c|c|c|c|c|} \multicolumn{7}{r}{\mathit{Table~4.1}}\\\hline x-x_0& x_0-x_1& x_0-x_2& \cdots& x_0-x_n& D_0& f_0 \\\hline x_1-x_0& x-x_1& x_1-x_2& \cdots& x_1-x_n& D_1& f_1 \\\hline x_2-x_0& x_2-x_1& x-x_2& \cdots& x_2-x_n& D_2& f_2 \\\hline \vdots& \vdots& \vdots& \ddots& \vdots& \vdots& \vdots \\\hline x_n-x_0& x_n-x_1& x_n-x_2& \cdots& x-x_n& D_n& f_n \\\hline \multicolumn{5}{|c|}{\begin{matrix}{}\\[-8pt]{}\end{matrix}\Pi_{n+1}(x)= (x-x_0)(x-x_1)(x-x_2)\ldots (x-x_n)}& D_i&f_i \\\hline \end{array}[/math]

Здесь [math]D_i[/math] — произведение элементов i-й строки, [math]\Pi_{n+1}(x)[/math] — произведение элементов главной диагонали, [math]y_i= f(x_i)= f_i,~ i=\overline{0,n}[/math]. Тогда многочлен Лагранжа может быть записан в форме


[math]L_n(x)= \Pi_{n+1}(x)\cdot \sum\limits_{i=0}^{n} \frac{f_i}{D_i}\,.[/math]
(4.18)

Замечания


1. Если заданная сеточная функция такая, что [math]f_i=1~(i=\overline{0,n})[/math], то из (4.17) следует, что [math]L_n(x)\equiv1[/math], и поэтому справедливо равенство [math]\textstyle{\sum\limits_{i=0}^{n} P_{ni}(x)=1}[/math] (сумма всех коэффициентов Лагранжа в точке [math]x[/math] равна нулю), которое можно использовать для контроля правильности расчетов.


2. Коэффициенты Лагранжа [math]P_{ni}(x)[/math] для некоторой функции [math]y_i= f(x_i)[/math] определяются лишь узлами сетки и точкой [math]x[/math], в которой необходимо вычислить значение многочлена. Если в некоторой точке [math]x_{\ast}[/math] требуется определить значения нескольких интерполируемых функций [math]f_1(x_i),f_2(x_i),\ldots~ (i=\overline{1,n})[/math], то коэффициенты Лагранжа для всех исходных функций подсчитываются только один раз.


3. При введении дополнительных узлов интерполяции все коэффициенты многочлена Лагранжа необходимо пересчитывать заново, что неудобно на практике. От этого недостатка свободны многочлены Ньютона.


Перейдем к рассмотрению примеров решения задачи интерполяции на основе вышеизложенной методики.


▼ Пример 4.1

Построить многочлен Лагранжа третьей степени для сеточной функции, заданной табл. 4.2. Вычислить значение функции в точке [math]x_{\ast}=2,\!5[/math]. Для записи многочлена использовать формулу (4.18).

[math]\begin{array}{|c|c|c|c|c|} \multicolumn{5}{r}{\mathit{Table~4.2}}\\\hline i& 0& 1& 2&3 \\\hline x_i& 2& 3& 4&5 \\\hline \begin{matrix}{}\\[-8pt]{}\end{matrix} f(x_i)= f_i & 7& 5& 8&7 \\\hline \end{array}[/math]

Решение. 1. Построим многочлен Лагранжа. Для этого составим табл. 4.3, соответствующую табл. 4.1.


[math]\begin{array}{|c|c|c|c|c|c|} \multicolumn{6}{r}{\mathit{Table~4.3}}\\\hline x-2&-1&-2&-3&-6\cdot(x-2)&7 \\\hline 1&x-3&-1&-2& 2\cdot(x-3)&5 \\\hline 2& 1& x-4&-1&-2\cdot(x-4)&8 \\\hline 3& 2& 1& x-5& 6\cdot(x-5)&7 \\\hline \multicolumn{4}{|c|}{\begin{matrix}{}\\[-8pt]{}\end{matrix} \Pi_4(x)= (x-2)(x-3)(x-4)(x-5)}& D_i&f_i \\\hline \end{array}[/math]

По формуле (4.18) получаем:


[math]\begin{aligned}L_3(x) &= \Pi_4(x) \sum\limits_{i=0}^{3} \frac{f_i}{D_i}=\\ &=-\frac{7}{6}(x-3)(x-4)(x-5)+ \frac{5}{2}(x-2)(x-4)(x-5)-4(x-2)(x-3)(x-5)\,+\\ &\quad +\,\frac{7}{6} (x-2)(x-3)(x-4)=-\frac{3}{2}\,x^3+16x^2-\frac{107}{2}\,x+62. \end{aligned}[/math]

2. Вычислим значение функции в заданной точке: [math]L_3(2,\!5)= 4,\!8125[/math].




Погрешность интерполяции многочленами Лагранжа


При определении значения [math]f(x),~ x\ne x_{i}[/math] для функции [math]y_i=f(x_i)~ (i=\overline{0,n})[/math] с помощью многочлена Лагранжа возникает погрешность или остаточное слагаемое [math]R_n(x)\colon[/math]


[math]f(x)= L_n(x)+ R_n(x).[/math]
(4.19)

Здесь предполагается, что используется глобальный способ интерполяции и что [math]f(x)\in C_{n+1}[a,b][/math]. Последнее предположение требуется для применения соответствующих теорем математического анализа, однако, приведенное ниже соотношение для [math]R_n(x)[/math] может использоваться и для сеточных функций.


На основе указанных предположений доказано, что при интерполяции функции [math]y_i=f(x_i)[/math], заданной в общем случае на неравномерной сетке [math]\Omega_n[/math], интерполяционным многочленом Лагранжа [math]\textstyle{L_n(x)= \sum\limits_{i=0}^{n} P_{ni}(x)f_i}[/math] для произвольного значения [math]x\in (x_0,x_n)[/math] возникает погрешность


[math]R_n(x)= \frac{f^{(n+1)}(\xi)}{(n+1)!}\cdot \omega_n(x),[/math]
(4.20)

где [math]\omega_n(x)= (x-x_0)(x-x_1)\ldots (x-x_n)[/math] — многочлен (n+1)-й степени, а [math]\xi\in (a,b)[/math]. Поскольку точно найти [math]R_n(x)[/math] нельзя (из-за неопределенности точки [math]\xi[/math]), то при проведении вычислений обычно находятся только приближенные оценки погрешностей интерполяции, которые являются априорными.


Оценка погрешности интерполяции в некоторой произвольной фиксированной точке [math]x_{\ast}\in[a,b][/math] имеет вид, где [math]M_{n+1}= \max_{x\in[a,b]}|f^{(n+1)}(x)|[/math]


[math]\bigl|f(x_{\ast}-L_n(x_{\ast})\bigr| \leqslant \frac{M_{n+1}}{(n+1)!}\cdot \bigl|\omega_n(x_{\ast})\bigr|,[/math]
(4.21)

Оценка максимальной погрешности интерполяции в любой точке [math]x\in[a,b][/math], т.е. на всем отрезке [math][a,b]\colon[/math]


[math]\bigl|f(x-L_n(x)\bigr| \leqslant \frac{M_{n+1}}{(n+1)!}\cdot \max_{x\in[a,b]}\bigl|\omega_n(x_{\ast})\bigr|.[/math]
(4.22)

Замечание. Для сеточных функций с фиксированными узлами сетки (узлами интерполяции) также можно проводить оценки погрешности по формулам (4.21), (4.22), однако для этого необходимо численно определять [math]M_{n+1}[/math] с помощью аппарата численного дифференцирования. При этом следует учитывать, что при вычислении производных высокого порядка возникают большие погрешности.


▼ Пример 4.2

С какой точностью можно вычислить значение [math]f(x)= \Bigl.{\sqrt{x} }\Bigr|_{x_{\ast}=85}[/math], если вычисления производить на основе интерполяционного многочлена Лагранжа первой и второй степени, а в качестве сеточной функции принять [math](x_i,y_i)= \bigl\{(16;4),(36;6),(100;10)\bigr\},~ (i=0,1,2)[/math]?


Решение. Так как требуется вычислить погрешность только в одной точке [math]x_{\ast}=85[/math], то необходимо использовать формулу (4.21).


Найдем оценку погрешности в точке [math]x_{\ast}=85[/math] для [math]L_1(x)[/math]. В качестве "окна" линейной интерполяции [math](n=1)[/math] выбираем отрезок [math][x_1,x_2]=[36;100][/math]. Определим величину [math]M_2\colon[/math]


[math]f'(x)= \frac{1}{2}x^{-1\!\!\not{\phantom{|}}\,2};\qquad f''(x)=-\frac{1}{4}x^{-3\!\!\not{\phantom{|}}\,2};\qquad M_2= \max_{x\in[36;100]} \bigl|f''(x)\bigr|= \frac{1}{4 \sqrt{36^3}}= \frac{1}{864}\,.[/math]

Тогда [math]\omega_1(x_{\ast})= (85-36)(85-100)=-735;~~ |R_1(x)| \leqslant \frac{M_2}{(n+1)!}|\omega_1(x_{\ast})|= \frac{735}{2\cdot864}= 0,\!425[/math].


Найдем оценку погрешности в точке [math]x_{\ast}[/math] для [math]L_2(x)[/math]. В качестве "окна" квадратичной интерполяции [math](n=2)[/math] выбираем отрезок [math][x_0,x_2]= [16;100][/math]. Определим величину [math]M_3\colon[/math]


[math]f'''(x)= \frac{3}{8}x^{-5\!\!\not{\phantom{|}}\,2};\qquad M_3= \max_{x\in[16;100]} \frac{3}{8 \sqrt{16^5}}= \frac{1}{2730,\!7}\,.[/math]

Тогда [math]\omega_2(x_{\ast})= (85-16)(85-36)(85-100)=-50715;~~ |R_2(x)| \leqslant \frac{M_3}{(n+1)!}|\omega_2(x_{\ast})|=3,\!1[/math].


Погрешность для многочлена [math]L_2(x)[/math] получилась больше погрешности для многочлена [math]L_1(x)[/math], что обусловлено величиной [math]\omega_2(x_{\ast})[/math].




Сходимости функционального интерполяционного процесса для непрерывных функций


Как отмечалось выше, выбор сетки и соответствующей степени интерполяционного многочлена при интерполяции сеточных функций является одной из важных задач, решить которую можно, рассмотрев проблему сходимости интерполяционных процессов [6,40] для непрерывных функций [math]y=f(x)\in C_{n+1}[a,b][/math].


Будем считать, что интерполяция проводится на последовательности сеток


[math]\Omega_1= \bigl\{x_0^{(1)},x_1^{(1)}\bigr\},\quad \Omega_2= \bigl\{x_0^{(2)}, x_1^{(2)},x_2^{(2)}\bigr\},\quad \ldots,\quad \Omega_n= \bigl\{x_0^{(n)},x_1^{(n)},\ldots ,x_n^{(n)}\bigr\}[/math]

с возрастающим разбиением [math]k[/math] отрезка [math][a,b]\colon\, k_1=1; k_2=2; \ldots; k_n=n[/math] и т.д.


Если при данных разбиениях при возрастающем [math]k=1,2,\ldots,n,\ldots[/math] определяются значения [math]L_k(x_{\ast})[/math] в некоторой промежуточной точке [math]x_{\ast}[/math], то реализуется интерполяционный процесс, характеризующийся последовательностью значений многочленов: [math]L_1(x_{\ast}), L_2(x_{\ast}), \ldots, L_n(x_{\ast}), \ldots[/math].


Интерполяционный процесс для функции [math]f(x)[/math] сходится в точке [math]x_{\ast}\in [a,b][/math], если существует [math]\lim\limits_{k\to\infty} L_k(x_{\ast})= f(x_{\ast})[/math] (поточечная сходимость).


Для отрезка [math][a,b][/math] существует понятие равномерной сходимости в некоторой норме, например max, [math]\max_{\substack{x\in[a,b]\\ n\to\infty} \bigl|f(x)-L_n(x)\bigr|\to0}[/math].


Характер сходимости или расходимости интерполяционного процесса зависит как от гладкости и поведения функции [math]f(x)[/math], так и от выбора последовательности сеток [math]\Omega_n~ (n=1,2,\ldots)[/math]. Так, показано, что если f(x) непрерывна на [math][a,b][/math], то найдется такая последовательность [math]\Omega_n~ (n=1,2,\ldots)[/math], для которой интерполяционный процесс сходится равномерно на [math][a,b][/math] (теорема Марцинкевича). Однако для дискретных функций, рассматриваемых в данном разделе, эта теорема не применима. Отметим также, что построены расходящиеся интерполяционные процессы и для формульных функций, например [math]f(x)=|x|,~ x\in[-1;1][/math] и [math]f(x)= (1+25x^2)^{-1},~ x\in[-1;1][/math]. Кроме того, применение многочленов высоких степеней приводит к так называемым "провалам" между узлами интерполяции, часто называемым осцилляциями. Указанные свойства интерполяционных процессов обусловливают нецелесообразность применения интерполяционных многочленов высоких степеней. В связи с этим в вычислительной практике для сеточных функций степень [math]n[/math] не берут выше [math]5\div 8~ (n\leqslant 5\div 8)[/math] и задание частичного отрезка согласуют с выбранной степенью многочлена.


Рассмотрим часто использующиеся на практике линейную и параболическую интерполяцию.




Линейная и параболическая интерполяция с помощью многочлена Лагранжа


В прикладных расчетах часто применяется простейшая кусочная интерполяция, основанная на многочленах первой степени [math]L_1(x)[/math] или второй степени [math]L_2(x)[/math]. В этом случае функциональная интерполяция называется линейной или параболической (квадратичной) соответственно. Рассмотрим возможные способы их реализации и найдем оценки их погрешностей.


Пусть для сеточной функции [math]y_i=f(x_i)[/math], заданной на сетке [math]\Omega_n= \{x_0,x_1, \ldots, x_n\}[/math], требуется выполнить интерполяционный процесс для определения значения [math]f(x_{\ast})[/math], где [math]x_{\ast}\ne x_i~ (i=\overline{0,n})[/math], и оценить погрешности. Для обоснованного выбора степени интерполяционного многочлена необходимо указать, какую погрешность имеют значения исходной функции [math]f(x_i)[/math] в узлах. Если эта погрешность составляет величину [math]O(h_{i+1}^2)[/math] или [math]O(h_{i+1}^3[/math], а в широком классе вычислительных задач обеспечиваются именно такие погрешности, следует использовать линейную или параболическую интерполяцию.




Методика решения задачи линейной интерполяции


1. По расположению заданной точки [math]x_{\ast}[/math] на оси [math]Ox[/math] выбрать из всех частичных отрезков [math][x_0,x_1], [x_1,x_2],\ldots, [x_i,x_{i+1}], \ldots, [x_{n-1},x_n][/math], заданных своими крайними значениями и в совокупности образующих сетку [math]\Omega_n[/math], "окно" интерполяции [math]O\equiv [x_i,x_{i+1}][/math], такое, что [math]x_i< x_{\ast}< x_{i+1}[/math].


2. Для отрезка [math][x_i,x_{i+1}][/math] вычислить значения коэффициентов Лагранжа [math]P_{1i}(x_{\ast})= \frac{x_{\ast}-x_{i+1}}{x_i-x_{i+1}}[/math] и [math]P_{1i+1}(x_{\ast})= \frac{x_{\ast}-x_i}{x_{i+1}-x_i}[/math] входящих в формулу (4.13) для многочлена [math]L_1(x)[/math]. Правильность полученных значений [math]P_{1i}(x_{\ast}),\, P_{1i+1} (x_{\ast})[/math] проверить по условию [math]P_{1i}(x_{\ast})+ P_{1i+1}(x_{\ast})=1[/math], которое должно выполняться.


3. Вычислить искомое значение [math]f(x_{\ast})[/math] согласно (4.13):


[math]f(x_{\ast})\approx L_1(x_{\ast})= P_{1i}(x_{\ast}) f_i+ P_{1i+1} (x_{\ast}) f_{i+1}.[/math]

Как показано ниже, порядок этой аппроксимации равен двум, т.е. [math]O(h_{i+1}^2)[/math].


Геометрическая интерпретация линейной интерполяции при известной формульной функции [math]y=f(x)[/math] (штриховая линия) изображена на рис. 4.3. Здесь прямая [math]AB[/math] соответствует графику функции [math]y=L_1(x)[/math] на отрезке [math][x_i, x_{i+1}][/math]. Приближенное значение функции равно [math]L_1(x_{\ast})[/math] ( точка [math]C[/math]), и оно отстоит от точного значения [math]f(x_{\ast})[/math] на величину [math]CD \approx O(h_{i+1}^2)[/math] вдоль оси [math]Oy[/math].




Методика решения задачи параболической интерполяции


1. Из всей совокупности спаренных частичных отрезков [math][x_0,x_2], [x_1,x_3], \ldots, [x_{i-1}, x_{i+1}], [x_i, x_{i+2}], \ldots, [x_{n-1},x_n][/math], образующих сетку [math]\Omega_n[/math], по заданной величине [math]x_{\ast}[/math] выбрать два пересекающихся "окна" [math]O_1\equiv [x_{i-1},x_{i+1}],~ O_2\equiv [x_i, x_{i+2}][/math] (предполагается, что [math]x_{\ast}[/math] принадлежит внутреннему отрезку [math][x_i,x_{i+1}][/math]).


2. Для "окон" [math]O_1[/math] и [math]O_2[/math] вычислить значения коэффициентов Лагранжа: [math]P_{2,i-1}^{(1)}(x_{\ast}),\, P_{2,i}^{(1)}(x_{\ast}),\, P_{2,i+1}^{(1)}(x_{\ast})[/math] — для "окна" [math]O_1[/math] и [math]P_{2,i}^{(2)}(x_{\ast}),\, P_{2,i+1}^{(2)}(x_{\ast}),\, P_{2,i+2}^{(2)}(x_{\ast})[/math] — для "окна" [math]O_2[/math]. Путем суммирования проверить правильность полученных значений коэффициентов:


[math]\sum\limits_{k=i-1}^{i+1} P_{2,k}(x_{\ast})=1,\qquad \sum\limits_{k=i}^{i+2} P_{2,k}(x_{\ast})=1.[/math]

3. Используя значения коэффициентов Лагранжа, вычислить значения [math]L_2^{(1)}(x_{\ast}),\, L_2^{(2)}(x_{\ast})[/math] по формуле (4.14).


Если в расчетах не требуется высокая точность интерполирования, то можно ограничиться выбором одного "окна", например [math]O_2[/math], и тогда [math]f(x_{\ast})\approx L_2^{(2)}(x_{\ast})[/math]. Для достижения повышенной точности интерполяцию провести для двух "окон" и результаты [math]L_2^{(1)}(x_{\ast}),\, L_2^{(2)}(x_{\ast})[/math] усреднить:


[math]f(x_{\ast})\approx \frac{1}{2}\bigl[L_2^{(1)}(x_{\ast})+ L_2^{(2)}(x_{\ast})\bigr]\equiv L_{2\text{sr}}(x_{\ast}).[/math]

При этом порядок интерполяции повышается на единицу, т.е. [math]L_{2\text{sr}}(x_{\ast})[/math] аппроксимирует точное значение с четвертым порядком, поскольку погрешность составляет величину [math]O(H^4)[/math], где [math]H=\max\{h_i,h_{i+1},h_{i+2}\}[/math].


Замечание. Если [math]x_{\ast}\in [x_0,x_2][/math] или [math]x_{\ast}\in [x_{n-1},x_n][/math], то выбирается одно "окно" [math][x_0,x_2][/math] или [math][x_{n-1},x_n][/math] соответственно.


Геометрическая интерпретация параболической интерполяции изображена на рис. 4.4. Параболе [math]y= L_2^{(1)}(x_{\ast})[/math] соответствует кривая [math]A_1A_2B_1[/math], параболе [math]y= L_2^{(2)}(x_{\ast})[/math] — кривая [math]A_2B_1A_2[/math]. Точка [math]C[/math] соответствует значению [math]L_2^{(1)}(x_{\ast})[/math], точка [math]D[/math] — значению [math]L_2^{(2)}(x_{\ast})[/math] точка [math]E[/math] — значению [math]L_{2\text{sr}} (x_{\ast})[/math].


Приведем оценки погрешностей линейной и параболической интерполяции. Вначале предположим, что сетка [math]\Omega_n[/math] равномерная (это имеет значение только для параболической интерполяции). Формулы (4.13), (4.14) и оценки (4.22), записанные для "окон" интерполяции, упрощаются, если ввести в рассмотрение новую переменную — фазу интерполяции и [math]u=\frac{x-x_i}{h}\colon[/math]


[math]\begin{gathered}L_1(u)= (1-u)\cdot f_i+ u\cdot f_{i+1},\\ L_2(u)= \frac{(u-1)(u-2)}{2}\cdot f_i-u(u-2)\cdot f_{i+1}+ \frac{u(u-1)}{2}\cdot f_{i+2}. \end{gathered}[/math]

Здесь учтено, что [math]x-x_{i+1}= x-(x_i+h)= uh-h= h(u-1),~ x-x_{i+2}= h(u-2)[/math]. Очевидно, что для [math]L_1(u)[/math] величина [math]{u}[/math] изменяется в диапазоне [math]0 \leqslant u \leqslant 1[/math], а для [math]L_2(u)[/math] — в диапазоне [math]0 \leqslant u \leqslant 2[/math]. Для получения мажорант в оценке (4.22) необходимо найти [math]\max|\omega_1(x)|[/math] и [math]\max|\omega_2(x)|[/math]. Преобразуя зависимости [math]\omega_1(x)[/math] и [math]\omega_2(x)[/math] к новой переменной [math]{u}[/math], получаем [math]\omega_1(u)= h^2u\cdot (1-u),[/math] [math]\omega_2(u)= h^3u\cdot (1-u)(2-u)[/math] и находим максимумы:


[math]\Omega^1= \max_{0 \leqslant u \leqslant 1} \bigl|\omega_1(u)\bigr|= \frac{h^2}{4}\,,\qquad \Omega^2= \max_{0 \leqslant u \leqslant 2} \bigl|\omega_2(u)\bigr|= \frac{2 \sqrt{3}h^2}{9}\,.[/math]

Таким образом, реализуются следующие оценки погрешностей линейной и параболической интерполяции, справедливых для соответствующих "окон":


[math]\bigl|f(u)-L_1(u)\bigr|\leqslant \frac{h^2}{8}\,M_{2,i},[/math]
(4.23)

[math]\bigl|f(u)-L_2(u)\bigr|\leqslant \frac{\sqrt{3}h^3}{27}\,M_{3,i},[/math]
(4.24)

где [math]M_{2,i}= \max_{[x_i, x_{i+1}]}\bigl|f''(x)\bigr|,~ M_{3,i}= \max_{[x_i, x_{i+2}]}\bigl|f'''(x)\bigr|[/math]. При этом предполагается, что [math]f(x)[/math] принадлежит классам функций [math]f(x)\in C_2[a,b],~ f(x)\in C_3[a,b][/math] соответственно для линейной и параболической интерполяции. Таким образом, из оценок (4.23), (4.24) следует, что линейная интерполяция обеспечивает на частичном отрезке [math][x_i, x_{i+1}][/math] второй порядок аппроксимации или погрешности по [math]h[/math], а параболическая (без осреднения) на двойном отрезке [math][x_i, x_{i+2}][/math] — третий порядок. Данные пофешности, как отмечалось во введении и предыдущих разделах, сокращенно записываются как [math]O(h^2)[/math] и [math]O(h^3)[/math]. При реализации алгоритма с осреднением порядок параболической интерполяции становится равным [math]O(h^4)[/math].


Замечания


1. Оценка (4.23) для линейной интерполяции инвариантна по отношению к виду сетки [math]\Omega_n[/math] (равномерной или неравномерной). Параболическая интерполяция также сохраняет указанную погрешность при выполнении интерполяции на неравномерной сетке [math]\Omega_n[/math]. В некоторых источниках для [math]L_2(x)[/math] при выполнении условия [math]f(x)\in C_3[a,b][/math] приведена оценка


[math]\max_{[x_i,x_{i+2}]} \bigl|R_2(x)\bigr| \leqslant \frac{\sqrt{3}}{27}\,H^3M_{3,i},[/math]
(4.25)

где [math]H= \max(h_{i+1}, h_{i+2}),~ h_{i+2}= x_{i+2}-x_{i+1},~ M_{3,i}= \max_{[x_i,x_{i+2}]} \bigl|f'''(x)\bigr|[/math].


2. Если гладкость функции [math]f(x)[/math] не достигает вышеуказанной и класс гладкости понижен на единицу [math]\bigl(f(x)\in C_2[a,b]\bigr)[/math], то порядок параболической интерполяции также понижается на единицу:


[math]\max_{[x_i,x_{i+2}]} \bigl|R_2(x)\bigr| \leqslant 0,\!1546\cdot H^2M_{2,i}.[/math]
(4.26)

3. Повышение класса гладкости функции [math]f(x)[/math] выше [math]C_3[a,b][/math] не приводит к увеличению порядка параболической интерполяции относительно Н , т.е. происходит как бы его "замораживание" или "насыщение". Указанные свойства, вытекающие из оценок (4.25), (4.26), носят общий характер и имеют место в других оценках аппроксимации многочленов, сплайнов, производных и интегралов.


4. Для произвольной степени интерполяционного многочлена при [math]h=text{const},~ f(x)\in C_{n-1}[a,b][/math] погрешность функциональной интерполяции на отрезке [math][x_0,x_n][/math] выражается следующим образом:


[math]\bigl\|f(x)-L_n(x)\bigr\|_{[a,b]}= \max_{x\in [a,b]} \bigl|f(x)-L_n(x)\bigr| \leqslant h^{n+1} \frac{M_{n+1}}{(n+1)!}\,\Omega^n.[/math]
(4.27)

где [math]\Omega^n= \max_{0 \leqslant u \leqslant n} \bigl|\omega_n(u)\bigr|,~ M_{n+1}= \max_{[x_0,x_n]} \bigl|f^{(n+1)}(x)\bigr|,~ \omega_n(x)= u(u-1)\cdot \ldots\cdot (u-n)[/math]. Для многочленов с [math]n \leqslant 5[/math] величины [math]\Omega^n[/math] или их оценки являются такими:


[math]\Omega^1=\frac{1}{4};\quad \Omega^2=\frac{2 \sqrt{3}}{9};\quad \Omega^3=1;\quad \Omega^4<3,\!7;\quad \Omega^5<17.[/math]

Из (4.27) следует, что на отрезке [math][x_0,x_n][/math] величина [math]\|R_n(x)\|[/math] есть [math]O(h^{n+1})[/math] и при уменьшении шага [math]h[/math] в два раза мажоранта уменьшается по крайней мере в [math]2^{n+1}[/math] раз. Отсюда вытекает, что для непрерывных функций можно по заданной точности интерполяции выбирать шаг [math]h[/math]. При этом можно путем использования кусочной интерполяции в некоторых пределах изменять степень интерполяционного многочлена. Мажоранту в оценке (4.27) при кусочной интерполяции можно также снизить путем выбора "окна" интерполяции [math][x_i,x_{i+k}][/math] так, чтобы точка [math]x_{\ast}[/math] располагалась как можно ближе к его середине. Это обусловлено тем, что колебания функции [math]\omega_n(x)[/math] вблизи середины [math][x_i,x_{i+k}][/math] меньше, чем у его концов.


5. В широком классе задач математической физики применяются расчетные схемы в основном второго (и иногда третьего и выше) порядка точности. При их реализации, как правило, используются встроенные интерполяционные алгоритмы, основанные на многочленах и сплайн-функциях. Степени интерполяционных многочленов при этом должны выбираться из условия соответствия порядков их аппроксимации порядкам точности схем. Если эти порядки одинаковы, то порядок точности схем сохраняется, хотя константа в оценке погрешности схемы изменяется. Если же порядок встроенных интерполяционных алгоритмов хотя бы на единицу выше порядка точности схемы, то вместе с порядком точности схемы сохраняется и указанная константа. Отсюда следует, что необходимо выбирать такую степень интерполяционного многочлена, которая либо обеспечивает равенство порядка аппроксимации порядку точности схемы, либо на единицу превышает последний. Таким образом, использование параболической интерполяции в качестве встроенных алгоритмов или для восполнения численных решений, полученных по схемам второго порядка, позволяет сохранить требуемую точность расчета, а также не дает избыточный порядок и, следовательно, не усложняет алгоритм. Это замечание носит общий характер и относится к любым аппроксимационным алгоритмам, выполняющим функцию восполнения или интерполирования.


Перейдем к рассмотрению примеров решения задач линейной и параболической интерполяции.


▼ Пример 4.3

Дана сеточная функция, являющаяся сеточным представлением формульной функции [math]f(x)=x^3[/math] (табл. 4.4). Найти значение [math]f(x_{\ast})[/math] при [math]x_{\ast}=2[/math] с помощью линейной и параболической интерполяции.


[math]\begin{array}{|c|c|c|c|c|c|} \multicolumn{6}{r}{\mathit{Table~4.4}}\\\hline i& 0& 1& 2& 3& 4 \\\hline x_i& -1& 0& 1& 3& 4 \\\hline f_i& -1& 0& 1& 27& 64 \\\hline \end{array}[/math]

Решение. Применение линейной интерполяции. Воспользуемся методикой.


1. Выбираем "окно" интерполяции [math][x_i,x_{i+1}]= [1;3]~ (i=2,~ i+1=3)[/math].


2. Вычислим коэффициенты Лагранжа: [math]P_{1\,2}= \frac{x_{\ast}-x_3}{x_2-x_3}= 0,\!5;~~ P_{1\,3}= \frac{x_{\ast}-x_2}{x_3-x_2}=0,\!5[/math]. Вычисления выполнены верно, так как [math]P_{1\,2}+P_{1\,3}=1[/math].


3. Определим искомое значение [math]f(2)[/math] по формуле (4.13):


[math]f(2)\approx L_1(2)= P_{1\,2}\cdot f_2+ P_{1\,3}\cdot f_3=14.[/math]

Применение параболической интерполяции с осреднением. Также воспользуемся соответствующей методикой.


1. Выбираем "окна" интерполяции [math]O_1\equiv [x_1;x_3]= [0;3];~ O_2\equiv [x_2;x_4]= [1;4][/math].


2. Вычислим коэффициенты Лагранжа [math]P_{21}^{(1)},\, P_{22}^{(1)},\, P_{23}^{(1)}[/math] для "окна" [math]O_1[/math] и [math]P_{22}^{(2)},\, P_{23}^{(2)},\, P_{24}^{(2)}[/math] для "окна" [math]O_2[/math]. Получим


[math]P_{21}^{(1)}=-\frac{1}{3},\quad P_{22}^{(1)}=1,\quad P_{23}^{(1)}=\frac{1}{3};\qquad P_{22}^{(2)}=\frac{1}{4},\quad P_{23}^{(2)}=1,\quad P_{24}^{(2)}=-\frac{1}{3}\,.[/math]

Вычисления выполнены правильно, так как [math]\textstyle{\sum\limits_{k=1}^{3} P_{2k}^{(1)}=1;~ \sum\limits_{k=2}^{4} P_{2k}^{(2)}=1}[/math].


3. Определим значения [math]L_2^{(1)}(x_{\ast}),~ L_2^{(2)}(x_{\ast})[/math] по формуле (4.14):


[math]L_2^{(1)}(x_{\ast})=-\frac{1}{3}\cdot0+1\cdo1+ \frac{1}{3}\cdot27=10;\qquad L_2^{(2)}(x_{\ast})= \frac{1}{3}\cdot1+ 1\cdot27-\frac{1}{3}\cdot64=6.[/math]

Искомое значение получим в результате осреднения: [math]f(2)\approx \frac{L_2^{(1)}(x_{\ast})+ L_2^{(2)}(x_{\ast})}{2}=8[/math]. Найдено точное значение [math]f(2)=8[/math], что объясняется тем, что оператор осреднения повышает порядок интерполяции. В этом случае в остаточное слагаемое входит [math]f^{(4)}(\xi)\equiv0[/math] и оно равно нулю.




Многочлены Ньютона


Разделенные и конечные разности. В практике функционального интерполирования иногда удобнее использовать многочлены Ньютона, степень которых можно последовательно повышать путем добавления очередных слагаемых, имеющих более высокую степень. Такие несимметричные многочлены, альтернативные симметричным многочленам Лагранжа, основаны на разделенных и конечных разностях, вычисляемых по интерполируемой сеточной функции.


Разделенные разности вводятся для функции [math]y_i= f(x_i)=f_i,~ i=\overline{0,n}[/math], заданной на неравномерной сетке [math](h_{i+1}= text{var})[/math], а конечные разности — для функции [math]y_i= f(x_i)=f_i,~ i=\overline{0,n}[/math], определенной на равномерной сетке [math](h_{i+1}= text{const})[/math].


Выбрав внутри неравномерной или равномерной сетки соответствующие шаблоны интерполяции [math](x_i,x_{i+1}), (x_i,x_{i+1},x_{i+2}), \ldots, (x_i,x_{i+1},\ldots, x_{i+k})[/math] введем следующие определения разделенных и конечных разностей:


– разделенная разность первого порядка: [math]f(x_i,x_{i+1})= \frac{f_{i+1}-f_i}{x_{i+1}-x_i}[/math];


– разделенная разность второго порядка: [math]f(x_i,x_{i+1},x_{i+2})= \frac{f(x_{i+1},x_{i+2})-f(x_i,x_{i+1})}{x_{i+2}-x_i}[/math];


– разделенная разность k-го порядка: [math]f(x_i,x_{i+1},\ldots, x_{i+k})= \frac{f(x_{i+1},x_{i+2},\ldots, x_{i+k})-f(x_i,x_{i+1},\ldots, x_{i+k-1})}{x_{i-k}-x_i}[/math];


– конечная разность первого порядка: [math]\Delta f_i= f_{i+1}-f_i[/math];


– конечная разность второго порядка: [math]\Delta^2f_i= \Delta (\Delta f_i)= \Delta f_{i+1}-\Delta f_i= f_{i+2}-2f_{i+1}+f_i[/math];


– конечная разность k-го порядка: [math]\textstyle{\Delta^kf_i= \Delta (\Delta^{k-1}f_i)= \sum\limits_{j=0}^{k} (-1)^jC_k^j f_{i+j}}[/math], где [math]C_k^j= \frac{k!}{(k-j)!\,j!}[/math].


Последовательность получения разделенных и конечных разностей при [math]k=3[/math] для произвольной функции наглядно представляют табл. 4.5 и 4.6.


Для гладких функций числовые значения [math]f(x_j, x_{j+1}, \ldots, x_{j+k})[/math] и [math]\Delta^kf_i[/math] при возрастании [math]k[/math] уменьшаются и стремятся к нулю, т.е. [math]f(x_j, x_{j+1}, \ldots, x_{j+k})\to0[/math] и [math]\Delta^kf_i\to0[/math] при [math]k\to\infty[/math].


Связь между разделенными и конечными разностями k-го порядка при [math]h=\text{const}[/math] устанавливается следующим соотношением:


[math]f(x_i,x_{i+1},\ldots,x_{i+k})= \frac{\Delta^kf_i}{k!\,h^k}\,.[/math]
(4.28)

Действительно, при [math]k=1[/math] для разделенной разности [math]f(x_i,x_{i+1})[/math] получаем [math]f(x_i,x_{i+1})= \frac{\Delta f_i}{h}= \frac{\Delta f_i}{1!\,h^1}[/math], то есть (4.28) при [math]k=1[/math] справедливо.


Пусть [math]k=2[/math]. Тогда получаем


[math]f(x_i,x_{i+1},x_{i+2})= \frac{f(x_{i+1},x_{i+2})-f(x_{i},x_{i+1})}{}= \frac{1}{2h}\! \left(\frac{f_{i+2}-f_{i+1}}{h}-\frac{f_{i+1}-f_i}{h}\right)= \frac{\Delta f_{i+1}-\Delta f_i}{2h^2}= \frac{\Delta^2f_i}{2h^2}\,.[/math]

Таким образом, связь (4.28) выполняется и при [math]k=2[/math]. Справедливость (4.28) при произвольном к можно доказать методом математической индукции.




Интерполяционный многочлен Ньютона для неравномерной сетки


Пусть исходная (интерполируемая) сеточная функция [math]y_i=f(x_i),~ i=\overline{0,n}[/math], задана на неравномерной сетке [math]\Omega_n\equiv \{x_0,x_1,x_2,\ldots,x_n\}[/math], характеризующейся шагами [math]h_{i+1}= x_{i+1}-x_i=\text{var}[/math].


Воспользуемся сначала кусочным способом. Из всей совокупности узлов выбираем шаблон [math](x_i,x_{i+1},\ldots,x_{i+k})[/math], соответствующий некоторому "окну" интерполяции [math][x_i,x_{i+k}][/math].


Тогда для функциональной интерполяции может быть использован многочлен Ньютона, основанный на разделенных разностях:


[math]\begin{aligned}N_k(x)= f_i&+ f(x_i,x_{i+1})\cdot (x-x_i)+ f(x_i,x_{i+1}, x_{i+2})\cdot (x-x_i)\cdot (x-x_{i+1})+ \ldots+\\ &+\, f(x_i,x_{i+1},\ldots,x_{i+k})\cdot (x-x_i)\cdot (x-x_{i+1})\cdot \ldots\cdot (x-x_{i+k-1}). \end{aligned}[/math]
(4.29)

Действительно, [math]N_k(x)[/math] — многочлен k-й степени, что определяется сомножителями последнего слагаемого (разделенные разности, входящие в качестве одного из сомножителей в эти произведения, есть числа). Кроме того, для многочлена [math]N_k(x)[/math] удовлетворяются функциональные условия интерполяции: [math]N_k(x_j)= f_j,~ j=i,\ldots,i+k[/math]. Проверим их справедливость при [math]k=1[/math] (шаблон [math](x_i,x_{i+1})[/math]) и [math]k=2[/math] (шаблон [math](x_i,x_{i+1},x_{i+2}})[/math]). Пусть [math]k=1[/math]. Тогда


[math]N_1(x)= f_i+f(x_i,x_{i+1})\cdot (x-x_i),[/math]
(4.30)

и поэтому

[math]N_1(x_i)= f_i\,;\qquad N_1(x_{i+1})= f_i+ \frac{f_{i+1}-f_i}{x_{i+1}-x_i}(x_{i+1}-x_i)= f_{i+1}.[/math]

Таким образом, условия интерполяции для [math]N_1(x)[/math] выполнены, следовательно, многочлен (4.30) может быть использован для линейной интерполяции кусочным способом. Пусть [math]k=2[/math]. Тогда


[math]N_2(x)= f_i+ f(x_i,x_{i+1})(x-x_i)+ f(x_i,x_{i+1},x_{i+2}) (x-x_i)(x-x_{i+1}),[/math]
(4.31)

и поэтому

[math]\begin{gathered}N_2(x)=f_i;\qquad N_2(x_{i+1})= f_i+ \frac{f_{i+1}-f_i}{x_{i+1}-x_i}(x_{i+1}-x_i)+0= f_{i+1}\,,\\ N_2(x_{i+2})= f_i+ \frac{f_{i+1}-f_i}{x_{i+1}-x_i}(x_{i+2}-x_i)+ \frac{1}{x_{i+2}-x_i}\! \left(\frac{f_{i+2}-f_{i+1}}{x_{i+2}-x_{i+1}}-\frac{f_{i+1}-f_{i}}{x_{i+1}-x_{i}}\right)\!(x_{i+2}-x_i)(x_{i+2}-x_{i+1})=f_{i+2}. \end{gathered}[/math]

Таким образом, условия интерполяции для многочлена [math]N_2(x)[/math] также выполнены и он может использоваться для параболической интерполяции кусочным способом.


Для произвольного [math]k[/math] справедливость равенств [math]N_k(x_j)=f_i,~ j=\overline{i,i+k}[/math], проверяется методом математической индукции.


Полагая [math]i=0,~ k=n[/math], приходим к глобальному способу. Тогда интерполяционный многочлен Ньютона n-й степени имеет вид


[math]\begin{aligned}N_n(x)= f_0&+ f(x_0,x_1)(x-x_0)+ f(x_0,x_1,x_2) (x-x_0)(x-x_1)+ \ldots+\\ &+\,f(x_0,x_1,\ldots,x_n)(x-x_0)(x-x_1)\cdot \ldots+(x-x_{n-1}).\end{aligned}[/math]
(4.32)

Замечания


1. Согласно теореме 4.1 многочлен Ньютона (4.32) является тождественным многочлену [math]\textstyle{\widetilde{f}_n(x,\overline{a})= \sum\limits_{j=0}^{n} a_jx^j}[/math] с коэффициентами, получаемыми из системы (4.10), либо многочлену Лагранжа, т.е. [math]L_n(x)= N_n(x)= \widetilde{f}_n(x,\overline{a})[/math], если узлы интерполяции и интерполируемая функция одинаковы.


2. Интерполяционный многочлен Ньютона (4.29) или (4.32) (так же, как и многочлен Ньютона, выражаемый ниже через конечные разности) записан не через значения функции, как это имеет место для многочлена Лагранжа, а через разделенные разности. Поэтому при изменении степени [math]k[/math] в процессе интерполирования у многочлена Ньютона [math]N_k(x)[/math] требуется только добавить или отбросить соответствующее число слагаемых. Это иногда упрощает алгоритм интерполирования.


3. При интерполяции на основе (4.29) или (4.32) узлы интерполяции [math]x_i,x_{i+1}, \ldots, x_{i+k}[/math] или [math]x_0,x_1,\ldots,x_n[/math] определяющие шаблоны интерполяции, целесообразно выбирать так, чтобы точка [math]x_{\ast}[/math] была расположена возможно ближе к середине отрезка [math][x_i,x_{i+k}][/math] или [math][x_0,x_n][/math].


4. Остаточное слагаемое многочлена (4.32) совпадает с остаточным слагаемым многочлена Лагранжа, и оценки (4.21), (4.22), справедливые для точки [math]x_{\ast}[/math] и всего отрезка [math][x_0,x_n][/math], сохраняются.




Интерполяционные многочлены Ньютона для равномерной сетки


Сначала рассмотрим решение задачи кусочной интерполяции (применение кусочного способа). Если функция [math]y_i= f(x_i),~ i=\overline{0,n}[/math] задана на равномерной сетке [math]\Omega_n[/math], характеризующейся [math]h_{i+1}=\text{const}[/math] для всех [math]i[/math], то многочлен (4.29), соответствующий шаблону [math](x_i,x_{i+1},\ldots, x_{i+k})[/math], путем подстановки в него вместо разделенных разностей их выражений через конечные разности, согласно (4.28), преобразуется к виду


[math]N_{k}^{(I)}(q)= f_i+ \frac{\Delta f_i}{1!}\,q+ \frac{\Delta^2 f_i}{2!}\,q(q-1)+ \ldots+ \frac{\Delta^k f_i}{k!}q(q-1)\cdot \ldots\cdot (q-k+1),[/math]
(4.33)

где [math]q=\frac{x-x_i}{h}[/math] — фаза интерполяции, определенная относительно точки [math]x_i[/math]; [math]\Delta^jf_i~(j=1,2,\ldots,k)[/math] — конечные разности.


В соответствии с формулой для фазы интерполяции [math]q[/math] точка начала ее отсчета расположена в узле [math]x_i[/math] и входящие в (4.33) конечные разности относятся к этой же точке [math]x_i[/math]. В связи с этим (4.33) удобно применять в начале выделенного шаблона [math](x_i,x_{i+1},\ldots, x_{i+k})[/math], когда [math]q>0[/math]. Если [math]x_i=x_0[/math], а [math]x_{\ast}<x_0[/math], то этот же многочлен используется и для экстраполяции левее точки [math]x_0~(q<0)[/math]. Поэтому многочлен [math]N_k^{(I)}(q)[/math] называется интерполяционным многочленом для интерполяции вперед (в начале таблицы ) или для экстраполяции назад. В (4.33) этот многочлен обозначен цифрой I, указанной в скобках вверху. Для определенности назовем его первым интерполяционным многочленом Ньютона.


Полагая [math]i=0,~k=n[/math], получаем решение задачи глобальной интерполяции на всем отрезке [math][x_0,x_n]\colon[/math]


[math]N_{n}^{(I)}(q)= f_0+ \frac{\Delta f_0}{1!}\,q+ \frac{\Delta^2 f_0}{2!}\,q(q-1)+ \ldots+ \frac{\Delta^n f_i}{n!}q(q-1)\cdot \ldots\cdot (q-n+1),[/math]
(4.34)

где [math]q=\frac{x-x_0}{h}[/math]. Остаточное слагаемое этого многочлена имеет вид


[math]R_n(q)= h^{n+1}\cdot \frac{q(q-1)\cdot\ldots\cdot(q-n)}{(n+1)!}\cdot f^{(n+1)}(\xi),[/math]

где [math]\xi\in(a,b)[/math] — некоторое промежуточное значение между узлами [math]x_0,x_1,\ldots,x_n[/math] и точкой [math]x[/math].


Если фазу интерполяции определить относительно [math]x_{i+k}[/math] некоторой конечной точки шаблона [math](x_i,x_{i+1},\ldots, x_{i+k})[/math], то есть [math]\widehat{q}= \frac{x-x_{i+k}}{h}[/math], то вместо (4.33) получается второй интерполяционный многочлен Ньютона:


[math]N_{k}^{(II)}(\widehat{q})= f_{i+k}+ \frac{\Delta f_{i+k-1}}{1!}\,\widehat{q}+ \frac{\Delta^2 f_{i+k-2}}{2!}\,\widehat{q}(\widehat{q}+1)+ \ldots+ \frac{\Delta^k f_i}{k!}\widehat{q}(\widehat{q}+1)\cdot \ldots\cdot (\widehat{q}+k-1),[/math]
(4.35)

Данный многочлен удобно применять в конце выделенного шаблона или всей таблицы [math]y_i= f(x_i),~ i=\overline{0,n}[/math].


Если [math]i+k=n[/math], а [math]x_{\ast}>x_n[/math], то (4.35) используется для экстраполяции правее точки [math]x_n~(\widehat{h}>0)[/math]. Поэтому многочлен [math]N_{k}^{(II)}(\widehat{q})[/math] называется многочленом для интерполяции назад (в конце таблицы) или экстраполяции вперед.


Полагая [math]i=0,~ i+k=n[/math], получаем решение задачи глобальной интерполяции — второй интерполяционный многочлен Ньютона n-й степени (где [math]\widehat{q}= \frac{x-x_n}{h}[/math]):


[math]N_{n}^{(II)}(\widehat{q})= f_{n}+ \frac{\Delta f_{n-1}}{1!}\,\widehat{q}+ \frac{\Delta^2 f_{n-2}}{2!}\,\widehat{q}(\widehat{q}+1)+ \ldots+ \frac{\Delta^n f_0}{n!}\widehat{q}(\widehat{q}+1)\cdot \ldots\cdot (\widehat{q}+n-1),[/math]
(4.36)

Остаточное слагаемое многочлена (4.36) имеет вид


[math]R_n(\widehat{q})= h^{n+1}\cdot \frac{\widehat{q}(\widehat{q}+1)\cdot \ldots\cdot (\widehat{q}+n)}{(n+1)!}\cdot f^{(n+1)}(\xi)[/math], где [math]\xi\in(a,b)[/math].

Схема выбора узлов интерполяции при изменении степеней интерполяционных многочленов [math]N_{k}^{(I)}(q),~ N_{k}^{(II)}(\widehat{q})~(k=1,2,3)[/math] в одном алгоритме показана на рис. 4.5. Если точка [math]x_{\ast}[/math] находится в начале отрезка [math][x_0,x_n][/math], например на частичном отрезке [math][x_0,x_1][/math], то применяется первый интерполяционный многочлен Ньютона, а если в конце, например на частичном отрезке [math][x_{n-1},x_n][/math], то — второй (рис. 4.5,а). Если точка [math]x_{\ast}[/math] находится вдали от концов отрезка [math][x_0,x_n][/math], то может применяться как первый интерполяционный многочлен, так и второй (рис. 4.5,б).


Замечания


1. Из формул интерполяционных многочленов [math]N_{k}^{(I)}(q)[/math] и [math]N_{k}^{(II)}(\widehat{q})[/math] видно, что повышение их степеней в процессе реализации алгоритма не требует пересчета предыдущих слагаемых, входящих в многочлены с меньшими степенями.


2. Для гладких функций при повышении порядка конечных разностей справедливо свойство: [math]\Delta^kf_i\to0[/math] при [math]k\to\infty[/math], и поэтому, как только очередное слагаемое в рассматриваемых многочленах становится меньше требуемой точности интерполяции, увеличение степени [math]N_{k}^{(I)}(q),~ N_{k}^{(II)}(\widehat{q})[/math] следует прекратить. Это замечание справедливо также и для [math]N_k(x)[/math].


▼ Пример 4.4-4.6

Пример 4.4. Построить многочлен Ньютона третьей степени для сеточной функции, заданной табл. 4.7. Вычислить значение функции в точке [math]x_{\ast}=2,\!5[/math]. Решить задачу интерполяции при включении одного дополнительного значения сеточной функции: [math]f(1)=5[/math].


[math]\begin{array}{|c|c|c|c|c|} \multicolumn{5}{r}{\mathit{Table~4.7}}\\\hline i& 0& 1& 2& 3\\\hline x_i& 2&3& 4& 5\\\hline f(x_i)=f_i& 7&5& 8& 7\\\hline \end{array}[/math]

▼ Решение

Построим многочлен Ньютона (4.32), справедливый для произвольного расположения узлов. Для этого составим табл. 4.8, аналогичную табл. 4.5:


[math]\begin{gathered}f(x_0,x_1)= \frac{5-7}{3-2}=-2;\qquad f(x_1,x_2)= \frac{8-5}{4-3}=3;\qquad f(x_2,x_3)= \frac{7-8}{5-4}=-1;\\[2pt] f(x_0,x_1,x_2)= \frac{3-(-2)}{4-2}=\frac{5}{2};\qquad f(x_1,x_2,x_3)= \frac{-1-3}{5-3}=-2;\qquad f(x_0,x_1,x_2,x_3)= \frac{-2-\frac{5}{2}}{5-2}=-\frac{3}{2}\,.\end{gathered}[/math]

По формуле (4.32) для [math]n=3[/math] имеем


[math]\begin{gathered}N_3(x)= f(x_0)+ (x-x_0)f(x_0,x_1)+ (x-x_0)(x-x_1)f(x_0,x_1,x_2)+\\ +(x-x_0)(x-x_1)(x-x_2)f(x_0,x_1,x_2,x_3)= 7+(x-2)\cdot(-2)+ (x-2)(x-3)\cdot \frac{5}{2}+\\ (x-2)(x-3)(x-4)\! \left(-\frac{3}{2}\right)=-\frac{3}{2}\,x^3+ 16x^2-\frac{107}{2}\,x+62. \end{gathered}[/math]

Поскольку в данной задаче заданы равностоящие узлы, воспользуемся также формулой (4.34) для первого интерполяционного многочлена Ньютона:


[math]N_{3}^{(I)}(q)= f(x_0)+ \frac{\Delta f_0}{1!}\,q+ \frac{\Delta^2f_0}{2!}\,q(q-1)+ \frac{\Delta^3f_0}{3!}\,q(q-1)(q-2),[/math]

где [math]q=\frac{x-x_0}{h}= \frac{x-2}{1}=x-2[/math]. Составим табл. 4.9, аналогичную табл. 4.6. Имеем:.


[math]\begin{gathered}\Delta f_0= 5-7=-2;\quad \Delta f_1=8-5=3;\quad \Delta f_2=7-8=-1;\quad \Delta^2f_0=3-(-2)=5;\\[2pt] \Delta^2f_1=-1-3=-4;\qquad \Delta^3f_0=-4-5=-9. \end{gathered}[/math]

Поэтому

[math]\begin{aligned}N_{3}^{(I)}(q)&= f(x_0)+ \frac{(-2)}{1!}\,q+ \frac{5}{2!}\,q(q-1)+ \frac{(-9)}{3!}\,q(q-1)(q-2)= \left.{\left(-\frac{3}{2}\,q^3+7q^2-\frac{15}{2}\,q+7\right)}\right|_{q=\frac{x-2}{1}}\\ &=-\frac{3}{2}\cdot (x^3-6x^2+12x-8)+ 7\cdot (x^2-4x+4)-\frac{15}{2}\cdot (x-2)+7=-\frac{3}{2}\,x^3+ 16x^2-\frac{107}{2}\,x+62. \end{aligned}[/math]

Запишем также второй интерполяционный многочлен Ньютона (4.36):


[math]\begin{aligned}N_{3}^{(II)}(q)&= \left.{\left(f_3+ \frac{\Delta f_2}{1!}\,\widehat{q}+ \frac{\Delta^2f_1}{2!}\, \widehat{q} (\widehat{q}+1)+ \frac{\Delta^3f_0}{3!}\, \widehat{q}(\widehat{q}+1)(\widehat{q}+2)\right)\!}\right|_{\widehat{q}=\frac{x-x_0}{1}}=\\ &=7+ \frac{-1}{1!}\,\widehat{q}+ \frac{-4}{2!}\, \widehat{q} (\widehat{q}+1)+ \frac{-9}{3!}\, \widehat{q}(\widehat{q}+1)(\widehat{q}+2)=\\ &= \left.{\left(-\frac{3}{2}\,\widehat{q}^3-\frac{13}{2}\,\widehat{q}^2-6\widehat{q}+7\right)\!}\right|_{\widehat{q}=x-5}=-\frac{3}{2}\,x^3+ 16x^2-\frac{107}{2}\,x+62. \end{aligned}[/math]

Сравнивая с результатом примера 4.1, можно заключить, что [math]L_3(x)= N_3^{(I)}(x)= N_3^{(II)}(x)[/math]. Это еще раз подтверждает единственность решения задачи интерполяции в классе многочленов, удовлетворяющих условиям теоремы 4.1.


Предположим, что в ходе некоторого эксперимента получен новый результат [math]f(1)=5[/math], дополняющий заданную сеточную функцию. Тогда для решения задачи интерполяции с помощью многочлена Ньютона можно использовать уже полученный результат. Для этого дополним табл. 4.8. Новый узел и соответствующее значение функции поместим в конце табл. 4.10.


По формуле (4.34) имеем


[math]\begin{aligned}N_4(x)&= N_3(x)+(x-x_0)(x-x_1)(x-x_3)(x-x_4)f(x_0,x_1,x_2, x_3,x_4)=\\[2pt] &=-\frac{3}{2}\,x^3+ 16x^2-\frac{107}{2}\,x+62+ (x-2)(x-3)(x-4)(x-5)\! \left(-\frac{3}{4}\right)=\\[2pt] &=-\frac{3}{2}\,x^3+ 16x^2-\frac{107}{2}\,x+62-\frac{3}{4}\cdot (x^4-14x^3+71x^2-154x+120)=\\[2pt] &=-\frac{3}{4}\,x^4+ 9x^3-\frac{149}{4}\,x^2+62x-28. \end{aligned}[/math]

Легко проверить, что новый узел можно добавить и в начале таблицы, т.е. будет найден тот же многочлен [math]N_4(x)[/math]. На рис. 4.6 изображены полученные интерполяционные многочлены.


Вычислим значение функции в точке [math]x_{\ast}=2,\!5\colon[/math]


[math]N_3^{(I)}(x_{\ast})= N_3^{(II)}(x_{\ast})= 4,\!8125;\qquad N_4^{(I)}(x_{\ast})= 5,\!5156.[/math]

Пример 4.5. Для сеточной функции из примера 4.3 найти линейный и параболический многочлены Ньютона и на их основе подсчитать значение функции в точке [math]x_{\ast}=2,\!5[/math]. Оценить погрешность интерполяции.


▼ Решение

Так как точка [math]x_{\ast}=2,\!5[/math] находится вблизи узла [math]x_i=x_2[/math] и шаблон [math](x_2,x_3,x_4)[/math] имеет неравномерность по шагу, то для выполнения интерполяции выбираем многочлен Ньютона (4.29).


1. Определим разделенные разности [math]f(x_i,x_{i+1}),~ f(x_i,x_{i+1},x_{i+2})[/math] (табл. 4.11)


Здесь [math]f(x_1,x_2)= \frac{27-1}{3-1}=13,~ f(x_3,x_4)= \frac{64-27}{4-3}=37,~ f(x_2,x_3,x_4)= \frac{37-13}{4-1}=8.[/math]. Определим [math]N_1(x),~N_2(x)\colon[/math]


[math]\begin{aligned}N_1(x)&= f_2+f(x_2,x_3)\cdot (x-x_2)= 1+13\cdot(x-1)=13x-12.\\[2pt] N_2(x)&= f_2+ f(x_2,x_3)(x-x_2)+ f(x_2,x_3,x_4)(x-x_2)(x-x_3)=\\ &=13x-12+8(x-1)(x-3)= 8x^2-19x+12. \end{aligned}[/math]

Сравнивая [math]N_2(x)[/math] с соответствующим многочленом Лагранжа L_2(x) (см. пример 4.3), видим, что они совпадают. Это подтверждает единственность решения задачи о построении интерполяционного многочлена.


2. Вычислим значения [math]\Bigl.{N_1(x)}\Bigr|_{x=x_{\ast}},~ \Bigl.{N_2(x)}\Bigr|_{x= x_{\ast}}\colon[/math]


[math]N_1(2,\!5)= 13\cdot2,\!5-12=20,\qquad N_2(2,\!5)= 8\cdot2,\!5^2-19\cdot 2,\!5+12=14,\!5.[/math]

Итак, линейная интерполяция приводит к отличию от точного значения на [math]\left|\frac{20-15,\!625}{15,\!625}\right|\cdot 100\%=28\%[/math], а квадратичная — на [math]\left|\frac{14,\!5-15,\!625}{15,\!625}\right|\cdot 100\%=7\%[/math].


Таким образом, найдена фактическая погрешность, которая для квадратичной интерполяции получилась в 4 раза меньше.


3. Найдем априорную оценку погрешности линейной интерполяции на отрезке [math][x_2,x_3][/math] по формуле (4.23). Для этого необходимо сначала оценить производную [math]M_{2,i}[/math]. При этом, как и в реальных задачах, будем определять [math]f''(x)[/math] численным дифференцированием. С этой целью используем многочлен [math]N_2(x)\colon\, N'_2(x)=16x-9,~ N''_2(x)=16[/math]. Приближенно можно принять, что [math]M_{2,i}=16[/math]. Тогда получаем: [math]|R_1(x)|\leqslant \frac{2^2}{8}\cdot16=8[/math] или [math]\frac{8}{15,\!625}\cdot 100\%= 51,\!2\%[/math]. Заметим, что фактическая погрешность получилась примерно в два раза меньше априорной.


Пример 4.6. Для сеточной функции, заданной в примере 4.4, построить интерполяционные многочлены первой и второй степени для нахождения значений в точках


[math]x_{\ast 1}=2,\!5;\qquad x_{\ast 2}=4,\!5;\qquad x_{\ast 3}=3,\!5;\qquad x_{\ast 4}=5,\!5.[/math]

▼ Решение

Для подсчета значения функции в точке [math]x_{\ast 1}=2,\!5[/math] (согласно рис. 4.5,а) выбираем шаблон [math](x_0,x_1,x_2)= (2;3;4)[/math] для параболической интерполяции [math](i=0,~ k=2)[/math] и шаблон [math](x_0,x_1)= (2;3)[/math] Для линейной интерполяции [math](i=0,~ k=1)[/math]. Тогда по формуле (4.34) имеем


[math]\begin{gathered}N_1^{(I)}(q)= f_0+ \frac{\Delta f_0}{1!}\,q= 7+\frac{-2}{1}\,q=7-2q,\\[2pt] N_2^{(II)}(q)= N_1^{(I)}(q)+ \frac{\Delta^2f_0}{2!}\,q(q-1)= 7-2q+ \frac{5}{2}\,q(q-1)= \frac{5}{2}\,q^2-\frac{9}{2}\,q+7. \end{gathered}[/math]

где [math]q=\frac{x-2}{1}[/math] (см. табл. 4.9). В результате подстановки получаем


[math]N_1^{(I)}(x)=-2x+11;\qquad N_2^{(I)}(x)= \frac{5}{2}\,x^2-\frac{29}{2}\,x+26.[/math]

В заданной точке [math]N_1^{(I)}(2,\!5)=6;~ N_2^{(I)}(2,\!5)=5,\!375[/math].


Для подсчета значения в точке [math]x_{\ast 2}=4,\!5[/math] выбираем шаблон [math](3;4;5)= (x_1,x_2,x_3)[/math] для параболической интерполяции [math](i=1,~ k=2)[/math] и шаблон [math](4;5)=(x_2,x_3)[/math] для линейной интерполяции [math](i=2,~ k=1)[/math]. Тогда по формуле (4.35) имеем


[math]\begin{gathered}N_1^{(II)}(\widehat{q})= f_3+ \frac{\Delta f_2}{1!}\,\widehat{q}= 7+\frac{-1}{1}\,\widehat{q}= 7-\widehat{q},\\[2pt] N_2^{(II)}(\widehat{q})= N_1^{(II)}(\widehat{q})+ \frac{\Delta^2f_1}{2!}\, \widehat{q}(\widehat{q}+1)= 7-\widehat{q}+ \frac{-4}{2}\,\widehat{q} (\widehat{q}+1)=-2\widehat{q}^2-3\widehat{q}+7, \end{gathered}[/math]

где [math]\widehat{q}=\frac{x-x_3}{h}=x-5[/math]. В результате подстановки получаем


[math]N_1^{(II)}(x)=-x+12;\qquad N_2^{(II)}(x)=-2x^2+17x-28.[/math]

В заданной точке [math]N_1^{(II)}(4,\!5)=7,\!5;~ N_2^{(II)}(4,\!5)=8[/math].


Многочлен [math]N_1^{(II)}(x)[/math] можно использовать для экстраполяции, т.е. для подсчета функции в точке [math]x_{\ast 4}=5,\!5\colon\, N_2^{(II)}(5,\!5)=5[/math].


Чтобы подсчитать значения в точке [math]x_{\ast3}=3,\!5[/math], сначала выберем шаблон [math](3;4;5)=(x_1,x_2,x_3)[/math] для параболической интерполяции [math](i=1,~k=2)[/math] и шаблон [math](3;4)=(x_1,x_2)[/math] для линейной интерполяции [math](i=1,~ k=1)[/math]. Согласно рис. 4.5,б, применим формулу (4.33):


[math]\begin{gathered}N_1^{(I)}(q)= f_1+\frac{\Delta f_1}{1!}\,q= 5+\frac{3}{1}\,q=5+3q,\\[2pt] N_2^{(I)}(q)= N_1^{(I)}(q)+ \frac{\Delta^2f_1}{2!}\,q(q-1)= 5+3q+\frac{-4}{2}\,q(q-1)=-2q^2+5q+5, \end{gathered}[/math]

где [math]q=\frac{x-x_1}{h}=x-3[/math]. После подстановки получаем


[math]N_1^{(I)}(x)= 3x-4;~~ N_2^{(I)}(x)=-2x^2+17x-28[/math] и [math]N_1^{(I)}(3,\!5)= 6,\!5;~~ N_2^{(I)}(3,\!5)=7[/math].

Подсчитать значения в точке [math]x_{\ast3}=3,\!5[/math] (согласно рис. 4.5,б) можно, использовав шаблон [math](2;3;4)= (x_0,x_1,x_2)[/math] для параболической интерполяции [math](i=0,~ k=2)[/math] и шаблон [math](3;4)=(x_1,x_2)[/math] для линейной интерполяции [math](i=1,~ k=1)[/math]. По формуле (4.35) получаем


[math]\begin{gathered}N_1^{(II)}(\widehat{q})= f_2+ \frac{\Delta f_1}{1!}\,\widehat{q}= 8+\frac{3}{1}\,\widehat{q},\\[2pt] N_2^{(II)}(\widehat{q})= N_1^{(II)}(\widehat{q})+ \frac{\Delta^2 f_0}{2!}\,\widehat{q}= 8+\frac{3}{1}\,\widehat{q}(\widehat{q}+1)= \frac{5}{2}\,\widehat{q}^2+ \frac{11}{2}\,\widehat{q}+8. \end{gathered}[/math]

где [math]\widehat{q}=\frac{x-x_2}{h}=x-4[/math]. После подстановки


[math]N_1^{(II)}(x)=3x-4;~~ N_2^{(II)}(x)= \frac{5}{2}\,x^2-\frac{29}{2}\,x+26[/math] и [math]N_1^{(II)}(3,\!5)=6,\!5;~~ N_2^{(II)}(3,\!5)=5,\!875[/math].

Часовой пояс: UTC + 4 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2016 MathHelpPlanet.com. All rights reserved