Использование системы MatLab для численно-аналитического исследования задач теории экономического роста

№>62006

Ю.А. Кузнецов, О.В. Мичасова

Использование системы МаНаЬ для численно-аналитического исследования задач теории экономического роста

Пакет МаНаЬ обладает широким спектром возможностей для решения разнообразных систем дифференциальных уравнений. В статье рассматриваются возможности применения данного пакета для численно-аналитического исследования задач теории экономического роста. Рассмотрение ведется на примере односекторной модели экономического роста (модель Солоу-Свена) и односекторной модели оптимального экономического роста (модель Солоу-Свена-Рамси). Простота, наглядность и интерактивные возможности пакета МаНаЬ позволяют сократить время, затрачиваемое исследователем на численное решение дифференциальных уравнений и уделить больше внимания качественному анализу моделей.

Одной из основных задач теории экономического роста и развития является изучение динамических макроэкономических моделей, позволяющих проанализировать взаимосвязи между экономическими субъектами и оценить влияние различных факторов на экономическую ситуацию в целом. Главной целью такого анализа является выявление решений и стратегий, которые позволяют повысить эффективность и социальную направленность функционирования рыночной экономики.

Экономико-математическое моделирование в значительной степени базируется на компьютерных технологиях. Именно сейчас, когда они развиваются очень высокими темпами, возникает множество программных средств, которые позволяют создавать компьютерные модели экономических процессов.

Поведение сложных экономических систем можно исследовать с помощью пакетов имитационного моделирования (GPSS, Ithink, Powersim, Pilgrim), которые дают возможность посредством процессов-аналогов исследовать структуру и функции реального процесса [2].

Существует целый ряд программных средств для обработки статистических данных (SPSS, Statistica, PCGive), которые позволяют

провести регрессионный, факторный, кластерный и корреляционный анализ данных, выявить закономерности и т. д. Специальные программные средства созданы для проведения анализа финансово-хозяйственной деятельности предприятия, для социальноэкономического прогнозирования и т. д.

Наличие множества программных средств, которые можно использовать для создания моделей экономической динамики, затрудняет выбор исследователем того инструментария, который будет соответствовать целям его исследования. Однако существуют универсальные программные средства, которые имеют возможности как математических расчетов и статистического анализа, так и построения динамических моделей. Одним из таких средств является система MatLab.

Данный программный пакет разработан и поставляется фирмой Math Works, Inc. Название MatLab появилось в 1980 году и расшифровывается как матричная лаборатория (matrix laboratory). Такое название объясняется тем, что основным элементом данных является матрица (массив). Это позволяет значительно уменьшить время решения задач для матриц и массивов, по сравнению с такими «скалярными» языками программирования, как, например, Си.

Использование системы MatLab для численно-аналитического исследования задач теории экономического роста

Нв62006

В MatLab важная роль отводится специализированным наборам инструментов Toolboxes, которые позволяют изучать и применять специализированные методы: обработка сигналов, системы управления, идентификация систем, построение и анализ нейронных сетей, поиск решений на основе нечеткой логики, решение нелинейных дифференциальных уравнений, финансовый и статистический анализ и т.д.

В настоящей статье на примере односекторной модели экономического роста (модель Солоу-Свена) и односекторной модели оптимального экономического роста (модель Солоу-Свена-Рамси) рассматриваются возможности применения пакета MatLab для численно-аналитического исследования задач теории экономического роста. Использование компьютерных программ для анализа моделей экономической динамики позволяет не только сократить время, необходимое для математических расчетов, но и делает возможным сравнительный анализ результатов моделирования при различных начальных условиях, различных значениях параметров и т. д.

Модель Солоу-Свена

Многие математические модели экономического роста являются непосредственным обобщением широко известной неоклассической модели Солоу-Свена [1, 3], созданной в середине ХХ века. В этой модели в общем случае используется неоклассическая двухфакторная производственная функция

