Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Темы_1_2_СЛАУ_и_Интерполяция_Inf-2.pdf
Скачиваний:
115
Добавлен:
29.03.2015
Размер:
500.98 Кб
Скачать

Лекция 1 3-й семестр

 

 

Рис.4. Вектор коэффициентов

 

 

канонического полинома

Рис.3 Обратная матрица системы уравнений

О правильности ввода формулы свидетельствует получение в

ячейке Yканонич(0) значения, совпадающего со значением в ячейке Yлин(0). При протягивании формулы, записанной в ячейку Yканонич(0), должны также совпасть и значения Yканонич(i), соответствующие

узловым точкам исходной таблицы (см. рис.5).

Рис. 5. Диаграммы, построенные по таблицам линейной и канонической интерполяции

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

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

Предложенный Лагранжем алгоритм построения интерполирующих функций по таблицам (1) предусматривает построение интерполяционного многочлена Ln(x) в виде

Ln ( x) = l0 ( x) + l1 ( x) +... + ln ( x)

(11)

7

Любимов Е.Б.

Лекция 1 3-й семестр

где li(x) - многочлен степени n, для которого выполняются условия

Y

, если i = k,

(12)

li (xk ) = i

если i k.

0,

 

Очевидно, что выполнение для (10) условий (11) определяет

выполнение условий (2) постановки задачи интерполяции.

 

Многочлены li(x) записываются следующим образом

 

li(x)= qi(x-x0)(x-x1)·…·(x-xi-1)(x-xi+1) … (x-xn).

(13)

Здесь qj - константа, значение которой определяется с учётом (12) как

qi =

Yi

, (i = 0,1,2,..., n)

(14)

( xi x0 )...( xi xi1 )( xi xi+1 )...( xi xn )

Отметим, что ни один множитель в знаменателе формулы (14) не равен нулю. Вычислив значения констант сi, можно использовать их для вычисления значений интерполируемой функции в заданных точках.

Формула интерполяционного многочлена Лагранжа (11) с учётом формул (13) и (14) может быть записана в виде

Ln ( x) = n

qi ( x x0 )( x x1 ) K( x xi1 )( x xi +1 ) K( x xn )

(15)

i=0

2.4.1.Организация ручных вычислений по формуле Лагранжа

Непосредственное применение формулы Лагранжа приводит к большому числу однотипных вычислений. Для таблиц небольшой размерности эти вычисления могут быть выполнены как вручную, так и в среде программ Microsoft Excel или OpenOffice.org Calc.

На первом этапе рассмотрим алгоритм вычислений, выполняемых вручную. В дальнейшем эти же вычисления следует повторить в среде Microsoft Excel или OpenOffice.org Calc.

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

Рис.6. Таблица, содержащая исходные данные для четырёх узлов интерполируемой функции

Втретий столбец таблицы запишем вычисляемые по формулам

(14)значения коэффициентов qi. Ниже приведена запись этих формул для n=3.

q0=Y0/(x0-x1)/(x0-x2)/(x0-x3)

q1=Y1/(x1-x0)/(x1-x2)/(x1-x3) (16) q2=Y2/(x2-x0)/(x2-x1)/(x2-x3) q3=Y3/(x3-x0)/(x3-x1)/(x3-x2)

8

Любимов Е.Б.

Лекция 1 3-й семестр

Следующим шагом в реализации ручных вычисления являются вычисления значений li(x) (j=0,1,2,3), выполняемые по формулам (13).

Запишем эти формулы для рассматриваемого нами варианта таблицы с четырьмя узлами:

l0(x)= q0(x-x1)·(x-x2)·(x-x3),

l1(x)= q1(x-x0)·(x-x2)·(x-x3), (17) l2(x)= q2(x-x0)·(x-x1)·(x-x3),

l3(x)= q3(x-x0)·(x-x1)·(x-x2).

Для получения аналитической формулы полинома Лагранжа можно перемножить одночлены в формулах (17) и сгруппировать члены по степеням аргумента х. В результате получим следующие выражения:

l0(x)=q0[x3-(x1+x2+x3)x2+(x1x2+x1x3+x2x3)x-x1x2x3] l1(x)=q1[x3-(x0+x2+x3)x2+(x0x2+x0x3+x2x3)x-x0x2x3] l2(x)=q2[x3-(x0+x1+x3)x2+(x0x1+x0x3+x1x3)x-x0x1x3] l3(x)=q3[x3-(x0+x1+x2)x2+(x0x1+x0x2+x1x2)x-x0x1x2]

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

L(x)=[q0+q1+q2+q3] x3 -

