問題タブ [odeint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
654 参照

python - Python での odeint のこの実装の何が問題になっていますか?

結合された一次非線形微分方程式のセットを解くために odeint を使用しています。関数 dHs(t,v) は、結合された DE の配列を返す関数です。私はそれらを解決してプロットしようとしています。以前は次のように使用していました。

その後、プロットされてうまく機能しましたが、それを一般化して、配列dHs(tRel,vij)でn個のエントリを使用しようとしていると、エラーが発生します

コードの

ここで、v は arrEq での代入に使用されるシンボルの配列であり、V_0 は v の同じ位置に対応するシンボルの初期値の配列です。

私は何をしていますか/間違って呼び出しているので、2番目の方法は機能しませんが、最初の方法は機能します。私はまったく同じ入力(方程式は同じです)を使用していますが、それを解決する方法が異なるだけです。

0 投票する
1 に答える
164 参照

python - Pythonでodeint timeがこれら2つを異なる方法で進化させているのはなぜですか?

私は 2 つのプログラムを持っています。1 つは N 結合 ODE を取り込むことができ、もう 1 つは 2 つの結合 ODE を使用します。2 つの同じ ODE を両方のコードに同じ時間範囲で入力すると、異なる答えが得られます。私は正しい答えを知っているので、N many プログラムが間違っていると推測できます。

2方程式専用のコードは次のとおりです。

そして、ここにN方程式専用のものがあります:

ここで、dHs(tRel,vij) = dHsFunction(t,V_s) つまり、まったく同じ ODE です。同様に y0 と v0 はまったく同じです。しかし、N many ケースで y[0] を出力すると、次の出力が得られます。

次の 2 つの専用ケースとは対照的に:

ここで、2 番目の結果は正しい結果であり、適切なグラフをグラフ化します。

より多くのコードが必要な場合やその他のことがあれば教えてください。ありがとう。

0 投票する
1 に答える
1066 参照

c++ - boost の odeint を使用する C++ をコンパイルできない

私はUbuntu 12.04を使用していますが、すでに/ usr/includeにいくつかのブーストファイルがありました。私はやった

そして、それも多くのファイルをインストールしました。他のいくつかのパッケージがubuntuリポジトリのバージョンに依存しているため、このブーストを削除してソースからインストールしたくありません。これは私が実行したいサンプルコードです:-

最初のコンパイルg++ -o test test.cppで、エラーがスローされました /usr/include/boost/numeric/odeint.hpp permission denied

そこで、すべての odeint ファイルのファイル許可を再帰的に変更しました

今回は、許可が拒否されたとは言いませんでしたが、ここで見られるように400行のエラーをスローしました->ターミナルからのエラーログ

どうすればコンパイルできますか? ドキュメントや他の場所に odeint のインストールガイドはありません

0 投票する
2 に答える
187 参照

c++ - odeint (c++) - 観測値のダウンサンプリング

簡単な質問で申し訳ありませんが、odeint の状態変数の進化をダウンサンプリングするための「ベスト プラクティス」はありますか?

以下に、この記事 ( http://www.codeproject.com/Articles/268589/odeint-v2-Solving-ordinary-differential-equations )

オブザーバーをどのように変更して、10 ステップごとに状態のみをログに記録しますか (たとえば)。ifステートメントを入れるよりもエレガントな解決策があるかどうか疑問に思っています:

0 投票する
3 に答える
1241 参照

python - integrate.odeint() を使用した ValueError と odepack.error

モデル化する方程式を作成してから、統合制御システムをプロットしようとしています (特にクルーズ コントロールに関して)。ただし、実行するたびに2つのエラーが発生します。

ValueError: 必要な配列に対してオブジェクトが深すぎます odepack.error: 関数呼び出しの結果が浮動小数点数の適切な配列ではありません。

私はこれらの質問を読みました:

それらは役立つはずですが、それらを私の問題に適用する方法がわかりません。私はPythonにかなり慣れていないので、明らかなことを見逃したり、非常にばかげたことをしたりした場合は、ご容赦ください。プロットに問題はないので、実際にこれを機能させる方法を理解したら、準備ができたと思います。

他に何か必要なことがあれば教えてください。

0 投票する
1 に答える
249 参照

python - 統合制御システムが正しく動作しない

昨日、ここに質問を投稿しました。しかし、その後、いくつかのことに気付きました。

  1. このプログラムを実行すると、目的の速度 vr に向かう傾向がありません
  2. プログラムを実行し、角度 (道路のピッチを表す) を時間の変化に応じて変化させると、常に目的の速度 vr に戻るとは限らず、以前の安定した状態にさえ戻るとは限りません。

このプログラムは、統合制御システム (特にクルーズ コントロール) をモデル化することを目的としています。現在、速度 v0 から開始し、しばらくの間その速度で実行し、その後クルーズ コントロールをオンにします。この時点で、最終的に目的の速度 vr で安定する速度の変化が見られるはずです (そうです)。そうではありません。理由は不明ですが、他の値に達し、この値はライドの勾配によって異なります。初期速度に関係なく、それでも目的の速度に到達できません

さまざまなパラメーターと変数をいじってみましたが、役に立ちませんでした。問題は、コントローラーに正しい現在の速度が渡されていないことだと思いますが、その問題に対処する方法がわかりません。

追加情報が必要な場合はお知らせください。前の質問を編集する必要があった場合はお知らせください。代わりに編集します。申し訳ありません。

これが私のコードです:

これは、初期速度の範囲を使用して、プログラムをそのまま実行してプロットされたものです クルーズコントロール

速度の最初の急激な変化は、クルーズ コントロールが開始されたときであり、2 つ目は、乗車の勾配が変化したときです。