Лабораторная работа № 3. Интерполирование и экстраполирование данных. Интерполяционный многочлен Ньютона

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

Интерполяционные многочлены Ньютона нужных степеней строятся по формулам (2.7.1) или (2.10.1) и (2.10.2).

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

0.35 0.41 0.47 0.51 0.56 0.64
2.73951 2.30080 1.96464 1.78776 1.59502 1.34310

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

, ,

.

Запишем получаемые конечные разности в виде таблицы, однако, в целях экономии места, не будем писать разности между строк и . Тогда получим

0.35 2.73951 -7.311833 14.243057 -15.227431 -102.232694 825.705728
0.41 2.30080 -5.602667 11.806667 -36.696296 137.221967  
0.47 1.96464 -4.422000 6.302222 -5.135244    
0.51 1.78776 -3.854800 5.429231      
0.56 1.59502 -3.149000        
0.64 1.34310          

Далее по формуле (2.7.1) вычисляем

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

Задание № 1. Построить интерполяционный многочлен Ньютона по неравноотстоящей сетке узлов и найти приближенное значение интерполируемой функции при значении аргумента .

I.

№ варианта
  0.154 0.05 4.4817
  0.257 0.19 4.9530
  0.291 0.21 5.4739
  0.335 0.27 6.0496
  0.367 0.32 6.6859
  0.412 0.34 7.3891
    0.39 8.1662
    0.45 9.0250

II.

№ варианта
  0.015 0.01 9.9182
  0.195 0.11 9.5194
  0.137 0.16 9.1365
  0.245 0.23 8.8769
  0.385 0.28 8.4164
  0.478 0.39 8.0779
    0.46 7.7530
    0.50 7.4412

III.

№ варианта
  1.330 1.30 4.7556
  1.455 1.45 5.3533
  1.813 1.65 6.4552
  2.290 1.90 7.5618
  2.750 2.40 8.6734
  3.040 2.55 9.7904
    2.80 10.9131
    3.20 12.0419

IV.

№ варианта
  3.905 3.50 33.1154
  4.110 4.55 34.8133
  5.995 5.60 36.5982
  7.213 6.20 38.4747
  9.115 7.75 40.4473
  10.050 8.80 42.5211
    9.45 44.7012
    10.95 46.9931

V.

№ варианта
  1.090 1.01 12.6183
  1.250 1.08 12.7644
  1.275 1.11 12.9122
  1.316 1.21 13.0617
  1.488 1.26 13.2130
  1.343 1.33 13.3660
    1.46 13.5207
    1.51 13.8357

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

Пример. Используя интерполяционную формулу Ньютона с конечными разностями для интерполяции вперед и назад, вычислить значения функции при данных значениях аргумента

0.45 0.46 0.47 0.48 0.49 0.50
20.1946 19.6133 18.9425 18.1746 17.3010 16.3123
0.51 0.52 0.53 0.54 0.55 0.56
15.1984 13.9484 12.5508 10.9937 9.2647 7.3510

Составим таблицу конечных разностей. Ограничимся при этом разностями четвертого порядка, так как они практически постоянны. Для вычисления значения функции при воспользуемся формулой Ньютона для интерполяции вперед (2.10.1). При этом разности из таблицы лучше всего брать стоящие по той диагонали, которая ближе всего расположена к . В таблице разностей эта диагональ подчеркнута. Тогда и

с точностью

0.45 20.1946        
    -0.5813      
0.46 19.6133   -0.0895    
    -0.6708   -0.0076  
0.47 18.9425   -0.0971   -0.0010
    -0.7679   -0.0086  
0.48 18.1746   -0.1057   -0.0008
    -0.8736   -0.0094  
0.49 17.3010   -0.1151   -0.0007
    -0.9887   -0.0101  
0.50 16.3123   -0.1252   -0.0008
    -1.1139   -0.0109  
0.51 15.1984   -0.1361   -0.0006
    -1.2500   -0.0115  
0.52 13.9484   -0.1476   -0.0004
    -1.3976   -0.0119  
0.53 12.5508   -0.1595   -0.0005
    -1.5571   -0.0124  
0.54 10.9937   -0.1719   -0.0004
    -1.7290   -0.0128  
0.55 9.2647   -0.1847    
    -1.9137      
0.56 7.3510        

Аналогично, для Воспользуемся формулой (2.10.2) для интерполяции назад:

с той же точностью, что и в предыдущей формуле.

Задание № 2. Вычислить приближенное значение функции по интерполяционной формуле Ньютона для интерполяции вперед или назад.

I.

№ варианта
  4.413 4.35 16.3597
  6.085 4.60 17.7334
  5.218 4.85 18.7686
  6.480 5.10 20.0334
  4.390 5.35 22.2846
  6.020 5.60 23.5973
    5.85 25.0811
    6.10 26.5278
    6.35 28.3944
    6.60 29.9902

II.

№ варианта
  1.210 1.15 66.1659
  4.680 1.55 63.9989
  2.000 1.95 61.9658
  3.870 2.35 60.0551
  2.411 2.75 58.2558
  3.275 3.15 56.5583
    3.55 54.6807
    3.95 52.7220
    4.35 50.5229
    4.75 48.1091

