タグ付けされた質問 「design-patterns」

2
C ++で数値ソフトウェアを書く際のデザインパターン
私は数値ソフトウェアの設計パターンと原則に関するリソースを探していますが、必ずしも必要ではありませんが、数値コードに対するオブジェクト指向のアプローチに焦点を当てています。 私は「科学ソフトウェアを書く:良いスタイルのためのガイド」というテキストを知っていますが、これはまだ浮動小数点の問題、最適化の方法とタイミングなどを扱っています。 アルゴリズムなどを扱うものではなく、数値コードの設計の全体像に関する情報を探しています。 このためのリソースがあることを願っています。特に、C ++の良いイディオムと実践に関する自分の知識を除いて、物事を正しく設計するためのガイドがないので、ライブラリを次から次へと進むだけではありません。 (これは言語固有ではありませんが、言語固有のコンテンツがある場合は、C ++を好むでしょう。)

5
たとえば、大きなヤコビ行列を扱う場合、数値コードの複雑さをどのように扱うのですか?
連立方程式の非線形システムを解いていて、離散化システムのヤコビアンを計算しました。結果は本当に複雑です。以下は(のみ!)行列の最初の 3列です。3 × 93×93\times 9 (一部には、数値スキームが安定性のために指数関数近似を必要とするため、複雑さが生じます。) ヤコビアンを使用した数値コードの実装について、かなり一般的な質問があります。 先に進んで、このマトリックスをコードに実装できます。しかし、私の直感は、非常に複雑であり、エラーを導入せざるを得ないため、数日(場合によっては数週間!)の面倒なデバッグを期待するように言っています。数値コードでこのような複雑さに対処するにはどうすればよいのでしょうか?シンボリックパッケージから自動コード生成を使用しますか(その後、コードを手動で微調整します)? 最初に、有限差分近似を使用して分析ヤコビアンをデバッグする予定ですが、落とし穴に注意する必要がありますか?コード内の同様の問題にどのように対処しますか? 更新 私はこれをPythonでコーディングし、sympyを使用してヤコビアンを生成しました。たぶん、コード生成機能を使用できますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.