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

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

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

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

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

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

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

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

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

IDR: 140308929   |   УДК: 519.862.6

Software development for solving systems of simultaneous equations in economics

The article examines software for solving systems of simultaneous equations, developed in Python. The software utilizes least squares and pseudoinverse methods for data processing. The application of the software for analyzing economic indicators and modeling market equilibrium is demonstrated.

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

Системы одновременных уравнений часто используются в экономике для моделирования процессов [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 с.