- •Кафедра «Теоретическая механика»
- •Лабораторная работа №7
- •ИНТЕРПОЛЯЦИЯ И ПРЕДСКАЗАНИЕ
- •Теоретические сведения
- •Задания к лабораторной работе
- •Лабораторная работа № 8
- •Теоретические сведения
- •Задания к лабораторной работе
- •Лабораторная работа № 9.
- •Теоретические сведения.
- •Задания к лабораторной работе
- •Лабораторная работа № 10
- •Теоретические сведения
- •Задания к лабораторной работе
- •Лабораторная работа №11
- •МЕТОД ДИФФЕРЕНЦИАЛЬНОЙ ПРОГОНКИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ КОШИ ДЛЯ ОДУ 2-ГО ПОРЯДКА
- •Теоретические сведения
- •Задания к лабораторной работе
- •Лабораторная работа № 12
- •МЕТОД СЕТОК РЕШЕНИЯ СМЕШАННОЙ ЗАДАЧИ ДЛЯ УРАВНЕНИЙ ГИПЕРБОЛИЧЕСКОГО ТИПА
- •Теоретические сведения
- •Задания к лабораторной работе
- •Лабораторная работа № 13
- •МЕТОД КОНЕЧНЫХ ЭЛЕМЕНТОВ.
- •Теоретические сведения
- •Задания к лабораторной работе
Лабораторная работа №7
ИНТЕРПОЛЯЦИЯ И ПРЕДСКАЗАНИЕ
Цель: определение значений функций с помощью интерполяционных многочленов Лагранжа и Ньютона.
Теоретические сведения
Простейшая задача интерполяции заключается в следующем. Для заданных n +1 точек xi = x0 , x1 ,..., xn , которые назы-
ваются узлами интерполяции, и значений в этих точках некоторой функции f (xi ) = y0 , y1 ,..., yn построить полином ϕ(x)
(интерполяционный полином) степени n вида
ϕ(x) = a |
n |
xn |
+ a |
n−1 |
xn−1 + |
... + a x + a |
0 |
, |
(7.1) |
|
|
|
|
1 |
|
|
|||
принимающий в узлах xi |
те же значения |
yi , что и функция |
|||||||
f (xi ) : |
|
|
|
|
|
|
|
|
|
ϕ(x0 ) = y0 , |
ϕ(x1 ) = y1 , |
... ,ϕ(xn ) = yn , |
i =1,..., n . (7.2) |
||||||
Для каждого набора точек имеется только один интерполяционный многочлен, степени не больше n. Однозначно определенный многочлен может бытьпредставлен в различных видах. Рассмотрим интерполяционный многочлены Ньютона и Лагранжа.
Необходимость интерполяции функций в основном связана
сдвумя причинами:
1)функция f (x) имеет сложное аналитическое описание,
вызывающее определенные трудности при его использовании (например, f (x) является спецфункцией: гамма-функцией,
эллиптической функцией и др.);
2) аналитическое описание функции f (x) неизвестно, т.е. f (x) задана таблично. При этом необходимо иметь аналити-
ческое описание приближенно представляющее f (x) (например, для вычисления значений f (x) в произвольных точках, определения интегралов и производных от f (x) и т.п.).
Глобальная интерполяция.
Простейшим видом глобальной интерполяции является параболическая интерполяция, когда используются выше описанные условия (7.2), для отыскания неизвестных n +1 коэф-
фициентов a0 , a1 ,..., an выражения (7.1) получают систему из
n +1 уравнений: |
|
|
|
|
|
|
|
|
|
|
|
|
|||
a |
n |
x |
n + a |
n−1 |
x |
n−1 + ... + a x |
|
+ a |
|
= y |
|
, |
|
||
|
0 |
|
|
0 |
1 0 |
0 |
0 |
|
|
|
|||||
a |
n |
x n + a |
|
x n−1 + ... + a x |
+ a |
= y , |
|
|
|
||||||
|
1 |
|
n−1 1 |
1 1 |
|
0 |
|
1 |
|
|
|
(3) |
|||
.... |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
|
x |
n + a |
n−1 |
x |
n−1 + ... + a x |
n |
+ a |
|
= y |
n |
. |
|
||
|
n n |
|
|
n |
1 |
0 |
|
|
|
||||||
Формула Лагранжа является наиболее общей, может применяться к таким узлам интерполяции, что расстояние между соседними узлами – не постоянная величина:
n |
(x − x |
0 |
)(x − x |
|
)...(x |
− x |
i−1 |
)(x |
− x |
i+1 |
)...(x − x |
n |
) |
|
|
||||||||||||||
Ln (x) = ∑ |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yi .(7.4) |
|||||||
(x |
i |
− x |
0 |
)(x |
i |
− x |
)...(x |
i |
− x |
i−1 |
)(x |
i |
− x |
i+1 |
)...(x |
i |
− x |
n |
) |
||||||||||
i=0 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
Построение интерполяционного многочлена в форме Ньютона применяется главным образом для функций, заданных таблично с равноотстоящими значениями аргумента
( hi = xi+1 − xi = const) . Введем предварительно понятие конечных разностей:
yi |
= yi+1 − yi , |
(i = 0,1,..., n −1) |
|||
2 yi |
= yi+1 |
− |
yi |
, |
(i = 0,1,..., n − 2) |
k yi = |
k −1 yi+1 |
− |
k −1 yi , |
(i = 0,1,..., n − k) |
|
4
С учетом введенных обозначений, первая интерполяционная
формула Ньютона имеет вид t = |
x − x0 |
, |
|
|
|||||
h |
|
||||||||
|
|
|
|
|
|
|
|
||
|
|
|
|
Pn1(x) = Pn1(x0 + th) = y0 + t y0 + |
|
||||
+ t(t −1) |
2 y |
+ ... + t(t −1)...(t − n +1) n y . |
(7.5) |
||||||
2! |
|
0 |
|
n! |
0 |
|
|
||
|
|
|
|
|
|
||||
Вторая интерполяционная формула имеет вид t = |
x − xn |
, |
|||||||
h |
|||||||||
|
|
|
|
|
|
|
|
||
|
|
|
Pn2 (x) = Pn2 (xn + th) = yn + t yn−1 + |
|
|||||
+ t(t −1) |
2 y |
n−2 |
+ ... + t(t −1)...(t − n +1) |
n y . |
(7.6) |
||||
2! |
|
n! |
0 |
|
|
||||
|
|
|
|
|
|
||||
Формулу (7.5) удобно использовать, если точка находится вблизи начала таблицы, а формулу (7.6) – если точка находится вблизи конца таблицы.
Однако интерполяция при большом числе узлов приводит к необходимости работать с многочленами высокой степени, что неприемлемо как с точки зрения вычислений, так и из-за склонности таких многочленов к осцилляции (колебаниям) между узлами сетки. Поэтому на практике часто используют интерполяцию кусочными многочленами (или локальную интерполяцию).
Локальная интерполяция
При большом количестве узлов интерполяции сильно возрастает степень интерполяционных многочленов, что делает их неудобными для проведения вычислений.
5
Высокой степени многочленов можно избежать, разбив отрезок интерполирования на несколько частей, с построением в каждой части своего интерполяционного полинома. Такой метод называется интерполяцией сплайнами. Наиболее распространен-
ным является построение на каждом отрезке [xi , xi+1], i = 0,..., n −1 кубической функции. При этом сплайн– кусочная
функция, на каждом отрезке заданная кубической функцией, является кусочно-непрерывной вместе со своими первой и второй производной.
Полиномиальная интерполяция
и аппроксимация средствами Mathematica
Для решения задач интерполяции и аппроксимации функций, заданных рядом узловых точек, в Mathematica используются следующие функции:
1)InterpolatingFunction[range, table] возвращает интерпо-
лирующую функцию, позволяющую вычислять промежуточные значения в заданном диапазоне range для таблицы table;
2)InterpolatingPolynomial[data, var] возвращает полином
(степенной многочлен) по переменной var, значения которого в узловых точках точно совпадают с данными из списка data. Он может иметь форму {{x1,f1},{x2,f2},…} или {f1,f2,…}(во втором случае xi принимают значения 1,2,…). Вместо fi может быть список {fi, dfi, ddfi,…}, указывающий значения производных в точках xi;
3) Interpolation[data] конструирует объект InterpolatingFunction.
InterpolationOrder – опция функции Interpolation, указы-
вающая степень подходящего полинома. При ее значении, равном 1б, осуществляется кусочно-линейная интерполяция. Целое значение, большее единицы, задает степень глобальной полиномиальной интерполяции.
6
Рис. 7.1. Вычисление промежуточных значений функции
SplineFit[points, type] – функция пакета NumericalMath`SplineFit`, позволяющая производить интерполяцию сплайнами. Type может принимать значения Сubic, Bezier и
CompositeBezier.
Рис. 7.2. Интерполяция сплайнами в Mathematica
7
