Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы научных вычислений. Введение в численные методы для физиков и инженеров
.pdf
7.1. Интерполяция 201
на каждом интервале [xn,x
s
n
(x)=
x
n+1
1
− x
n
[yn(x
] следующую форму:
n+1
− x)+y
n+1
n+1
(x − xn)] ,x∈ [xn,x
n+1
] .
Такой подход имеет свой недостаток: интерполяционная функция,
в общем, недифференцируема на концах интервалов, так как она имеет
изгиб в этих точках. Однако физические данные обычно представляются
в виде гладких функций, поэтому интерполяционная функция должна
быть непрерывно дифференцируемой.
Наиболее популярный метод кусочно-полиномиальной интерполяции использует кубические полиномы на каждом интервале [x
n,xn+1
и носит название интерполяции кубическими сплайнами (или просто,
сплайн интерполяции). Термин «сплайн» происходит от названия тонкой
деревянной или металлической полоски, которая использовалась чертёжниками для того, чтобы провести гладкую кривую через заданные
точки. Так как малое смещение w тонкой упругой полоски определяется
уравнением четвёртого порядка d
4
w/dx4=0, то кубический полином
действительно моделирует сплайн чертёжника.
Интерполяционная сплайн-функция s(x) есть объединение кубических полиномов s
вале [x
n,xn+1
s
(x)=an+ bn(x − xn)+cn(x − xn)2+ dn(x − xn)3. (7.9)
n
Для того чтобы определить коэффициенты полиномов s
(x): s(x)=∪sn(x), определённых на каждом интер-
n
] и имеющих следующий вид:
(x),зада-
n
дим следующие условия:
]
1) s
)=yn, n =0,...,N − 1 и s
n(xn
2) непрерывность функции s(x): s
N−1(xN
n−1(xn
)=yN;
)=sn(xn), n =0,...,N − 1;
3) непрерывность первых производных функции s(x):
ds
n−1
dx
(x
n
)=
ds
dx
n
(x
),n=1,..., N − 1;
n
4) непрерывность вторых производных функции s(x):
2
d
s
n−1
(xn)=
2
dx
2
d
s
n
(xn),n=1,..., N − 1;
2
dx

202 Глава 7
5) некоторые граничные условия, например:
d
dx
2
s
0
(x0)=
2
2
d
s
N−1
(xN)=0.
2
dx
Эти условия приводят к системе линейных уравнений для коэффициентов c
кубического полинома (7.9):
n
c
0
Δx
n−1cn−1
=
+2(Δxn+Δx
3
(y
n+1
Δx
n
− yn) −
=0,
Δx
n−1)cn
3
n−1
+Δxnc
(yn− y
n−1
n+1
),
=
n =1,...,N − 1,
c
=0,
N
где Δx
= x
n
− xn. Матрица коэффициентов этой системы является
n+1
трёхдиагональной и обладает свойством диагонального преобладания.
Поэтому для решения этой системы можно использовать, например, метод прогонки (смотри параграф 2.6). После того как значения c
лены, другие коэффициенты кубического полинома s
(x) определяются
n
вычис-
n
из следующих соотношений:
a
= yn,n=0,...,N,
n
Δx
(c
n+1
n
(c
3
− cn),
n+1
+2cn),
b
1
=
n
Δx
(y
− yn) −
n+1
n
1
=
d
n
3Δx
n
n =0,...,N − 1.
РИМЕР 7.4 (ИНТЕРПОЛЯЦИЯ КУБИЧЕСКИМИ СПЛАЙНАМИ). В Табли-
П
це 7.3 представлены значения некоторой величины в 18-ти точках.
Построим гладкую кривую, проходящую через эти точки. Кубическая сплайн функция описывает эти данные достаточно хорошо, как
показано на рисунке 7.3.
Для сравнения на этом рисунке также приведена кривая, полученная с использованием интерполяционного полинома Лагранжа. В данном
случае этот полином представляет собой полином 17-й степени, и он
сильно осциллирует на конце интервала интерполяции.

7.1. Интерполяция 203
Таблица 7.3.
n x
n
y
n
n x
0 0 1.3 9 5 2.2
1 0.4 1.5 10 6.1 2.3
2 1 1.8 11 7.1 2.2
3 1.2 2.1 12 8.3 1.9
4 1.7 2.6 13 9.6 1.4
5 2.1 2.7 14 10.4 0.9
6 3 2.4 15 10.7 0.7
7 3.5 2.1 16 11.1 0.6
8 3.8 2 17 11.7 0.3
4
3.5
3
s x
(),
2.5
P x
()
2
n
y
n
1.5
1
0.5
0
0 2 4 6 8 10 12
x
Рис.7.3.Гладкиекривые,описывающиеданныеизТаблицы7.3:◦ — данные;
— интерполяционная сплайн функция; — интерполяционный по-
лином Лагранжа

