その他のメソッドやメンバー変数はすべてこのメソッドの実行をサポートする為に用意されています。)メソッドだけにしか使われていません。protectedのセクションに含めるべきでした。エラリー・クイーン(推理小説作家)の流儀に従っているかどうかわかりませんが、必要な証拠はすべてそこにあるので、プログラムコードを読んで、どれがその2つか見つけて下さい。所謂、うまく成功して終了したのか、それとも再計算回数の最大値に達して終了したのか)です。Short-Rateモデルで使われていた頃の名残が残っています。述べたように、このクラスは暫くの間ほっておかれたため、古い名残が残っている訳です。コンストラクターは、引数として、モデルのパラメータの数を取得し、その値を使って、メンバー変数を初期化します。設定するメンバー変数を、Noneで初期化します。ここで、注意すべきプログラムの傷があります。コンストラクターは、派生クラスでのみ使われる事を意図しているにも関わらず、publicで宣言されています(おそらく見過ごされたのでしょう)。従って、このクラスが純粋仮想関数を宣言していない事と相まって、CalibratedModelクラスのインスタンスを生成する事が可能になっています。Parameterクラスのインスタンスは、デフォールトで生成されているのみで、何の動作も行いません)。この問題点を修正しようとすると、過去のバージョンのプログラムが動かなくなる可能性がありますが、そもそもこのインスタンスを使ったプログラムは動かないでしょうから、ほっておいてもいいという理屈も成り立ちます。次回以降のバージョンアップの時に検討したいと思います。Observerオブジェクトに通知を転送します。)をオーバーライドして実装されます。この関数名は、その中でパラメータのインスタンスを生成するような印象を与えるので、誤解を与えるかも知れません。Calibrationが終わったパラメータを書き換えてはいけないので、(オーバーライドする際に)そうしないようにして下さい。従ってオーバーライドする際は、そのように使うべき)。これについては、Hestonモデルの具体例の続きの中で説明していきます。)メソッドはそれぞれパラメータの値を読み出したり、書き込んだりするために使われます。)メソッドを使います。Arrayインスタンスはpush-backの操作ができないので、この動作は、一回のループ処理では行えません)。)メソッドは、引数として渡されてきたパラメータの値を読み込み、メンバー変数であるParameterインスタンスの配列に、必要な数のパラメータをコピーしていきます。)メソッドと推察された方は正解です。お好きなアルコールで祝杯をあげて下さい(但し、飲酒プログラミングは止めてください)。)メソッドの中からだけ呼ばれるべきです。Parameterインスタンス配列のどの要素に該当するか知ることが出来ません。従って、このメソッドを修正しようにも出来る訳がなく、かつしたとしてもほとんど役に立たないでしょう。)メソッドは、このクラスの中心ですが、ほとんどの作業を別のオブジェクトに委託し、それらを統合管理しているだけです。Calibrationされたパラメータを導出します。)メソッドを呼び出す時に引数として渡される。PrivateConstraintインスタンスに設定され、(引数として渡される)追加の制約条件がある場合は、それを加える。)メソッドは、これらすべてを集め、最小値問題のインスタンスを生成し、その解を出すプロセスを実行します。Observerオブジェクトに通知します。)メソッドを使って取り出す事が出来ます。(特にそれに拘っている訳ではありませんが)。EndCriteriaの情報は、モデルの中に保持するのが合理的かもしれないという理由からです。)メソッドは、例外発生時の安全対策が十分ではありません。(その計算プロセスが例外処理の発生原因の可能性が高い)。Calibration前のパラメータの値を、Calibrationがスタートする前に、どこかに一時保管し、例外処理が発生した場合は、そのパラメータを使って例外処理が発生する前の状態に戻す操作を行えば、強固な安全対策となるかも知れません。EndCriteriaを設定しておくのがおそらくベストの対応でしょう。Calibrationが失敗した場合には、まさにそのプロセスに移行するわけですから。CalibratedFunctionという2つの内部クラスの中で実装されています。};PrivateConstraintクラスは、Parameterインスタンスに設定されている制約条件を取りまとめる事によって機能します。)メソッドを呼び出して、各データの内容をチェックします。合成された制約条件は、その中の各制約条件がすべて満たされたときのみ、満たされた事になります。Calibration誤差の値を計算します。(のインスタンス)へのポインター、Calibrationで使われる市場価格のある金融商品の配列、およびウェイトの配列を取り、それぞれメンバー変数に保存します。モデルのポインターは、CalibratedFunctionによって消されてしまう事がないように、shared_ptrインスタンスへ保存されています。単純にポインターを保持するだけで十分であったかも知れません。)メソッドの両方の実装が必要です。返しますが、後者はその全体を1つの値にして返します。Optimizationの方法によって、いずれかのメソッドが使われます。Listingの中で示しています。CalibrationHelperインスタンス(の配列)を使って、Calibration誤差を計算します。Helperインスタンスに、Calibration対象の‘モデル’を使った価格エンジンを設定する必要があります。これら全体のプロセスをプログラムコード化しようとすると、次のような形になるでしょう。PricingEngineがモデルを使って計算を行います。Calibration誤差の値も変化します。)メソッドは、それらの2乗和を返します。friendクラスとして宣言されています。)メソッドにしかアクセスしていないので、実際にはその必要はありません。protectedとして宣言されていたとしても、friendである必要はなかったでしょう。publicであろうとなかろうと、アクセス可能になっています。具体例:Hestonモデル(続き)Hestonモデルの具体例の説明の続きです。