Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы численного моделирования. Учебно-методическое пособие
.pdf
21
где к = 0, 1, …, n – номер узла интерполяции.
Или иначе:
где хi и yi – табличные значения аргумента и функции в i-м узле интерполяции.
Определитель этой системы в случае несовпадения узлов интерполяции не равен нулю. Таким образом, решение системы существует,
и оно единственно. А это значит, что с точностью до формы записи существует единственный интерполяционный многочлен Рn(х).
Интерполяционный полином в форме Лагранжа. Представим
многочлен в форме
.
Здесь li(x) – многочлены степени n, так называемые лагранжевы
многочлены влияния, удовлетворяющие условию
Это условие означает, что любой многочлен li(x) равен нулю при каж-
дом xj, кроме xi, т. е. х0, х1, …, х
i-1
, х
i+1
, …, хn – корни этого многочлена.
Следовательно, лагранжевы многочлены имеют вид
.
Так как по условию
, то
Тогда лагранжевы многочлены влияния запишутся в виде

22
а интерполяционный многочлен – в виде
.
Такой многочлен называется интерполяционным многочленом Лагранжа.
Приведем формулы линейной и квадратичной интерполяции по
Лагранжу:
Основные достоинства интерполяционного полинома в форме Лагранжа:
– число арифметических операций, необходимых для построения
многочлена Лагранжа, пропорционально n2 и является наименьшим для
всех форм записи;
– многочлен Лагранжа в явном виде содержит значения функций
в узлах интерполяции;
– многочлен Лагранжа применим как для равноотстоящих, так
и для неравноотстоящих узлов;
– многочлен Лагранжа особенно удобен, когда значения функции
меняются, а узлы интерполяции остаются неизменными, что имеет место во многих экспериментальных исследованиях.

23
К недостаткам этой формы записи можно отнести то, что с изменением числа узлов интерполяции приходится все вычисления производить заново.
От этого недостатка свободен интерполяционный полином
в форме Ньютона:
Формулы линейной и квадратичной интерполяции по многочлену
Ньютона имеют следующий вид:
Рассмотрим примеры.
Пример 1. Построить интерполяционный многочлен в форме Ла-
гранжа для функции, заданной таблично:
x 1 2 3 5 y 1 5 14
81
Пример 2. Функция задана таблично:
х 0 1 2 6 у -1
-3
3
1187
Пользуясь интерполяционным многочленом Лагранжа, найти ее
значение в точке х = 4.

24
Л а б о р а т о р н а я р а б о т а 2
И Н Т Е Р П О Л И Р О В А Н И Е С П О М О Щ ЬЮ
И Н Т Е Р П О Л Я Ц И О Н Н О Г О П О Л И Н О М А
В Ф О Р М Е Л А Г Р А Н Ж А
Цель работы: формирование навыков построения замещающей
функции в форме интерполяционного полинома Лагранжа.
Пусть функция задана таблично в точках х0, х1, …. хn. Необходимо
вычислить значение данной функции в некоторых точках х, отличных
от узлов интерполяции, используя интерполяционный полином в форме
Лагранжа.
1. Вычислить значение функции в заданной точке х в ячейках таб-
лицы Excel. Для удобства расчетов в таблице Excel преобразуем формулу полинома Лагранжа, домножив числитель и знаменатель на
(x – xi). Тогда будем иметь

25
1) На Листе1 создать таблицу в соответствии с представленным
образцом (рис. 3).
Рис. 3. Шаблон интерполирования по полиному Лагранжа
2) Заполнить таблицу:
– в ячейки В8:С12 ввести табличные значения функции в узлах интерполяции, в ячейки D7:H7 – узлы интерполяции, в ячейку А4 – значение х, в котором необходимо вычислить значение функции;
– в ячейку D8 занести формулу для вычисления (х – xi), затем скопировать формулу в диагональные ячейки (следить за адресацией!!!);
– в ячейку D9 занести формулу для вычисления (xi – xj), скопировать формулу в остальные ячейки диапазона D8:H12, за исключением
диагональных;
– в ячейку I8 занести формулу для вычисления ki, в ячейку J8 – для
вычисления fi/ki, скопировать в нужные ячейки;
– в ячейке I13 вычислить произведение диагональных элементов,
в ячейке J13 – сумму fi/ki для всех i = 0, …, n.
– в ячейке B4 вычислить значение f(x).
2. Составить программу для вычисления значения функции в за-
данной точке х:
1) На листе макроса ввести текст программы:
SUB Interpolirovanie()
DIM n, x, i, j, fx, P As Integer
n=… ‘ количество узлов интерполяции
x= WorkSheets(“Лист1”).Range(“…”).Value ‘точка, в которой
необходимо вычислить значение функции

