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

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

Рубрика Математика
Вид дипломная работа
Язык русский
Дата добавления 28.10.2019
Размер файла 208,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

SetVar("TAX.REV", GetVar("GDP", Step.Current) * GetVar("TAX.TOT.FACT.Q", Step.Previous));

SetVar("BUDG.REV.TOT", GetVar("EXT.AID.RU", Step.Current) + GetVar("TAX.REV", Step.Current) + GetVar("CUSTOMS.REV", Step.Current));

SetVar("BUDG.DEF.TOT", GetVar("BUDG.EXPEND.TOT", Step.Current) - GetVar("BUDG.REV.TOT", Step.Current));

SetVar("BUDG.DEF.PRIM", GetVar("BUDG.DEF.TOT", Step.Current) - GetVar("EXT.DEBT.PUBL.SER.RU", Step.Current) - GetVar("NAT.DEBT.SER", Step.Current));

SetVar("BUDG.DEF.TOT/GNP.Q", GetVar("BUDG.DEF.TOT", Step.Current) / GetVar("GNP", Step.Current));

// SetVar("INFLAT.R", ЕСЛИ(D13<=0;D13+E14*E209;D13*(1+E31*D97*E206)*(1+E14*E208)*(1+(E14-D14)*E207)*(1-E143*E211)*(1+E27*E210)*(1+(E137-D137)*E212)*(1+(E34-D34)*D97*D213)));

SetVar("INFLAT.R", GetVar("INFLAT.R", Step.Previous) <= 0 ?

(GetVar("INFLAT.R", Step.Previous) + GetVar("BUDG.DEF.TOT/GNP.Q", Step.Current) * GetVar("infl.abs-abs.def", Step.Current)) :

(GetVar("INFLAT.R", Step.Previous) * (1 + GetVar("DEVAL.R", Step.Current) * GetVar("IMP.$.Q", Step.Previous) * GetVar("infl-r.deval", Step.Current)) * (1 + GetVar("BUDG.DEF.TOT/GNP.Q", Step.Current) * GetVar("infl-abs.def", Step.Current)) * (1 + (GetVar("BUDG.DEF.TOT/GNP.Q", Step.Current) - GetVar("BUDG.DEF.TOT/GNP.Q", Step.Previous)) * GetVar("infl-marg.def", Step.Current)) * (1 - GetVar("INTEREST.RR", Step.Current) * GetVar("infl-r.interest", Step.Current)) * (1 + GetVar("INCR.MARKET.Q", Step.Current) * GetVar("infl-incr.market", Step.Current)) * (1 + (GetVar("TAX.TOT.FACT.Q", Step.Current) - GetVar("TAX.TOT.FACT.Q", Step.Previous)) * GetVar("infl-tax.fact", Step.Current)) * (1 + (GetVar("IMP.DUTY.R", Step.Current) - GetVar("IMP.DUTY.R", Step.Previous)) * GetVar("IMP.$.Q", Step.Previous) * GetVar("infl-customs", Step.Previous))));

SetVar("OFFICERS.INC.R.GR", (1 + GetVar("OFFICER.INC.PC.G", Step.Current)) / (1 + GetVar("INFLAT.R", Step.Current)) - 1);

SetVar("BUDG.EXPEND.TOT.G", (GetVar("BUDG.EXPEND.TOT", Step.Current) - GetVar("BUDG.EXPEND.TOT", Step.Previous)) / GetVar("BUDG.EXPEND.TOT", Step.Previous));

