問題タブ [numerical-integration]
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.
matlab - 補間後にode45でODEを解く
次のコードを使用していますが、何が問題なのかわかりません。
わかりましたy2 = [3;NAN;NAN;NAN,.....]
。それでも、 を呼び出す前に両方の方程式をプロットするとode45
、それらが等しいことがわかりますが、これは驚くべきことではありません。
私が計算するとき:
それは正常に動作します。しかし、補間しても同じ結果が得られることを示す必要があります。なぜそれが機能しないのですか?
matlab - 解析解と比較した ODE45 およびルンゲクッタ法の絶対誤差
誰かが次の問題を手伝ってくれれば幸いです。次の ODE があります。
私は(1)を2つの異なる方法で解決しました。Runge-Kutta 法(4 次) とMatlabode45
を使用。両方の結果を次の式で得られる分析解と比較しました。
正確な解に対して各メソッドの絶対誤差をプロットすると、次のようになります。
RK メソッドの場合、私のコードは次のとおりです。
そしてのためにode45
:
私の質問は、なぜ使用すると振動するのode45
ですか? (私は絶対誤差を指しています)。どちらの解も正確 ( 1e-9
) ですがode45
、この場合はどうなるでしょうか?
RK 法の絶対誤差を計算すると、見栄えが良くなるのはなぜですか?
matlab - MatlabのスイングスプリングODEシステム - 位置ベクトルをパスに追従させるにはどうすればよいですか?
私はMatlabが初めてです。ode45
およびを使用しarrow.m
て、Matlab で 3 次元空間を移動するときの質量のあるスイング スプリングの動きを示すスクリプトがあります。プログラムは、私がやりたいことをほとんどやっています。現在、ダイヤモンドの密度は、バネの速度を示しています (例外がある場合を除く)。ode45
個人的な好みの数のサンプルを取ります)、速度は関数のステップ サイズでほぼ正確に説明されます (少なくとも、私のコンピューターがコードを実行している速度で)。これでやりたいことは、コードでコメントアウトした位置ベクトルを、質量の瞬間的な位置、つまり曲線の終点にのみ表示し、ダイヤモンドが表示されるすべてのポイントに表示しないようにすることです。助けを求めて周りを見回しましたが、試してみるとすべてエラーが発生するようです。誰かが私を正しい方向に向けることができれば、それは大歓迎です。プログラムを実行してみてください。関数のパラメーターをいじってみてください。
matlab - MATLAB でベクトルの軌跡をプロットする
x 軸と y 軸を使用して、例として MATLAB で次のデータを作成しました。
このデータのみを使用して、ベクトル dxx(t) と dyy(t) (時間 t での正味の軌跡) をプロットするにはどうすればよいですか?
python - sympy の quad に関する問題
誰かが理由を説明できますか:
間違いを与え、
正常に動作します?最初のバージョンを正しく動作させるには?
matlab - Matlab: 強制スプリング マス ダンパーの ode45 出力が正しくありません
以下は、マス-スプリング-ダッシュポット システムの 2 次 ODE を解くための私の Matlab コードです。
この場合、変位対時間のプロットは、振幅が減少する正弦波のように見えるはずなので、私が得ている出力は間違っていると思います。代わりに、次のようになります。
これは私には間違っているように思えますが、間違っている場合は修正してください。コードの何が間違っているのかわかりません。
matlab - 統合、「シフトされた」被積分関数、Matlab
Matlabで数値的に解く必要がある積分方程式があり、現在行き詰まっています。Matlab でこれらの問題を処理する方法に関する重要なアイデアについて、いくつかの助けが必要なだけなので、ほとんどの数学からそれを取り除いておきます。
私のコードZ
では、g
と omega:w
は同じサイズのベクトルで、etc. にZ(1)
対応し、関数です。w(1)
f
w-w_prime
「シフト」を最良の方法で扱うにはどうすればよいですか? またはw-w_prime
の外側の引数に対応するケースを処理する良い方法がありません。私の問題では、とが偶関数に対応するという事実を使用できると考えていましたが、その方法がよくわかりません。Z
g
Z
g
f
matlab - forループを使用してMatlabで数値的に積分の合計を評価する
Matlabで次のタイプの問題を評価しようとしています。
ここで、 はwn
ベクトルであり、積分の変数は ですwPrime
。w
、wn
およびRi
ベクトルが与えられます。
私が試したことは次のとおりです。2つのループを使用していますfor
。
しかし、Matlab では for ループが非常に遅いことがわかったので、この問題に対するより良いアプローチがあるかどうか疑問に思っています。
python - 陰的 ODE (微分代数方程式 DAE) を解く
scipy の odeint を使用して 2 次 ODE を解こうとしています。私が抱えている問題は、単純化されたスニペットに見られるように、関数が暗黙的に二次項に結合されていることです (例のふりをした物理学を無視してください):
この場合、暗黙の変数を代数的に解くことが可能であることに気付きましたが、実際のシナリオでは、F_r
と の評価a
と代数操作の間に多くのロジックがあり、失敗します。
DAE は MATLAB のode15i関数を使用して解決できると思いますが、可能であればそのシナリオを回避しようとしています。
私の質問は - Python で暗黙の ODE 関数 (DAE) を解決する方法はありますか (できれば scipy)? そして、そうするために上記の問題を提起するより良い方法はありますか?
a
最後の手段として、前の時間ステップから渡すことが許容される場合があります。dydt[1]
各時間ステップの後に関数に戻すにはどうすればよいですか?