Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Решение задач математического моделирования в системе MathCAD. Учебное пособие
.pdf
h:= 0.25- новое значение;
h:= 0.125
x h gradM =
1.125
0.75
f(1.125, -0.75) = -6.055
x h gradM =
f(2.25,-0.5) = 1.531- значение функции в новом приближении.
Так как , то шаг снова неудачный и его следует поделить пополам.
Значение функции в этой точке оказалось меньше значения в
начальной точке. Следовательно, шаг считается удачным, и можно
переходить к следующей итерации.
Итерация № 2
gradM:= gradf(1.125, -0.75)
Определяется градиент целевой функции в точке с данными координатами.
gradM =
|gradM| = 1.381 - значение модуля градиента в новой точке;
x :=
x h gradM =
Вычисляется новое приближение, т.е. проводится поиск координат следующей точки.
f(0.953, -0.734) = -6.162- значение функции в этой точке.
Значение функции f (x,y) – 6,162 < - 6,055 и значение модуля гра-
диента больше заданной точности 0,01, поэтому нужно перейти к третьей итерации и вычисления произвести заново.
.
.
.
.
2.25
- новое вычисляемое приближение;
0.5
- значение градиента функции в новой точке;
- значение координат точки.
0.953
0.734
81

Итерация № 3
gradM =
|gardM| = 0.294- значение модуля градиента больше заданной точ-
ности 0,01.
x :=
x h gradM =
f(0.973, - 0.703) = -6.169
Итерация № 4
gradM =
|gardM| = 0.146 - значение модуля градиента больше заданной
точности 0,01.
x :=
x h gradM =
f(0.966, - 0.686) = -6.172
Шаг неудачный.
Итерация № 5
gradM:= gradf(0.966, -0.686)
gradM =
|gardM| = 0.092 - значение модуля градиента больше заданной
точности 0,01.
x :=
x h gradM =
f(0.965, - 0.675) = -6.172
.
.
.
.
.
.
.
.
.
.
.
0.973
0.218
0.966
0.686
0.965
0.675
82

Итерация № 6
gradM:= gradf(0.965, -0.675)
gradM =
|gardM| = 0.061 - значение модуля градиента больше заданной
точности 0,01.
x :=
x h gradM =
f(0.964, - 0.667) = -6.173
Шаг неудачный.
Итерация № 7
gradM:= gradf(0.964, -0.667)
gradM =
|gardM| = 0.038 - значение модуля градиента больше заданной
точности 0,01.
x :=
x h gradM =
f(0.963, - 0.662) = -6.173
.
.
.
.
.
.
0.964
0.667
0.963
0.662
Итерация № 8
gradM:= gradf(0.963, -0.663)
gradM =
|gardM| = 0.026 - значение модуля градиента больше заданной
точности 0,01.
x :=
.
.
.
83

Шаг неудачный.
0.963
0.66
0.962
0.656
x h gradM =
f(0.963, - 0.66) = -6.173
Даже если значение координат точки не поменялось, изменилось
значение градиента функции, модуль градиента пока больше 0,01, поэтому поиск минимума еще продолжается.
Итерация № 9
gradM:= gradf(0.963, -0.66)
gradM =
|gardM| = 0.018 - значение модуля градиента больше заданной
точности 0,01.
x :=
f(0.962, - 0.658) = -6.173
Итерация № 10
gradM:= gradf(0.962, -0.658)
gradM =
|gardM| = 0.012 - значение модуля градиента больше заданной
точности 0,01.
x :=
x h gradM =
f(0.962, - 0.656) = -6.173
.
.
.
.
.
.
Итерация № 11
gradM:= gradf(0.962, -0.656)
gradM =
84