Y = F(K, L),

где Y — агрегированный выпуск,

K — физический капитал,

L — трудовые ресурсы.

В практических задачах широко применяется производственная функция Кобба-Дугласа:

Y = AK L'r,

0 < а < 1.

Здесь параметр At описывает уровень технологии, а а — коэффициент эластичности. Во многих случаях можно считать, что параметр At = const (так что отдача от масштаба является постоянной). Ниже при построении примеров используется производственная функция вида (1) с постоянным уровнем технологии.

Основное уравнение модели Солоу-Све-на, описывающее динамику роста физического капитала, может быть записано в виде:

К, = sYt -5К,,

где 5 — темп выведения капитала, s — норма накопления.

Далее предполагается, что трудовые ресурсы составляют постоянную долю населения, темп роста которого постоянен. Это предположение приводит к зависимости вида

Lt = Lo emt,

где m — это темп роста населения.

Для преобразования модели вводится

понятие фондовооруженности k = К удельного выпуска y = Y/^ Тогда

y, = f( k

К

где Ї(к) = Р(к,1) = Р— неоклассическая однофакторная производственная функция.

В результате преобразования уравнения (2) с учетом (3), (4) получаем дифференциальное уравнение:

~dt

= sf( k) - (5 + m )k = sf( k) - nk,

п = 8 + т.

Состояния равновесия уравнения (5) и их зависимость от параметров модели легко определяются на основе несложного графического анализа (рис. 1).

Дифференциальное уравнение (5) имеет два решения, причем О — неустойчивое состояние равновесия, а к* — устойчивое.

и

Ивб 2006

Условие существования устойчивого решения имеет вид

бГ

Модель Солоу-Свена является весьма упрощенной моделью, однако она в целом правильно отражает основные тенденции экономического роста. Эта модель часто служит основой для построения более сложных моделей экономического роста. Кроме того, на ее примере можно судить об адекватности тех или иных программных средств для численно-аналитического исследования математических моделей теории экономического роста.

Исследование модели Солоу-Свена с помощью пакета МаНаЬ

Покажем, что пакет МаНаЬ позволяет значительно упростить процесс анализа моделей экономического роста. Пакет МаНаЬ — это система компьютерной математики [6], данные в которой представляются в матричной форме, что позволяет расширить возможности МаНаЬ. В него встроены язык программирования высокого уровня и разнообразные пакеты-расширения, которые делают возможным решение прикладных задач во многих отраслях науки.

Для того чтобы решить дифференциальное уравнение с помощью МаНаЬ, его на-

до записать в виде функции и сохранить в М-файл (это текстовый файл, который содержит код MatLab). Для этого в главном меню следует выбрать File ^ New ^ M-file, и в окне редактора М-файлов объявить переменные и определить функцию:

function dkdt = solou (t,k) global s alfa A n dkdt=s*A*(kAalfa)-n*k;

Для использования функции необходимо ее сохранить. Команда global делает переменные, перечисленные за ней, глобальными (т.е. их значения можно изменить как внутри функции, так и в командном окне).

Библиотека MatLab включает несколько функций, которые реализуют различные методы решения дифференциальных уравнений (ordinary differential equations — ode) [4]. Синтаксически эти функции различаются лишь именами, способ обращения к ним одинаков. Эти функции используют численные методы разного порядка. Рассмотрим здесь основные функции, наиболее часто используемые на практике.

В функции ode45 используется метод Рунге-Кутта 4-го и 5-го порядков в модификации Дормана и Принца. Если характеристики задачи неизвестны, рекомендуется первую попытку решения сделать с помощью этой функции.

В функции ode23 используется метод Рунге-Кутта 2-го и 3-го порядков в модификации Богацки и Шампина. Если нетребует-ся большая точность и задача не очень жесткая, эта функция может оказаться более эффективной, чем ode45.

В функции ode113 используется метод Адамса, Башфорта и Моултона типа предиктор-корректор переменного порядка. Если требуется большая точность, а каждое вычисление интегрируемой функции является «дорогостоящим», эта функция может оказаться более эффективной, чем ode45.

В нижеследующем описании имя функции дано обобщенно в виде ode***, где *** — любой из приведенных выше алфавитноцифровых суффиксов. Простейшее обра-

Ю.А. Кузнецов, О.В. Мичасова

Использование системы MatLab для численно-аналитического исследования задач теории экономического роста

№>62006

щение к любой функции ode*** имеет следующий вид:

[tout,yout]=ode***

где fun — указатель на функцию вычисления правых частей дифференциального уравнения;

tspan — вектор, содержащий контрольные значения независимой переменной (можно указать только начальное и конечное значение, а можно и промежуточные значения);

y0 — начальное значение зависимой переменной (скаляр или вектор-столбец); tout — вектор-столбец контрольных значений независимой переменной; yout — решение, представленное массивом, в котором каждая строка соответствует одному элементу в столбце tout.

Чтобы увидеть результаты вычислений для конкретных числовых параметров, в командном окне необходимо написать следующий программный код:

>> global s alfa A n >> A=3.6;

>> alfa=0.5;

>> s=0.2;

>> n=0.05;

>> [t,k]=ode45('solou',[0 500],[1]);

>> plot

Функция plot позволяет построить график зависимости параметра k от параметра t (рис. 2). В простейшем случае при вызове процедуры plot MatLab автоматически создает окно, в котором размещены стандартное меню и линейка инструментов, выделено прямоугольное поле с графиком функции, причем масштабирование и разметка по координатам производится автоматически.

Из рисунка видно, что k стабилизируется на уровне k* « 207 единиц. Убедимся в том, что это значение (k*) является устойчивым, рассчитав траекторию для различных начальных условий:

>> [t1,k1]=ode45('solou',[0 500],[500]);

>> [t2,k2]=ode45('solou',[0 500],[100]);

>> [t3,k3]=ode45('solou',[0 500],[200]);

>> [t4,k4]=ode45('solou',[0 500],[300]);

>> [t5,k5]=ode45('solou',[0 500],[400]);

>> plot

Fte Edit View Insert Tools Desktop Window Help »

D U і Ъ Q. p   2 mo

2501--------------------1--------.--------1--------T--------1---------1--------1--------г--------

°С 60 100 1 SO 200 250 300 S50 400 450 500

Рис. 2. Зависимость фондовооруженности от времени

Ивб 2006

График на рис. 3 иллюстрирует устойчи- сия. Для этого в командном окне необходи-вость состояния равновесия к*. мо ввести следующие команды:

Построение графика (рис. 4) позволяет проиллюстрировать процесс решения диф- >> 1=в*А*кЛаКа;

ференциального уравнения и обосновать >>пк=п*к;

наличие устойчивого состояния равнове- >> р!о1

Рис. 3. Устойчивость состояния равновесия к*

Е<* V«* 1гвег( Тоок Ое5«ор 'Нпдо* ННр

ка гх I

10

- -

-

\ \

/ / / ¿г '

У уг ! /

50

100 150 200

250

Рис. 4. Графический анализ модели Солоу в пакете МаНаЬ

Ю.А. Кузнецов, О.В. Мичасова

Использование системы MatLab для численно-аналитического исследования задач теории экономического роста

Нв62006

Модель Солоу-Свена-Рамси

Как уже было сказано выше, модель Со-лоу-Свена является базисом для построения более сложных моделей экономического роста. Рассмотрим односекторную модель оптимального экономического роста — модель Солоу-Свена-Рамси [5].

Вариационная формулировка задачи управления экономической системой на промежутке [0,T] имеет следующий вид: требуется максимизировать функционал

T

4ОД] = 1 є-^мі)]-Хк

