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

Автор: Ефремова Е.В., Воронцов И.Р.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Математика, информатика и инженерия

Статья в выпуске: 1 (115), 2025 года.

Бесплатный доступ

В статье рассматривается программное обеспечение для решения систем одновременных уравнений, разработанное на языке Python. Программа использует методы наименьших квадратов для обработки данных. Демонстрируется применение ПО для анализа взаимосвязей экономических показателей и моделирования рыночного равновесия.

Системы одновременных уравнений, программное обеспечение, экономика, метод наименьших квадратов

Короткий адрес: https://sciup.org/140308929

IDR: 140308929

Текст научной статьи Разработка программного обеспечения для решения систем одновременных уравнений в экономике

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

Одновременные уравнения в эконометрике представляют собой систему уравнений, где переменные, играющие роль зависимых и независимых, определяются одновременно через несколько уравнений. В отличие от стандартных эконометрических моделей, где зависимая переменная определяется через независимые переменные в одном уравнении, в случае одновременных уравнений связь между переменными происходит через несколько уравнений, которые влияют друг на друга [2]. Примером такой модели может быть система уравнений, описывающая спрос и предложение:

  • 1.    Q d 0 1 P+u,

  • 2.    Q s 0 1 P+υ,

где Q d – количество товара, которое потребители готовы купить, P – цена товара, α 0 – параметры модели, u – остаток.

где Q s – количество товара, которое производители готовы предложить, β 0 и β 1 – параметры модели, υ – остаток.

Здесь P (цена товара) одновременно является зависимой переменной для обоих уравнений, что приводит к необходимости решать эту систему одновременных уравнений. Ожидается, что цена будет определяться равновесием спроса и предложения, то есть через пересечение этих двух кривых.

Так как в таких системах возникают проблемы эндогенности (когда переменные одновременно являются зависимыми и независимыми), для их оценки часто используются методы, такие как метод наименьших квадратов (OLS) или метод инструментальных переменных (IV). В частности, в случае с одновременными уравнениями используется модификация метода наименьших квадратов, известная как метод двух шагов наименьших квадратов (2SLS).

Программа была написана на языке Python [2], так как он является высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества. Она решает системы уравнений методом наименьших квадратов или методом обратной матрицы. Программа также визуализирует промежуточные шаги расчетов, что делает её удобной для обучения и анализа данных.

Интерфейс программы интуитивно понятен и прост. Пользователь должен внести количество строк и столбцов матрицы А. После обновления, программа автоматически создаст необходимое количество строк для записи коэффициентов матрицы А и вектора b. Интерфейс программы представлен на рисунке 1.

Количество строк матрицы А: [2

Количество столбцов матрицы А: 2

Обновить |

Строка 1: |

Строка 2: |

Вектор b (разделяйте числа пробелами): Г......................—............~..........................................................

Решить

Случайные данные |

Рисунок 1 – Интерфейс программы

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

Количество строк матрицы А: |з

Количество столбцов матрицы А: з|

Обновить |

Строка 1: |2 3 О

Строка 2: 8 1 -8

Строка 3: |б -3 -6

Вектор Ь (разделяйте числа пробелами):

|-8 1 -4

Решить |

Случайные данные |

Рисунок 2 – Заполнение данных

Программа автоматически подберет метод решения в зависимости от идентифицируемости системы уравнений. Если ранг матрицы равен количеству ее столбцов, то система считается идентифицируемой и применяется метод наименьших квадратов. Решение методом КМНК представлен на рисунке 3:

Система уравнений: 6.0x1 + -10.0x2 = -2.0 5.0x1 + -2.0x2 =3.0

Решение: [0.894736842105263, 0.7365421052631553]

Метод: КИНК

Промежуточные шаги:

Матрица А: [[  6.-10.]

[  5.  -2.]]

Вектор Ь: [-2.  3.]

Ранг матрицы А: 2

Количество столбцов матрицы А: 2

Идентифицируемость выполнена.

Остатки (zesiduals): нет остатков (точное решение)

Ранг при вычислении: 2

Сингулярные значения: [12.47907791 3.04509678]

Решение (КМНК): [0.894736842105263, 0.7368421052631583]

Рисунок 3 – Решение методом КМНК

В случае если матрица не идентифицируема, то программа решит уравнение методом псевдообратной матрицы. Решение методом ДМНК представлено на рисунке 4:

Система уравнений: 2.0x1 + -6.0x2 + -10.0x3 = -4.0 -2.0x1 + -9.0x2 + -8.0x3 =1.0

Решение: [-0.7000000000000008, -0.4000000000000007, 0.5000000000000004] Метод: ДИНК

Промежуточные шаги: Матрица А: [[ 2.  -6. -10.]

[ -2.  -9.  -8.]]

Вектор Ь: [-4.  1.]

Ранг матрицы А: 2 Количество столбцов матрицы А: 3 Система не идентифицируема. Применяется метод ДИНК. Псевдообратная матрица: [[ 0.14090909 -0.13636364] [ 0.06969697 -0.12121212] [-0.11363636 0.04545455]]

Решение (ДИНК): [-0.7000000000000008, -0.4000000000000007, 0.5000000000000004]

Рисунок 4 – Решение методом ДМНК

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

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

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

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

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

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

  • Кремер, Н. Ш. Эконометрика / Н. Ш. Кремер, Б. А. Путко. - Москва: Юрайт, 2023. - 308 с. Айвазян С.А. Прикладная статистика и основы эконометрики / С.А. Айвазян, В.С. Мхитарян. - Москва: Юнити, 2021. - 641 с. Лутц М Программирование на Python, том I / М Лутц. - Санкт-Петербург: 4-е издание, 2011. - 992 с.
Статья научная