logo
Компьютерная графика / МАШ_ГРАФИКА

§3. Интерполирование по однократным узлам. Интерполяционные многочлены Лагранжа и Ньютона

Рассмотрим случай, когда требуется обеспечить прохождение алгебраической кривой через заданные точки P0 (x0y0), P1 (x1 ,y1),...,Pn (xn,yn), (условия типа 1). На производные в данных точках никаких условий не накладывается. Узлы этого типа называют однократными, поскольку в них задано одно геометрическое условие. Такая задача на практике возникает в тех случаях, когда 1) требуется провести степенную кривую через набор точек либо 2) заменить функцию f ( х ) произвольного вида

51

степенной L(х) при заданных положениях узлов x0, x1 ,..., xn .

В математической форме задачу интерполирования по однократным узлам можно сформулировать следующим образом. В узлах xi , (i = 0,1 ,...,n; xi xj при i j) заданы значения у(xi)=уi. Требуется построить полином L(x) минимально возможной степени, для которого L( xi) = уi , (i = 0,1 ,...,n).

Решение задачи существует и единственно (доказатель-ство этого факта выходит за рамки курса), хотя сам много-член может быть представлен в разных видах. Наряду с каноническим представлением (2.5) в задаче интерпо-лирования по однократным узлам он может быть представ-лен в виде полиномов Лагранжа и Ньютона.

Так как общее число геометрических условий в задаче равно n+1, то искомый интерполяционный полином имеет степень не выше n (при этом число его неизвестных коэффициентов C0, C1, …, Cn равно n+1). Примеры, в которых степень полинома меньше расчётной, рассмотре-ны в §2.

Для дальнейшего анализа рассмотрим полином (х), принимающий нулевые значения только в узлах интерполирования x0, x1 ,..., xn и имеющий единичный коэффициент при старшей степени х. Его можно представить в виде :

(х)= (x-x0)*(x- x1)*...*(x- xn ).

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

При подстановке в производную узловой точки xi все слагаемые кроме i-го обнуляются и получается произве-дение, в котором отсутствует i-тый сомножитель:

( xi) = (xi -x0)*( xi - x1)*...*( xi - xi-1 )* (xi - xi+1)*…* (xi - xn).

52

Рассмотрим выражение

(х)/(x-xi)=(x -x0)*( x - x1)*...*( x - xi-1 )* (x - xi+1)*…* (x - xn).

Используя правило дифференцирования произведений, получим его производную в следующем виде:

В узле х=xi значение производной равно

Рассмотрим явное решение задачи интерполирования по однократным узлам. В основе его лежит использование функций Лагранжа Фi (x) (i = 0,1 ,...,n), которые выделяют соответствующий узел:

Построение каждой функции Фi (x) можно представить следующим образом. Полином, принимающий нулевые значения в узлах x0, x1,..., xi-1, xi+1,… xn и имеющий единич-ный коэффициент при старшей степени имеет вид:

(х)/(x-xi)=(x -x0)*(x -x1)*...*(x - xi-1 )* (x - xi+1)*…* (x - xn).

В узле х=xi значение его равно некоторой константе

( xi) = (xi -x0)*( xi - x1)*...*( xi - xi-1 )* (xi - xi+1)*…* (xi - xn),

которая в общем случае может принять любое значение (как по величине так и по знаку). Для того, чтобы искомая функция в узле х=xi стала равной единице, необходимо (х)/(x-xi) разделить на ( xi):

(2.9)

53

Полученные функции Лагранжа Фi (x) обладают всеми требуемыми свойствами. Интерполяционный многочлен Лагранжа имеет вид:

(2.10)

Выражение (2.10) в векторной форме можно представить как скалярное произведение:

L n (x)=(Ф(х),Y), (2.10а)

где Y=( y0 , y1 , . . . , yn) ; Ф(х)=(Ф0 (х) , Ф1 (х) , . . . , Фn (х) ).

Текст функции lag вычисления интерполяционного многочлена Лагранжа, а также отладочная программа представлены в Приложении.

Рассмотрим простейший случай интерполирования на отрезке [x0, x1]. В его граничных точках заданы по одному геометрическому условию: у(x0) = у0 , у(x1) = у1 . Наи-меньшая степень полинома S(x) равна единице. Явное решение для S(x) даёт следующий многочлен Лагранжа:

S(x)= у0 (x1 x)/(x1 -x0)+ у1 (x-x0) /(x1 -x0 ). (2.11 а)

В векторной форме:

S(x) = (Ф(x),Y);

