練習問題2の回答

練習問題2-1

ファイルrun.xlsxのシートinforceで、

  • 上の3つの行に、保険期間nや払込期間mの列に80-xとなる値を設定します。(Excelの算式を使用できます)
  • SKIP列を追加し、下の3つの行には1をセットします。(上の3つの行は0か空白どちらでも構いません)

練習問題2-2

以下のように未経過保険料支払の算式を変更します。

double[] unpaid_cashout = if(t <= m) { dwx(t) * Rate.grossP * S / 2.0 }
                          else       { 0 }

練習問題2-3

モデルにモジュールOutputRateを以下のように追加します。

module OutputRate{

    @range = t
    @range_last = Util.max_t

    double[] netV_P = Rate.netV_P(t)
    double[] netV_V = Rate.netV_V(t)

}
また、出力定義については、ファイルrun.xlsxのシートoutputで、
nameをrate(他の名前でも構いません)、module_nameをOutputRateとした行を作ります。
(sc_st, sc_la, sh_st, sh_laは値を設定してもしなくても構いません)
そして、ラン定義については、ファイルrun.xlsxのシートrunの列outputで、
カンマ区切りでrateを追加します。
(debug, profitability, bspl, rate のようになります)