- •Этапы моделирования
- •1. Основные понятия
- •2. Пример задачи моделирования
- •2. Разработка модели решения и алгоритмической модели.
- •3. Программная модель
- •3. Контрольные вопросы и задания
- •Библиографический список
- •Приложение 1
- •Приложение 2
- •1. Детерминированное сканирование
- •2. Оптимизация по результатам детерминированного сканирования
- •3. Случайное сканирование
- •4. Оптимизация по результатам случайного сканирования
2. Разработка модели решения и алгоритмической модели.
Двухпараметрическая модель. При использовании двухпараметрической модели специальная модель решения не понадобится, т.к. мощные методы оптимизации встроены в MathCad, и для решения достаточно представить модель (4) – (6) в требуемом формате. Однако, для поиска решения оптимизационной задачи при использовании как двухпараметрической, так и однопараметрической модели в общем случае необходима специальная процедура поиска начального приближения. Наиболее универсальный способ заключается в использовании имитационной модели либо в режиме детерминированного сканирования, т.е. просчете значений целевой функции с некоторым шагом на всей области допустимых решений, либо в режиме случайного сканирования, т.е. вычисление значения критерия в случайных точках, равномерно распределенных на всей области допустимых решений. Оба способа представляют собой имитационные модели для поиска начального приближения.
Далее из построенного набора точек выбирается одна точка, в которой значение целевой функции минимально и эта точка используется как начальное приближение к решению.
Однопараметрическая модель. При использовании однопараметрической модели необходимы определенные преобразования. Как известно, минимум функции одной переменной достигается либо в стационарной точке, в которой первая производная равна 0:
,
(9)
либо в одной из граничных точек R1 или R2. Обозначим R0 – решение уравнения (9). Следовательно, решением задачи будет то значение радиуса R0, R1 или R2, при котором величина q(Ri), i = 0, 1, 2 минимальна.
Для поиска R0 можно воспользоваться аналитической или численной моделью решения. Аналитическая модель представляет собой явное решение уравнения (9) вида
R0 = R(V0). (10)
Алгоритм аналитической модели решения предполагает вычисление по формуле (10) и выбор минимального из трёх чисел, т.е. достаточно прост. Поэтому приводить его не будем.
Численная модель решения требует применения какой-либо процедуры поиска корня нелинейного уравнения, например функции root системы MathCad. Кроме того, для поиска начального приближения, используемого в функции root надо воспользоваться какой-нибудь имитационной моделью. Проще всего при решении уравнения с одним неизвестным воспользоваться графическим методом (это разновидность имитационной модели).
Таким образом, для однопараметрической имеем два альтернативных варианта модели решения:
- аналитическая;
- численная в паре с имитационной.
3. Программная модель
Однопараметрическая модель. Аналитическое решение. Программа представляет собой запрограммированную формулу (10), последующее сравнение трех чисел q(Ri), i = 0, 1, 2 и выборе из них минимального.
Рассмотрим пример проектирования ёмкости в виде прямого кругового цилиндра при критерии оптимальности L и следующих исходных данных: R1 = 0.5, R2 = 3.0, V0 = 25.
Будем использовать однопараметрическую
модель. Положим в уравнении (1) V
= V0, выразим Н из уравнения
(1):
и подставим в (3). Соотношение (8) будет
иметь вид:
q
= L
= 4
πR
+
min
(11)
Составим уравнение (9):
q’
= L’
= 4π
–
=
0,
которое
имеет аналитическое решение R0
=
=
1.08194; L(R0)
= 20.3941.
Замечание. Если бы у нас уравнение (9) получилось слишком сложного вида, неразрешимое в аналитическом виде, то мы воспользовались бы численной моделью.
После того как найдено значение R0 (не важно, по какой модели), надо проверить на оптимальность также границы R1 и R2. Имеем: L(R1) = 38.11417; L(R2) = 38.58331. Так как минимальное значение критерия достигается в точке R = R0, то она и будет решением задачи.
Численная модель решения, как
было сказано выше, требует применения
какой-либо процедуры поиска корня
нелинейного уравнения, например функции
root системы MathCad.
Она служит для решения уравнений вида
,
где
– выражение, корни которого нужно найти,
а
– неизвестное. Для поиска корней с
помощью функции root, надо
присвоить искомой переменной начальное
значение, а затем вычислить корень при
помощи вызова функции:
.
Здесь
–
функция переменной
,
используемой в качестве второго
параметра. Функция root
возвращает значение независимой
переменной, обращающее функцию
в 0. Например:
Если уравнение имеет несколько корней (как в данном примере), то результат, выдаваемый функцией root, зависит от выбранного начального приближения.
Для подбора начального приближения к решению уравнения с одним неизвестным в системе MathCad удобно использовать графический метод (разновидность имитационного моделирования). Для этого строим график минимизируемой функции q(R) в диапазоне [R1, R2] и на графике находим точку минимума. Для повышения точности рекомендуется использовать режим «трассировка» в контекстном меню окна графика. Подробно документ поиска численного решения однопараметрической модели при критерии оптимальности L и следующих исходных данных: R1 = 0.5, R2 = 3.0, V0 = 25, приведён в Приложении 1.
Двухпараметрическая модель. В Приложении 2 приведен документ пакета MathCad для решения задачи того же примера при использовании двухпараметрической модели с детерминированным и случайным сканированием. Обращаем Ваше внимание, что здесь ограничение (5) выполнено не совсем точно, значит, однопараметрическая модель позволяет достичь лучшей точности решения.
При сканировании необходимо учесть, что найденное им решение должно хотя бы приблизительно удовлетворять ограничению (6). Поэтому предлагается при сканировании модифицировать критерий и привести его к виду
q1(R, H) = q (R, H) + 10[ V(R,H) – V0 ]2 min. (12)
Тем самым обеспечивается не только достаточно малое значение q(R, H), но и близость V(R, H) к V0. Более подробно этот прием замены критерия мы рассмотрим далее в теме “Метод штрафных функций”.
При детерминированном сканировании значение критерия просчиты-вается на сетке параметров R и H, значение каждой переменной задается в m + 1 равноотстоящих точках вида
;
,
i, j = 0, 1,…, m, где можно взять m = 20 (400 точек сканирования).
Границы Н1 и Н2 определяются из приближенных равенств
V(R1, H2) V0; V(R2, H1) V0,
и при этом должно быть
V(R1, H2) V0, V(R2, H1) V0.
Например, при R1 = 0.5, R2 = 1.9, V0 = 25 подставим в формулу V(R, H) при R = R2 = 1.9 различные значения H:
V(1.9, 1) = 11.341; V(1.9,2.0) = 22.682; V(1.9,2.5) = 28.353.
Выберем в качестве H1 = 2.0, т.к. 22.682 25 и 22,682 < 25. Аналогично
V(0,5,15) = 11.781; V(0.5,20) = 15.708; V(0.5, 35)= 27.489.
Выберем в качестве H2 = 35.
При случайном сканировании выбираем N = 500 случайных точек, равномерно распределенных в прямоугольнике [R1, R2] [H1, H2]. Дя этого используется встроенная в MathCad функция runif(N, u, v), которая генирирует вектор, содержащий N случайных компонент, раномерно распределенных на интервале (u, v). Далее вычисляются значения критерия (12) в полученных случайных точках и заносятся в вектор F. С помощью функции match находися оптимальнная точка, полученная по результатам сканирования. Функция match(z, A) ищет в векторе или матрице А значение z и возвращает индекс его положения. Если z встречается несколько раз – возвращается вектор индексов.