|gardM| = 6.325 10
n
xxx ,...,,
21
nn
n
x
cxcxc
xxxf +++
= ...),...,
,(
22
1121
,
...
22
11 in
in
ii
b
x
axaxa
≤+
++
,...
2211 kinknkk
bxaxaxa =+++
,
...
2211 pnpnpp
bxaxaxa ≥+++
.pki
≠≠
0≥
j
x
),...,,(
21 n
xxxf
10215282,0,0 ≤+⋅≤⋅+≥+⋅≥≥ yxиyxyxyx
Целевую функцию запишем таким образом, чтобы вместо x и y
были переменные x0, х
1:
Так как значение модуля градиента стало меньше 0,01, следовательно, поиск минимума функции f (x,y) завершен.
f(0.962,-0.656)= -6.173 - значение функции в точке минимума с
координатами (0,962; -0,656).
В общем случае задача линейного программирования формули-
3.1.6. Линейное программирование
руется следующим образом: найти величины
ющие минимум линейной функции
и удовлетворяющие условиям, которые могут быть только равенствами и неравенствами вида
Среди ограничений часто встречаются условия неотрицательности всех переменных:
Хотя условия неотрицательности являются частным случаем
ограничений вида, их принято выделять в особую группу. Функция
называется целевой функцией.
Задание. Даны целевая функция (линейная) видаf(x,y):=2x+5yи
ограничения
Составить программу на MathCAD для поиска минимума функции, определить область, в которой имеется минимум и нанести точку
минимума.
, доставля-
f(x):=2·+ 5 ·
85

Данные ограничения приведем к одному виду, т.е. они будут выгля-
2· +
≥ 8;
-
-2·-
≥ -10;
x0:= 1 Задается начальное приближение для переменных при
поиске минимума функции f(x).
x1:= 1
=
0
4
x
2 1
1 2
2 1
8
15
10
деть так:
-2·
≥ -15;
Чтобы поменять знаки неравенства, обе части умножили на -1
Пример выполнения задания в MathCAD:
f(x):= 2·
+ 5 ·
В матрице М элементами выступают коэффициенты при пере-
менных x
и x1 левой части неравенств, а в матрице V - соответственно
0
значения правой стороны неравенств:
Given
M·x≥V
x≥0
x:=Minimize(f,x) - команда поиска точки минимума функции
- координаты точки минимума, т.е. значения переменных
x
и x1 в точке минимума
0
f(x) = 8 - значение функции в точке минимума
86

3.1.7. Поиск экстремумов функций при наличии ограничений
yxyxf −=
2
),(
6=+ yx
01 ≥−x
26
22
≤+ yx
( )
1
2
0
:)( xxxf −=
1:
1:
1
0
=
=
x
x
( ) ( )
26
01
6
2
1
2
0
0
10
≤
+
≥−
=+
xx
x
xx
),(: xfMinimizex =
=
5
1
x
4)
( −=xf
≥
yxzyxzyxf
⋅−−−−=
222
21000),,(
025
222
=−++ zyx
07148 =++ zyx
0
0 ≥≥ yx
xyzyxzyxf −−−−=
222
21000:),,(
с помощью системы MathCAD
Задание 1. Найти минимум функции
чии ограничений
Решение задачи в MathCAD.
Given
- точка минимума
Проверка выполнения условий:
1+5=6
1-1
0
2+52
1
=26
Задание 2. Найти минимум функции
,
- значение функции в точке минимума
,
при наличии ограничений
при нали-
Решение в MathCAD:
,
87
,

35:2.0:5.3: =
== z
yx
00
0
7148
025
222
≥≥
≈++
≈−++
yx
zyx
zyx
)
,
,,(: zyxfMinimizep =
321
:::
pzp
yp
x ===
=0231.1
846.4
p
521
.9672100
10225
22
2
7222
=−−−−
⋅−=−++
−
xyzyx
zyx
Given
- точка минимума
f(p)=967.521 - значение функции в точке минимума
Проверка:
3.2. Решение задач математического моделирования
3.2.1. Выбор эмпирической зависимости
Часто перед исследованием в любой области возникает следующая задача. Имеется объект исследования ОИ, который характеризуется набором переменных: входных Х j ( J =1, К) и выходной Y . Требуется найти зависимость выходной переменной от входных:
Y = f(X1, X2,…, Xk ) (3.1)
При этом считается, что механизмы процессов, протекающих
внутри объекта исследования, неизвестны, а имеются только соответствующие значения входных и выходных параметров. Такая задача
носит название задачи «черного ящика».
Рассмотрим простейший случай, когда на вход действует только
одна переменная:
Y=f(X) (3.2)
88

Решение задачи моделирования в этом случае состоит из ряда
№
Формула
1
Y=a
+ a
· x
2
Y=a
+ a· x + a· x
3
Y=a
+ a
· lgx
4
Y=a
+
∑
=ni 1
∑
=
n
i 1
→
X
X
X
…
X
Y
Y
Y
…
Y
этапов:
1) проведение эксперимента;
2) выбор вида эмпирической зависимости;
3) нахождение параметров выбранной зависимости;
4) исследование модели и выводы.
На первом этапе задаем значения входной переменной Х из воз-
можного диапазона и замеряем соответствующие значения выходной
переменной. Результат представляем в следующем виде:
На втором этапе необходимо подобрать формулу, которая могла
бы описать экспериментальные данные. В таблице приведены основные типовые формулы, наиболее часто встречающиеся в задачах химии и химической технологии.
На третьем этапе необходимо определить параметры выбранной
зависимости a и b таким образом, чтобы расчетная кривая лежала как
можно ближе к экспериментальной кривой. В качестве критерия близости выбираем минимум суммы квадратов отклонений между экспериментальными и расчетными значениями.
S=
(Y
Y
)=
(Y
a b X
)
min, (3.3)
89

На четвертом этапе получаем расчетные значения подставкой в
y
2.1
1.47
1.03
0.72
0.5
0.35
:=
x
1
2
3
4
5
6
:=
F x( )
1
x
:=
ARB linfit x y, F, ( ):=
ARB
2.225
0.342−
=
m x( )
1.908
1.566
1.224
0.882
0.54
0.198
=
найденную формулу экспериментальных значений входной величины.
Полученные значения наносим на график с экспериментальными данными и делаем вывод об адекватности.
Протокол решения задачи в MathCad:
1. Построение линейной зависимости y=+ ·
- задана функция в табличном виде
- вспомогательная функция
- команда для нахождения a
- значения найденных коэффициентов a
, a
m(x):=2.225-0.342·x - найденная линейная зависимость
- значение линейной зависимости в
заданных точках
, a
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
