:orphan: ================================== 練習問題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)