[q0(x1+x2+x3)+q1(x0+x2+x3)+q2(x0+x1+x3)+q3(x0+x1+x2)]x2 + [q0(x1x2+x1x3+x2x3)+q1(x0x2+x0x3+x2x3) + q2(x0x1+x0x3+x1x3)+q3(x0x1+x0x2+x1x2)] x - (q0x1x2x3+q1x0x2x3+q2 x0x1x3+q3 x0x1x2)

Вычислим значения многочленов li(xj) (j=0,1,2,3) и запишем их в ячейки таблицы. Значения функции Yрасч(x), согласно формуле (11) будут получены в результате суммирования значений li(xj) по строкам.

Формат таблицы, включающей столбцы вычисленных значений li(xj) и столбец значений Yрасч(x), показан на рис.8.

Рис. 8. Таблица с результатами ручных вычислений, выполненных по формулам (16), (17) и (11) для всех значений аргумента xi

9

Любимов Е.Б.

Лекция 1 3-й семестр

Выполнив формирование таблицы, приведённой на рис. 8, по формулам (17) и (11) можно вычислить значение интерполируемой функции для любого значения аргумента Х. Например, для Х=1 вычисляем значения li(1) (i=0,1,2,3):

l0(1)= 0,7763; l1(1)= 3,5889; l2(1)= -1,5155; l3(1)= 0,2966.

Суммируя значения li(1) получим значение Yинтерп(1)=3,1463.

2.4.2. Реализация алгоритма интерполяции по формулам Лагранжа в среде программы Microsoft Excel

Реализация алгоритма интерполяции начинается, как и при ручных вычислениях с записи формул для вычисления коэффициентов qi На рис. 9 приведена столбцы таблицы с заданными значениями аргумента, интерполируемой функции и коэффициентов qi. Справа от этой таблицы приведены формулы, записываемые в ячейки столбца С для вычисления значений коэффициентов qi.

в С2: "=B2/((A2-A3)*(A2-A4)*(A2-A5))" Æ q0 в С3: "=B3/((A3-A4)*(A3-A5)*(A3-A2))" Æ q1 в С4: "=B4/((A4-A5)*(A4-A2)*(A4-A3))" Æ q2 в С5: "=B5/((A5-A2)*(A5-A3)*(A5-A4))" Æ q3

Рис. 9 Таблица коэффициентов qi и вычислительные формулы

После ввода формулы q0 в ячейку С2 она протягивается по ячейкам от С3 до С5. После чего формулы в этих ячейках корректируются в соответствии с (16) к виду, приведённому на рис. 9.

Реализуя формулы (17), запишем формулы для вычисления значений li(x) (i=0,1,2,3) в ячейки столбцов D, E, F и G. В ячейку D2 для вычисления значения l0(x0) запишем формулу:

=$C$2*($A2-$A$3)*($A2-$A$4)*($A2-$A$5),

здесь $C$2 - абсолютная ссылка на ячейку со значением q0, $A2 - ссылка на ячейку, в которую записано значение x0. Протянув эту формулу по столбцу, получим значения l0 (xi) (i=0,1,2,3).

Формат ссылки $A2 позволяет протянуть формулу по столбцам E, F, G для формирования вычислительных формул для вычисления li(x0) (i=1,2,3). При протягивании формулы по строке индекс столбца аргумента х не меняется. Для вычисления li(x0) (i=1,2,3) после протягивания формулы l0(x0) необходимо выполнить их корректировку по формулам (17).

10

Любимов Е.Б.

Лекция 1 3-й семестр

В столбце Н поместим формулы Excel для суммирования li(x) по формуле (11) алгоритма.

На рис. 10 показана таблица, реализованная в среде программы Microsoft Excel. Признаком правильности записанных в ячейки таблицы формул и выполненных вычислительных операций являются полученная диагональная матрица li(xj) (i=0,1,2,3), (j=0,1,2,3), повторяющая результаты, приведённые на рис. 8, и столбец значений Yрасч(xi), совпадающих со значениями интерполируемой функции в узлах исходной таблицы.

Рис. 10. Таблица значений li(xj) (j=0,1,2,3) и Yрасч(xj)

Для вычисления значений в некоторых промежуточных точках достаточно в ячейки столбца А, начиная с ячейки А6, ввести значения аргумента Х, для которых требуется определить значения интерполируемой функции. Выделить в последней (5-й) строке

таблицы ячейки от l0(xn) до Yрасч(xn) и протянуть формулы, записанные в выделенных ячейках до строки, содержащей последнее

заданное значение аргумента х.

На рис. 11 приведена таблица, в которой выполнены вычисления значения функции в трёх точках: х=1, х=2 и х=3. В таблицу введён дополнительный столбец с номерами строк таблицы исходных данных.

Рис. 11. Вычисление значений интерполируемых функции по формулам Лагранжа

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

11

Любимов Е.Б.