モデル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) } } }