問題タブ [differential-equations]
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.
plot - ParametricPlot3D を使用して取得した特定の解のプロットに沿った点の動きをアニメーション化する
私たちはシステムを持っています:
および初期条件:
私は特定のプロットを作成しました:
ランダムなポイントを選択して軌跡全体をプロットする方法は知っていますが、プロットされた軌跡に沿って移動するポイントをアニメートする方法が見つかりません。この特定の例では、ポイントは t == 0 にあり、t == 2 まで移動します。
python - ODEのPythonを解く際のエラー
私は、ODEとSciPyの常微分方程式関数を使用して火星への衛星アプローチをシミュレートするように依頼された大学のプロジェクトを持っています。
2次のODEを2つの1次のODEにすることで、2Dでシミュレートすることができます。ただし、コードがSI単位を使用しているため、数秒で実行され、Pythonのlinspace制限は、1つの完全な軌道をシミュレートすらしないため、時間制限にとらわれています。
変数と定数を時間とキロメートルに変換しようとしましたが、コードでエラーが発生し続けます。
私はこの方法に従いました:
http://bulldog2.redlands.edu/facultyfolder/deweerd/tutorials/Tutorial-ODEs.pdf
そして、コードは次のとおりです。
PyLabからエラーコードをコピーして貼り付ける方法がわからないため、エラーのPrintScreenを取得しました。
t = linspace(0.01,24.0,100)およびxinit = array([0.001,5251])の2番目のエラー:
誰かがコードを改善する方法について何か提案があれば、私は非常に感謝します。
どうもありがとうございます!
c++ - 数秒後にC++コードの実行が遅くなる
偏微分方程式を数値的に解くC++コードがあります。すべてが正常に機能しますが、最初の10回ほどの反復の後、コードの実行速度は約3倍になります。
いくつかの関連情報:
- 私は多くの計算にパッケージEigenを使用しています
- 大量のデータを配列に格納しています(反復ごとに約100000倍精度値)
コンピューターのしくみやC++でのコーディングについてはよくわかりません。この問題を解決できるように、誰かが私を正しい方向に向けてくれるのではないかと考えていました。
役に立ったらコードを投稿することもできますが、非常に長いです。
matlab - この微分方程式をMATLABで解くにはどうすればよいですか?
微分方程式は次のとおりです。
kの値は2です。どのように関数を実現し、ode45でそれを解くことができますか?
c++ - boost::odeint 統合のステップ数を制限する
次のboost::odeint
コードがあるとします。
統合が特定のステップ数の後に壊れるようにコードを変更するにはどうすればよいですか? 多数の統合を実行していますが、特定のシステムの統合に時間をかけすぎないようにしたいと考えています。
を使用することを考えましintegrate_n_steps()
たが、これは、関心のある終了時間を過ぎて統合が進行することを意味する可能性があります。
boost - odeint に現在の状態を設定する
current_state
boost::odeint でステッパーのを設定したいと思います。
私は次のMWEを持っています:
行stepper.set_current_state(x);
は機能しないものです。これを達成するために使用できるコマンドはありますか?
おそらく次のものを使用できることに気づきました:
しかし、これが本当に最善の戦略なのか、それともステッパーの内部状態 (現在のステップサイズや誤差の見積もりなど) を失っているのかは不明です。
math - 「数学」で方向フィールドをプロットするにはどうすればよいですか?
私は数学に不慣れで、その使い方を学ぼうとしています。方向フィールドをプロットしようとしていましたが、できませんでした。微分方程式は次のとおりです。
これが私が行った試みの1つの例です:
f[x_, y_] := e^x + y
sol = DSolve[y'[x] == f[x, y[x]], y, x]
このコードが(数学言語で)何を意味するのか私にはわかりませんが、Webとこのサイトのいくつかの例といくつかの回答からそれを集めることができました。このコードは、次のような一部の関数で機能するようです。
または他の単純なものですが、指数関数または三角関数を含む関数では機能しません(とにかく常にではありません-理由はわかりません!)私が提供した関数や他の関数の方向フィールドをプロットしたいのですが、よく理解できませんでしたドキュメントセンターの例。これを手伝ってくれてありがとう。
c++ - odeint 変数のバインド
私は odeint を使用して、ゼロ未満になるべきではないいくつかの変数があるシステムをシミュレートしています。
odeint の変数を特定の範囲にバインドする適切な方法はありますか?
matlab - MATLABでのode23の使用:エンドポイントで値が指定されていません
MATLABでode23を使用して微分方程式を解こうとしていますが、与えられた問題では、与えられた値がエンドポイントと異なります。例:y'+ y = 2、y(0)= 0、ton[-2,10]。ode23はy0を期待していますが、この場合、y(-2)= 0ではなくy(0)=0が必要です。ode23のパラメーターを変更して、間隔[-2,10]だけでなく、y(0)= 0の値も通知するようにするにはどうすればよいですか?