Автор работы: Пользователь скрыл имя, 07 Мая 2013 в 22:35, курсовая работа
МАКРОЭКОНОМИЧЕСКОЕ РАВНОВЕСИЕ - сбалансированное состояние экономической системы, равновесие экономической системы в целом. Оно выражается в пропорциональности экономических процессов, в основе которой находится взаимная согласованность системы общих, частных и единичных пропорций.
Введение 3
1. Макроэкономическое равновесие
1.1 Понятие макроэкономического равновесия 4
1.2 Признаки, условия и типы макроэкономического равновесия 5
1.3 Макроэкономический анализ равновесия 6
1.4 Наиболее известные модели макроэкономического равновесия 7
2. Модель IS-LM
2.1 Общие сведения о модели IS-LM 9
2.2 Рынок товаров и кривая IS 10
2.3 Денежный рынок и кривая LM 12
2.4 IS-LM – анализ макроэкономического равновесия 15
2.5 Экономическая политика в модели IS-LM 15
3. Анализ макроэкономического равновесия с помощью модели
IS-LM в Беларуси 19
Заключение
Список литературы
Приложение А
Edit27->Visible=true;
Edit26->Enabled=true;
Edit27->Enabled=true;
Label48->Visible=true;
Label49->Visible=true;
Label50->Visible=true;
Label51->Visible=true;
Edit24->Visible=false;
Edit25->Visible=false;
Edit24->Enabled=false;
Edit25->Enabled=false;
Label27->Visible=false;
Label46->Visible=false;
}
}
//----------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Series5->Clear();
Series6->Clear();
Series7->Clear();
Series8->Clear();
Ob.Func2();
}
//----------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
register int i, j;
double sum=0,Z=0,X=0,sum1=0,Z1=0,X1=
Series9->Clear();
Series10->Clear();
X=(MasR[1]-MasR[0])/4;
for(Z=MasR[0];Z<=MasR[k-1];Z+=
{
sum = Ob.Lagran(MasR,MasY,k,Z);
Series9->AddXY(sum, Z,"",clRed);
}
Ob.Nuton();
X1=(MasR1[0]-MasR1[1])/4;
for(Z1=MasR1[0];Z1>=MasR1[l-1]
{
sum1 = Ob.Lagran1(MasR1,MasY1,l,Z1);
Series10->AddXY(sum1, Z1,"",clBlack);
}
Ob.Nuton();
}
//----------------------------
void __fastcall TForm1::RadioButton1Click(
{
AnsiString Rez="";
register int i;
if(RadioButton1->Checked)
{
ListBox1->Clear();
Rez="№ IS % IS V";
ListBox1->Items->Add(Rez);
for(i=0; i<k; i++)
{
Rez=IntToStr(i)+"
"+FloatToStrF(MasR[i],ffFixed,
FloatToStrF(MasY[i],ffFixed,7,
ListBox1->Items->Add(Rez);
}
}
else
if(RadioButton2->Checked)
{
ListBox1->Clear();
Rez="№ LM % LM V";
ListBox1->Items->Add(Rez);
for(i=0; i<l; i++)
{
Rez=IntToStr(i)+" "+FloatToStrF(MasR1[i],
FloatToStrF(MasY1[i],ffFixed,
ListBox1->Items->Add(Rez);
}
}
else
if(RadioButton3->Checked)
{
ListBox1->Clear();
Rez="№ IS % IS V LM % LM V";
ListBox1->Items->Add(Rez);
if(k>=l)
{
for(i=0; i<l; i++)
{
Rez=IntToStr(i)+"
"+FloatToStrF(MasR[i],ffFixed,
FloatToStrF(MasY[i],ffFixed,7,
FloatToStrF(MasR1[i],ffFixed,
FloatToStrF(MasY1[i],ffFixed,
ListBox1->Items->Add(Rez);
}
for(i=l; i<k; i++)
{
Rez=IntToStr(i)+"
"+FloatToStrF(MasR[i],ffFixed,
FloatToStrF(MasY[i],ffFixed,7,
ListBox1->Items->Add(Rez);
}
}
else if(k<l)
{
for(i=0; i<k; i++)
{
Rez=IntToStr(i)+"
"+FloatToStrF(MasR[i],ffFixed,
FloatToStrF(MasY[i],ffFixed,7,
FloatToStrF(MasR1[i],ffFixed,
FloatToStrF(MasY1[i],ffFixed,
ListBox1->Items->Add(Rez);
}
for(i=k; i<l; i++)
{
Rez=IntToStr(i)+" "+"
"+FloatToStrF(MasR1[i],
FloatToStrF(MasY1[i],ffFixed,
ListBox1->Items->Add(Rez);
}
}
}
}
//----------------------------
Unit2.cpp
//----------------------------
#pragma hdrstop
#include <vcl.h>
#include "Unit1.h"
#include "Unit2.h"
#include <Math.h>
//----------------------------
#pragma package(smart_init)
void MyClass::Func1()
{
double I=0, E=0, Y=0, R=0, Rmin, Rmax, S, Z, Ymin, Ymax, T, EX, G, H, a, c, b,
d, X1, X2, E1;
AnsiString Rez;
register double i;
register int j;
b=StrToFloat(Form1->Edit14->
c=StrToFloat(Form1->Edit12->
d=StrToFloat(Form1->Edit13->
a=StrToFloat(Form1->Edit11->
EX=StrToFloat(Form1->Edit1->
G=StrToFloat(Form1->Edit2->
T=StrToFloat(Form1->Edit5->
H=StrToFloat(Form1->Edit10->
if(b==0 || b==1 || b>1)
{
ShowMessage("Коэффициент b должен быть больше нуля, но меньше единицы!");
}
Form1->Series2->AddXY(0,0,"",
Form1->Series3->AddXY(0, 0,"",clHotLight);
if(Form1->ComboBox3->Text=="
{
Rmin=StrToFloat(Form1->Edit24-
Rmax=StrToFloat(Form1->Edit25-
Form1->Series15->AddXY(-EX, 0,"",clWhite);
Form1->Series16->AddXY(-G, 0,"",clWhite);
for(j = 0; j < 100; j++)
{
MasR[j]=0;
MasY[j]=0;
}
k=0;
for(i = Rmin; i <= Rmax; i+=H)
{
R=i;
I=(c-d*i)+ EX + G;
E=I;
Y=((a+c)/(1-b*(1-T))) + (G/(1-b*(1-T))) - (d*i/(1-b*(1-T)));
Form1->Series1->AddXY(-I,R,"",
Form1->Series2->AddXY(-I,-E,""
Form1->Series3->AddXY(Y, -E,"",clHotLight);
Form1->Series4->AddXY(Y, R,"",clLime);
MasR[k]=i;
MasY[k]=Y;
k+=1;
}
if(Y >= I)
X1=Y;
else
X1=I;
if(Rmax >= E)
X2=Rmax;
else
X2=E;
Form1->Series11->AddXY(-X1-1, 0,"",clBlack);
Form1->Series11->AddXY(X1+1, 0,"",clBlack);
Form1->Series12->AddXY(0, -X2-1,"",clBlack);
Form1->Series12->AddXY(0, X2+1,"",clBlack);
}
else if(Form1->ComboBox3->Text=="
{
Ymin=StrToFloat(Form1->Edit26-
Ymax=StrToFloat(Form1->Edit27-
S=StrToFloat(Form1->Edit3->
Z=StrToFloat(Form1->Edit4->
Form1->ListBox1->Clear();
for(j = 0; j < 100; j++)
{
MasR[j]=0;
MasY[j]=0;
}
k=0;
for(i = Ymin; i <= Ymax; i+=H)
{
Y=i;
E1=S+Z+T;
I=E1*i;
E=I;
R=((a+c)/d) + (G/d) - (((1-b*(1-T))*i)/d);
Form1->Series1->AddXY(-I,R,"",
Form1->Series2->AddXY(0,0,"",
Form1->Series2->AddXY(-E,-I,""
Form1->Series3->AddXY(0, 0,"",clHotLight);
Form1->Series3->AddXY(Y, -I,"",clHotLight);
Form1->Series4->AddXY(Y, R,"",clLime);
MasR[k]=R;
MasY[k]=i;
k+=1;
}
if(Y >= I)
X1=Y;
else
X1=I;
if(Rmax >= E)
X2=Rmax;
else
X2=E;
Form1->Series11->AddXY(-X1-1, 0,"",clBlack);
Form1->Series11->AddXY(X1+1, 0,"",clBlack);
Form1->Series12->AddXY(0, -X2-1,"",clBlack);
Form1->Series12->AddXY(0, X2+1,"",clBlack);
}
}
//----------------------------
void MyClass::Func2()
{
double M, P, H, Rmin, Rmax, Ymin, Ri, Ymax, E, Y, R,F, e = 0, f=0,
X1, X2, K1, K2, p;
AnsiString Rez;
register double i;
register int j;
M = StrToFloat(Form1->Edit15->
P = StrToFloat(Form1->Edit16->
H = StrToFloat(Form1->Edit17->
if(Form1->ComboBox1->Text=="
{
e = StrToFloat(Form1->Edit20->
f = StrToFloat(Form1->Edit21->
Rmax = StrToFloat(Form1->Edit7->Text)
Rmin = StrToFloat(Form1->Edit6->Text)
Form1->Series7->AddXY(0, 0,"",clPurple);
Form1->Series6->AddXY(-(M/P), 0,"",clRed);
Form1->Series6->AddXY(0, -(M/P),"",clRed);
for(j = 0; j < 100; j++)
{
MasR1[j]=0;
MasY1[j]=0;
}
l=0;
K1=((M/P)*Rmax*Rmin)/(Rmax-
K2=(M/P)-K1/Rmin;
for(i = Rmax-H; i >= Rmin; i-=H)
{
R=i;
F=(K1/i)+K2;
E=(M/P)-F;
Y=((M/P)/e)+(f*i/e);
Form1->Series5->AddXY(-F, R,"",clWhite);
Form1->Series7->AddXY(Y, -E,"",clPurple);
Form1->Series8->AddXY(0, Rmin,"",clBlue);
Form1->Series8->AddXY(Y, R,"",clBlue);
MasR1[l]=i;
MasY1[l]=Y;
l+=1;
}
if(Y >= M/P)
X1=Y;
else
X1=M/P;
if(Rmax >= M/P)
X2=Rmax;
else
X2=M/P;
Form1->Series13->AddXY(-X1-1, 0,"",clBlack);
Form1->Series13->AddXY(X1+1, 0,"",clBlack);
Form1->Series14->AddXY(0, -X2-1,"",clBlack);
Form1->Series14->AddXY(0, X2+1,"",clBlack);
}
else if(Form1->ComboBox1->Text=="
{
f=StrToFloat(Form1->Edit21->
e=StrToFloat(Form1->Edit20->
Ymin=StrToFloat(Form1->Edit8->
Ymax=StrToFloat(Form1->Edit9->
for(j = 0; j < 100; j++)
{
MasR1[j]=0;
MasY1[j]=0;
}
l=0;
for(i = Ymax-H; i >= Ymin; i-=H)
{
Y=i;
E=e*i;
F=(M/P)-i;
R= (i*e/f)-((M/P)/f);
Form1->Series5->AddXY(0, 0,"",clWhite);
Form1->Series5->AddXY(Y, -E,"",clWhite);
Form1->Series6->AddXY(-M/P, 0,"",clRed);
Form1->Series6->AddXY(0, -M/P,"",clRed);
Form1->Series7->AddXY(-F, R,"",clPurple);
Form1->Series8->AddXY(Y, R,"",clBlue);
MasY1[l]=i;
MasR1[l]=R;
l+=1;
}
if(Y >= M/P)
X1=Y;
else
X1=M/P;
if(Rmax >= M/P)
X2=Rmax;
else
X2=M/P;
Form1->Series13->AddXY(-X1-1, 0,"",clBlack);
Form1->Series13->AddXY(X1+1, 0,"",clBlack);
Form1->Series14->AddXY(0, -X2-1,"",clBlack);
Form1->Series14->AddXY(0, X2+1,"",clBlack);
}
}
//----------------------------
double MyClass::Lagran(double MasR[100],double MasY[100],int k,double Z)
{
register int i;
double X;
double sum=0;
for( i=0;i<k;i++)
{
double proiz=1;
for(int j=0;j<k;j++)
if(j!=i )
proiz*=(Z-MasR[j])/(MasR[i]-
sum+=(MasY[i]*proiz);
}
return sum;
}
//----------------------------
double MyClass::Lagran1(double MasR1[100], double MasY1[100], int l, double Z1)
{
register int i;
double X;
double sum=0;
for( i=l-1;i>=0;i--)
{
double proiz=1;
for(int j=l-1;j>=0;j--)
if(j!=i)
proiz*=(Z1-MasR1[j])/(MasR1[i]
sum+=(MasY1[i]*proiz);
}
return sum;
}
//----------------------------
void MyClass::Func5(double &R, double &Y)
{
double T, G, a, c, b, d, e, f, M, P, IS, LM;
b=StrToFloat(Form1->Edit14->
c=StrToFloat(Form1->Edit12->
d=StrToFloat(Form1->Edit13->Te
a=StrToFloat(Form1->Edit11->
G=StrToFloat(Form1->Edit2->
T=StrToFloat(Form1->Edit5->
e = StrToFloat(Form1->Edit20->
f = StrToFloat(Form1->Edit21->
M = StrToFloat(Form1->Edit15->
P = StrToFloat(Form1->Edit16->
R = (e*(a+c+G)-(M/P)*(1-b*(1-T)))/
Y = ((M/P)/e)+(f*R/e);
}
//----------------------------
void MyClass::Nuton()
{
double R=0, Y=0;
Func5(R,Y);
Form1->Edit18->Text=
Form1->Edit19->Text=
}
Информация о работе Макроэкономического равновесия: модель IS-LM с гибкими ценами