Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Прикладная математика. Решение задач с применением табличного процессора Excel. Учебное пособие
.pdf
Отсюда следует, что
"
KxS
)(
,
i
1
xx
i
h
i
K
i
xx
i
1
h
i
где
];[
1 iixx
xxh , ni ,1 . Проинтегрировав это равенство дважды на отрезке
1
iii
и определив константы интегрирования, получим аналитическое
выражение кубического сплайна:
2
hK
ii
1
)
6
(14)
KxS
)(
Если niyS
3
xx
)(
h
6
i
xx
i
1
(
h
i
ii
i
i
1
K
S
i
,0, , то кубический сплайн становится интерполяци-
i
6
2
hK
ii
6
3
xx
)(
i
1
h
i
xx
i
h
ii
1
S
(
i
1
i
nixxx
,1],;[),
онным. В этом случае для построения интерполяционного сплайна необходимо определить его коэффициенты niK
i
,0, . Неизвестные коэффи-
циенты можно найти из условия непрерывности первой производной
сплайна во внутренних узлах. Для этого необходимо определить значения
левосторонней и правосторонней производной сплайна во внутренних точках
,,,
xxx
и в силу непрерывности приравнять эти производные. В
121
n
итоге определение коэффициентов сплайна сводится к решению системы
линейных алгебраических уравнений:
yy
1
ii
h
i
1,1),(
ni
,
где
2
h
i
i
,
hh
11
ii
1 .
KKK
11
iiiii
ii
hh
1
ii
6
yy
1
ii
h
1
i
Для того чтобы найти решение системы, необходимо присоединить к
ней еще два уравнения. Эти уравнения можно получить, задавая краевые
условия. В качестве краевых условий можно рассмотреть 0)(
"
aS и
0)("bS . Такой сплайн называется естественным и имеет минимальную
кривизну среди всех интерполирующих функций. Таким образом добавляются к последней системе два уравнения: 0
K и 0
0
K . Для решения
n
полученной системы можно использовать метод прогонки.
Для построения сглаживающего сплайна по формуле (14), кроме коэффициентов
K необходимо знать его значения iS в узловых точках ix ,
i
ni ,0 . Они могут быть найдены, если известны весовые коэффициенты
.
i
Приведем систему уравнений, которую необходимо решить при построении сглаживающего сплайна. Эта система имеет пятидиагональную
структуру:
gKcKbKa
,
0201000
31

gKcKbKaKb
)(x
S
1
9,0
,
131211100
gKcKbKaKbKc
,
211122
iiiiiiiiiii
2,2 ni (15)
gKbKaKbKc ,
11112233
nnnnnnnnn
gKaKbKc
.
1122
nnnnnnn
Коэффициенты этой системы определяются формулами:
1
hha
1
3
1
hb
ii
6
1
)(
iii
2
h
1
i
1
[(
(
1
i
11
i
iii
11
2
)
hh
1
ii
11
()
hhhhh
ii
1
,
1
i
h
i
i
2
i
])
,
111
1,1 ni ,
2,1 ni ,
1
hh
ii
yy
ii
i
1
h
b , 0
1n
,
1
yy
ii
111
i
b , 0
3,1 ni ,
"
xS и
0
n
c , 0
0
c , 0
2n
c ,
1n
Если в качестве краевых условий рассмотреть: 0)(
"
xS , то 1
c , 0
n
0)(
n
0
g , 0
0
c
i
g , 1,1 ni .
i
a , 1
0
g .
a , 0
n
n
h
i
b , 0
0
После вычисления коэффициентов niK
ния
S в узловых точках ix определяются соотношениями:
i
i
iiii
,0, из системы (15), значе-
niDyS
,0,
,
причем
,/)(
hKKD
0010
1,1,/)(/)(
/)(
hKKD .
nnnn
111
iiiiiii
11
nihKKhKKD
, (16)
В практических задачах обычно известны ошибки в определении величин
требовать, чтобы сглаживающий сплайн
niyxS
y (случайные ошибки измерений). В этой ситуации естественно по-
i
удовлетворял условиям:
iiii
,0,)(
или условиям
D
. (17)
iiii
Используем эти ограничения для вычисления весовых множителей
. Построим итерационный процесс, реализация которого позволяет по-
i
лучить множители ni
i
где k – номер итерации. Коэффициент
,0,
:
)()(
)1(
k
i
ii
D
k
i
k
,,/
DD
)(
k
i
(18)
,,0
должен быть не очень близ-
ким к единице (хорошие результаты получаются при значении
).
Величина выбирается с учетом величины
32
, а также в зависимости от
i

разрядности конкретной ЭВМ и точности решения системы (15) для неиз-
)1(k
)(i
S
)(i
x; )(i
R
вестных коэффициентов сплайна
K .
i
Практически бесполезно применение сглаживающих сплайнов, когда
исходная информация задана, например, с точностью, сравнимой с точностью представления чисел в ЭВМ.
В пользу выбора формул (18) для вычисления весовых множителей
говорят следующие соображения. Пусть на k-й итерации в точке
k
шается условие (17), т.е.
k
i
k
i
и значит, на
)()()( k
D
, то из (18) следует:
i
-й итерации весовой множитель
способствует уменьшению
k
)(
и
i
i
)(k
D , то множитель
i
)(
. Так как выполняется условие:
i
k
i
. С другой стороны, если на k-й итерации
i
i
)()1(
k
i
на следующей итерации увеличивает-
i
i
)(
k
i
уменьшается. Это
i
x нару-
i
ся, что способствует более полному использованию «коридора» (17) в целях обеспечения большей гладкости сплайна.
В качестве начального приближения естественно взять 0
способствует интерполяционному сплайну со значениями
)0(
i
)0(
DD . Ите-
ii
, что
рационный процесс должен продолжаться до тех пор, пока значения
сплайна
S в узлах сетки не окажутся в «коридоре».
i
По сравнению с интерполяционным сплайном построение сглаживающего сплайна требует значительно большего объема вычислений. При
решении вопроса о том, каким сплайном пользоваться, нужно учитывать в
первую очередь погрешность исходных данных, а также те требования, которые предъявляются к сплайну. Практически бесполезно применение
сглаживающих сплайнов, когда исходная информация задана, например, с
точностью, сравнимой с точностью представления чисел в ЭВМ. В то же
время неизбежно приходится строить сглаживающие сплайны, когда
сплайн используется для вычисления производных по экспериментальной
информации. Эффект сглаживания особенно заметен при сравнении производных, вычисленных с помощью интерполяционного и сглаживающего
сплайна в заданных узлах.
Для построения сглаживающего сплайна по формуле (14) со-
ставлена программа в VBA, которая приводится в Приложении 1. Зна-
чения входных параметров и решение приведены на рис.11.
В программе приняты следующие обозначения: n – количество ин-
тервалов; )(),( iyix – входные массивы чисел, где ni ,0 , содержащие таб-
личные значения;
сплайна в узлах
– массив чисел, где ni ,0 , содержащий значения
– массив чисел, где ni ,0 , содержащий значе-
33

ния весовых множителей в узлах
)(i
x; )(i
DEL
)(i
y
)(i
S
)(i
x
)(i
H
TETTA
KAППA
)(i
K
)(i
D
)(),(),(iWiVi
U
)(i
K
)(i
R
)(i
R
IND
0IND
)(i
R
1IND
)(i
DEL
)(i
y
)(i
S
)(i
x
KIT
)(i
K
)(i
S
)(i
x
– массив чисел, где ni ,0 ,
содержащий отклонения табличных значений
в узлах
жащий длину отрезков ],[
, (
yxS
)( );
iii
;
i1ixx
– массив чисел, где n1i , , содер-
,
от значений сплайна
– параметры, используе-
мые в итерационном процессе для получения весовых множителей
ni
i
определения значений сплайна, массивы 1,1),()(
,0,
;
ni ,0 , ( )(
– массив чисел, содержащий коэффициенты сплайна, где
xSK
);
ii
– массив чисел, где ni ,0 , используемый для
nixSxSD
iii
– коэффициенты прогонки для решения системы линейных
уравнений (15) относительно коэффициентов
.
;
Рис.11
В программе предусмотрено построение и интерполяционного и
сглаживающего сплайна, представленного в виде (14). Если все значения
массива
равны нулю, то мы получим интерполяционный сплайн. Для
построения сглаживающего сплайна могут быть заданы весовые коэффициенты
ются значения массива
значений сплайна
. Для этого в программе предусмотрен параметр
, то задаются весовые коэффициенты
, если
– отклонения табличных значений
в узлах
. В программе предусмотрены меры,
. Если
, то зада-
от
позволяющие избежать зацикливания итерационного процесса, а с помощью параметра
Когда найдены коэффициенты сплайна
узлах
, т.е. построен сплайн, представленный в виде (14), можно по-
задается максимальное количество итераций.
и его значения
в
строить его график. Для этого составим таблицу значений сплайна
(рис.12). С учетом того, что сплайн является кусочно-полиномиальной
функцией, для каждого отрезка значение сплайна необходимо табулировать в отдельном столбце.
34

Составим таблицу значений сплайна (рис.12) следующим образом.
)(i
K, )1(i
K
)(i
S, )1(i
S
)(i
x, )1(i
x
1
x
)(i
K, )1(i
K
)(i
S, )1(i
S
)(i
x, )1(i
x
На каждом отрезке [-1;0], [0;2], [2;3], [3;4] выберем несколько узловых точек и поместим их в столбце A. В столбце B вычислим значения сплайна
по формуле (14) в узлах первого отрезка [-1;0]. Для этого в формуле (14)
значение индекса i выберем равное 1, значения коэффициентов сплайна
и его значения
, соответственно, в узлах
выберем из решения на рис.11. Значение коэффициента
рем из ячейки F9, значение коэффициента
ответственно, 0
ячейки D9, значение сплайна
1
S , 2249,2
0
S . Например, значение сплайна для узла
1
K , 3889,0
0
K . Значение сплайна
1
S выберем из ячейки D10, соответственно,
i
K выберем из ячейки F10, со-
i
S выберем из
K выбе-
1i
1i
, которое
расположено в ячейке A24 на рис.12, вычисляется в ячейке B24 следующим образом: «=$F$9*($A$10-A24)^3/6/$E$9+$F$10*(A24-$A$9)^3/6/
$E$9+($A$10-A24)/$E$9*($D$9-$F$9*$E$9^2/6)+(A24-$A$9)/$E$9*
($D$10-$F$10*$E$9^2/6)», и эта формула копируется в ячейки B25:B29.
Рис.12
Далее в столбце C вычислим значения сплайна по формуле (14) в узлах второго отрезка [0;2]. Для этого в формуле (14) значение индекса i
выберем равное 2, значения коэффициентов сплайна
значения
решения на рис.11. Значение коэффициента
значение коэффициента
K , 331,3
3889,0
1
K . Значение сплайна
2
, соответственно, в узлах
K выберем из ячейки F10,
1i
K выберем из ячейки F11, соответственно,
i
S выберем из ячейки D10,
1i
35
выберем из
и его

значение сплайна
0x
)(i
x
)(i
y
1)0
(y
2)1
(y
4)2
(y
1)3
(y
2)4
(
y
)(i
S
)(i
y
))(),((iyix
Ox
S . Например, значение сплайна для узла
7571,3
2
S выберем из ячейки D11, соответственно, 2249,2
i
S ,
1
, которое располо-
жено в ячейке A29 на рис.12, вычисляется в ячейке С29 следующим образом: «=$F$10*($A$11-A29)^3/6/$E$10+$F$11*(A29-$A$10)^3/6/$E$10+
+($A$11-A29)/$E$10*($D$10-$F$10*$E$10^2/6)+(A29-$A$10)/$E$10*
*($D$11-$F$11*$E$10^2/6)», и эта формула копируется в ячейки C30:C34.
Значения сплайна в узлах для остальных отрезков вычисляются аналогично. Значения в ячейках B29 и C29 совпадают, также совпадают между собой значения в ячейках C34 и D34, D39 и E39. Это объясняется непрерывностью сплайна во внутренних узловых точках. В столбце F для узловых точек
запишем табличные значения
. В ячейку F24 введем
значение
ние
-1 0 1 2 3 4
С использованием таблицы со значениями сплайна
ми
, представленными на рис.12, строится график сплайна и табличные
, в ячейку F29 – значение
, в ячейку F39 – значение
.
5
4
3
2
1
0
-1
-2
-3
, в ячейку F34 – значе-
, в ячейку F44 – значение
Рис.13
и значения-
значения
. График приводится на рис.13.
1.6. Приближение рациональными функциями
Рациональные функции, рассматриваемые как отношения двух многочленов, имеют ряд свойств, часто требуемых от приближающей функции, обладают фундаментальным свойством оставаться рациональной при
переносе и растяжении независимой переменной. Наиболее важно, что рациональными функциями можно приближать такие функции, которые
принимают бесконечные значения для конечных значений аргумента. Ими
можно приближать прямые линии, главным образом ось
для больших
значений аргумента, чего нельзя сделать нетривиальным многочленом.
Чтобы подобрать рациональную функцию, на логарифмическую сетку наносятся координаты заданных узлов, и устанавливается вид много-
36

членов числителя и знаменателя. Определяются наклоны для больших и
Ox
X
Y
)(/)()(xDxQxP
)(x
Q
)(x
D
3
k
)(x
D
)(x
Q
)(x
P
)(x
Q
)(x
D
малых значений аргумента и выбираются число параметров, показатели
степеней числителя и знаменателя. Следует отметить, что можно фиксировать один коэффициент, лучше выбрать единицей старший коэффициент
числителя или знаменателя.
В качестве примера рассмотрим аппроксимацию функции
рая при больших значениях x имеет в качестве асимптоты ось
xe
, кото-
. Рассмотрим таблицу значений этой функции тремя верными знаками после
запятой:
Таблица 5
0,5 1 2 3 3,5 4
0,606 0,367 0,135 0,049 0,030 0,018
Требуется подобрать по этим данным рациональную функцию
, где
и
– многочлены. Сначала решим, какого
вида многочлены следует искать. Для больших значений x табл. 5, если
возможно, определим наклон
xyk ln/ln
, который примерно равен
ii
. Откуда мы заключаем, что степень многочлена в знаменателе
на 3 больше степени многочлена в числителе
. Тогда рациональ-
ную функцию
Условия интерполяции
можно пробовать искать в виде:
xaa
)(
xP
.
1
yxP
)( , где 6,1i , сводят задачу к реше-
10
2
21
ii
3
3
xbxbxbxb
4
4
нию системы линейных уравнений относительно неизвестных коэффициентов многочленов
и
:
)()(
xQyxD
или
iii
2
21
3
3
4
4
xaayxbyxbyxbyxby
.
iiiiiiiiii
10
На рис.14 приводится решение этой системы с помощью надстройки
Поиск решения в Excel.
Рис.14
Таким образом, рациональная функция, интерполирующая значения
табл.5, имеет вид:
37

125,01
)45,0
(
x
)(x
P
)(x
R
)(x
R
0)(x
R
)(x
R
),ln(5100
)(
xP
0627,0011,04859,08454,01
x
.
432
xxxx
При этом максимальная относительная погрешность в интервале
между построенной рациональной функцией
и
xe
со-
ставляет менее 1%.
1.7. Погрешность многочленной аппроксимации
Теория аппроксимации многочленами проста, хорошо развита, требует минимума вычислений. Опыт показывает, что приближение многочленами во многих случаях дает хороший результат. Если мы хотим приблизить функцию, заданную в виде таблицы, алгебраическим многочленом, важно рассмотреть вопрос о том, как сильно могут отличаться функция и многочлен в точках, отличных от узловых точек. В качестве обоснования многочленных приближений часто цитируется теорема Вейерштрасса, которая утверждает, что непрерывная функция на замкнутом отрезке
может быть равномерно приближена многочленами. Однако метод точного
совпадения в узловых точках не является способом, которым определяются многочлены Вейерштрасса. Нельзя полагаться на то, что многочлен будет хорошей аппроксимацией, если единственным требованием, которому
должен удовлетворять такой многочлен, является точное совпадение в узловых точках. Объясняется этот факт, конечно, тем, что производные растут слишком быстро. С.Н. Бернштейном было установлено [4], что последовательность интерполяционных многочленов Лагранжа, построенных
для некоторых непрерывных функций даже по равноотстоящим узлам, с
возрастанием количества узлов не стремится к интерполируемой функции.
Хорошо известным примером является простая функция )1/(1)(
2
xxy . С
ростом числа равноотстоящих узлов отклонение аппроксимирующего многочлена от функции между некоторыми узлами не уменьшается.
Остаточный член интерполяции для оценки погрешности [4] равен:
n
1
)()()(
xPxyxR
1
n
n
!
j
1
n
)(
cyxx
)()(
j
, где ];[ bac
. Такую форму
представления называют остаточным членом в форме Лагранжа. Значение
зависит от свойств функции )( xy и от расположения x и узлов
Можно ожидать тем меньшей погрешности
)(xy , в частности, чем более высоким порядком дифференцируемости она
, чем более гладкой будет
x .
j
будет обладать. Если )(xy является алгебраическим полиномом степени
, то
1
n
.
Рассмотрим пример, как можно использовать формулу остаточного
члена
требуется оценить точность вычисления значения
для оценки точности вычислений по формуле Лагранжа. Пусть
функции
38

)xln(
по формуле Лагранжа, если известны значения
)
ln(
100, )
ln(
101, )
ln(
102, )
ln(
103
)xln()x(y
4n, 100
a, 103
b
)(x
R
)(bxa
ni,,1
)(x
R
)(x
R
)(x
R
1n
.
В данном случае
)(
44
6 x/)x(y
. Оценим 4-ю производную:
,
)4(
xy . Полу-
103100
x
4
100/6)(max
6
чим: )1035,100()1025,100()1015,100()1005,100(
Окончательно имеем:
)5,100(
R .
4
!4100
9
10344,2)5,100(
R .
Остаточный член минимизируется, если x берется в середине интервала узловых точек. Поэтому, когда интерполируемая точка находится в
середине интервала, обычно используют четное число узловых точек, а когда они лежат около узловой точки – нечетное.
Оценка погрешности также зависит от выбора узлов. Если мы хотим
минимизировать отклонение
)(
xx )()(
1
2 n
xxxx
, то в качестве узловых точек нужно выбрать
корни полинома Чебышева. Для произвольного интервала
на всем интервале за счет множителя
узлы
интерполяции определяются таким образом:
2/)()2/)12cos(()( baniabx
,
где
i
. Тогда остаточный член
в виде многочлена Чебышева
,
даст наилучшую оценку по всему отрезку
)()(
xxxx
2 n
в остаточном члене
ba; . Множитель
будет иметь на отрезке
)(
xx
1
ba;
наименьшее значение среди всех многочленов той же степени с коэффициентом при старшей степени, равным единице.
Важно заметить, что использование интерполяционного многочлена
для вычисления производных в узловых точках является нерациональным
решением. Достаточно посмотреть на остаточный член
интерполяци-
онного многочлена, чтобы увидеть, что в узловых точках аппроксимирующий многочлен почти наверняка пересекает функцию. Следовательно,
узловая точка есть почти наихудшее возможное место для вычисления
производной. Колебания многочлена в узловых точках будет сильно вли-
ять на оценку производной.
Следует также подчеркнуть: приближение в смысле наименьших
квадратов уменьшает среднюю квадратичную ошибку, но при этом допускает отдельные большие ошибки, чебышевское – уменьшает экстремальную ошибку, допуская большое среднеквадратичное отклонение, и про это
надо всегда помнить при проведении расчетов. Можно сделать следую-
щее важное замечание: если дано n узловых точек, то соответствующий многочлен степени
, проходящий через эти точки, однозначно определен, независимо от того, как он строится и какие обозначения использованы. Одинаковые узловые точки должны приводить к
одинаковым многочленам.
39

В заключение следует отметить, что методы сплайн-функций широко
m1
m1 m25
i
m10
4
,
m10
2
,
i
m10
4
,
m10
2
,
применяются в вычислительной математике и инженерной практике. Большинство численных методов решения математических задач связано с аппроксимацией функций. Это и задачи приближения функций (интерполяция, сглаживание) и задачи, в которых аппроксимация присутствует как
промежуточный этап исследования, например, численное дифференцирование и интегрирование, численное решение дифференциальных и интегральных уравнений и т.д. Рассмотренные в пособии способы построе-
ния интерполяционных и сглаживающих сплайнов, а также программы их расчета могут использоваться в дальнейшем для решения математических задач.
Задание по теме «Задачи аппроксимации»
1. Построить алгебраический интерполяционный полином, проходя-
щий через заданную систему точек:
)(
2
2101
1
nn
1
n
xaxaxaaxP
x
i
y
i
-1 0 1 2
1
2. Построить сплайн третьего порядка, интерполирующий таблич-
ную зависимость:
x
i
y
i
В качестве краевых условий выбрать условия: .0)(,0)(
0 1 2 3 4
-1 0 2 3
1 2 4 1
0
xSxS
n
3. Построить сглаживающий сплайн третьего порядка, аппроксими-
рующий табличную зависимость, если заданы весовые коэффициенты
i
в
узловых точках:
x
i
y
i
i
В качестве краевых условий выбрать условия: .0)(,0)(
0 1 2 3 4
-1 0 2 3
1 2 4 1
0 0,1 0,05 0,1 0
0
xSxS
n
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
