Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы численного моделирования. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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 разместить значения х в узлах интерполяции и до- полнительных точках в порядке возрастания, в соседнем столбце – со­ответствующие значения функции.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]