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

Прикладная математика. Решение задач с применением табличного процессора Excel. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Отсюда следует, что



"
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
1n
,
1
yy
ii
111
i
b , 0
3,1 ni ,
"
xS и
0
n
c , 0
0
c , 0
2n
c ,
1n
Если в качестве краевых условий рассмотреть: 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
0IND
)(i
R
1IND
)(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,
1i
K выберем из ячейки F11, соответственно,
i
S выберем из ячейки D10,
1i
35
выберем из
и его
значение сплайна
0x
)(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
4n, 100
a, 103
b
)(x
R

)(bxa

ni,,1
)(x
R

)(x
R
)(x
R
1n
.
В данном случае
)(
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]