204 Глава 7
7.1.4. Двумерная интерполяция
Часто на практике возникает ситуация, когда необходимо построить функцию, представляющую данные, заданные в некоторых точках
на плоскости. Предположим, что значения z
в некоторых произвольно расположенных точках (x
, n =1,...,N,заданы
n
), n =1,...,N
n,yn
(N 3). Мы будем также предполагать, что эти точки попарно различны и не лежат на одной прямой. Интерполяционную функцию можно
задатьввиде
f(x, y)=
(x, y) представляют собой некоторые базисные функции, а коэф-
где b
m
фициенты a
определяются из условия интерполяции
m
N
f(x
n,yn
)=
ambm(xn,yn)=zn,n=1,...,N, (7.11)
m=1
которое задаёт систему линейных уравнений для неизвестных a
N
ambm(x, y), (7.10)
m=1
.Такой
m
подход называется методом Харди (Hardy). Базисные функции в этом
методе выбираются таким образом, чтобы функция f(x, y) была достаточно гладкой и система уравнений (7.11) была бы как можно лучше
обусловленной. Этим требованиям удовлетворяют, например, так называемые радиальные базисные функции
(x, y)=bm(rm)=(r
b
m
2
m
+ α2)
β
(7.12)
(на практике часто используется β =0.5)итакже
(x, y)=bm(rm)=ln(α2+ r
b
m
b
(x, y)=bm(rm)=(α2+ rm)kln(α2+ r
m
2
),
m
2
m
),k>0,
здесь r
=(x − xm)2+(y −ym)2.
m
Параметр α следует выбирать не слишком большим, так как число
обусловленности матрицы C = {c
} = {bm(xn,yn)} увеличивается с
nm
увеличением числа α. Величина этого параметра подбирается в каждом
конкретном случае. В качестве ориентира рекомендуется задавать
α ∼
1
maxmax
10
|xn− xm|, max
n, m
|yn− ym|,
n, m
что часто даёт хорошие результаты.

7.1. Интерполяция 205
ПРИМЕР 7.5 (ДВУМЕРНАЯ ИНТЕРПОЛЯЦИЯ). В Таблице 7.4 представлены значения некоторой величины в пяти точках на плоскости. Построим
гладкую функцию, проходящую через эти точки.
Таблица 7.4.
n x
n
y
n
z
n
1 0 0 0.6065
2 0 1 0.6065
3 1 1 0.6065
4 1 0 0.6065
5 0.5 0.5 1
На рисунке 7.4 показана интерполяционная функция (7.10) с базисными функциями, определёнными в (7.12).
1
fxy( , )
0.9
0.8
0.7
0.6
0
0.2
0.4
0.6
0.8
1
x
Рис. 7.4. Двумерная интерполяционная функция, построенная методом Харди
(α =0.8, β =0.5)
0.2
0
0.4
0.6
y
0.8
1
На самом деле, значения zn, приведённые в Таблице 7.4, вычисля-
лись как z
= g(xn,yn)=exp(−(0.5 −xn)2−(0.5 −yn)2).Такимобразом,
n
мы пытаемся восстановить функцию, показанную на рисунке 7.5. Видно,

206 Глава 7
1
g x y( , )
0.9
0.8
0.7
0.6
0
0.2
0.4
0.6
0.8
1
x
Рис. 7.5. Функция g(x, y)=exp(−(0.5 − x)2− (0.5 − y)2)
0.2
0
0.4
y
0.6
0.8
1
что интерполяционная функция f (x, y) достаточно хорошо приближает
«точную функцию» и глобальная относительная разница между f (x, y)
и g(x, y) равна
1
1
/
/
|f(x, y) − g(x, y)|dx dy
0
0
1
1
/
/
≈ 0.01.
g(x, y) dx dy
0
0
7.2. Приближение функций и представление данных
Теория приближения функций включает в себя два типа проблем.
Первая проблема возникает, когда функция задана явно, но требуется
найти другую функцию, с которой, в данной ситуации, удобнее работать.
Вторая проблема касается задачи определения функции, принадлежащей
некоторому классу, которая описывает заданный набор данных «наилуч-

7.2. Приближение функций и представление данных 207
шим», в некотором смысле, образом. Мы начнём с рассмотрения этой
проблемы.
7.2.1. Метод наименьших квадратов
Пусть имеется некоторый набор экспериментальных данных, например приведённый в Таблице 7.5, и мы хотим построить функцию, описывающую эти данные. На рисунке 7.6 приведено графическое представление данных из Таблицы 7.5.
Таблица 7.5.
x
0 0.5 1 2 3 4 6 8
n
yn0.08 0.39 0.55 1.02 1.61 2.15 3.0 4.05
4.5
4
3.5
3
y
2.5
2
1.5
1
0.5
0
0 1 2 3 4 5 6 7 8
Рис. 7.6. Графическое представление данных из Таблицы 7.5
x
Интерполяция требует чтобы интерполяционная функция принимала значения y
вточкахxnдля каждого n =1,...,8.Вданномслучае
n
требовать выполнения этого условия не имеет смысла, так как исходные
данные не являются точными, а включают в себя погрешность измере-

