Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Прикладная математика. Решение задач с применением табличного процессора Excel. Учебное пособие
.pdf
Значения вторых производных сплайна )(
1
x
xP
в правых концах от-
1
резков 4,1,],[
1
ixx
ii
, которые определяются по формуле (4.2) при
xx
,
i
запишем в ячейки H11:H14 следующим образом: в ячейку H11 запишем
формулу «=2*$D$5+6*$E$5*(A11-$A$10)», в ячейку H12 –
«=2*$D$6+6*$E$6*(A12-$A$11)», в ячейку H13 – «=2*$D$7+6*$E$7*(A13
-$A$12)», в ячейку H14 – «=2*$D$8+6*$E$8*(A14-$A$13)». Для построения сплайна нам нужны значения первых и вторых производных только во
внутренних точках. Значения первых и вторых производных в начальной
точке
xx
и в конечной точке
o
xx
вычисляются в ячейках E10, F14,
n
G10, G14, две ячейки из них используются в качестве краевых условий.
В качестве целевой функции можно выбрать любую функцию, только чтобы целевая функция содержала ячейку или ячейки со значениями
коэффициентов.
dcba ,,, . Пусть целевая ячейка A15 имеет вид «=B5».
iiii
Условия интерполяции табличных значений сплайном запишем в ограничениях задачи оптимизации. В ячейках A17:H17 введем условия о
том, что значения сплайна в левых и правых концах отрезков совпадают с
табличными значениями, в следующем виде: в ячейку A17 запишем формулу «=B10-C10», в ячейку B17 – «=B11-C11», в ячейку C17 – «=B12-
C12», в ячейку D17 – «=B13-C13», в ячейку E17 – «=B11-D11», в ячейку
F17 – «=B12-D12», в ячейку G17 – «=B13-D13», в ячейку H17 – «=B14D14». Непрерывность первых и вторых производных во внутренних точках
отметим в ячейках A18:F18 следующим образом: в ячейке A18 запишем
«=E11-F11», в ячейке B18 – «=E12-F12», в ячейке C18 – «=E13-F13», в
ячейке D18 – «=G11-H11», в ячейке E18 – «=G12-H12», в ячейке F18 –
«=G13-H13». Краевые условия (12) будем учитывать следующим образом:
в ячейку G18 запишем «=G10», а в ячейку H18 – «=H14».
Запустим надстройку Поиск решения, и в появившемся окне внесем
необходимые данные: адрес ячейки целевой функции $A$15; направление
оптимизации – можно указать любое направление, либо минимум, либо
максимум; адреса изменяемых ячеек $B$5:$E$8; адреса ячеек с ограничениями задачи $A$17:$H$18=0, они должны выполняться как равенства.
В окне Параметры поиска решения установим флажки: Автома-
тическое масштабирование, сопряженных градиентов и щелкнув в окне
Поиск решения левой кнопки мыши по команде Выполнить, получим
оптимальное решение задачи, которое представлено на рис.2. Таким образом, интерполирующий сплайн (2) найден, построим его график. Для этого
составим таблицу значений сплайна (рис.3). На каждом отрезке [-1;0],
[0;2], [2;3], [3;5] выберем несколько узловых точек и поместим их в столбце A. В столбце B вычислим значения сплайна по формуле (2) в узлах первого отрезка [-1;0], причем значения коэффициентов
,,, dcba выберем из
1111
ячеек, соответственно, B5:E5 (рис.2). Например, значение сплайна для узла
, который расположен в ячейке A22 на рис.3, вычисляется в ячейке
B22 следующим образом: «=$B$5+$C$5*(A22-$A$10)+$D$5*(A22-
21

$A$10)^2+$E$5*(A22-$A$10) ^3 », и эта формула копируется в ячейки
3x
B23:B27.
Значения сплайна в узлах второго отрезка [0;2] вычисляются в ячейках C27:C32 столбца C на рис.3 таким образом: в ячейку C27 введем формулу «=$B$6+$C$6*(A27-$A$11)+$D$6*(A27-$A$11)^2+$E$6*(A27$A$11)^3», и ее скопируем в ячейки C28:C32.
Рис.3
Значения сплайна в узлах третьего отрезка [2;3] вычисляются в ячейках D32:D37: в ячейку D32 введем формулу «=$B$7+$C$7*(A32-$A$12)
+$D$7* (A32-$A$12)^2+$E$7*(A32-$A$12)^3» и ее скопируем в ячейки
D33:D37.
Значения сплайна в узлах четвертого отрезка [3;5] определяются в
ячейках E37:E47. В ячейке E37 вычисляется значение сплайна в точке
по формуле «=$B$8+$C$8*(A37-$A$13)+$D$8*(A37-$A$13)^2+
+$E$8*(A37-$A$13)^3», и она копируется в ячейки E38:E47. Значения в
ячейках B27 и C27совпадают, также совпадают между собой значения в
ячейках C32 и D32, D37 и E37. Это объясняется непрерывностью сплайна
во внутренних узловых точках.
С использованием таблицы значений сплайна на рис.3 строится его
график, который показан на рис.4. Например, в Microsoft Office Excel 2007
график строится следующим образом. Выделяется блок A22:E47 на рис.3,
далее, в меню «Вставка» выбирается «Точечная» (Диаграмма), и среди
предложенных вариантов (Все виды диаграмм) указывается на гладкую
кривую.
22

Рис.4.
Для построения сплайна, интерполирующего табличные значения,
также можно составить программу в VBA, для чего в книге Excel следует нажать комбинацию клавиш «Alt + F11», далее выполнить меню
«Insert» и выбрать кнопку «Module». Откроется пустое окно – окно для
вставки кода программы (рис.5).
Рис.5
В программе приняты следующие обозначения: n – количество интервалов; )(),( iyix – входные массивы чисел, где
ni ,0 , содержащие таб-
личные значения; )(ih – массив чисел, где n1i , , содержащий длину от-
23

резков ],[
, )(),( ibia , )(),( idic – массивы чисел, где n1i , , содержащие
i1ixx
коэффициенты интерполирующего полинома (сплайна), представленного
по формуле (2).
Анализируя решения, представленные на рис.2, можно сделать вывод
о том, что построенный нами сплайн является непрерывной функцией вместе с двумя первыми производными.
1.4. Сглаживание экспериментальных данных
Пусть производится опыт, целью которого является исследование зависимости некоторой физической величины y от физической величины x.
Предполагается, что величины x и yсвязаны функциональной зависимостью )(xy
. Вид этой зависимости требуется определить из опытных
данных.
Предположим, что в результате опыта мы получили ряд экспериментальных точек и построили график зависимости y от переменной x.
Обычно экспериментальные точки на таком графике располагаются не совсем правильным образом – дают некоторый «разброс», т.е. обнаруживаются случайные отклонения от видимой общей закономерности. Эти уклонения связаны с неизбежными при всяком опыте ошибками измерения.
Возникает вопрос: как по этим экспериментальным данным наилучшим
образом воспроизвести зависимость y от переменной x?
Известно, что через любые n точек с координатами ),(
yx всегда
ii
можно провести кривую, выражаемую аналитически полиномом степени
)1(n , так, чтобы она в точности прошла через каждую из точек. Однако
такое решение вопроса обычно не является удовлетворительным: как правило, нерегулярное поведение экспериментальных точек связано не с объективным характером зависимости y от значения x, а исключительно с
ошибками измерения. Возникает типичная для практики задача сглаживания экспериментальной зависимости. Желательно обработать экспериментальные данные так, чтобы по возможности точно отразить общую тенденцию зависимости y от значения x, но вместе с тем сгладить незаконо-
мерные, случайные уклонения, связанные с неизбежными погрешностями
самого наблюдения.
Для решения подобных задач обычно применяется расчетный метод,
известный под названием «метод наименьших квадратов». Этот метод
дает возможность при заданном типе зависимости )(xy
числовые параметры, чтобы кривая )(xy
в известном смысле наилуч-
так выбрать ее
шим образом отображала экспериментальные данные. Из каких соображений может быть выбран тип кривой )(xy
? Часто этот вопрос решается
непосредственно по внешнему виду экспериментальной зависимости. Если
речь идет о периодической функции, часто можно выбрать для ее изобра-
24

жения несколько гармоник тригонометрического ряда. Очень часто бывает
i
i
i
n
так, что вид зависимости (линейная, квадратичная, показательная и т.д.)
известна из физических соображений, связанных с существом решаемой
задачи, а из опыта требуется установить только некоторые параметры этой
зависимости.
Пусть имеются результаты n независимых опытов, оформленные в
виде простой статистической таблицы (табл.3), где
x значение аргумента,
i
y соответствующее значение функции. Пусть из
i
каких-то соображений выбран общий вид функции ),,,;(
зависящей от нескольких числовых параметров
номер опыта,
aaaxy
10 m
aaa ,,,
, именно эти
m10
параметры и требуется выбрать. Согласно методу наименьших квадратов, параметры определяются так, чтобы сумма квадратов отклонений табличных значений
),,,;(
aaaxy
10 mii
была минимальной.
y от расчетных значений
i
Таблица 3
1 2 …
x 1x 2x
i
y 1y 2y
i
…
…
x
i
y
i
…
…
…
x
n
y
n
Требуется выбрать
n
Найдем значения
i
1
10
(7) в минимум. Для этого продифференцируем ее по
aaa ,,,
так, чтобы выполнялось условие:
10
m
2
aaaxy
10
aaa ,,,
, обращающие левую часть выражения
m
min),,,;(
mii
(7)
aaa ,,,
и прирав-
10
m
няем производные нулю:
n
i j
1
aaaxy
(8)
10
mii
i
a
mj
,,0,0)(),,,;(
,
где
i
a
j
по параметру
уравнений, сколько неизвестных
решение, если выполняется условие )( n1m
Если в качестве аппроксимирующей функции ),,,;(
j
a
в точке
j
10 mia
),,,;()(
aaax
– значение частной производной функции
x . Система уравнений (8) содержит столько же
i
aaa ,,,
, и имеет единственное
10
m
.
aaax
10 m
вы-
брать алгебраический полином:
),,,;(
2
21010
m
xaxaxaaaaax
mm
,
то система (8) будет системой линейных алгебраических уравнений относительно неизвестных коэффициентов
aaa ,,,
. Коэффициенты поли-
10
m
нома находятся из решения системы линейных уравнений.
25

Так же решается задача сглаживания экспериментальной зависимо-
i
сти методом наименьших квадратов в случае, когда сглаживающая функция представляет собой не полином, а сумму произвольных заданных
функций )(,),(),(
)()()(),,,;(
10
xxx
с коэффициентами
m
aaa ,,,
:
10
110010
m
xaxaxaaaax
(9)
mmm
Например, экспериментальную зависимость можно сглаживать тригонометрическим полиномом:
)2sin()2cos()sin()cos(),,,;(
xaxaxaxaaaaax
43214321
или линейной комбинацией показательных функций:
)exp()exp()exp(),,;(
xaxaxaaaax
.
Коэффициенты
321321
aaa ,,,
сглаживающей функции (9) определяются из
10
m
решения системы линейных уравнений:
n
i
1
1100
.
immiii
ij
mjxxaxaxay
,0,0)())()()((
Сложнее решается задача о сглаживании методом наименьших квадратов, если в выражение функции ),,;(
aaa ,,,
входят нелинейно. Тогда решение системы (8) может оказаться
10
m
aaxy
0 m
числовые параметры
сложным и трудоемким. Поэтому параметры аппроксимирующей функции
),,,;(
aaax
10 m
не следует искать из решения системы (8), а их нужно по-
лучать из решения безусловной задачи оптимизации (7). Рассмотрим пример аппроксимации табличных значений по методу наименьших квадратов в программе Excel с помощью надстройки «Поиск решения»:
Таблица 4
1 2 3 4 5 6 7 8 9
0 1 2 2,5 3 3,5 4 5 6
0 1,2 0,15 -0,5 -0,8 -0,5 -0,15 0,4 0,1
x
y
i
i
Чтобы подобрать вид аппроксимирующей зависимости для значений табл.4 ),,,;(
aaax
10 m
, построим кусочно-линейную аппроксимацию
этих точек, соединяя их отрезками прямой, как показано на рис.6.
Рис. 6.
26

Анализ графика на рис.6 показывает, что экспериментальную зави-
симость можно сглаживать тригонометрическим полиномом:
)cos()sin(),,,;(
xaaxaaaaaax
(10)
32103210
или ее можно рассматривать как «затухающие колебания»:
)sin()exp(),,;(
xaxaaaaax
. (11)
210210
Рассмотрим оба варианта. В программе Excel для сглаживания тригонометрическим полиномом (10) составим следующую электронную таблицу (рис.7).
Рис.7
В ячейки A3, B3, C3, D3 введем начальные значения параметров
,,, aaaa . Они могут быть любыми, так как мы минимизируем сумму
3210
квадратов отклонений между табличными и расчетными значениями, а
квадратичная функция имеет только одну оптимальную точку. Эта точка
также является и точкой абсолютного минимума. Пусть 1
1
a , 1
2
a . Значения ix запишем в ячейки A5:A13, значения iy – в ячей-
3
a , 1
0
a ,
1
ки B5:B13. Расчетные значения сглаживающей функции (10) запишем в
ячейки C5:C13 следующим образом: вначале в ячейку C5 запишем формулу «=$A$3*SIN($B$3*A5)+$C$3*COS($D$4*A5)», и эту формулу скопируем в остальные ячейки C6:C13. В ячейках D5:D13 вычислим квадрат
разностей между расчетными и табличными значениями: в ячейку D5 введем формулу «=(B5-C5)^2» и ее скопируем в остальные ячейки D6:D13.
Сумму квадратов отклонений табличных значений от расчетных значений
введем в ячейку D14: «=СУММ(D5:D13)». Ячейку D14 будем называть
целевой ячейкой, т.к. оптимальные значения параметров
,,, aaaa бу-
3210
дем определять, вычисляя минимальное значение этой ячейки. Запустим
надстройку Поиск решения, и в появившемся окне занесем необходимые
данные: адрес ячейки целевой функции $D$14; направление оптимизации
– минимум; адреса изменяемых ячеек $A$3:$D$3. Мы проводим безусловную минимизацию, поэтому ограничений нет.
В окне Параметры поиска решения установим флажки: Автома-
тическое масштабирование, сопряженных градиентов, и щелкнув в окне Поиск решения левой кнопки мыши по команде Выполнить, получим
оптимальное решение задачи, которое представлено на рис.7. Таким обра-
27

зом, сглаживающий тригонометрический полином (10) для значений
188083
,
0
табл.4 найден:
)2884,1cos(1651,0)5555,1sin(8941,0),,,;(
xxaaaax
3210
.
На рис.8 приводится график сглаживающего тригонометрического
полинома (10), аппроксимирующего значения табл. 4.
Рис.8.
Чтобы установить, как удачно подобрана сглаживающая функция,
необходимо вычислить среднее квадратичное отклонение по формуле:
i
n
1
2
nyy
)1/()(
ii
. (12)
Аппроксимация тригонометрическим полиномом (10) значений
табл.4 дает среднее квадратичное отклонение
. Сумма квадра-
тов отклонений между табличными и расчетными значениями находится в
ячейке D14 (рис.7) и равна
2
283003,0)(
yy
ii
. Если это значение поде-
лить на 8, так как количество точек в табл.4 равно 9 и далее извлечь квадратный корень, то получим значение среднего квадратичного отклонения.
Рассмотрим аппроксимацию значений табл.4 с помощью конструкции (11).
Аппроксимирующая функция (11) имеет вид «затухающего колебания».
В программе Excel для сглаживания аппроксимирующей функцией (11)
значений табл.4 составим электронную таблицу (рис. 9).
Рис.9
В ячейки A3, B3, C3 введем начальные значения параметров
,, aaa . Пусть 1
210
a , 1
0
a , 1
1
a . Значения ix запишем в ячейки
2
28

A5:A13, значения
015129
,
0
y – в ячейки B5:B13. Расчетные значения сглаживаю-
i
щей функции (11) запишем в ячейки C5:C13 следующим образом: в начале
в ячейку C5 запишем формулу «=$A$3*EXP((-1)*$B$3*A5)
*SIN($C$3*A5)», и эту формулу скопируем в остальные ячейки C6:C13.
В ячейках D5:D13 вычислим квадрат разностей между расчетными и
табличными значениями: в ячейку D5 введем формулу «=(B5-C5)^2» и ее
скопируем в остальные ячейки D6:D13. Сумму квадратов отклонений между табличными и расчетными значениями введем в ячейку D14:
«=СУММ(D5:D13)». Ячейку D14 будем называть целевой ячейкой, т.к.
оптимальные значения параметров
,, aaa вычисляются, определяя ми-
210
нимальное значение этой ячейки. Запустим надстройку Поиск решения, и
в появившемся окне внесем необходимые данные: адрес ячейки целевой
функции $D$14; направление оптимизации – минимум; адреса изменяемых ячеек $A$3:$C$3. Мы проводим безусловную минимизацию, поэтому
ограничений нет.
В окне Параметры поиска решения установим флажки: Автома-
тическое масштабирование, сопряженных градиентов, и щелкнув в окне Поиск решения левой кнопкой мыши по команде Выполнить, получим оптимальное решение задачи, которое представлено на рис.9. Таким
образом, сглаживающая функция (11) для значений табл.4 найдена:
210
251615,0
x
)51182,1sin(569763,1),,;(
xeaaax
.
На рис.10 приводится график сглаживающей функции (11), аппроксимирующей значения табл. 4. Аппроксимация значений табл.4 сглаживающей функцией (11) дает нам среднее квадратичное отклонение
. Сравнивая средние квадратичные отклонения для аппрокси-
мирующих функций (10) и (11), можно сделать вывод о том, что аппроксимирующая функция (11) дает лучший результат, чем аппроксимирующий тригонометрический полином (10).
Рис.10.
Метод, который позволяет выбрать вид аппроксимирующей функции, вычислить и проверить значимость ее коэффициентов, а также установить адекватность построенной аппроксимирующей функции, называется регрессионным анализом. Методы регрессионного анализа подробно
можно изучить в работе [13].
29

1.5. Применение сглаживающих сплайнов для обработки
экспериментальных данных
Экспериментальные значения параметров исследуемых процессов
обычно определяются с некоторыми погрешностями, обусловленными наличием случайных ошибок измерений. В таких случаях аппроксимацию
экспериментальных данных можно проводить с помощью сглаживающего
сплайна.
Рассмотрим процедуру сглаживания на примере кубического сплайна. Решение задачи сглаживания сплайнами связано с минимизацией
функционала:
x
n
x
0
n
i
0
212''
yxSdxxSS
))(())(()(
, (13)
iii
где )(
xS – значение сплайна в узлах
i
nix
i
,0, , 0
– весовые коэффи-
i
циенты.
Функционал (13) хорошо моделирует задачу трассирования дорог,
когда необходимо добиться минимального отклонения проектируемой
трассы от заданных координат. При этом необходимо выполнение ряда ограничений по допустимому уклону и кривизне в продольном профиле, а
также по кривизне и скорости нарастания кривизны в плане трассы, согласно требованиям СНиП [2]. Минимальное отклонение достигается за
счет второго слагаемого функционала (13), а условия по кривизне – за счет
первого слагаемого.
Наиболее важным моментом при построении сглаживающего сплайна является выбор весовых коэффициентов
меньше выбран коэффициент
ментальному значению
niyxS
ii
,0,)( и сглаживающий сплайн становится интерполяционным.
y . Заметим, что если все 0
, тем ближе проходит сплайн к экспери-
i
i
. Можно показать, что чем
i
, то
i
В частности, если возникает необходимость закрепить точку с номером k,
то нужно положить 0
ния
y в узлах сетки, тем меньше должны быть весовые коэффициенты.
i
Рассмотрим построение кубического сплайна на отрезке ];[
. Отсюда следует, что чем точнее заданы значе-
k
1 iixx
,
ni ,1 . Так как кубический сплайн на каждом из отрезков ];[
ет с кубическим полиномом, то для этих отрезков )(
"
xS (вторая производ-
1 iixx
совпада-
ная сплайна) должна быть линейной функцией. Линейная функция, проходящая через точки ),(
Kx и ),(iiKx , где )(
11 ii
"
xSK , может быть
ii
представлена в виде:
"
)(
KxS
1
i
xx
1
i
KK
1
ii
, ];[
xx
1
ii
30
xxx
, ni ,1 .
1 ii
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
