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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Значения вторых производных сплайна )(
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 – «=B14­D14». Непрерывность первых и вторых производных во внутренних точках
отметим в ячейках 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 », и эта формула копируется в ячейки
3x
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]