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

Основы компьютерной математики. Задачи системного анализа и управления. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
2. Основы математических расчетов
61
Решение приведено на рисунке 2.29. Заметим, что предварительно сле-
дует раскрыть скобки в числителе, иначе Mathcad не справляется с постав­ленной задачей.
Рис. 2.29. Нахождение суммы ряда
0n
e
s 2  ns+( )−
e
2  s 2  ns+( )−
+
1 s2+
=
assume s 0 rewrite exp simplify factor
e
s−
s21+
( )
e
s−
1−
( )
−→
3. РЕШЕНИЕ ЗАДАЧ ОПТИМИЗАЦИИ
3.1. Поиск экстремума функции одной переменной
Для решения задач поиска минимума и максимума в Mathcad имеются встроенные функции Minimize(f, x1, x2, …) (определяет минимум) и Maximize(f, x1, x2, …) (определяет максимум). Перед обращением к указан­ным функциям обязательно задать начальное приближение параметров.
Пример 3.1. Найти точки локального экстремума следующих функций одной переменной:
󰇛󰇜    
󰇛󰇜    
Решение: графически определим приблизительное расположение точек локального экстремума. У функции y(x) имеется одна точка локального ми­нимума и одна точка локального максимума (рис. 3.1). В качестве началь­ного приближения выбираем x = 0, далее применяем функции Minimize(y, x) и Maximize(y, x).
Рис. 3.1. Поиск точек локального экстремума функции y(x)
При нахождении точек локального экстремума в случае их бесконечного количества целесообразно использовать блок Given – Minimize или Given – Maximize и указать интервал поиска необходимого локального экстремума. Найдем локальный минимум функции g(x) на (1; 3) (рис. 3.2). Аналогично находятся и другие точки локального экстремума данной функции с помо­щью функций Minimize и Maximize.
Пример 3.2. Найти наименьшее и наибольшее значения функции одной переменной на отрезке [0; 4]:
y x( ) 3 x2 x3− 3 x+ 4−=
2− 0 2 4
20−
10−
10
20
y x( )
x 0=
x
min
Minimize y x( )=
x
min
0.414−=
x
max
Maximize y x( )=
x
max
2.414=
3. Решение задач оптимизации
63
󰇛󰇜    
Рис. 3.2. Поиск точек локального экстремума функции g(x)
Решение: построим график функции на отрезке [0; 4], чтобы в дальней-
шем удостовериться в правильности решения. Зададим начальное прибли­жение x = 1, внутри вычислительных блоков Given – Minimize и Given – Maximize укажем отрезок, на котором происходит поиск наименьшего и наибольшего значений функции (рис. 3.3). Итак, наименьшее значение функции на отрезке [0; 4] достигается в точке x = 0 и равно –4, наибольшее – в точке x = 2,414 и равно 6,657.
Рис. 3.3. Поиск наибольшего и наименьшего значений функции одной переменной
g x( ) cos x( )22sin x( )−=
10− 6− 2− 2 6 10
2−
1−
1
2
g x( )
x 0=
Given
1 x 3
x
min
Minimize g x( )=
x
min
1.571=
y x( ) 3 x2 x3− 3 x+ 4−=
0 1 2 3 4
10−
5−
5
10
y x( )
x 1=
Given
0 x 4
x
min
Minimize y x( )=
x
min
0=
y x
min
( )
4−=
Given
0 x 4
x
max
Maximize y x( )=
x
max
2.414=
y x
max
( )
6.657=
64
3. Решение задач оптимизации
3.2. Поиск экстремума функции нескольких переменных
Нахождение экстремума, наибольшего и наименьшего значений функ­ции многих переменных не несет принципиальных особенностей по сравне­нию с функциями одной переменной.
Пример 3.3. Найти точки локального экстремума функции
󰇛 󰇜     
Решение: определим функцию f(x, y), построим поверхность и контурный график данной функции. При нахождении точек локального максимума Mathcad выдает ошибку, окрашивая функцию Maximize в красный цвет, а анализ графика функции показывает, что точки локального максимума отсутствуют. Настроим контурный график следующим образом: диапазон изменения переменной x установим [0; 6], переменной y – [-4; 4] , число узлов сетки – равным 90. Графики показывают, что у данной функции существуют две точки локального мини­мума. Выбирая точки начального приближения (4; 2) и (4; -2), с помощью функ­ции Minimize находим их (рис. 3.4).
Пример 3.4. Найти наименьшее и наибольшее значения функции
󰇛 󰇜     
на компакте:      .
Решение: зададим функцию f(x, y), начальное приближение x = 1, y = 1, внутри вычислительных блоков Given – Minimize и Given – Maximize укажем неравенства, определяющие компакт, на котором происходит поиск наименьшего и наибольшего значений функции (рис. 3.5). В результате по-
лучаем, что наименьшее значение равно -4,187 и достигается в точке 󰇛 󰇜, наибольшее значение равно 263 и достигается в точке 󰇛 󰇜.
Пример 3.5. Исследовать на условный экстремум функцию
󰇛 󰇜  
при условии связи   .
Решение: зададим функцию f(x, y) и параметрическое уравнение цилиндра C(t, h) (рис. 3.6).
Построим данные поверхности, определив диапазоны изменения пере-
менных следующим образом: 󰇟 󰇠, 󰇟 󰇠, 󰇟 󰇠 с количеством узлов сетки 80 и  󰇟 󰇠 с количеством узлов
сетки 80.
3. Решение задач оптимизации
65
Далее построим в той же графической области линию пересечения G(t)
плоскости f и цилиндра C, для этого необходимо установить тип графика
«Scatter Plot». Здесь так же 󰇟 󰇠 с количеством узлов сетки 80. Геомет-
рически задача сводится к исследованию на экстремум функции G(t).
Дальнейшее решение задачи приведено на рисунке 3.6.
Рис. 3.4. Точки локального экстремума функции двух переменных
f x y( ) y42x y
2
− 2x2+ 7x− 7+=
f
f
x 1=
y 1=
Maximize f x y( ) =Maximize f x y( ) =
x 4=
y 2=
x
1
y
1
 
 
Minimize f xy( )
3.5
1.871
 
 
==
f x1y1
( )
5.25−=
x 4=
y 2−=
x
2
y
2
 
 
Minimize f xy( )
3.5
1.871−
 
 
==
f x2y2
( )
5.25−=
66
3. Решение задач оптимизации
Рис. 3.5. Поиск наибольшего и наименьшего значений функции двух переменных
f x y( ) 2x 5y−=
C t h( )
2cos t( )
2sin t( )
h
 
 
=
G t( )
2cos t( )
2sin t( )
4cos t( ) 10 sin t( )−
 
 
=
f C G
f x y( ) y42x y
2
− 2x2+ 7x− 7+=
x 1=
y 1=
Given
x 0
y 0
x y+ 4
x
1
y
1
 
 
Minimize f xy( )
2.5
1.5

