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

Основы научных вычислений. Введение в численные методы для физиков и инженеров

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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
maxmax
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]