26
REM объявление и заполнение массивов X и F, содержащих зна-
чения узлов интерполяции и табличных значений функции в узлах интерполяции
DIM x(n), f(n) As Integer
For i=0 to n
x(i)=WorkSheets(“Лист1”).Cells(i+…,2).Value
f(i)=… ‘ввод значения функции в i-м узле интерполяции из со-
ответствующей ячейки таблицы
Next
REM вычисление значения функции f(x) в переменной fx по фор-
муле Лагранжа
Fx = 0 ‘переменная, в которой будет накапливаться сумма
(см. формулу)
For i=0 to n
P = 1 ‘переменная для вычисления произведения
For j=0 to n
If j<>i then P=P*…
Next
Fx = fx +…WorkSheets(“Лист1”).Range(“…”).Value=fx ‘вывод
вычисленного значения f(x) в соответствующую ячейку таблицы
End Sub
2) Запустить программу, отладить ее в случае необходимости.
3) На Листе1 создать кнопку для запуска программы.
4) Вычислить значения функции, заданной таблично, в заданных
точках х в ячейках таблицы и по программе.
3. На Листе2 построить точечный график функции f(x) по узлам
интерполяции и точкам, в которых определялись значения функции.
Для этого на Листе 2 разместить значения х в узлах интерполяции и до-
полнительных точках в порядке возрастания, в соседнем столбце – соответствующие значения функции.
В а р и а н т ы з а д а н и й
1.
x
0,43
0,48
0,55
0,62
0,70
0,75
0,512
0,645
0,736
y
1,636
1,732
1,877
2,033
2,228
2,359
? ? ?
2.
x
0,02
0,08
0,12
0,17
0,23
0,30
0,102
0,154
0,203
y
1,023
1,095
1,147
1,215
1,301
1,409
? ? ?

27
3.
x
0,35
0,41
0,47
0,51
0,56
0,64
0,453
0,482
0,552
y
2,739
2,301
1,969
1,878
1,595
1,343
? ? ?
4.
x
0,41
0,46
0,52
0,60
0,65
0,72
0,478
0,537
0,673
y
2,739
2,301
1,969
1,878
1,595
1,343
? ? ?
5.
x
0,68
0,73
0,80
0,88
0,93
0,99
0,774
0,812
0,896
y
0,809
0,894
1,029
1,209
1,341
1,524
? ? ?
6.
x
0,11
0,15
0,21
0,29
0,35
0,40
0,186
0,275
0,332
y
9,054
6,612
4,692
3,351
2,739
2,365
? ? ?
7.
x
1,375
1,380
1,385
1,390
1,395
1,400
1,383
1,386
1,393
y
5,042
5,177
5,320
5,471
5,629
5,798
? ? ?
8.
x
0,115
0,120
0,125
0,130
0,135
0,140
0,123
0,128
0,132
y
8,657
8,293
7,958
7,649
7,362
7,096
? ? ?
9.
x
0,150
0,155
0,160
0,165
0,170
0,175
0,154
0,161
0,166
y
6,617
6,398
6,197
6,005
5,826
5,656
? ? ?
10.
x
0,05
0,10
0,17
0,25
0,30
0,36
0,082
0,245
0,327
y
0,050
0,100
0,172
0,255
0,309
0,376
? ? ?
11.
x
0,180
0,185
0,190
0,195
0,200
0,205
0,184
0,194
0,204
y
5,615
5,467
5,326
5,193
5,067
4,946
? ? ?
12.
x
0,210
0,215
0,220
0,225
0,230
0,235
0,212
0,223
0,234
y
4,832
4,723
4,619
4,519
4,424
4,333
? ? ?
Л а б о р а т о р н а я р а б о т а 3
И Н Т Е Р П О Л И Р О В А Н И Е С П О М О Щ ЬЮ
И Н Т Е Р П О Л Я Ц И О Н Н О Г О П О Л И Н О М А
В Ф О Р М Е Н Ь Ю Т О Н А
Цель работы: формирование навыков построения замещающей
функции в форме интерполяционного полинома Ньютона.

