где
: Вычисляем интеграл
где
.
:
Изменяем значения текущей нормы инвестиций
если
, то
если
, то
:
Повторяем шаги 1-4 до тех пор, пока
.
Код программы, выполняющей вычисление нормы инвестиций по данному алгоритму, прилагается в п. 3.3.
Опишем
результаты применения данного алгоритма для поиска оптимальной нормы
инвестиций. Пусть горизонт планирования составляет T=1 год, то есть M=12, где M
- количество месяцев. В качестве шага возьмем
. Таким
образом, мы разобьем отрезок
на
интервалы длины
. Соответственно каждый месяц будет содержать 6 таких
интервалов. Начальную норму инвестиций возьмем равной
для каждого месяца.
Рассмотрим значения функции s(t) для 1, 5 и 9 итерациях.
На Рис 11. показан график значений s(t) для первой итерации. Значение функционала J равно 2,88.
На Рис 12. - для 5-ой итерации. Значений функционала J равно 1,78, то есть функционал уменьшился на 38%.
На
Рис 13. - для 9-ой итерации. Значений функционала J равно 1,35, то есть
функционал уменьшился на 53%.
Рис
11.
Рис 12.
Рис
13.
Из последнего рисунка видно, что вначале монополист по максимуму вкладывает в производство, выводя его тем самым на равновесный уровень, при этом объем производства фирмы равен величине спроса на рынке. Затем монополист постепенно снижает норму инвестиций практически до минимального возможного значения, тем самым увеличивая отчисления в фонд потребления. В конце рассматриваемого периода времени монополист перестает заботиться о будущем фирмы и уменьшает норму инвестиций до 0, отчисляя всю заработанную предприятием прибыль в фонд потребления.
Для
трех начальных приближений
, равных
, описанный выше алгоритм сходится к одной и той же
оптимальной норме инвестиций, изображенной на рисунках. Таким образом, с
большой уверенностью можно считать, что найденная при помощи описанного
алгоритма норма инвестиций является оптимальной.
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;diplom
{partial class Form1 : Form
{double p0, q0, fi0;double A, B, h;double liambda, gamma, mu, alfa;double a, b, c, s0, s1, s2;double psi1_0, psi2_0, eps;double dFp, dFq, dHp, dHq, dFIp, dFIq;int sign, M, T, LEN, N;Form1()
{();
}double F(double P, double Q)
{gamma * ((A - P) / B - Q);
}double H(double P, double Q, double S)
{(Q > (A - P) / B)(liambda * S * PI2(P, Q) - mu * Q);return (liambda * S * PI1(P, Q) - mu * Q);
}double Fi(double P, double Q, double S)
{(Q > (A - P) / B)((S - 1) * PI2(P, Q));return ((S -1) * PI1(P, Q));
}double PI1(double P, double Q)
{(P * Q - a * Q * Q - b * Q - c);
}double PI2(double P, double Q)
{(P * (A - P) / B - a * Q * Q - b * Q - c);
}double dHs(double P, double Q)
{(Q > (A - P) / B)liambda * PI2(P,Q);return liambda * PI1(P,Q);
}double PSI1(double x, double y)
{(- dFp * x - dHp * y - dFIp);
}double PSI2(double x, double y)
{(-dFq * x - dHq * y - dFIq);
}double Integ(double [] mas)
{Sum = 0;(int i = 1; i < 6; i++)+= h / 2 * (mas[i-1] + mas[i]);Sum;
}void button1_Click(object sender, EventArgs e)
{[] p, q, fi, G, dFIs, S;psi1, psi2;p_shtrih, q_shtrih, fi_shtrih;psi1_last, psi1_shtrih, psi2_shtrih;sign_last;= new double[LEN];= new double[LEN];= new double[LEN];= new double[M];= new double[N];= new double[M];[0] = p0;[0] = q0;[0] = fi0;= psi1_last = psi1_0;= psi2_0;(int i = 0; i < M; i++)[i] = s0;(int x = 0; x < 50; x++)
{j = 0;(int i = 0; i < LEN - 1; i++)
{(i % N == 0 && i != 0) j++;_shtrih = p[i] + h * F(p[i], q[i]);_shtrih = q[i] + h * H(p[i], q[i], S[j]);_shtrih = fi[i] + h * Fi(p[i], q[i], S[j]);[i + 1] = p[i] + (h / 2) * (F(p[i], q[i]) + F(p_shtrih,q_shtrih));[i + 1] = q[i] + (h / 2) * (H(p[i], q[i], S[j]) + H(p_shtrih, q_shtrih, S[j]));[i + 1] = fi[i] + (h / 2) * (Fi(p[i], q[i], S[j]) + Fi(p_shtrih, q_shtrih, S[j]));
}l = 0, k = 1;= M-1;(int i = LEN - 1; i >= 0; i--)
{(i % N == 0 && i != 0) j--;= -gamma / B;= -gamma;(q[i] <= (A - p[i]) / B)
{= liambda * S[j] * q[i];= liambda * S[j] * (p[i] - 2 * a * q[i] - b)-mu;
}
{= liambda * S[j] * (A - 2 * p[i]) / B;= liambda * S[j] * (-2 * a * q[i] - b) - mu;
}= (S[j] - 1) * dHp / (liambda * S[j]);= (S[j] - 1) * (dHq + mu) / (liambda * S[j]);_shtrih = psi1 - h * PSI1(psi1, psi2);_shtrih = psi2 - h * PSI2(psi1, psi2);= psi1 - (h / 2) * (PSI1(psi1, psi2) + PSI1(psi1_shtrih, psi2_shtrih));= psi2 - (h / 2) * (PSI2(psi1_last, psi2) + PSI2(psi1_shtrih, psi2_shtrih));_last = psi1;(Math.Abs(q[i] - (A - p[i]) / B) != (q[i] - (A-p[i])/B))_last = 1;sign_last = 0;h1, h2, Fi1, Fi2;= liambda * S[j] * PI1(p[i], q[i]) - mu * q[i];= liambda * S[j] * PI2(p[i], q[i]) - mu * q[i];= (S[j] - 1) * PI1(p[i], q[i]);= (S[j] - 1) * PI2(p[i], q[i]);(i != (LEN - 1) && sign_last != sign)= psi2 -
((h1 - h2) * psi2 + (Fi1 - Fi2)) / ((1 / B) * F(p[i], q[i]) + h1);= sign_last;(k != N)
{[k - 1] = dHs(p[i], q[i]) * (psi2 + 1 / liambda);++;
}
{[l] = Integ(G);++; k = 1;
}
}S_last;(int i = 0; i < M; i++)
{_last = S[i];[i] = S[i] - alfa * dFIs[i];(S[i] > s2) S[i] = s2;(S[i] < s1) S[i] = s1;
}
}
}
}
В работе получены следующие результаты:
. Исследована динамическая модель однопродуктового монопольного рынка в случае неравновесной цены единицы товара.
. Сформулировано правило принятия решения о целесообразности взятия кредита.
. Предложен алгоритм поиска оптимальной нормы инвестиций и найдена с его помощью оптимальная стратегия инвестирования.
В заключении, хотелось бы выразить благодарность всему коллективу кафедры «Прикладная математика» за поддержку и внимание, которые способствовала выполнению данной работы.
Особую признательность, хотелось бы выразить научному руководителю, Петрову Виктору Михайловичу, за постановки задач, консультации, советы и постоянное внимание к результатам исследования.
1. Лебедев В.В., Лебедев К.В. Математическое и компьютерное моделирование экономики. - М.: НТВ-Дизайн, 2002.
. Лебедев В.В., Лебедев К.В. О математическом моделировании нестационарных экономических процессов. - М.: НТВ-Дизайн, 2002.
. Маршалл А. Принципы экономической науки. - М.: Прогресс, 1993.
. Гальперин В.М., Игнатьев С.М., Моргунов В.И. Микроэкономика. - М.: Омега-Л ГУ ВШЭ, 2008.
. Вэриан Х.Р. Микроэкономика. Промежуточный уровень. Современный подход. - М.: 1997.
. Баничук Н.В., Петров В.М., Черноусько Ф.Л. Метод локальных вариаций для вариационных задач с неаддитивным функционалом. М.: Вычислительная математика и математическая физика, 1969, 9, №3.
. И.А. Крылов, Ф.Л. Черноусько. О методе последовательных приближений для решения задач оптимального управления, ЖВМ и МФ, 2, №6, 1962.
. Н.Н. Моисеев. Элементы теории оптимальных систем. - М., «Наука», 1975.
. Н.Н. Моисеев, Ю.П. Иванилов, Е.М. Столярова. Методы оптимизации. М., «Наука», 1978.
. А.Г.Сухарев, А.В. Тимофеев, В.В. Федоров. Курс методов оптимизации. - М., «Наука», 1986.