==
f x1y1
( )
4.187−=
Given
x 0
y 0
x y+ 4
x
2
y
2
 
 
Maximize f xy( )
0 4

==
f x2y2
( )
263=
3. Решение задач оптимизации
67
Рис. 3.6. Нахождение условного экстремума функции двух переменных
3.3. Решение задач линейного программирования
Пример 3.6. Механический цех может изготовить за смену 600 деталей № 1
или 1200 деталей № 2. Производственная мощность термического цеха, куда эти детали поступают на обработку в тот же день, позволяет обработать за смену 1200 деталей № 1 или 800 деталей № 2. Цены на детали одинаковы.
Определить ежедневный производственный план выпуска деталей, мак-
симизирующий товарную продукцию предприятия, при следующих допол­нительных условиях:
a) оба цеха работают в одну смену; b) механический цех работает в три смены, а термический – в две смены; c) предприятие работает в две смены, при этом деталей № 1 должно быть
изготовлено не более 800 шт., а деталей № 2 – не более 1000 шт ([4]).
Решение: составим математическую модель данной задачи. Предположим, что
предприятие ежедневно выпускает  делателей № 1 и
делателей № 2. Зададим
целевую функцию 󰇛󰇜  
. Если объем рабочего времени за одну смену
принять за 1, то механический цех за смену изготавливает продукцию за