III.

№ варианта
  0.105 0.10 1.2618
  0.121 0.16 1.2764
  0.625 0.22 1.2912
  0.438 0.28 1.3062
  0.534 0.34 1.3213
  0.229 0.40 1.3366
    0.46 1.3521
    0.52 1.3677
    0.58 1.3836
    0.64 1.3995

IV.

№ варианта
  1.871 1.350 4.2556
  1.369 1.355 4.3533
  1.382 1.360 4.4552
  1.394 1.365 4.5618
  1.354 1.370 4.6734
  1.362 1.375 4.7904
    1.380 4.9131
    1.385 5.0419
    1.390 5.1778
    1.395 5.3202

V.

№ варианта
  1.285 1.20 10.6044
  1.211 1.21 11.3276
  1.272 1.22 11.9671
  1.228 1.23 12.5324
  1.263 1.24 13.0328
  1.237 1.25 13.4776
    1.26 13.8759
    1.27 14.2367
    1.28 14.5688
    1.29 14.8809

Приступим к решению в пакете Mathcad заданий этой лабораторной работы. Решим уже разобранную задачу первого примера. Построить матрицу разделенных разностей можно быстро и легко с помощью дискретного аргумента. Введем с клавиатуры

Если теперь набрать , то на экран выведется точно такая же таблица, что и полученная нами в первом примере этой лабораторной работы.

Получить аналитический вид многочлена можно с помощью меню Symbolics (Символьные выражения) – Simplify (Упростить), набирая по формуле (2.7.1) числовые значения коэффициентов из матрицы :

В Mathcad длинный оператор, не помещающийся в одну строку на странице, можно перенести в следующую строку, нажав . Это проделано в предыдущем операторе. Аналогично

Значение функции в требуемой точке вычисляется обращением к соответствующей подпрограмме:

Эту же задачу можно решить средствами программирования пакета Mathcad. В среде Mathcad потребность в программировании ощущается не только для расширения и совершенствования базового набора математических инструментов, но и в учебных целях. Пакет содержит одиннадцать функций экстраполяции и интерполяции, в частности линейную интерполяцию (linterp) и интерполяцию сплайнами (cspline, pspline, lspline). Полиномиальная интерполяция осуществляется функциями polint и polin2, однако они не являются встроенными и становятся таковыми лишь после подгрузки соответствующего электронного учебника.

Составим поэтому программу, вычисляющую интерполяционный многочлен Ньютона по разделенным разностям. Эту задачу удобно разбить на три части: а) составление таблицы разделенных разностей; б) вычисление коэффициентов функции в формуле (2.7.1) и
в) вычисление самого многочлена

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

 
 

Здесь и - вектора аргумента и функции, число узлов заданной сетки. После обращения к данной подпрограмме

 
 

можно еще раз напечатать полученную матрицу, набрав . Эта таблица будет опять точно такой же, как и в первом примере.

Нахождение коэффициентов функции , включая раскрытие скобок и приведение подобных членов, - задача значительно более трудная. Без сомнения, можно предложить несколько вариантов этой подпрограммы, которые будут длиннее или короче друг друга в зависимости от выбранного алгоритма. Один из вариантов может быть, например, таким:

 
 

Подпрограмма выдает матрицу , в которой по строкам записаны коэффициенты всех функций от первой степени до степени , причем коэффициенты расположены начиная со старшей степени аргумента. Последняя подпрограмма реализует формулу (2.7.1) и выдает вектор коэффициентов интерполяционного многочлена Ньютона степени

Можно проверить правильность предыдущих вычислений, набрав

.

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

Структура формулы (2.10.1) позволяет при вычислении произведений вида использовать уже готовую функцию . Действительно, и так далее.

Подпрограмма, реализующая формулу Ньютона для интерполяции вперед, может быть, например, такой:

При написании этой подпрограммы использовались операторы break – выхода из текущего цикла и операции отношения >,<. Операции отношения берутся из панели равенств и отношений (Evaluation and Boolean Palette), которую открывает кнопка.

Эта панель имеет вид

Щелчком по кнопкам этой панели в рабочий документ вставляются соответствующие знаки отношений и т.п.

В список параметров новой подпрограммы включен параметр - заданная точность вычислений. Это связано с тем, что конечные разности в отличие от разделенных быстро убывают, особенно для достаточно гладких функций. Если задать очень высокую степень аргумента, то в формуле (2.10.1) будет использована конечная разность соответствующей степени, которая может быть очень маленькой, меньше заданной точности . При малых шагах сетки быстро накапливаются большие ошибки, которые могут совершенно исказить конечный результат. Поэтому в подпрограмме анализируется таблица конечных разностей по заданной точности и соответственно уменьшается степень интерполяционного многочлена.

Введем с клавиатуры

Таким образом, восстановлен только многочлен третьей степени (по заданной точности ), который имеет вид

.

Это многочлен для интерполяции вперед, его можно употреблять для нахождения приближенных значений функции в верхней половине таблицы конечных разностей Например, . Аналогичную формулу для интерполяции назад можно легко получить на основе приведенного материала. Желающие могут проделать это самостоятельно.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: