참조
카테고리 : 크레이지 슬롯 NOA 라이브러리
메인파일 : macro.gms
$onText
미국 경제의 작은 선형 동적 거시경제 모델
통화정책 변수와 재정정책 변수가 모두 사용됩니다.
선형 이차 리카티 방정식은 일반 비선형으로 풀립니다.
일반적인 행렬 재귀 대신 프로그래밍 문제입니다.
다음을 참조하세요:
Kendrick, D, 거시경제 모델의 주의 및 조사.
경제동학과통제연구 4, 2(1982) pp.149-170.
$offText
n 상태 설정 / 소비, 투자 /
m 통제 / 정부 지출, 돈 /
k 지평선 / 1964-i, 1964-ii, 1964-iii, 1964-iv
1965-i, 1965-ii, 1965-iii, 1965-iv /
ku(k) 제어 범위
ki(k) 초기 기간
kt(k) 단말기 기간 ;
별칭 (n,np), (m,mp) ;
ku(k) = yes$(ord(k) lt 카드(k));
ki(k) = yes$(ord(k) eq 1);
kt(k) = ku(k)가 아님;
k, ki, kt, ku를 표시합니다.
테이블 a(n,np) 상태 벡터 행렬
소비하다 투자하다
소비 .914 -.016
투자하다 .097 .424
테이블 b(n,m) 제어 벡터 행렬
정부 지출 돈
소비 .305 .424
투자하다 -.101 1.459
상태에 대한 테이블 wk(n,np) 페널티 행렬 - 입력
소비하다 투자하다
소비 .0625
1을 투자하다
컨트롤에 대한 테이블 rk(m,mp) 페널티 행렬
정부 지출 돈
정부 지출 1
돈 .444
매개변수 c(n) 상수항 / 소비 -59.4, 투자 -184.7 /
xinit(n) 초기값 / 소비 387.9, 투자 85.3 /
uinit(m) 초기 제어 / gov-expend 110.5, 돈 147.1 /
xtilde(n,k) x에 대한 원하는 경로
utilde(m,k) 원하는 경로
w(n,np,k) 상태에 대한 페널티 행렬;
w(n,np,ku) = wk(n,np);
w(n,np,kt) = 10000*wk(n,np);
xtilde(n,k) = xinit(n)*1.0075**(ord(k)-1);
utilde(m,k) = uinit(m)*1.0075**(ord(k)-1);
w, xtilde, utilde 표시;
변수 x(n,k) 상태변수
u(m,k) 제어 변수
j 기준
방정식 기준 기준 정의
stateq(n,k) 상태 방정식 ;
기준..
j =e= .5*sum((k,n,np),
(x(n,k)-xtilde(n,k))*w(n,np,k)*(x(np,k)-xtilde(np,k)))
+ .5*합((ku,m,mp),
(u(m,ku)-utilde(m,ku))*rk(m,mp)*(u(mp,ku)-utilde(mp,ku)));
상태q(n,k+1)..
x(n,k+1) =e= 합(np, a(n,np)*x(np,k)) + 합(m, b(n,m)*u(m,k)) + c(n);
모델 매크로 /all/;
x.l(n,k) = xinit(n);
u.l(m,k) = uinit(m);
x.fx(n,ki) = xinit(n);
nlp를 사용하여 j를 최소화하는 매크로를 해결합니다.
디스플레이 x.l, ul;
$ifThenI x%mode%==xbook
파일 res1 /macro.dat/;
res1을 넣어
루프(k, put xtilde('consumpt',k):10:5, put/)
루프(k, put xtilde('invest',k):10:5, put/)
loop(k, put x.l('consumpt',k):10:5, put/)
루프(k, put x.l('invest',k):10:5, put/)
루프(k, put utilde('gov-expend',k):10:5, put/)
loop(k, put utilde('money',k):10:5, put/)
루프(k, put u.l('gov-expend',k):10:5, put/)
루프(k, put u.l('money',k):10:5, put/)
$endIf
* 매크로 종료