軍拡モデル
2国間の軍事拡大モデル
### 設定
# parameters
a: X国の自国の戦力・軍事に対する抑制率
k: Y国に戦力に対するX国の戦力の増加率
g: X国の定常的な軍事費(戦力の増加量)
b: Y国の自国の戦力・軍事に対する抑制率
l: X国に戦力に対するY国の戦力の増加率
h: Y国の定常的な軍事費(戦力の増加量)
# 戦力の推移設定
X国:dx/dt=-ax+ky+g
y国:dy/dt=lx-by+h
# 引数:
a,b,k,l,g,h (上記)
dt 時間の推移
mil_exp<-function(a,b,k,l,g,h,dt) { timeSep=dt;ts=seq(1,50,timeSep);n_ts=length(ts) x=matrix(0,nrow=n_ts,ncol=1);y=matrix(0,nrow=n_ts,,ncol=1) initX=c(rep(-40,5),rep(-20,5),rep(0,5),rep(20,5),rep(40,5)) initY=c(rep(c(-40,-20,0,20,40),5)) initX=initX[-13];initY=initY[-13] lengthINI=length(initX) for (i_ini in 1:lengthINI) { x[1]=initX[i_ini];y[1]=initY[i_ini]; for (i_gen in 2:n_ts) { x[i_gen]=x[i_gen-1]+(-a*x[i_gen-1]+k*y[i_gen-1]+g)*timeSep y[i_gen]=y[i_gen-1]+(l*x[i_gen-1]-b*y[i_gen-1]+h)*timeSep } if (i_ini==1) { plot(x,y,xlim=c(-40,40),ylim=c(-40,40),col=4,type='l',lwd=2, xlab="Nation X's Military Force",ylab="Nation X's Military Force") arrows(x[2],y[2],x[3],y[3],col=4,lwd=2,length=0.15) } else { lines(x, y, col=4, lwd=2) arrows(x[2], y[2], x[3], y[3], col=4,lwd=2, length=0.15) } } } mil_exp(1,2,0.5,0.1,10,10,0.05)