долю смены, а термический – за



. Системы огра-
ничений для каждого случая представлены на рисунке 3.7. Для нахождения макси­мума целевой функции применяем вычислительный блок Given – Maximize.
x 0=
y 2=
Given
x
min
y
min
 
 
Minimize f xy( )
0.744−
1.857
 
 
==
f x
minymin
( )
10.77−=
Given
x
max
y
max
 
 
Maximize f xy( )
0.743
1.857−
 
 
==
f x
maxymax
( )
10.77=
68
3. Решение задач оптимизации
Таким образом, ежедневный план выпуска: a) 300 деталей № 1 и 600 де­талей № 2; b) 1500 деталей № 1 и 600 деталей № 2; c) 700 деталей № 1 и 1000 деталей № 2.
Рис. 3.7. Поиск оптимального плана задачи линейного программирования
Пример 3.7. Решить задачу линейного программирования средствами
Mathcad:
󰇛󰇜   
  
  
  

Осуществить проверку решения геометрическим методом.
a)
b)
c)
ORIGIN 1=
f x( ) x1x2+=
x11=
x21=
Given
1
600
x
1
1
1200
x
2
+ 1
1
1200
x
1
1
800
x
2
+ 1
x 0
xaMaximize f x( )
300 600

==
f x
a
( )
900=
Given
1
600
x
1
1
1200
x
2
+ 3
1
1200
x
1
1
800
x
2
+ 2
x 0
xbMaximize f x( )
1500
600
 
 
==
f x
b
( )
2100=
Given
1
600
x
1
1
1200
x
2
+ 2
1
1200
x
1
1
800
x
2
+ 2
x1800
x21000
x 0
xcMaximize f x( )
700
1000
 
 
==
f x
c
( )
1700=
3. Решение задач оптимизации
69
Решение: определим целевую функцию f(x), зададим начальное прибли-
жение 󰇡
󰇢, внутри вычислительного блока Given – Maximize запишем
систему ограничений задачи, в результате действия функции Maximize полу-
чаем оптимальный план 

и находим 󰇛

󰇜 (рис. 3.8).
Линии уровня целевой функции, определяемые уравнением f(x) = C, обра-
зуют семейство параллельных прямых. Для построения опорных прямых (т. е. линий уровня, имеющих хотя бы одну общую точку с областью допустимых решений и таких что указанная область расположена в одной из полуплоско­стей, порожденных данной прямой) вводим функцию g(t, C) (рис. 3.8).
Рис. 3.8. Решение простейшей задачи линейного программирования
Построим область допустимых решений задачи – множество, определя-
емое системой неравенств
  


     
   
которое представляет собой треугольник D; векторы нормали прямых, лежа­щие в указанных полуплоскостях; опорную прямую g(x1, 9), проходящую
через оптимальный план 

(рис. 3.9).
ORIGIN 1=
f x( ) 2x1x2+=
x10=
x20=
Given
x1− 3x2+ 6
2x1x2+ 9
x1x2− 3
x 0
x
opt
Maximize f x( )
3.6
1.8

==
f x
opt
( )
9=
70
3. Решение задач оптимизации
Рис. 3.9. Проверка решения задачи линейного программирования
D
v1
5
5 0.2+
11
3
11
3
0.6−
  
  
=
v2
3.3
3.3 0.6+
2.4
2.4 0.3+
 
 
=
v3
5
5 0.5−
2
2 0.5+
 
 
=
0 1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
9
v1 v2 v3 x_opt I II III opt_plan
x1
x2
v1
2
 
v2
2
 
v3
2
 
x
opt
2
2
x1
3
+
9 2 x1− x1 3− g x1 9( )
v1
1
 
v2
1
 
v3
1
 
x
opt
1
x1
a2g a19
( )
3==
b2g b19
( )
1==
f a( ) 9=
f b( ) 9=
x
opt
( ) a 1 −( ) b+
4 −
2  1+
 
 
→=
f x
opt
( )
( )
assume 0 1 9→
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]