Теория систем и системный анализ / Охорзин_Оптимизация экономических систем
.pdfограничение на аргумент
у:=1 |
Given |
f(y) |
у > 0 |
|
ymax:= Maximize(f,y) |
|
ymax= 1.727 |
|
|у:=4 |
Given |
f(y) |
у > 0 |
|
ymin := Minimize(f,y) |
|
ymin =4.227 |
|
|
|
|
Рис. П.9, Примеры оптимизации функций |
|
||||
|
(I |
2 |
3^ |
|
(\] |
|
|
/^ 0.583Y |
А:= 3 |
2 1 |
Ь:= |
2 |
х:=А~^Ь |
х = |
0.083 |
||
|
,4 |
3 |
5> |
|
^3. |
|
|
,,0.083J |
Рис. П.10. Пример решения системы линейных уравнений
Для создания вектора или матрицы нужно нажать кнопку мат рицы на палитре матричных операций, затем в появившемся окне ввода матрицы указать число строк и столбцов и нажать ОК.
Такую же структуру исходных данных можно использовать и при решении систем нелинейных уравнений. Пусть нужно найти корни системы
|
{:е-^2 +JC1 = |
0. |
|
|
||
Процесс решения такой задачи показан на рис. П. 11. |
|
|||||
__ |
«, "' |
•к:] |
|
|
|
|
F(x):= |
|
|
|
|
||
|
|
|
|
|
||
Given Р(зО = 0 |
X := Find(x) |
|
|
F(x) = |
f7.292x10 -7V |
|
1,-0.917; |
^1.238xl0~'j |
|||||
|
|
|
||||
|
|
|
|
|
||
Рис. П.11. Пример вычисления корней системы нелинейных уравнений
140
Программирование
Рассмотренные выше пользовательские функции позволяют реали зовать лишь простейшие функции, которые можно задать одним оператором. В более сложных случаях вычисление функции требу ет выполнения нескольких операторов. В этом случае необходимо использовать операторы из палитры программирования. Составле ние программы начинается с нажатия кнопки Add line (Добавить строку), после чего в появившиеся шаблоны можно вставлять операторы программирования. Реализуем поэтапно программу вы числения функции Хевисайда, которая задает единичный скачок в точке а (рис. П. 12).
|fl(x,a):=:|i |
|
fl(x,a):=|i |
if • |
|
fl(x,a):= ll ifx^a |
||
!• |
|
| i |
|
|
|
| i |
|
fl(x,a):=: Jl |
if х^а |
fl(x,a):= jl |
if |
x^a |
fl(0,l) = 0 |
fl(2,l)=l |
|
11 |
otherwise |
|o |
otherwise |
||||
|
|
||||||
Рис. П.12. Создание программы вычисления функции Хевисайда
Вэтом примере вначале набрано имя функции с двумя фор мальными параметрами хна, затем оператор присвоения и нажата кнопка Add line. На втором этапе в первый шаблон вставлен опера тор if(если). На следующем этапе в шаблоны оператора ifвставлено значение функции прих > а. Затем нажата кнопка otherwise (иначе),
ив шаблон этого оператора вставлено нулевое значение функции, которое она принимает при х<а. Обращение к функции с факти ческими параметрами дает требуемые значения функции.
Вболее сложных программах необходима операция присвое ния. Оператор присвоения в палитре программирования изображен в виде стрелки, направленной влево: <—. Рассмотрим пример ис пользования оператора цикла for (для), показанный на рис. П. 13.
На первом этапе обнуляем переменную суммирования s и вво дим во вторую строку программы оператор for, получая в результате
141
f2(m,n):= S 4 - 0 |
f2(m,n):= s< - 0 |
f2(m,n) := S 4 ~ 0 |
for 1 € 1 |
for i € m.. n |
for ie m..n |
1 |
> |
2 |
|
|
s <- s + 1 |
f2(3,10) = 380 |
|
;S |
|
|
Рис. п.13. Программа с оператором цикла for
и третью строку - шаблон для тела цикла. Далее вставляем в шаблоны для оператора цикла имя циклической переменной и пре делы ее изменения. На следующем этапе вводим оператор тела цикла, осуществляющий суммирование квадратов целых чисел и, добавляя еще одну строку нажатием Add line, в последнюю стро- уу программы вводим имя переменной s как результат выполнения программы ~ суммы квадратов всех целых чисел сугтдоп.
Оператор while (пока) используется для построения цикла, который заверщается при выполнении заданных условий. Следу ющая программа (рис. П. 14 иллюстрирует метод простой итера ции для решения уравнения f(x) = О по итерационной формуле Хк+1 = x/c-^xf(xk)y где хо—х^- начальное значение итерационной последовательности; х - итерационный параметр. Вычисления про должаются до тех пор, пока не выполнится условие нахождения корня с заданной точностью по функции \f(x)\ < ".
|f3(x,f,8,T):= а<-х |
g(x):= e"*^sin(?0 -0.2 |
|
while |f(a)| > 8 |
O(l,g.0.0001,0.1) =1.60825 |
|
ач- а+ Tf(a) |
||
|
||
а |
g(1.60825)= 9.73x10""^ |
Рис. 11.14. Программа с оператором while
Литература
1.Бугаян И.Р, Макроэкономика. - Ростов-н/Д: Феникс, 2000.
2.ЛуссеЛ. Макроэкономика. Ключевые вопросы. -СПб.: Питер, 1999.
3.Замков 0,0., Толстопятенко А.В.у ЧеремныхЮ.К, Математи ческие методы в экономике. - М.: ДИС, 1998.
4.Охорзин В.А. Курс лекций по теории оптимального управления с приложением алгоритмов и программ в системе MATHCAD. - Красноярск: Сибирская аэрокосмическая академия, 1999.
5.Ройтенберг Я.Н. Автоматическое управление. - М.: Наука, 1978.
6.Дьяконов В.П., Абраменкова И.В. MATHCAD 8 PRO в матема тике, физике и Internet. -М.: Нолидж, 1999.
7.Рубинов A.M. Оптимальное управление в агрегированных мо делях экономики. ~Л.: Наука, 1991.
8.Макаров В.Л., Рубинов A.M. Математическая теория экономи ческой динамики и равновесия. - М.: Наука, 1973.
9.Кротов В.Ф.^ Лагоша Б.А.у Сергеев СИ. Основы теории опти мального управления. -М.: Высшая школа, 1990.
10.Лагоша ЯЛ. Оптимальное управление в экономике. - М.: Финансы и статистика, 2002.
11.ПлисА.К, Сливина Н.А. Mathcad. Математический практи1о^м для инженеров и экономистов: Учеб. пособие. - 2-е изд., перераб. и доп. -М.: Финансы и статистика, 2004.
Учебное издание
Охорзин Владимир Афанасьевич
ОПТИМИЗАЦИЯ ЭКОНОМИЧЕСЮ1Х СИСТЕМ
Заведующая редакцией Л.А. Табакова
Редактор В.В. Космин
Младший редактор Н.Л. Федорова Художественный редактор Ю.И. Артюхов Технический редактор Т.С. Маринина
Корректоры Т.М. Васильева, Н.П.Сперанская Компьютерная BcpcTKdi А.Н. Канатникова
Оформление художника О.В. Толмачева
ИБ№4815
Подписано в печать 04.02.2005. Формат 60x88 /16. Печать офсетная
Гарнитура «Тайме». Усл. п. л. 8,82. Уч.-изд. л. 7,13. Тираж 3000 экз. Заказ 335. «С» 021
Издательство «Финансы и статистика» 101000, Москва, ул. Покровка, 7
Телефон (095) 925-35-02, факс (095) 925-09-57 E-mail: mail@finstat.ru http://www.finstat.ru
ГП Псковской области «Великолукская городская типофафия» Комитета по средствам массовой информации 182100, Великие Луки, ул. Полиграфистов, 78/12 Тел./факс: (811-53) 3-62-95
E-maU: VTL@MARTRU
