Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Прикладная математика. Решение задач с применением табличного процессора Excel. Учебное пособие
.pdf
ских задач, которые не являются случайными, аппроксимирующую функцию, как правило, строят на основе интерполяции.
Согласно теореме Вейерштрасса, всякая непрерывная функция на отрезке может быть как угодно хорошо приближена многочленами, поэтому
в качестве аппроксимирующей функции, как правило, рассматривают алгебраические полиномы. В итоге задача аппроксимации сводится к решению систем линейных алгебраических уравнений относительно неизвестных коэффициентов. Для решения задачи интерполяции существуют классические методы – метод интерполяции Лагранжа и метод Ньютона.
Для аппроксимации, численного дифференцирования и интегрирования функций, заданных в виде таблицы, также используются сплайны.
Сплайны позволяют эффективно решать задачи обработки экспериментальных зависимостей между параметрами, имеющими достаточно сложную структуру. Термин «сплайн» (англ. – 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
4n
164n
82n
622n
двинуть требование, чтобы аппроксимирующая функция была дважды непрерывно дифференцируемой.
Рассмотрим пример. Пусть зависимость 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 ,
1i
запишем в ячейки 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 ,
1i
запишем в ячейки G10:G13 следующим образом: в ячейку G10 запишем
формулу «=2*$D$5», в ячейку G11 – «=2*$D$6», в ячейку G12 –
«=2*$D$7», в ячейку G13 – «=2*$D$8».
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
