問題タブ [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.

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

matlab - 補間後にode45でODEを解く

次のコードを使用していますが、何が問題なのかわかりません。

わかりましたy2 = [3;NAN;NAN;NAN,.....]。それでも、 を呼び出す前に両方の方程式をプロットするとode45、それらが等しいことがわかりますが、これは驚くべきことではありません。

私が計算するとき:

それは正常に動作します。しかし、補間しても同じ結果が得られることを示す必要があります。なぜそれが機能しないのですか?

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

matlab - 解析解と比較した ODE45 およびルンゲクッタ法の絶対誤差

誰かが次の問題を手伝ってくれれば幸いです。次の ODE があります。

私は(1)を2つの異なる方法で解決しました。Runge-Kutta 法(4 次) とMatlabode45を使用。両方の結果を次の式で得られる分析解と比較しました。

正確な解に対して各メソッドの絶対誤差をプロットすると、次のようになります。

RK メソッドの場合、私のコードは次のとおりです。

ここに画像の説明を入力

そしてのためにode45

ここに画像の説明を入力

私の質問は、なぜ使用すると振動するのode45ですか? (私は絶対誤差を指しています)。どちらの解も正確 ( 1e-9) ですがode45、この場合はどうなるでしょうか?

RK 法の絶対誤差を計算すると、見栄えが良くなるのはなぜですか?

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

matlab - MatlabのスイングスプリングODEシステム - 位置ベクトルをパスに追従させるにはどうすればよいですか?

私はMatlabが初めてです。ode45およびを使用しarrow.mて、Matlab で 3 次元空間を移動するときの質量のあるスイング スプリングの動きを示すスクリプトがあります。プログラムは、私がやりたいことをほとんどやっています。現在、ダイヤモンドの密度は、バネの速度を示しています (例外がある場合を除く)。ode45個人的な好みの数のサンプルを取ります)、速度は関数のステップ サイズでほぼ正確に説明されます (少なくとも、私のコンピューターがコードを実行している速度で)。これでやりたいことは、コードでコメントアウトした位置ベクトルを、質量の瞬間的な位置、つまり曲線の終点にのみ表示し、ダイヤモンドが表示されるすべてのポイントに表示しないようにすることです。助けを求めて周りを見回しましたが、試してみるとすべてエラーが発生するようです。誰かが私を正しい方向に向けることができれば、それは大歓迎です。プログラムを実行してみてください。関数のパラメーターをいじってみてください。

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

matlab - MATLAB でベクトルの軌跡をプロットする

x 軸と y 軸を使用して、例として MATLAB で次のデータを作成しました。

このデータのみを使用して、ベクトル dxx(t) と dyy(t) (時間 t での正味の軌跡) をプロットするにはどうすればよいですか?

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

python - sympy の quad に関する問題

誰かが理由を説明できますか:

間違いを与え、

正常に動作します?最初のバージョンを正しく動作させるには?

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

matlab - Matlab: 強制スプリング マス ダンパーの ode45 出力が正しくありません

以下は、マス-スプリング-ダッシュポット システムの 2 次 ODE を解くための私の Matlab コードです。

この場合、変位対時間のプロットは、振幅が減少する正弦波のように見えるはずなので、私が得ている出力は間違っていると思います。代わりに、次のようになります。 振幅が一定の正弦波に緩和する減少関数

これは私には間違っているように思えますが、間違っている場合は修正してください。コードの何が間違っているのかわかりません。

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

matlab - 統合、「シフトされた」被積分関数、Matlab

Matlabで数値的に解く必要がある積分方程式があり、現在行き詰まっています。Matlab でこれらの問題を処理する方法に関する重要なアイデアについて、いくつかの助けが必要なだけなので、ほとんどの数学からそれを取り除いておきます。

ここに画像の説明を入力

私のコードZでは、gと omega:wは同じサイズのベクトルで、etc. にZ(1)対応し、関数です。w(1)f

w-w_prime「シフト」を最良の方法で扱うにはどうすればよいですか? またはw-w_primeの外側の引数に対応するケースを処理する良い方法がありません。私の問題では、とが偶関数に対応するという事実を使用できると考えていましたが、その方法がよくわかりません。ZgZgf

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

matlab - forループを使用してMatlabで数値的に積分の合計を評価する

Matlabで次のタイプの問題を評価しようとしています。

ここに画像の説明を入力

ここで、 はwnベクトルであり、積分の変数は ですwPrimewwnおよびRiベクトルが与えられます。

私が試したことは次のとおりです。2つのループを使用していますfor

しかし、Matlab では for ループが非常に遅いことがわかったので、この問題に対するより良いアプローチがあるかどうか疑問に思っています。

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

python - 陰的 ODE (微分代数方程式 DAE) を解く

scipy の odeint を使用して 2 次 ODE を解こうとしています。私が抱えている問題は、単純化されたスニペットに見られるように、関数が暗黙的に二次項に結合されていることです (例のふりをした物理学を無視してください):

この場合、暗黙の変数を代数的に解くことが可能であることに気付きましたが、実際のシナリオでは、F_rと の評価aと代数操作の間に多くのロジックがあり、失敗します。

DAE は MATLAB のode15i関数を使用して解決できると思いますが、可能であればそのシナリオを回避しようとしています。

私の質問は - Python で暗黙の ODE 関数 (DAE) を解決する方法はありますか (できれば scipy)? そして、そうするために上記の問題を提起するより良い方法はありますか?

a最後の手段として、前の時間ステップから渡すことが許容される場合があります。dydt[1]各時間ステップの後に関数に戻すにはどうすればよいですか?