Опубликован: 15.03.2007 | Уровень: специалист | Доступ: платный | ВУЗ: Донецкий национальный технический университет
Лекция 11:

Компьютерное моделирование при обработке опытных данных

Построение интерполяционного многочлена в явном виде

Для построения интерполяционного многочлена вида (11.2) необходимо определить его коэффициенты a0, a1, :, an, т.е. ai i=0,1,2,:,n. Количество неизвестных коэффициентов равно

n+1=N,

где

n-степень многочлена (11.2),

N-количество узловых точек табличной функции (11.1).

Для нахождения коэффициентов, используем свойство (11.3) интерполяционного многочлена (11.2). На основании этого свойства интерполяционный многочлен должен пройти через каждую узловую точку (xi, yi) таблицы (11.1), т.е.,

a_0x_i^n + a_1x_i^{n-1} + \ldots + a_{n-1}x_i + a_n = y_i, i=0,1,\ldots,n. ( 11.4)

Подставляя в (11.4) каждую узловую точку таблицы (11.1) получаем систему линейных уравнений:

\left\{ \begin{array}{l} 
a_0x_0^n + a_1x_0^{n-1} + \ldots + a_{n-1}x_0 + a_n = y_0,\\ 
a_0x_1^n + a_1x_1^{n-1} + \ldots + a_{n-1}x_1 + a_n = y_1,\\ 
\ldots \ldots \ldots \ldots \ldots \ldots\\ 
a_0x_n^n + a_1x_n^{n-1} + \ldots + a_{n-1}x_n + a_n = y_n. 
\end{array} \right. ( 11.5)

Неизвестными системы (11.5) являются a0, a1, a2, :, an т.е. коэффициенты многочлена (11.2). Коэффициенты при неизвестных системы (11.5) x_i^n, x_i^{n-1}, \ldots, x_i^0, i=0,1, \ldots,n,  i=0,1,:,n легко могут быть определены на основании данных таблицы (11.1).

Интерполяция по Лагранжу

Интерполяционный многочлен может быть построен при помощи специальных интерполяционных формул Лагранжа, Ньютона, Стерлинга, Бесселя и др.

Интерполяционный многочлен по формуле Лагранжа имеет вид:

L_n(x)=\frac{(x-x_1)(x-x_2)(x-x_3) \ldots \ldots (x-x_n)}{(x_0-x_1)(x_0-x_2)(x_0-x_3) \ldots (x_0-x_n)} \cdot y_0 +\\ 
+ \frac{(x-x_0)(x-x_2)(x-x_3) \ldots \ldots (x-x_n)}{(x_1-x_0)(x_1-x_2)(x_1-x_3) \ldots (x_1-x_n)} \cdot y_1 +\\ 
+ \frac{(x-x_0)(x-x_1)(x-x_3) \ldots \ldots (x-x_n)}{(x_2-x_0)(x_2-x_1)(x_2-x_3) \ldots (x_2-x_n)} \cdot y_2 + \ldots\\ 
+ \frac{(x-x_0)(x-x_1)(x-x_1) \ldots \ldots (x-x_{n-1})}{(x_n-x_0)(x_n-x_1)(x_n-x_1) \ldots (x_n-x_{n-1})} \cdot y_n. ( 11.6)

Докажем, что многочлен Лагранжа является интерполяционным многочленом, проходящим через все узловые точки, т.е. в узлах интерполирования xi выполняется условие Ln(xi) = yi. Для этого будем последовательно подставлять значения координат узловых точек таблицы (11.1) в многочлен (11.6). В результате получим:

если x=x0, то Ln(x0) = y0,

если x=x1, то Ln(x1) = y1,

:::::

если x=xn, то Ln(xn) = yn.

Это достигнуто за счет того, что в числителе каждой дроби при соответствующем значении уj, j=0,1,2,:,n отсутствует сомножитель (x-xi), в котором i=j, а знаменатель каждой дроби получен заменой переменной х на соответствующее значение хj.

Таким образом, интерполяционный многочлен Лагранжа приближает заданную табличную функцию, т.е. Ln(xi) = yi и мы можем использовать его в качестве вспомогательной функции для решения задач интерполирования, т.е. L_n(x_k) \approx y_k.

Чем больше узлов интерполирования на отрезке [x0,xn], тем точнее интерполяционный многочлен приближает заданную табличную функцию (11.1), т.е. тем точнее равенство:

f(x_k) \approx L_n(x_k).

Однако с увеличением числа узлов интерполирования возрастает степень интерполяционного многочлена n и в результате значительно возрастает объем вычислительной работы. Поэтому при большом числе узлов необходимо применять ЭВМ. В этом случае удобно находить значения функции в промежуточных точках, не получая многочлен в явном виде.

При решении задачи экстраполирования функции с помощью интерполяционного многочлена вычисление значения функции за пределами отрезка [x0,xn] обычно производят не далее, чем на один шаг h, равный наименьшей величине

\left|x_{i+1} - x_i\right|,
так как за пределами отрезка [x0,xn] погрешности, как правило, увеличиваются.

Программирование формулы Лагранжа

Свернем формулу Лагранжа (11.6). В результате получим

Ln(x) = \sum \limits_{j=0}^{n} B_j \cdot y_j,

где

B_j = \prod \limits_{i=0}^{n} \frac{x-x_i}{x_j-x_i},

но при этом обязательно выполнение условия i \neq j.

При построении алгоритма используют конструкцию из двух включенных циклов:

Внешним циклом накапливаем сумму L = \sum \limits_{j=0}^{n} B_j \cdot y_j.

Внутренним циклом накапливаем произведение B_j = \prod \limits_{i=0}^{n} \frac{x-x_i}{x_j-x_i}, i \neq j.

Алгоритм (рис.11.3) не предусматривает получение интерполяционного многочлена в явном виде, а сразу решает задачу интерполирования функции в заданной точке, x=D.

Обозначения в алгоритме:

n - степень интерполяционного многочлена Лагранжа (11.6), равная количеству узловых точек N минус один, т.е. n=N-1.

D - значение аргумента в точке, для которой решается задача интерполирования табличной функции (11.1).

L - значение многочлена (11.6).

Схема алгоритма интерполяции по Лагранжу

Рис. 11.3. Схема алгоритма интерполяции по Лагранжу
Равиль Султанов
Равиль Султанов

В уравнениях движения кривошипно-шатунного механизма вместо обозначения радиуса кривошипа "r" ошибочно записан символ "γ" (гамма).

P.S. Может быть это слишком очевидно, но не упомянуто, что угол поворота кривошипа φ считается малым.

Александр Никитин
Александр Никитин

Добрый день.

В расчете параметра Т4 xi суммируется с величиной h/2 ?

Yusupov Ozod
Yusupov Ozod
Узбекистан, Samar
Владимир Ленчицкий
Владимир Ленчицкий
Россия, Губкинский