0

где р, X — коэффициенты,

на множестве допустимых траекторий

к

таких, что к(0) = к0, к(Т) = кт. Здесь к0, кт — заданные положительные постоянные.

Если пренебречь условием (8), то задача о максимизации функционала является простейшей вариационной задачей, причем интегрант имеет специальный вид:

Г(I, к, кс) = е-ри^(к) -Хк - к].

{Г 'к (I, к, /с)}- Г 'к (I, к, /с) = 0,

где функция Р(Г, к, к) определена соотношением (9). Введем обозначение

С( 0 = f [к( г)] -Хк( Г) - к I).

С помощью обозначения (11) уравнение (10) можно переписать в виде

dC( I) и [С( I)]

dt

и"[С( I)]

{Г [к

ряет этой системе, то она (а также соответствующая ей траектория экономической системы) называется Эйлеровой.

Учитывая вид меры относительной несклонности к риску в смысле Эрроу-Пратта

Ня (С) = -С

и’’

и (С)’

запишем полученную систему уравнений в виде

dk( I) dt

dC

Г [к( I)] -Хк( I) - С( I);

{Г [к

С [С( 0]

Система (14) дополняется граничными условиями к(0) = к0, к(Т) = кт.

Часто в задачах экономического роста можно ограничиться функциями полезности специального вида. Считается, что экономические агенты ведут себя таким образом, что их относительная несклонность к риску (13) может считаться постоянной:

ИЙ (С) = V = const > 0.

Для поиска экстремалей в задаче (7) запишем уравнение Эйлера, которое примет вид:

В таком случае система (14) с учетом (13), (15) будет иметь следующий вид:

dk( I) dt

Г[к( I)]-Хк( I) - С( I) =Ф( к, С);

Совокупность соотношений (11), (12) эквивалентна уравнению(10)и представляет собой необходимые условия экстремума для рассматриваемой вариационной задачи. Если совокупность переменных у удовлетво-

^ =1  С(I)-{1'[к(I)]-(х + р)}.0(к,С). (16) сП V

Система (16) также дополняется граничными условиями к(0) = к0, к(Т) = кт. Для дальнейших исследований (если не сделать специальных частных предположений о характере производственной функции у = 1(к)) требуется провести качественный анализ системы. Такой анализ предполагает определение состояний равновесия и их типов, а также построение «полей направлений».

Состояния равновесия системы (16) определяются уравнениями

Ив62006

f( к) -Xk - C = 0,

C{f' (к) - (X + p)} = 0.

Весьма удобен графический анализ этих уравнений, основывающийся на свойствах неоклассической производственной функции y = f(k). На плоскости (k, C) для экономического анализа представляет интерес расположение состояний равновесия и траекторий только в первом квадрате. На рис. 5 представлен фазовый портрет модели.

Применение пакета MatLab для изучения модели Солоу-Свена-Рамси

Рассмотрим теперь модель Солоу-Све-на-Рамси с помощью MatLab. Также как для модели Солоу создадим М-файл, в который запишем систему дифференциальных уравнений. Программный код имеет следующий вид:

function dKdt=solousven(t,kC) global l A alfa v p

dKdt=zeros(2,1);

dKdt(1)=A*(kC(1)Aalfa)-l*kC(1)-kC(2);

dKdt(2)=(1/v)*kC(2)*(A*alfa*kC(1)A(alfa-1)-(l+p));

Функция zeros(2,1) создает матрицу, состоящую из нулей, размером 2x1.

В командном окне записывается следующий программный код:

>> global l A alfa v p >> l=0.05;

>> A=0.9;

>> alfa=0.5;

>> v=1;

>> p=0.05;

>> options=odeset

Необходимо заметить, что полная форма обращения к функциям ode*** имеет следующий вид:

[tout,yout,varargout]=ode***(fun,tspan,y0,

options,varargin)

где options — аргумент, позволяющий задавать управляющие параметры;

Рис. 5. Структура фазового портрета модели Солоу-Свена-Рамси

Ю.А. Кузнецов, О.В. Мичасова

Использование системы MatLab для численно-аналитического исследования задач теории экономического роста

Нв62006

varargin — дополнительные аргументы для вычисления fun;

varargout — дополнительные результаты, возникающие при некоторых вариантах задания options.

Аргумент options позволяет отразить множество разных управляющих параметров, рассмотрим из которых лишь некоторые. Все они задаются путем обращения к функции odeset, аргументом которой является последовательность пар вида <'параметр', значение>.

Параметр RelTol задает допустимую относительную погрешность.

Параметр AbsTol задает допустимую относительную погрешность вычислений.

Параметр InitialStep задает начальный шаг, который по умолчанию выбирается автоматически.

Параметр outputFcn описывает функцию вывода. Он имеет значение лишь в том случае, если функция используется без явного указания функции вывода. По умолчанию outputFcn вызывает функцию odeplot, которая строит график в зависимости от времени. Установка значения odephas2, как в нашем примере, позволяет построить двумер-

ную фазовую плоскость, которая будет выведена в отдельном графическом окне (рис. 6).

Для того чтобы построить фазовый портрет системы, необходимо решить систему дифференциальных уравнений для различных начальных значений:

>> hold on >> for i=1:5:40 for j=1:1:6

ode45

end

end

Команда hold on позволяет строить все графики в одном окне. Цикл for повторяет группу операторов фиксированное, предопределенное количество раз. Тело цикла заканчивается ключевым словом end. Через двоеточие указывается начальное значение параметра, шаг и конечное значение соответствующего параметра.

В результате получим фазовый портрет модели Солоу-Свена-Рамси (рис. 7).

Выводы

Рассмотренные примеры численно-аналитического исследования простейших за-

Рис. 6. Фазовая кривая модели Солоу-Свена-Рамси

Ивб 2006

Рис. 7. Фазовый портрет модели Солоу-Свена-Рамси, построенный с помощью пакета Ма№Ь

дач теории экономического роста (односекторной модели экономического роста Солоу-Свена и односекторной модели оптимального экономического роста Солоу-Свена-Рамси) позволяют сделать вывод о том, что применение этого пакета для исследования моделей экономической динамики, связанных с системами дифференциальных уравнений, в том числе достаточно общего вида, не вызывают каких-либо затруднений технического или содержательного характера. В MatLab возможно как построение своеобразных «библиотек» математических моделей целого ряда типичных задач экономической динамики, так и быстрая корректировка уже имеющихся моделей. Содержащиеся в данном пакете средства визуализации позволяют сделать всю процедуру численно-аналитического исследования наглядной, и, в частности, существенно повысить эффективность изучения зависимости решений от параметров. Это, в свою очередь, может значительно ускорить исследование, по-

зволяя уже на ранней его стадии отбрасывать заведомо неэффективные варианты. Приведенные соображения свидетельствуют об эффективности пакета MatLab и позволяют считать его удобным инструментом в анализе задач теории экономического роста.

Список литературы

1. Ашманов С.А. Введение в математическую экономику. М.: Наука, 1984.

2. Емельянов А.А, Власова Е.А., Дума Р. В. Имитационное моделирование экономических процессов. М.: Финансы и статистика, 2004.

3. Иванилов Ю.П., Лотов А. В. Математические модели в экономике. М.: Наука, 1979.

4. Кетков Ю.Л., Кетков А.Ю., Шульц М.М. MatLab 6.х.: программирование численных методов. СПб.: БХВ-Петербург, 2004.

5. Тодаро М. П. Экономическое развитие / Пер. с англ. под ред. С.М. Яковлева, Л.З. Зеви-на. М.: Экономический факультет МГУ, ЮНИТИ, 1997.

6. Getting started with MatLab; www.matlab.ru.

Ю.А. Кузнецов, О.В. Мичасова