Ф(x) = ( (x1x) / (x1 -x0), (x-x0) / (x1 -x0 )); Y= ( у0 , у1 ).

Переходя к безразмерной нормированной переменной t=(x-x0) / (x1 -x0 ), у которой t(x0)=0; t(x1)=1, получим более простые выражения для функций Лагранжа: Ф1 (t)=1-t; Ф2 (t) = t. Введём также векторT 1 степеней t порядка 1 и матрицу МЛ, задающую переход отT 1 к вектору значений функций Лагранжа1 (t); Ф2 (t)) :

54

При этом вектор значений функций Лагранжа и полином S(t) можно представить в виде :

Данное представление помогает унифицировать интер-поляцию кривой отрезком прямой на произвольном интервале и используется при сплайновом интерполи-ровании.

Рассмотрим иное представление интерполяционного мно-гочлена. Допустим, рассматривается задача интерпо-лирования некоторых значений у(xi)=уi на однократных узлах x0, x1 , ... , xn .

Определение. Разделёнными разностями (разностными отношениями) по узлам интерполирования x0, x1 ,..., xn порядка 1, 2, 3, …, n называются следующие величины

f(x1, x0) = (у1 - у0)/( x1 - x0 );

f(x2, x1, x0) = (f(x2, x1) - f(x1, x0))/( x2- x0 );

f(x3, x2, x1, x0) = (f(x3 ,x2, x1) - f(x2, x1, x0))/( x3- x0 );

. . .

f(xn, . . . , x0) = (f(xn , . . ., x1) - f(xn-1, . . ., x0))/( xn- x0 ).

C помощью разделённых разностей, которые являются некоторыми постоянными величинами, рассчитываемыми по значениям xi , уi ( i = 0,1 , ... ,n), многочлен можно представить в следующем виде:

LNn (x)= у0+( x - x0 ) f(x1, x0) + ( x- x0 )( x- x1 ) f(x2, x1, x0) + . . .+ (x - x0)(x- x1)*. . . * ( x - xn-1 ) f(xn, . . . , x0). (2.12)

55

Формула (2.12) называется интерполяционным много-членом Ньютона. У обоих полиномов порядок узлов в формулах может быть выбран любым способом.

Пример. На множестве однократных узлов x0 = - 1 ; x1 = 2; x2 =4 заданы значения функции у(x): у(x0) = у0 = - 2; у(x1) = у1 = 1; у(x2) = у2 = 5.

Построить:

  1. функции и многочлен Лагранжа,

  2. разделённые разности и многочлен Ньютона.

Решение. 1. Вспомогательный полином (х) имеет вид :

(х)= (x-x0)(x- x1)(x- x2 )= (x+1)(x-2)(x-4 ).

Функции Лагранжа строим по формуле (2.9):

Многочлен Лагранжа строим по формуле (2.10):

В векторной форме: L 2 (x)=(Ф(х),Y), гдеФ(х) = (Ф0(х) , Ф1 (х), Ф2(х))=

Y = ( y0 , y1 , y2) = ( -2 , 1 , 5).

2. Рассчитаем разделённые разности :

f(x1, x0) = (у1 - у0)/( x1 - x0 )=(1-(-2)) / (2-(-1)) = 1;

f(x2, x1) = (у2 - у1)/( x2 - x1 )=(5-1) / (4-2) = 2;

f(x2,x1,x0)=(f(x2, x1) - f(x1,x0))/(x2-x0)=(2–1) / (4-(-1)) = 1 / 5.

Многочлен Ньютона строим по формуле (2.12):

LN2 (x)= у0+( x - x0 ) f(x1, x0) + ( x- x0 )( x- x1 ) f(x2, x1, x0) =

- 2 +( x +1 ) + ( x +1 )( x- 2 ) / 5.

56

Правильность обоих многочленов можно проверить не-посредственной подстановкой в них значений x0 = - 1 ; x1 = 2 ; x2 =4.

Задачи.

1. Найти выражения для функций Лагранжа и построить полиномы Лагранжа для следующих случаев интерполи-рования по однократным узлам:

а) задача 1.в из §2,

б) n=2; х0 = 1 ; х1 = 2 ; х2 =3 ;

у(х0) = - 2 ; у (х1)= 1 ; у(х2) = - 4 ;

в) n=3; х0 = -1 ; х1 = 0 ; х2 =1 ; х3 = 2 ;

у(х0) = 10 ; у (х1) = 5 ; у(х2) = - 1 ; у(х3) = 1 .

2. Найти разделённые разности и построить интерполяционные полиномы Ньютона для геометрических условий из задач 1 а), 1 б), 1в).