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

Численные методы в информационных системах. Учебное пособие

.pdf
Скачиваний:
2
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
+
−++
вычисляемые по формуле
+
12
k
π
=
cos
x
k
k = 0, 1, 2, ..., n.
+
)1(2
n
В случае произвольного отрезка [a, b] узлы интерполяции вычис-
ляют по формуле
12
kabba
x
=
k
cos
22
n
, k = 0, 1, 2, ..., n.
π
)1(2
+
Интерполяционный полином, построенный по таким узлам, явля-
ется алгебраическим полиномом наилучшего приближения.
Кусочно-многочленная интерполяция. Поскольку увеличение
степени интерполянта не всегда ведет к уменьшению погрешности интерполирования, для восстановления значений функции в произ­вольных точках можно пользоваться функцией, которая между двумя соседними узлами является полиномом заданной невысокой степени, например, первой, второй и т.д. Соответствующая интерполяция назы­вается кусочно-линейной, кусочно-квадратичной и т.д.
случае кусочно-линейной интерполяции на каждом отрезке
В
< x < x
x
i
для приближения функции используется полином
i + 1
ff
−
1
ii
+
f −
+
i
xx
−
1
ii
+
)(
xx
,
i
а интерполянт представляет собой ломаную линию, состоящую из от­резков прямых. При кусочно-квадратичной интерполяции интерполянт состоит из отрезков парабол, проходящих через три соседних узла.
Такой подход к интерполированию приводит к тому, что интер­полянт в узлах интерполяции может не иметь производной даже пер­вого порядка.
Кусочно-многочленная гладкая интерполяция (сплайны).
Сплайн – это кусочно-многочленная интерполяционная функция обла­дающая заданным числом производных всюду, включая узлы интер­полирования.
Пусть функция f(x) определена на отрезке [a, b] и известны ее значения в системе узлов a = x ным сплайном порядка m называется функция S
< x1 < x2, ..., < xn = b. Интерполяцион-
0
(x), удовлетворяющая
m
следующим условиям:
на каждом отрезке [x
−
, x
], i = 1, 2, ..., nSm(x) является много-
i
i + 1
членом степени m;
на всем отрезке [a, b] S
−
(x) имеет непрерывные производные
m
до порядка m – 1;
−
S
) = f(xi) i = 0, 1, 2, ..., n.
m(xi
31
−==
−=′=′
−
=
−==
=
=
−−=
−=−=+
Если m ≥ 2, то для единственности Sm(x) необходимо задать еще m – 1 дополнительных условий, которые обычно задаются на концах
отрезка [a, b], либо произвольно, либо из дополнительной информации о поведении f(x).
Рассмотрим построение кубического сплайна S нию S Обозначим его P
(x) на i-м отрезке [xi, x
3
По определению S
(x) и будем искать в виде
i
(x) должны выполняться условия:
m
P
) = f(xi), i = 0, 1, 2, ..., n – 1; (3)
i(xi
] является кубическим полиномом.
i + 1
11
++
iii
111
+++
iiii
=
111
+++
iiii
32
iiiiiiii
(x). По определе-
3
....,,2,1,0,)()()()(
=−+−+−+= (2)
;1...,,2,1,0),()(
nixfxP
;2...,,2,1,0),()(
nixPxP
nixPxP
nixxdxxcxxbaxP
(4)
(5)
.2...,,2,1,0),(")("
(6)
Зададим дополнительные условия в виде
.0)(",0)("
=
xPxP (7)
101
− nn
Введем обозначения
)()(
−
xfxf
1
,
gxxh
1
+
iiii
+
=−=
ii
h
i
ni
−=
.1...,,2,1,0,
(8)
Подставляя в (3) – (7) выражение (2), и используя (8), получаем следующие соотношения:
;1...,,2,1,0),(
nixfa
ii
2
1
+
iiiiii
2
1
+
iiiiii
(9)
;1...,,2,1,0,
−==++
niahdhcb
(10)
;2...,,2,1,0,32
−==++
nibhdhcb
(11)
−
cc
1
+
=
d
i
ii
3
h
i
cc (13)
.0,0
10
−n
;2...,,2,1,0,
−=
ni
(12)
Подставив (12) в (10), получим формулу
,3/)2(
cchgb
1 iiiii
+
i = 0, 1, 2, ..., n – 1. (14)
Используя (12) и (14) из (11) и получим уравнение:
++
12111
+++++
iiiiiiiii
.2...,,2,1,0),(3)(2
niggchchhch
(15)
Система (13), (15) является трехдиагональной системой линейных уравнений относительно коэффициентов c из уравнений (12) можно найти значения d значения b
32
. Значения коэффициентов ai определяются из уравнений (9).
i
, решив ее методом прогонки,
i
, а затем из уравнений (10)
i
Вопросы для самопроверки
1. Расскажите о достоинствах и недостатках интерполяционной
формулы Лагранжа.
2. Расскажите о процессе построения конечных разностей.
3. Расскажите о достоинствах и недостатках интерполяционной
формулы Ньютона.
4. Какая теорема позволяет получить выражения для погрешности
интерполяции?
5. Расскажите об использовании полиномов Чебышева для реше-
ния задачи интерполяции.
6. Дайте характеристику методам кусочно-многочленной интер-
поляции.
7. К необходимости решения какой системы уравнений приводит
использование сплайнов.
33
=
Δ
Δ
Тема 5. АППРОКСИМАЦИЯ ФУНКЦИЙ
МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ
Рассмотрим принципиально другой, нежели интерполирование, подход к приближению функции, заданной таблицей своих значений
) = yi в точках xi, i = 0, 1, 2,...n. Будем искать приближение в виде
f(x
i
полинома степени m
2
210
причем такого, чтобы значения этого полинома в табличных точках x не слишком сильно отличались от значений функции y
|P
) – yi| должны быть малы. Для оценки степени приближения по-
m(xi
линома P
(x) к точкам yi используется метод наименьших квадратов,
m
согласно которому наилучшее приближение достигается при миниму­ме суммы квадратов отклонений полинома от значений функции
m
210
∑
i
=
0
Очевидно, что при m = n решением такой задачи является интер-
поляционный многочлен, так как в табличных точках x
(x) равны значениям функции yi и минимум квадратов разностей
P
m
будет равен нулю
210
0)...,,,,(
aaaa .
m
При m < n поставленная задача будет иметь единственное реше-
ние, которое можно найти, приравняв частные производные
aaa∂Δ∂ ),...,(
10
m
a
нулю. При m > n поставленная задача будет иметь
i
множество решений, для поиска одного из них можно задать произ­вольно m – n – 1 коэффициентов a
, а остальные найти решив задачу
i
интерполяции.
Остановимся подробнее на случае m < n, т.е. когда число таблич-
ных точек больше числа параметров аппроксимационной функции. Приравняв нулю частные производные функции
получим систему уравнений
∑
=
i
n
0
210
a
∂
k
imii
22
m
)...(
yxaxaxaa
−++++∂
i
или после преобразований:
n
∑∑ ∑∑
i
00 0 0
== = =
n k i
k
1
i
10
i
n
i
n
mk
++
im
i
Таким образом, для определения коэффициентов a
тему линейных уравнений с симметрической матрицей коэффициентов
34
m
,...)(
xaxaxaaxP ++++=
mm
, т.е. разности
i
2
→−=Δ
yxPaaaa
min))((),...,,( .
iimm
его значения
i
),...,,(
aaaa
210 m
;...,,2,1,0,0
==
k
=⋅=+++
ii
получаем сис-
k
mk
....,,2,1,0,...
mkxyxaxaxa
i
,
L
L
L
n
⎤
m
xxxn
⎥
i
∑∑∑
⎥
===
11
i
n
⎥
+
1
m
xxxx
⎥
i
∑∑∑∑
i
∑∑∑∑
=
i
⎥
=
1
⎥
LLLLL
n
⎥
+
mm
xxxx
⎥
i
⎥
11
⎦
⎡
+
⎢ ⎢
n
⎢ ⎢ ⎢
1
i
⎢
n
⎢ ⎢ ⎢
=
1
i
⎣
n
1
1
i
n
i
1
i
n
m
i
m i
=
1
i
n
2
i
2
i
+
1
i
i
n
3
i
===
1
i
n
+
2
m
i
=
i
и столбцом свободных членов:
n
⎛ ⎜
∑
⎜
i
⎜
n
⎜
∑
⎜
=
i
⎜ ⎜
n
⎜
∑
⎜
=
i
⎝
⎞ ⎟
y
i
⎟
0
=
⎟ ⎟
xy
ii
,
⎟
0
⎟
M
⎟
k
⎟
xy
ii
⎟
0
⎠
элементы которых вычисляются по табличным данным. Найденный из решения этой системы полином называется среднеквадратичным при­ближением функции, заданной таблицей.
Основная сфера применения таких полиномов – обработка экспе­риментальных данных (построение эмпирических формул). Дело в том, что интерполяционный полином, построенный по значениям функции, полученным с помощью эксперимента, будет испытывать сильное влияние «экспериментального
шума», к тому же при интерпо­лировании узлы интерполяции не могут повторяться, т.е. нельзя ис­пользовать результаты повторных экспериментов при одинаковых ус­ловиях. Среднеквадратичный же полином сглаживает шумы и позво­ляет использовать результаты многократных экспериментов.
В ряде случаев аппроксимирующую функцию ищут не в виде по­линома, а в виде некоторой ной y(x) = ab
x
. Если применить к этой зависимости метод наименьших
другой зависимости, например показатель-
квадратов, то получим систему нелинейных уравнений, решить кото­рую весьма затруднительно. Чтобы облегчить решение, можно произ­вести замену переменных таким образом, чтобы линеаризовать функ­цию y(x). В частности, для показательной функции можно применить логарифмирование
lgy = lga + xlgb,
после замены переменных
q = lg
y, z = x, p = lga, s = lgb,
35
x
s
x
s
x
x
x
=
получим линейную форму
q = p + zs.
Для нахождения значений p и s методом наименьших квадратов необходимо решить систему линейных уравнений:
n
i
n
i
0
n
i
i
n
=++
qzsnp
;)1(
i
2
i
i
∑∑
i
==
00
n
=+
zqzszp
.
ii
∑∑∑
i
===
00
После нахождения значений p и s параметры a и b находятся по формулам
sp
.
ba 10,10 ==
Ниже приведены замены переменных для некоторых, часто ис­пользуемых нелинейных функций
Функция Замена переменных
aby =
axy =
ay +=
x
b
b
q = lgy, z = lg
q = lgy, z = lg
z1=
q = y,
, p = lga,
, p = a,
= lgb
, p = a, s = b
= lgb
1
q =
, z = x, p = a, s = b
y
x
, z = x, p = a, s = b
q =
y
y+=
1
=
baxy+
x
bax
y = algx + b q = y, z = lgx, p = a, s = b
Если значения x или y отрицательны или нулевые, то логарифми­рование и деление на ноль выполнить невозможно, поэтому следует сдвинуть шкалу x или y в положительную область. Например, для по-
x
казательной функции
aby =
можно использовать замену перемен-
ных q = lg(y + w), z = lg(x + v), p = lga, s = lgb, при этом получим ап-
vx
проксимирующую функцию вида ординат
и y. Для обеспечения возможности вычислений эти значе-
abwy−=− , где v и w – сдвиги ко-
ния должны удовлетворять условиям
....,,2,1,0|,|max|,|max
x
Вопросы для самопроверки
>>
i
i
y
00
<<
ii
niywxv
1. Расскажите о сущности метода наименьших квадратов.
2. Расскажите о заменах переменных для наиболее часто исполь-
зуемых нелинейных функций.
36
Тема 6. ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ
Численное дифференцирование используется для приближенного вычисления производных функции, заданной таблицей и для функций, которые по разным причинам неудобно или невозможно дифференци­ровать аналитически. В последнем случае вычисляется таблица функ­ции в окрестности исследуемой точки и по этим значениям вычисляет­ся приближенное значение производной.
Итак, пусть в точках x
= f(xi). Способ построения формул численного дифференциро-
ции y
i
вания состоит в том, что по табличным точкам строится интерполянт
(x), который дифференцируется нужное число раз и делается допу-
P
n
щение о том, что производная от функции приблизительна равна про­изводной от интерполянта
Погрешность такой формулы характеризуется k-й производной от
ошибки интерполяции
При кусочно-линейной интерполяции по равноотстоящим узлам
= x0 + ih
x
i
получим очевидную формулу для x∈
либо, если использовать интерполяцию вида
],[
для
xxx−∈
1 ii
, получим
Формулы (1) и (2) называются правым разностным соотношением и левым разностным соотношением, их можно было бы записать сразу, используя определение производной и не привлекая интерполяцию как промежуточный этап. Однако для получения более точных формул и для вычисления производных высших порядков без интерполирования не обойтись.
ПРОИЗВОДНЫХ
, i = 0, 1, 2, ..., n известны значения функ-
i
kk
xfd
≈
dx
k
xRd
)(
.
dx
′
′
′
≈
1
′
≈
1
xPd
)()(
n
. (1)
dx
xx
−
yyyxPxf
−+=≈
+
11
],[
xx
1+ii
−
1
+
=
xPxf
xPxf
h
yyyxPxf
−+=≈
iii
−
yy
−
=
h
i
)()()(
iii
,
h
yy
ii
,)()(
xx
−
i
)()()(
11
1
ii −
h
.)()(
(2)
37
Дифференцируя интерполяционный многочлен в виде первой формулы Ньютона, получим
′
≈
где q = (x – x
n
′
xPxf
)/h.
0
⎛ ⎜
)()(
y
⎜
h
⎝
−
q
121
+Δ=
0
2
!2
2
+−
qq
263
+Δ
y
0
!3
3
⎞ ⎟
+Δ
y
,...
0
(3)
⎟ ⎠
Такая форма записи позволяет последовательно получать форму­лы дифференцирования различной степени точности, но для практиче­ских вычислений более удобна форма, содержащая не конечные раз­ности, а значения функции в табличных точках. Так при квадратичной
],[
интерполяции для
′
)(
xf
xxx получим
2+∈ii
1
()
h
)2/1(2)2/1(
+++−≈
yqqyyq
. (4)
21
++
iii
При кубической интерполяции для
⎛ ⎜
′
−≈
)(
xf
⎜
h
⎝
+−
2631
qq
6
22
−−
143
+
y
qq
y
2
2
−−
223
−
1
qq
y
2
2
q
+
2
6
⎞
−
13
⎟
y
+++ 3
iiii
⎟ ⎠
(5)
Если требуется вычислить производную в одной из табличных точек, то формулы упрощаются. В частности, для x = x
по формуле (4)
i
получим
−
yy
ii
′
)(
≈
xf
i
11 −+
.
h
2
Это так называемое центральное разностное отношение.
При x = x
из (4) получим выражение
0
1
′
)(
xf −+−≈
h
),5,025,1(
yyy
2100
а из (5) получаем
yyyy
29211
+−+−
′
xf
)(
≈
0
h
6
3210
.
При интерполировании по пяти точкам можно получить
yyyy
−+−
iiii
2112 ++−−
.
′
xf
)(
≈
i
12
88
h
Формулы для вычисления производных второго порядка получа­ются путем повторного дифференцирования интерполянта. Например, дифференцируя (3) еще раз и подставляя x = x
⎛
′′
xf
)(
0
2
⎜
0
2
h
⎝
111
3
0
12
, получим
0
4
0
5
6
⎞
5
yyyy
Δ−Δ+Δ−Δ≈
...
.
⎟
0
⎠
.
38
При использовании значений функции вместо конечных разно­стей для квадратичной интерполяции получим формулу
2
yyy
+−
11
iii
)("
xf
≈
i
+−
2
h
.
При численном дифференцировании возникает методическая ошибка, вызванная заменой функции f(x) интерполяционным много­членом P
(x), и ошибка округления, вызванная неточным заданием
n
значений функции в табличных точках. Методическая погрешность
k
xPd
)(
оценивается производной от ошибки интерполирования
dx
n
и
при уменьшении шага, как правило, уменьшается. В частности для формулы (1) величина методической погрешности оценивается соот­ношением
xdP
)(
M
где
= .
2
],[
xxx
∈
1
ii
+
′
|)("|max
xfM
n
xf
)(
dx
2
,
h
≤−
2
Погрешность округления для всех случаев оценивается величи-
2hδ
ной
где δ – абсолютная погрешность исходных значений f(x
,
Таким образом, методическая погрешность при уменьшении шага
).
i
интерполирования уменьшается, а погрешность округления обратно пропорциональна шагу и при уменьшении шага может как угодно сильно исказить получаемый результат, т.е. численное дифференциро­вание неустойчиво. Исходя из этого, шаг следует выбирать таким, что­бы суммарная погрешность была минимальна
2
2
+=Δ h
h
δ
h
min)(
→Φ=
.
M
2
Приравнивая нулю производные
Φ
d
,0=
dh
получим
δ
2
M
2
−
2
,0
=
2
h
отсюда
δ
.
2
h
=
onm
M
2
39
При этом
onm
2)( Mh
.
2
δ=Φ
Таким образом, в лучшем случае (при оптимальном шаге) можно лишь гарантировать, что производная f'(x), вычисленная по формуле
(1) будет отличаться от истинного значения не более чем на Например, при
δ ≤ 0,01 и M2 ≤ 1 шаг должен быть примерно 0,2 и при
2
δM
этом получим точность не выше 0,2.
Вопросы для самопроверки
1. Объясните необходимость численного вычисления производ-
ных.
2. Расскажите о достоинствах и недостатках рассмотренных схем
вычисления производных.
3. Расскажите, каким образом вычисляется оптимальный шаг.
.2
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]