28
Пусть функция задана таблично в точках х0, х1, …. хn. Необходимо
вычислить значение данной функции в некоторых точках х, отличных
от узлов интерполяции, используя интерполяционный полином в форме
Ньютона.
Интерполяционный полином в форме Ньютона представляет собой иную форму записи интерполяционного полинома. Для работы
с полиномом в форме Лагранжа необходимо ввести понятие разделен-
ной разности. Разделенные разности нулевого порядка совпадают со
значениями функции в узлах интерполяции. Разделенные разности пер-
вого порядка определяются через разделенные разности нуле-
вого порядка:
Разделенные разности второго порядка определяются через разде-
ленные разности первого порядка:
Разделенная разность порядка n определяется соотношениями
Таким образом, для (n + 1)-й точки могут быть построены разделенные разности до n-го порядка. Разделенные разности более высоких
порядков равны нулю.
Интерполяционный полином в форме Ньютона записывается через разделенные разности и имеет вид
Достоинством интерполяционного полинома в форме Ньютона является то, что при добавлении новых узлов интерполяции первые члены
полинома Ньютона остаются неизменными.
1. Вычислить значение функции в заданной точке х в ячейках таб-
лицы Excel. При построении интерполяционного полинома Ньютона

29
удобно пользоваться таблицей, называемой таблицей разделенных разностей.
1) На Листе1 создать таблицу в соответствии с представленным
образцом (рис. 4):
Рис. 4. Шаблон интерполирования по полиному Ньютона
2) Заполнить таблицу:
– в ячейки A4, B8:B13, D8:D13 занести исходные данные;
– в ячейки С8, Е8:Н13 занести соответствующие формулы и скопировать их вниз в нужные ячейки (диапазон ячеек может быть иным
в зависимости от количества узлов интерполяции n);
– в ячейку В4 занести формулу интерполяционного полинома
Ньютона.
2. Составить программу для вычисления значения функции в за-
данной точке х:
1) На листе макроса ввести текст программы:
SUB nuton()
DIM n, i, j, k, m As Integer
DIM x, Pn, mnog As Singel
n=… ‘ количество узлов интерполяции - 1
x= WorkSheets(“Лист3”).Range(“…”).Value ‘точка, в которой
необходимо вычислить значение функции
REM объявление и заполнение одномерных массивов X и F, со-
держащих значения узлов интерполяции и табличных значений
функции в узлах интерполяции
DIM x(n), f(n) As Singel
For i=0 to n

30
x(i)= … ‘ввод значения аргумента в i-м узле интерполяции из
соответствующей ячейки таблицы
f(i)=… ‘ввод значения функции в i-м узле интерполяции из со-
ответствующей ячейки таблицы
Next
REM вычисление значения функции f(x) в переменной Pn по фор-
муле Ньютона
Pn=f(0) ‘переменная, в которой будет накапливаться сумма
(см. формулу)
mnog = 1 ‘переменная для накопления множителя, на который
умножается разделенная разность (см. формулу)
REM объявление и заполнение двумерного массива разделенных
разностей (rr); r(k,m) – разделенная разность порядка m для
k-го узла
DIM rr(n, n-1) as Singel
For k=0 to n
rr(k, 0) = f(k) ‘ разделенные разности нулевого порядка совпа-
дают со значениями функции в узлах
Next
For m= 1 to n
For k=0 to n-m
rr(k,m)=(rr(k,m-1)-rr(k+1,m-1))/(x(k)-x(k+m))
Next k
mnog=mnog*(x-x(m-1))
Pn=Pn+mnog*rr(0,m)
Next m
WorkSheets(“Лист3”).Range(“…”).Value=Pn ‘вывод вычислен-
ного значения полинома в соответствующую ячейку таблицы
End Sub
2) Запустить программу, отладить ее в случае необходимости.
3) На Листе 3 создать кнопку для запуска программы.
4) Вычислить значения функции, заданной таблично, в заданных
точках х в ячейках таблице и с помощью программы.
3. На Листе 3 построить точечный график функции f(x) по узлам
интерполяции и точкам, в которых определялись значения функции.
Для этого на Листе 3 разместить значения х в узлах интерполяции и до-
полнительных точках в порядке возрастания, в соседнем столбце – соответствующие значения функции.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
