2016-10-07 4 views
-1

いくつかの硬い常微分方程式を解く必要があるので、私はOdeintが提供する暗黙の方法について知らせました。しかし、Odeint、 http://headmyshoulder.github.io/odeint-v2/doc/boost_numeric_odeint/tutorial/stiff_systems.html のドキュメントの例のXcodeをコピーしてコンパイルすると、 の暗黙的なrosenbrock4メソッドには40030ステップが必要になります(この例では、ページの下部にある「stiff_system.cpp」リンクを参照してください)。その文書で主張されている71の代わりに統合のために。対照的に、runge_kutta_dopri5メソッドについては、比較のための例でも適用されていますが、私はドキュメントのように1531ステップを正確に取得します。これに対応して、暗黙的な方法は、runga_kuttaメソッドよりも計算時間がはるかに長くなる必要がありますが、この特別な場合には暗黙のメソッドの利点を明示する必要があります。 g ++コンパイラを使用して別のマシン上でコードをコンパイルすると、ほぼ正確に結果が得られます。すなわち暗黙のメソッドの74ステップです。Xcode 7.3.1でOdeIntからの暗黙ソルバを正しく使用できない

なぜ暗黙のメソッドがXcode 7.3.1では正しく動作しないのか、指定された方法でXcodeで使用するために何ができるのでしょうか?

答えて

0

odeintを取得するための不満足な検索の後、私はあなたがboostライブラリ(odeintを含む)のバージョン1.59を使用するとすべてがうまく動作することを発見しました。 rosenbrock4メソッドで説明されている問題は、最新のバージョン1.60-1.62のみに存在するようです。だから、間違いなく、xcodeではなく、ライブラリに問題があるようです。私はこの問題をodeintに報告します。それと同時に、同じ問題が発生した場合は、すべてがうまく動作するようにboost 1.59をダウンロードすることができます。

関連する問題