更新できてなくてすみません。 なんか仕事が増えちゃいました。
低平地タンクモデル
角屋先生の低平地タンクモデルのトレースがもうちょっとで終わりそうです。
pythonで実装してますが、spyderというツールをインストールしてあげると、 必要なライブラリは大方はいるので、実行は簡単にできると思います。 Windows、Mac、Linuxに対応してます。
https://code.google.com/p/spyderlib/
一応、OOPで実装してます。まだ、クラスやメソッドが共通化できてませんが、 それができれば、アップしようと思います。
numpy使うと連立1次方程式が楽に解けます。
通水能モデル
角屋先生の論文によると、河道タンクでは、通水能の表現をしていました。 断面関数Gという呼び名だったと思います。
頂いた論文を見ましたが、うーん(笑)ですね。 Leap-frog法の説明も違うような気がします。 2段階混合差分法ですかね。 この呼び名も嫌いなんですが。
角屋先生、木下さん?の論文の出典もないですし・・・。 ちょっといろいろ詰め過ぎかな。 下記3点はなるべく分けて充実した議論をしたほうが良いと思います。
- 現地データの考察
- モデル作成と考察
- モデル適用事例と考察
OOP
隠蔽化等
VBAをみました。 断面のデータを押し込めたほうがよいかなと思います。 あと、クラスのメンバーの隠蔽化はどうするのか気になっています。 そこらへんがGet、Let、Setのアクセサと理解してよろしいでしょうか?
スーパークラスのメンバーに、更新後の変数も入れたほうが良いかと思います。 解法を変更する場合はスーパークラスを継承するのが良いかと思います。 レビューは次の機会にでも。
With
隠蔽化とは関係ないですが、多少Withを使ったほうが書く量が減るかなと。 VBのWith文は便利だなと思います。 (文じゃなかったらごめんなさい)
計算速度
この程度の計算であれば、計算速度の差は出ないと思います。 空間の離散点が大きく、時間積分のステップ数が多くなると効いてくるはずです。 この種の計算だと、コンストラクタの呼び出しが多くなることはないはず?なので、 オブジェクトのアクセスに対するオーバヘッドが大きくなるはずです。
終わりに
流出率、飽和雨量のキャリブレーションですか・・・。 概念に近いモデルを使って、パラメータ調整って辛いですね。 なにか無意味に思えてきます。 それこそカルマンフィルタ使えば良いのにって思います。