モデル1¶
基数を作成するだけのシンプルなモデルです。
チュートリアル1 で説明しています。
// ベース計算クラス
calculation Base {
// 基数モジュール
module CT{
// このモジュールでのタイムステップを定める
@range = x
@range_last = 130
// 算式の定義
int max_x = 130
string sex = Inf.get_string("sex")
double CIR = Asm.get_double("CIR")
double[] qx = if (sex == "M"){ Asm.get_double("qx_m_SLT1996", x) }
else { Asm.get_double("qx_f_SLT1996", x) }
double[] lx = if (x == 0) { 1.0 }
else { Utl.max(lx(x-1) - d_x(x-1), 0.0) }
double[] d_x = lx(x) * qx(x)
double v = 1.0 / (1.0 + CIR)
double[] vx = if(x == 0) { 1.0 }
else { vx(x-1) * v }
double[] Dx = lx(x) * vx(x)
double[] Cx = d_x(x) * vx(x) * v ^ 0.5
double[] Nx =
if (x >= max_x) { Dx(x) }
else { Dx(x) + Nx(x+1) }
double[] Mx =
if (x >= max_x) { Cx(x) }
else { Cx(x) + Mx(x+1) }
}
}