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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
ских задач, которые не являются случайными, аппроксимирующую функ­цию, как правило, строят на основе интерполяции.
Согласно теореме Вейерштрасса, всякая непрерывная функция на от­резке может быть как угодно хорошо приближена многочленами, поэтому в качестве аппроксимирующей функции, как правило, рассматривают ал­гебраические полиномы. В итоге задача аппроксимации сводится к реше­нию систем линейных алгебраических уравнений относительно неизвест­ных коэффициентов. Для решения задачи интерполяции существуют клас­сические методы – метод интерполяции Лагранжа и метод Ньютона.
Для аппроксимации, численного дифференцирования и интегриро­вания функций, заданных в виде таблицы, также используются сплайны. Сплайны позволяют эффективно решать задачи обработки эксперимен­тальных зависимостей между параметрами, имеющими достаточно слож­ную структуру. Термин «сплайн» (англ. – spline) происходит от названия чертежного инструмента – гибкой пластмассовой, металлической или де­ревянной линейки, которая изгибается так, что может проходить через за­данные точки. Известно, что рейка из упругого материала, закрепленная в некоторых точках и находящаяся в положении равновесия, принимает форму, при которой ее энергия является минимальной. Это фундаменталь­ное свойство позволяет эффективно использовать сплайны при решении практических задач обработки экспериментальной информации.
Широкое применение кубических сплайнов, например, в автодорож­ном проектировании, связано с тем, что 1-я и 2-я производные этих сплай­нов непрерывны. Это обеспечивает контроль радиуса кривизны вертикаль­ных кривых, изменения кривизны по длине трассы и в конечном итоге – высокую гладкость и плавность проектной линии автомобильной трассы.
Методы проектирования продольного профиля автомобильных до­рог, основанные на применении сплайнов 3-й степени (кубических), ис­пользуют для описания проектной линии как интерполяционные, так и сглаживающие сплайны. Сглаживающие сплайны необходимы для поиска оптимального положения проектной линии в заданной полосе варьирова­ния. Интерполяционные сплайны широко используют, например, при про­ектировании лево- и правоповоротных директивно направленных съездов развязок движения в разных уровнях.
1.2. Интерполяция алгебраическими полиномами
Задача интерполяции заключается в построении функции, проходя­щей через заданную систему точек. Для того чтобы функция )(xP была ин-
терполирующей, необходимо выполнение условий: niyxP значения функции )(xP в узлах сетки
x . Если интерполирующую функ-
i
ii
,1,)( , где
y –
i
цию рассматривать в виде алгебраического полинома, то для того чтобы задача интерполяции имела решение и оно было единственным, необходи-
11
мо и достаточно, чтобы степень интерполяционного полинома равнялась
j
i

, если количество заданных узловых точек равно n:
1
n
)(
2
2101
nn
1
n
xaxaxaaxP
1
. (1)
Рассмотрим пример. Пусть задана следующая табличная зависи­мость:
Таблица 1
x y
0 1 2 3
i
-1 0,5 1 3,5
i
Необходимо построить интерполяционный полином (1), проходящий через систему точек (табл.1).
Коэффициенты интерполяционного полинома (1) определяются из решения системы линейных алгебраических уравнений, которая следует из условий прохождения полинома через заданную систему точек
niyxP
,1,)( :
ii
 
2
12110
2
22210
  
2
210
Определитель этой системы относительно неизвестных ,
1
n
,
n
n
1
yxaxaxaa
11
n
21
n
nnnn
1
1
,
yxaxaxaa
2
1
.
yxaxaxaa
n
a где
k
1,0 nk является определителем Вандермонда, который отличен от ну-
ля, если только
xx
для
ji
:
1
n
xxx
1
1
n
xxx
2
.
1
1
2
11
2
22
12
1
n
xxx
nnn
Решение системы линейных алгебраических уравнений можно полу­чить по известным правилам Крамера или каким-нибудь другим способом, например, использовать метод Гаусса. Для решения системы по правилам
Крамера необходимо вычислять определители
, где nk ,1 , которые по-
k
лучаются заменой k– го столбца в определителе столбцом из правой части системы. Тогда коэффициенты интерполяционного полинома (1)
определяются по формулам:
a , где 1,0 nk . Для рассматри-
/1kk
ваемого примера указанные выше определители имеют вид:
0001 1111
,
8421
,
1
0001 1115,0
,
8421
2
0011 115,01 8411
27931
27935,3
2795,31
12
12







0101 15,011
,
3
8121
.
4
275,331
1001 5,0111
1421
5,3931
Вычислим значения определителей, разложив определители четвер­того порядка по элементам верхней строки и получая при этом определи­тели третьего порядка:
получим коэффициенты интерполяционного полинома (1): 1/
a , 2/
21
3/
a , 5,0/
32
, 12
1
a . Таким образом, интерполя-
, 36
43
2
, 24
3
, 6
a ,
4
. В итоге
10
ционный полином, проходящий через систему точек (табл.1), имеет вид:
32
3
5,0231)( xxxxP .
Нетрудно проверить, что задачу интерполяции можно представить
также в виде уравнения:
12
1
n
1)( 1 1
2
111
2
222
n
xxxxP
1
n
xxxy
1
1
n
0
xxxy
2
.
12
1
n
xxxy
nnnn
Разложив определитель по элементам верхней строки и решив урав­нение относительно )(
, можно получить интерполяционный полином
1xPn
(1). Для рассматриваемого примера уравнение, которое определяет интер­поляционный полином, записывается так:
3
1)(
32
xxxxP
00011
0
11115,0
.
84211
279315,3
Разложим этот определитель по элементам верхней строки:
0001 1111
)(
3
1
8421
0001 1115,0
xxP
8421
0011 1115,0
8411
27931
27935,3
27915,3
13
0011

0011
1115,0
xx .
32
8211
27315,3
1115,0
0
4211 9315,3
Полученное уравнение представим в виде:
3
3
xxxxP ,
4
0)(
и решим его относительно )(
3
2
213
xP . Понятно, что в силу единственности ин-
терполяционного полинома, полученное таким способом решение будет совпадать с предыдущим:
32
3
5,0231)( xxxxP .
Построенный интерполяционный полином можно использовать вместо функции в дальнейших аналитических процессах: интегрировании, дифференцировании, отыскании нулей и т.д. Такой подход для построения интерполяционного полинома позволяет решать и некоторые другие мате­матические задачи. Например, вместо требования, чтобы многочлен про­ходил через некоторые данные точки, можно потребовать, чтобы он в не­которых заданных точках имел данный наклон. Так, уравнение
3
1)( 1 1
2
111
2
222
 
32
xxxxP
3
xxxy
1
3
0
xxxy
2
3210
xxy
111
3210
xxy
222
2
2
определяет многочлен третьей степени по переменной x, проходящий че­рез точку ),(
yx с наклоном 1y
11
, и через точку ),(
yx с наклоном 2y
22
(так
как для дифференцирования этого определителя по переменной x доста­точно продифференцировать элементы его верхней строки). Если в точке дано значение y, то вовсе не обязательно в ней должно быть указано зна-
чение y; то же относится и к более высоким производным. Ограничением на выбор условий является требование, чтобы минор члена первой строки
и первого столбца (определитель системы) не был равен нулю. В против­ном случае многочлен может не существовать. Если в качестве условий для построения полинома использовать значения функции и первых ее производных )(
xy , )(
1
xy
1
, )(
xy
и т.д. в одной точке
1
x , то можно получить
1
первые слагаемые разложения в ряд Тейлора:
14
1)(

1, ,
0, .
если i j
если i j





2
2
6
6
1)(
2
111


xy
1
32
xxxxy
3
xxxxy
1
2
0
3210)(
xxxy
111
6200)(
xxy
11
.
6000)(
Существуют алгоритмы, позволяющие получить интерполяционные полиномы, не прибегая к вычислению определителей – это интерполяци­онные полиномы в форме Лагранжа и в форме Ньютона.
Интерполяционный полином в форме Лагранжа можно записать в виде:
n
yxlxL
)()( ,
1
iin
)()()()()(
1121
1121
xxxxxxxxxx
nii
– базисные
)()()()()(
xxxxxxxxxx
niiiiiii
где
1
)(
xl
i
i
функции или фундаментальные полиномы Лагранжа, ),(
yx , где ni ,1 –
ii
заданная система точек интерполяции. Базисные функции обладают сле­дующим свойством:
( )
l x
i j
 
Для заданных узловых точек (табл.1) построим базисные функции:
)(
xxx
xl
1
)(
xl
2
xxx
xxx
)(
xl
3
xxx
)(
xl
4
)30()20()10(
xxx
6
1
)3()2()0(
2
)31()21()01(
1
)3()1()0(
2
)32()12()02(
1
)2()1()0(
6
)23()13()03(
23
23
23
23
,
)6116(
,
)65(
xxx
,
)34(
xxx
.
)23(
xxx
1
)3()2()1(
Далее построим интерполяционную формулу Лагранжа:
)()()()()(
xlyxlyxlyxlyxL
443322113
1
[)1(
1
[5,0)]6116(
1
[1)]65(
232323
)]34(
xxxxxxxxx
1
[5,3
23
)]23(
xxx .
Собирая коэффициенты при одинаковых степенях x, в итоге получим ин­терполяционную формулу Лагранжа:
3
32
5,0231)( xxxxL .
Интерполяционная формула Лагранжа неудобна для практического использования, т.к. при изменении количества узловых точек все вычисле­ния повторяются заново. В связи с этим для таких целей используется ин­терполяционный полином Ньютона. Для интерполяционной формулы
15
Ньютона число используемых узлов может быть легко увеличено или

i
*1

*



1



уменьшено без повторения всего вычисления. Можно написать:
)()()(
xNxxyxN
,
111
nnnn
где )( узловым точкам ),(
– интерполяционный многочлен Ньютона, построенный по n
1xNn
yx . Ясно, что
ii
)(
yxN .
11
nnn
Рассмотрим интерполяционный полином в форме Ньютона, который можно записать в виде:
n
где
1
2
1
1
n
0
ji
),(
yi )(
i
kji
),,(
10
1
– разделенная разность нулевого порядка,
00
ji
)()(
xx
ji
11
yy
ji
xx
ji
kjji
),(),(
xx
ki
2
)()()(),2,1(
xxxxxxn
,
121
n
)()()3,2,1()()2,1()1()(
xxxxxxxN
21
– разделенная разность первого порядка,
yy
ji
xx
ji
yy
kj
xx
kj
– разделенная разность вто-
xx
ki
рого порядка и т.д.
Для заданных узловых точек (табл.1) построим интерполяционный полином в форме Ньютона. Расчеты удобно проводить в виде таблицы.
x iy
i
1 0
2 1 0,5
3 2 1
4 3 3,5
),(1ji ),,(
2
kji ),,,(
*5,1)10/()5,01(
5,0)20/()5,05,1(
5,0)21/()15,0(
5,2)32/()5,31(
)31/()5,25,0(
3
skji
*5,0)30/()15,0(
В таком виде мы легко можем добавить дополнительную точку и к тому, и к другому концу таблицы. Первые разделенные разности близки в интервале к первым производным, аналогично, вторые разделенные разно­сти являются локальными приближениями ко вторым производным и т.д.
Выпишем из расчетной таблицы значения разделенных разностей, которые необходимы для построения интерполяционного полинома (звез­дочками отмечены выбранные значения):
0
Далее имеем: )()()3,2,1()()2,1()1()(
1)1(
; 5,1)2,1(1 ; 5,0)3,2,1(
3
Окончательно получим:
10
3
3
2
1
; 5,0)4,3,2,1(
2
3
xxxxxx
321
32
5,0231)( xxxxN .
.
xxxxxxxN
21
)()()()4,3,2,1(
)2()1()0(5,0)1()0(5,0)0(5,11
xxxxxx .
Решение системы уравнений для определения коэффициентов ин­терполирующего полинома при достаточно большом количестве узлов, не
16
прибегая к вычислительной технике, сопряжено с определенными трудно-
стями, по крайней мере, трудоемко вычислять определители больших по­рядков. Поэтому для решения подобных задач существуют специальные компьютерные программы, электронные таблицы, математические редак­торы.
Для решения задачи интерполяции воспользуемся надстройкой Excel «Поиск решения». Для того чтобы можно было использовать надстройку, предназначенную для решения оптимизационных задач и для решения за­дачи интерполяции, необходимо задачу интерполяции рассматривать как задачу оптимизации. Построим безусловную задачу оптимизации, где в качестве целевой функции рассмотрим квадратичный функционал –
сумму квадратов отклонений табличных значений терполяционного полинома (1) )(
1 inxP
, т.е.:
n
i
1
1110
y от значений ин-
i
2
xPyaaa
))((),,,( .
inin
Следует отметить, что существует связь между решением системы
алгебраических уравнений
)(1
минимизации. Справедливо 0),,(
*
aaaa
1
nn
yxP
относительно коэффициентов интерполирую-
iin
,
aa
10
n
темы уравнений
* 010
)(1
yxP
, где ni ,1 , и задачей безусловной
iin
aa
10
n
0),,(),,(min
, то
* 0
*
,,naa
, причем если
является решением сис-
1
щего полинома. Поэтому решение системы эквивалентно поиску миниму­ма ),,(
aa
10 n
. Если 0),,(
aa
10
n
, то система решений не имеет, что
возможно при наличии в табл.1 одинаковых узловых точек. А это противо­речит понятию функции.
Используя данные табл.1, составим электронную таблицу (рис.1). Для этого в ячейки F5, G5, H5, I5 введем начальные значения коэффици­ентов интерполяционного полинома (1)
1
a , 1
2
a . Значения ix запишем в ячейки A5:A8, значения iy – в ячейки
3
,,, aaaa . Пусть 1
3210
a , 1
0
a ,
1
B5:B8. Расчетные значения интерполяционного полинома (1) запишем в ячейки C5:C8 таким образом: в ячейку C5 запишем формулу «=$F$5+$G$5*A5+ +$H$5*A5^2 +$I$5*A5^3» и эту формулу скопируем в остальные ячейки C6:C8. Отклонения табличных значений
значений полинома )(
запишем в ячейки D5:D8. Для этого в ячейку
1 inxP
y от расчетных
i
D5 введем формулу «=B5-C5», и эту формулу скопируем в остальные ячейки D6:D8, а в ячейки E5:E8 введем квадраты отклонения табличных значений
y от значений интерполяционного полинома )(
i
1 inxP
.Сумму
квадратов отклонений введем в ячейку E9 в виде «=СУММ (E5:E8) » и эту ячейку назовем целевой.
17
86
Рис.1
Запустим надстройку Поиск решения, и в появившемся окне внесем необходимые данные: адрес ячейки целевой функции $E$9; направление оптимизации – минимум; адреса изменяемых ячеек $F$5:$I$5. Задача огра­ничений не имеет. В окне Параметры поиска решения установим флаж­ки: Автоматическое масштабирование, Оценка – квадратичная, Разно­сти – центральные, Метод поиска – сопряженных градиентов. Щелкнув левой кнопки мыши по команде Выполнить в окне Поиск решения, по­лучим оптимальное решение задачи, которое представлено на рис.1.
Таким образом, интерполяционный полином (1) для значений табл.1 имеет вид:
32
3
5,0231)( xxxxP .
1.3. Интерполяция кубическими сплайнами
При малом числе экспериментальных точек, в пределах
точек, для решения задачи интерполяции можно использовать один из методов построения интерполяционных полиномов. Однако при большом числе уз­лов интерполяционные полиномы становятся практически непригодными. Это связано с тем, что степень интерполяционного полинома лишь на еди­ницу меньше числа экспериментальных значений. Можно, конечно, отре­зок, на котором определены экспериментальные значения, разбить на уча­стки, содержащие малое число экспериментальных точек, и для каждого из них построить интерполяционные полиномы. Тогда аппроксимирующий полином будет иметь точки, где производная не является непрерывной, то есть аппроксимирующий полином будет содержать точки «излома».
На практике в качестве интерполирующей функции широко приме­няются сплайны, в частности, кубический сплайн. Сплайном называют ку­сочно-полиномиальную функцию с непрерывными первой и второй произ­водными. Требование непрерывности первой и второй производных от ап­проксимирующей функции в заданных узлах является естественным. На­пример, исследования в теории балок показали, что балка между двумя уз­лами достаточно хорошо описывается кубическим полиномом, и посколь­ку она не разрушается, то аппроксимирующая функция, по меньшей мере,
18
должна быть непрерывно дифференцируемой. Поэтому естественно вы-
i
4n
164n
82n

622n

двинуть требование, чтобы аппроксимирующая функция была дважды не­прерывно дифференцируемой.
Рассмотрим пример. Пусть зависимость 40iyx
ii
,),,( задана в виде
следующей таблицы:
Таблица 2
0 1 2 3 4
-1 0 2 3 5 1 2 4 1 -3
x
i
y
i
Требуется построить сплайн третьего порядка, интерполирующий
указанную выше табличную зависимость.
Кубический сплайн для интервала 4,1,],[
1
ixx
ii
можно записать в
виде:
3
1
. (2)
],[,)()()()(
xxxxxdxxcxxbaxP
1
элементар-
Для определения коэффициентов
ных отрезках необходимо получить
2
11 iiiiiiiii
dcba ,,, на всех
iiii
уравнений. Часть из них вы-
текает из условия прохождения сплайна через заданные точки:
,)(
.4,1,)()()()(
Это условие интерполяции нам дает
ayxP
11 iii
(3.1)
2
11
3
ixxdxxcxxbayxP
1
iiiiiiiiiiii
(3.2)
уравнений. Для получе­ния недостающих уравнений зададим условия непрерывности первых и вторых производных в узлах интерполяции, т.е. зададим условия гладкости сплайна во всех точках. Производные первого и второго порядка для сплайна )(xP имеют вид:
,)(3)(2)(
).(62)( Приравнивая в каждом внутреннем узле левом и правом от узла интервалах, получим ,)(3)(2
xxdcxP (4.2)
1
iii
xx
производные, найденные в
i
2
xxdxxcbxP (4.1)
11
iiiii
уравнений:
2
xxdxxcbb (5.1)
111
iiiiiiii
.3,1,)(3
iiiii
ixxdcc
11
(5.2)
Недостающие два уравнения получим из краевых условий. Например, в качестве краевых условий можно выбрать условия: .0)(,0)(
0
xPxP (6)
n
В итоге получили столько уравнений, сколько неизвестных.
Для построения сплайна, интерполирующего значения табл. 2, по­строим электронную таблицу Excel (рис.2). В ячейке C1 укажем число то­чек n равное 5, в ячейке C2 – число интервалов равное 4. В ячейках B5:E8 введем начальные значения коэффициентов полинома (2)
все начальные значения коэффициентов равны 1. Значения ячейки A10:A14, значения
y – в ячейки B10:B14. Значения сплайна )(0xP
i
19
dcba ,,, . Пусть
iiii
x запишем в
i
в левых концах отрезков 4,1,],[
1
ixx
ii
, которые определяются по формуле
(3.1), запишем в ячейки C10:C13 следующим образом: в ячейку C10 запи­шем формулу «=$B$5», в ячейку C11 – «=$B$6», в ячейку C12 – «=$B$7», в ячейку C13 – «=$B$8».
Рис.2
Значения сплайна )(
xP в правых концах отрезков 4,1,],[
1
1
ixx
ii
, ко-
торые определяются по формуле (3.2), запишем в ячейки D11:D14 сле­дующим образом: в ячейку D11 запишем формулу «=$B$5+$C$5*(A11- $A$10)+$D$5*(A11-$A$10)^2+$E$5*(A11-$A$10)^3», в ячейку D12 – «=$B$6+$C$6*(A12-$A$11)+$D$6*(A12-$A$11)^2+$E$6*(A12-$A$11)^3», в ячейку D13 – «=$B$7+$C$7*(A13-$A$12)+$D$7*(A13-$A$12)^2+
+$E$7*(A13-$A$12)^3», в ячейку D14 – «=$B$8+$C$8*(A14-$A$13)+ +$D$8*(A14-$A$13)^2+$E$8*(A14-$A$13)^3».
ков 4,1,],[
Значения первых производных сплайна )(
1
ixx
ii
, которые определяются по формуле (4.1) при
xP
в левых концах отрез-
0
xx ,
1i
запишем в ячейки E10:E13 следующим образом: в ячейку E10 запишем формулу «=$C$5», в ячейку E11 – «=$C$6», в ячейку E12 – «=$C$7», в ячейку E13 – «=$C$8».
Значения первых производных сплайна )( резков 4,1,],[
1
ixx
ii
, которые определяются по формуле (4.1) при
xP
в правых концах от-
1
xx
i
запишем в ячейки F11:F14 следующим образом: в ячейку F11 запишем формулу «=$C$5+2*$D$5*(A11-$A$10)+3*$E$5*(A11-$A$10)^2», в ячей­ку F12 – «=$C$6+2*$D$6*(A12-$A$11)+3*$E$6*(A12-$A$11)^2», в ячейку
F13 – «=$C$7+2*$D$7*(A13-$A$12)+3*$E$7*(A13-$A$12)^2», в ячейку F14 – «=$C$8+2*$D$8*(A14-$A$13)+3*$E$8*(A14-$A$13)^2».
Значения вторых производных сплайна )(
xP
в левых концах отрез-
0
,
ков 4,1,],[
1
ixx
ii
, которые определяются по формуле (4.2) при
xx ,
1i
запишем в ячейки G10:G13 следующим образом: в ячейку G10 запишем формулу «=2*$D$5», в ячейку G11 – «=2*$D$6», в ячейку G12 – «=2*$D$7», в ячейку G13 – «=2*$D$8».
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]