練習問題1の回答¶
練習問題1-1¶
ファイルrun.xlsxのシート(a1d)Baseで、CIRの値
0.025
を 0.03
に変更すれば良いです。直接モデルの算式を
double CIR = 0.03
と書き換える方法もあります。練習問題1-2¶
以下のようにSx, Rxの算式を追加すれば良いです。(出力定義でDEBUGが指定されているので、すべての変数を自動的に出力します)
double[] Sx =
if (x >= max_x) { Nx(x) }
else { Nx(x) + Sx(x+1) }
double[] Rx =
if (x >= max_x) { Mx(x) }
else { Mx(x) + Rx(x+1) }
練習問題1-3¶
まず、ファイルrun.xlsxのシートinforceで、年齢x、払込期間mを追加し、
(sex, x, m) = (M, 40, 10), (M, 40, 20) と2行設定する必要があります。
次に、インフォースの読み込みを以下のように追加する必要があります。
int inf_x = Inf.get_int("x")
int m = Inf.get_int("m")
算式は、以下のようにlx, d_xを変更し、qwx, dwxを追加すれば良いです。
double[] qwx = if (x < inf_x + m) { 0.04 }
else { 0.02 }
double[] lx = if (x == 0) { 1.0 }
else { Utl.max(lx(x-1) - d_x(x-1) - dwx(x-1), 0.0) }
double[] d_x = lx(x) * qx(x) * (1.0 - qwx(x)/2.0)
double[] dwx = lx(x) * qwx(x) * (1.0 - qx(x)/2.0)