208 Глава 7
ний. Из графика видно, что, на самом деле, y зависит линейно от x.Поэтому, вместо интерполяции лучше использовать другой подход, а именно: построить линейную функцию, которая будет иметь «наименьшее»
(в некотором смысле) отклонение от заданных значений, но, возможно,
не проходить ни через одну точку.
Пусть f
и ynесть данное значение в этой точке. Задачу определения линей-
ке x
n
= axn+ b обозначает значение линейной функции в точ-
n
ной функции, которая описывает заданный набор данных, можно сформулировать следующим образом: найти такие значения коэффициентов a
и b,чтобыошибка
e(a, b)=
N
(yn− fn)2=
n=1
N
(yn− (axn+ b))
n=1
2
была минимальной. Условие минимума ошибки записывается в виде
двух уравнений:
N
∂
∂a
и
(yn− (axn+ b))2=2
n=1
N
∂
∂b
(yn− axn− b)2= −2
n=1
N
−xn(yn− axn− b)=0
n=1
N
(yn− axn− b)=0.
n=1
Преобразование этих выражений приводит к системе уравнений для
коэффициентов a и b,имеющейвид
N
a
x
n=1
N
a
n=1
N
2
+ b
n
n=1
xn+ bN =
xn=
n=1
N
n=1
N
xnyn,
(7.13)
yn.
Решая эту систему, получим явные выражения для коэффициентов a и b:
a =
− c2g
Ng
1
Nc1− c
2
2
2
,b=
c
− c2g
1g2
Nc1− c
1
,
2
2

7.2. Приближение функций и представление данных 209
где
g
N
x
n=1
N
xnyn,g2=
n=1
2
,c2=
n
=
c
1
=
1
N
n=1
n=1
xn,
N
yn.
Рассмотренный нами подход называется методом наименьших квадратов.
П
РИМЕР 7.6 (ПОСТРОЕНИЕ ЛИНЕЙНОЙ ЗАВИСИМОСТИ МЕТОДОМ НАИ-
МЕНЬШИХ КВАДРАТОВ). Рассмотрим данные, приведённые в Таблице 7.5.
В этом случае решение системы уравнений (7.13) даёт a ≈ 0.4937
и b ≈ 0.0943. График линейной функции f = ax + b иисходныеданные показаны на рисунке 7.7. При этом ошибка полученного приближения e ≈ 1.9 ·10
y x()
4.5
3.5
2.5
−2
.
4
3
2
1.5
1
0.5
0
0 1 2 3 4 5 6 7 8
x
Рис. 7.7. Линейная функция, приближающая данные из Таблицы 7.5: ◦ —данные;
— приближение по методу наименьших квадратов

210 Глава 7
Аналогичным образом можно построить полином
M
P
(x)=
M
m=0
amx
m
степени M<N− 1, который приближает некоторый набор дан-
ных (x
), n =1,...,N. В этом случае коэффициенты a0,...,a
n,yn
M
выбираются таким образом, чтобы ошибка
N
, ..., aM)=
e(a
0
(yn− PM(xn))
n=1
2
была минимальной. Тогда условия ∂e/∂am=0для каждого значения m =1,...,M приводят к следующей системе линейных уравнений
для M +1 неизвестных a
N
N
n=1
1
n=1
xn+ a
xn+ a
1
a
0
a
M + a
0
N
n=1
:
m
N
2
n=1
2
x
+ ...+ a
n
2
x
+ ...+ a
n
M
n
=
N
n=1
N
n=1
ynxn,
yn,
(7.14)
N
x
M
n=1
N
M+1
x
M
n=1
=
n
....................................
N
0
n=1
M
x
n
a
+ a
1
N
n=1
x
M+1
n
+ ...+ a
N
2M
x
M
n
n=1
N
=
n=1
ynx
M
.
n
Эта система уравнений имеет единственное решение при условии,
что все x
различны.
n
В общем случае метод наименьших квадратов можно применить
для приближения набора данных (x
извольной функцией f (x, a
,...,aM). Однако в этом случае задача ста-
0
), n =1,...,N, некоторой про-
n,yn
новится значительно сложнее, так как минимизация ошибки приводит к
системе нелинейных уравнений для коэффициентов a
,...,aM.Иногда
0
можно обойти это затруднение, преобразуя исходные данные и аппроксимирующую функцию. Например, предположим, что функция f(x, a, b)=
= a · exp(−bx) приближает некоторый набор данных. Стандартная процедура предполагает выбирать параметры a и b из условия минимума
ошибки
e =
N
(yn− f(xn,a,b))2,
n=1
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