SetVar("GOV.EXPEND.OFFICER/EXPEND", GetVar("GOV.EXPEND.OFFICER", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("NAT.DEBT.SER/BUDG.EXPEND.TOT.Q", GetVar("NAT.DEBT.SER", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("PENSIONER.INC.TOT/EXPEND.TOT.Q", GetVar("PENSIONER.INC.TOT", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("PUBL.INV/EXPEND.TOT.Q", GetVar("PUBL.INV", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("SECUR.EXPEND/EXPEND.Q", GetVar("SECUR.EXPEND", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("SOC.EXPEND/EXPEND.Q", GetVar("SOC.EXPEND", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("UNEMPL.INC.TOT/EXPEND.TOT.G", GetVar("UNEMPL.INC.TOT", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("SECUR.EXPEND.Q", GetVar("SECUR.EXPEND", Step.Current) / GetVar("GNP", Step.Current));

SetVar("OFFICER.INC.Q", GetVar("OFFICERS.INC.PC", Step.Current) / GetVar("PCI", Step.Current));

SetVar("CORRUPT.CALC", (1 + (GetVar("MARKET.Q", Step.Current) - GetVar("MARKET.INSTIT.Q", Step.Current)) * GetVar("corrupt-instit", Step.Current)) * (1 + (GetVar("officer.inc.norm.q", Step.Current) - GetVar("OFFICER.INC.Q", Step.Current)) * GetVar("corrupt-officer.inc", Step.Current)) * (1 + (GetVar("secur.norm.q", Step.Current) - GetVar("SECUR.EXPEND.Q", Step.Current)) * GetVar("corrupt-security", Step.Current)) - 1);

// SetVar("CORRUPT.FACTOR", ЕСЛИ(E146<0;0;E146));

SetVar("CORRUPT.FACTOR", GetVar("CORRUPT.CALC", Step.Current) < 0 ? 0 : GetVar("CORRUPT.CALC", Step.Current));

SetVar("PCI.$", GetVar("GNP.$", Step.Current) / GetVar("POPUL", Step.Current));

SetVar("PCI.$.G", (GetVar("PCI.$", Step.Current) - GetVar("PCI.$", Step.Previous)) / GetVar("PCI.$", Step.Previous));

SetVar("EXP.$.Q", GetVar("EXP.$", Step.Current) / GetVar("GDP.$", Step.Current));

SetVar("EXT.DEBT.PUBL.SER/EXPEND.TOT.Q", GetVar("EXT.DEBT.PUBL.SER.RU", Step.Current) / GetVar("BUDG.EXPEND.TOT", Step.Current));

SetVar("EXT.DEBT.PUBLIC.SER.Q", GetVar("EXT.DEBT.PUBL.SER.RU", Step.Current) / GetVar("GDP", Step.Current));

SetVar("EXT.DEBT.PUBL/GDP$.Q", GetVar("EXT.DEBT.PUBL.$", Step.Current) / GetVar("GDP.$", Step.Current));

SetVar("FDI.IN./GDP.Q", GetVar("FDI.IN.$", Step.Current) / GetVar("GDP.$", Step.Current));

SetVar("IMP.$.Q", GetVar("IMP.$", Step.Current) / GetVar("GDP.$", Step.Current));

SetVar("BUDG.EXPEND.TOT/GNP.Q", GetVar("BUDG.EXPEND.TOT", Step.Current) / GetVar("GNP", Step.Current));

SetVar("NAT.DEBT/GNP.Q", GetVar("NAT.DEBT", Step.Current) / GetVar("GNP", Step.Current));

SetVar("PUBL.INV.Q", GetVar("PUBL.INV.$", Step.Current) / GetVar("GNP.$", Step.Current));

//End

SetVar("GDP.$.G", (GetVar("GDP.$", Step.Current) - GetVar("GDP.$", Step.Previous)) / GetVar("GDP.$", Step.Previous));

SetVar("GDP.$.IND", GetVar("GDP.$.IND", Step.Previous) * (1 + GetVar("GDP.$.G", Step.Current)));

SetVar("PCI.$.IND", GetVar("PCI.$.IND", Step.Previous) * (1 + GetVar("PCI.$.G", Step.Current)));

SetVar("BELT.TIGHT.IND", GetVar("GNP.$.IND", Step.Current) / GetVar("GDP.$.IND", Step.Current) * 100);

SetVar("PUBL.INFRA.ASSETS/GDP.Q", GetVar("PUBL.INFRA.ASSETS.$", Step.Current) / GetVar("GDP.$", Step.Current));

SetVar("EXT.DEBT.TOT.SER/EXP.Q", (GetVar("EXT.DEBT.PUBL.SER.$", Step.Current) + GetVar("EXT.DEBT.PRIV.SER.$", Step.Current)) / GetVar("EXP.$", Step.Current));

SetVar("EXT.DEBT.PUBL/GDP.$.Q", GetVar("EXT.DEBT.PUBL.$", Step.Current) / GetVar("GDP.$", Step.Current));

SetVar("IMP.SURPL.$", GetVar("IMP.$", Step.Current) - GetVar("EXP.$", Step.Current));

SetVar("UNEMPL.Q", GetVar("UNEMPLOYED", Step.Current) / GetVar("PERS.WORK.AGE", Step.Current));

SetVar("BUDG.DEF.PRIM./GNP.Q", GetVar("BUDG.DEF.PRIM", Step.Current) / GetVar("GNP", Step.Current));

SetVar("NAT.DEBT/GNP.Q ", GetVar("NAT.DEBT", Step.Current) / GetVar("GNP", Step.Current));

SetVar("NAT.DEBT.SER/GNP.Q", GetVar("NAT.DEBT.SER", Step.Current) / GetVar("GNP", Step.Current));

SetVar("UNEMPL.INC.Q", GetVar("UNEMPL.INC.PC", Step.Current) / GetVar("PCI", Step.Current));

SetVar("PENSIONERS.INC.Q", GetVar("PENSIONER.INC.PC", Step.Current) / GetVar("PCI", Step.Current));

SetVar("SOC.EXPEND.Q", GetVar("SOC.EXPEND", Step.Current) / GetVar("GNP", Step.Current));

SetVar("GINI.Q", GetVar("GINI.Q", Step.Previous) + (GetVar("CORP.Q", Step.Current) - GetVar("CORP.Q", Step.Previous)) * GetVar("gini-delta.corp", Step.Previous) + GetVar("INCR.MARKET.Q", Step.Previous) * GetVar("gini-delta.market", Step.Previous) - GetVar("IMPROV.INSTIT.Q", Step.Previous) * GetVar("gini-delta.instit", Step.Previous) - (GetVar("UNEMPL.INC.Q", Step.Current) - GetVar("UNEMPL.INC.Q", Step.Previous)) * GetVar("gini-unemploy.inc", Step.Current) - (GetVar("PENSIONERS.INC.Q", Step.Current) - GetVar("PENSIONERS.INC.Q", Step.Previous)) * GetVar("gini-pensioners.inc", Step.Current) - (GetVar("SOC.EXPEND.Q", Step.Current) - GetVar("SOC.EXPEND.Q", Step.Previous)) * GetVar("gini-soc.expend", Step.Current));

SetVar("UNEMPL.INC.MIN.Q", GetVar("OFFICER.INC.Q", Step.Previous) * GetVar("unempl.y-officers.inc", Step.Previous));

}

public bool IsVariableInstr(string name)

{

int id = variableIds[name];

if (id >= endVars.Count && id < endVars.Count + instrVars.Count)

return true;

return false;

}

private float GetVar(string name, Step step)

{

if (step == Step.Current)

{

// BIG COSTIL

if (gridWrapper[variableIds[name]][CurrentStep] == null)

{

Trace.WriteLine(name);

}

return float.Parse(gridWrapper[variableIds[name]][CurrentStep]);

}

else

{

return float.Parse(gridWrapper[variableIds[name]][CurrentStep - 1]);

}

}

private void SetVar(string name, float value)

{

gridWrapper[variableIds[name]][CurrentStep] = value.ToString();

}

public void MoveCarriageTo(int to)

{

if (CurrentStep == to)

return;

else if (CurrentStep < to)

{

while (CurrentStep != to)

{

gridWrapper.AddColum(CurrentStep++);

}

return;

}

else

{

while (CurrentStep != to)

{

gridWrapper.PopColum();

CurrentStep--;

}

return;

}

}

}

}

VariableTypes.cs:

namespace GameOfEconomy.MainLogic

{

public class EVariable

{

public string Name { get; set; }

public string LongName { get; set; }

}

public class EInstrVar : EVariable

{

public string Value { get; set; }

}

public class EInterVar : EVariable

{

}

public class EEndVar : EVariable

{

}

public class EConstVar : EVariable

{

}

}

MainWindow.xaml.cs

using GameOfEconomy.MainLogic;

using Microsoft.Win32;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Xml.Serialization;

namespace GameOfEconomy

{

/// <summary>

/// Interaction logic for MainWindow.xaml

/// </summary>

public partial class MainWindow : Window

{

private DataGridWrapper gridWrapper;

public Game game;

public MainWindow()

{

InitializeComponent();

Initialize();

}

private void Initialize()

{

gridWrapper = new DataGridWrapper(MainTable);

game = new Game(gridWrapper);

}

private void NextYear_Click(object sender, RoutedEventArgs e)

{

game.SimulateNextStep();

}

private void MainTable_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)

{

// Canceling editing to make dialog

e.Cancel = true;

Binding binding = ((DataGridTextColumn)e.Column).Binding as Binding;

DataGridRow row = e.Row.Item as DataGridRow;

if (int.TryParse(binding.Path.Path.Substring(4), out int yearIndex))

{

if (game.IsVariableInstr(row.Name))

ShowEditDialog(row, yearIndex);

else

new NotEditableDialog().Show();

}

else

{

ChartWindow chartWindow = new ChartWindow(row);

chartWindow.Show();

}

}

private void ShowEditDialog(DataGridRow row, int yearIndex)

{

EditDialog dialog = new EditDialog(row.Name, row[yearIndex] == null ? 0 : float.Parse(row[yearIndex]));

dialog.Show();

dialog.Closed += (object s, System.EventArgs closedEvent) =>

{

row[yearIndex] = dialog.Value.ToString();

gridWrapper.Apply();

game.CurrentStep--;

game.SimulateStep();

game.CurrentStep++;

};

}

private void MenuItem_Click(object sender, RoutedEventArgs e)

{

SaveFileDialog saveFileDialog = new SaveFileDialog();

if (saveFileDialog.ShowDialog() == true)

{

using (var writer = new StreamWriter(saveFileDialog.FileName))

{

var serializer = new XmlSerializer(typeof(DataGridRow[]));

serializer.Serialize(writer, gridWrapper.rows.ToArray());

writer.Flush();

}

}

}

private void MenuItem_Click_1(object sender, RoutedEventArgs e)

{

LoadGame();

}

public void LoadGame()

{

OpenFileDialog openFileDialog = new OpenFileDialog();

if (openFileDialog.ShowDialog() == true)

{

using (StreamReader reader = new StreamReader(openFileDialog.FileName))

{

var serializer = new XmlSerializer(typeof(DataGridRow[]));

gridWrapper.rows = ((DataGridRow[])serializer.Deserialize(reader)).ToList();

gridWrapper.Apply();

int i = 0;

while (gridWrapper.rows[0][i++] != null) { }

i--;

game.MoveCarriageTo(i);

reader.Close();

}

}

}

}

}

PlotViewModel.cs

using OxyPlot;

using OxyPlot.Series;

namespace GameOfEconomy

{

class PlotViewModel

{

public PlotViewModel(DataGridRow row)

{

var tmp = new PlotModel { Title = row.Name, Subtitle = row.LongName};

var series = new LineSeries {MarkerType = MarkerType.Circle };

int i = 0;

while (row[i] != null)

{

series.Points.Add(new DataPoint (i, double.Parse(row[i])));

i++;

}

tmp.Series.Add(series);

this.Model = tmp;

}

/// <summary>

/// Gets the plot model.

/// </summary>

public PlotModel Model { get; private set; }

}

}

ChartWindow.xaml.cs

using System;

using System.Collections.Generic;

using System.Windows;

using GameOfEconomy.MainLogic;

using OxyPlot;

using OxyPlot.Series;

namespace GameOfEconomy

{

/// <summary>

/// Interaction logic for ChartWindow.xaml

/// </summary>

public partial class ChartWindow : Window

{

public ChartWindow()

{

InitializeComponent();

}

public ChartWindow(DataGridRow row)

{

InitializeComponent();

this.DataContext = new PlotViewModel(row);

}

}

}

Размещено на Allbest.ru

...

Подобные документы

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

    курсовая работа [177,9 K], добавлен 15.10.2013

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

    реферат [68,2 K], добавлен 25.11.2002

  • Применение системы MathCAD при решении прикладных задач технического характера. Основные средства математического моделирования. Решение дифференциальных уравнений. Использование системы MathCad для реализации математических моделей электрических схем.

    курсовая работа [489,1 K], добавлен 17.11.2016

  • Процесс выбора или построения модели для исследования определенных свойств оригинала в определенных условиях. Стадии процесса моделирования. Математические модели и их виды. Адекватность математических моделей. Рассогласование между оригиналом и моделью.

    контрольная работа [69,9 K], добавлен 09.10.2016

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

    презентация [9,0 M], добавлен 18.09.2017

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

    методичка [418,9 K], добавлен 10.11.2015

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

    презентация [4,3 M], добавлен 26.06.2014

  • Проведение численного моделирования системы, описанной системой дифференциальных уравнений первого порядка. Схемы моделирования методом последовательного (непосредственного) интегрирования, вспомогательной переменной и методом канонической формы.

    контрольная работа [550,9 K], добавлен 12.12.2013

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

    контрольная работа [59,9 K], добавлен 23.07.2009

  • Основные понятия математического моделирования, характеристика этапов создания моделей задач планирования производства и транспортных задач; аналитический и программный подходы к их решению. Симплекс-метод решения задач линейного программирования.

    курсовая работа [2,2 M], добавлен 11.12.2011

  • Динамические системы в математическом понимании. Определение функционирующей системы и системы процессов. Основные и неосновные переменные динамики систем, множества их значений, типовые кванторы. Определения и классификация динамических свойств.

    курсовая работа [144,0 K], добавлен 04.05.2011

  • Основные понятия теории марковских цепей. Теория о предельных вероятностях. Области применения цепей Маркова. Управляемые цепи Маркова. Выбор стратегии. Оптимальная стратегия является марковской - может зависеть еще и от момента времени принятия решения.

    реферат [75,6 K], добавлен 08.03.2004

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

    реферат [271,1 K], добавлен 17.01.2011

  • Теоретические основы моделирования: понятие модели и моделирования. Моделирование в решении текстовых задач. Задачи на встречное движение двух тел. Задачи на движение двух тел в одном направлении и в противоположных направлениях. Графические изображения.

    курсовая работа [98,9 K], добавлен 03.07.2008

  • Анализ эффективности простейших систем массового обслуживания, расчет их технических и экономических показателей. Сравнение эффективности системы с отказами с соответствующей смешанной системой. Преимущества перехода к системе со смешанными свойствами.

    курсовая работа [163,4 K], добавлен 25.02.2012

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

    реферат [28,1 K], добавлен 20.08.2015

  • Изучение вопросов применения теории множеств, их отношений и свойств и теории графов, а также математических методов конечно-разностных аппроксимаций для описания конструкций РЭА (радиоэлектронной аппаратуры) и моделирования протекающих в них процессов.

    реферат [206,9 K], добавлен 26.09.2010

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

    курсовая работа [1,1 M], добавлен 23.11.2010

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

    дипломная работа [5,1 M], добавлен 28.06.2011

  • Дифференциальные уравнения как математический инструмент моделирования и анализа разнообразных явлений и процессов в науке и технике. Описание математических методов решения систем дифференциальных уравнений. Методы расчета токов на участках цепи.

    курсовая работа [337,3 K], добавлен 19.09.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.