問題タブ [runge-kutta]
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.
python - RK4 が間違った結果を出す
単純な 2 次 DE x'' = -x を数値的に解こうとしています。新しい変数 x'=v を使用したので、2 つの方程式ができました。シンプルに見えますが、どうにか正しい結果とはかけ離れた結果が得られます。
奇妙なことに、RK45 係数を使用すると、すべてが正常に機能します。何が間違っている可能性がありますか?
matlab - 非線形一次 ODE のシステムを解くためのルンゲ クッタの使用
問題セットの 1 つに完全に行き詰まっています。
Matlab を使用して、次の ODE 系を解くことになっています。
今まで試したことのないルンゲ・クッタ法を使うことになっています。私はかなり長い間それに取り組んできましたが、どこから始めればよいかさえわかりません。そのため、実際に示すコードはありません。私は多くのグーグルを行ってきましたが、結果はありません。
誰かが私に手を差し伸べることができれば、それは大歓迎です!
python - 非 int 型の 'float' を乗算しているというエラーが表示されるのはなぜですか?
調和振動子を数値的に解く Runge Kutta アルゴリズムであるコードに問題があります。残念ながら、float 型の非 int でシーケンスを乗算できないというエラーが表示されます。このコードは教育用テキストのほぼそのままであることを考えると、どこにエラーがあるのかわかりません。誰か助けてくれませんか?親切な近所のスパイダーマンに感謝します。
エラーは 33 行目にあります。
TypeError: タイプ 'float' の非 int でシーケンスを乗算できません
python - ルンゲ・クッタを使用して結合微分方程式を解く
静水圧平衡方程式、質量連続方程式、理想気体の状態方程式などの連立方程式があります。これらは、数学文法では、
\frac{dP}{dr}=- \rho*g
、
どこ\rho
で は密度で、g
は重力加速度です。
\frac{dM}{dr}=4*pi* r^2*\rho
と
p=\rho* k_B* T/(\mu *m_p)
、
ここで、k_B
はボルツマン定数、\mu
は平均分子量、m_p
はプロトン質量です。
ルンゲ・クッタ数値法を使用してこれらの連立方程式を解きたいので、この問題を解くために考案した Python コードをここに示します。
圧力 、p_atm
半径 、r_atm
および質量の初期条件についてはm_atm
、 に示した値を使用しますh, r_atm, p_atm, m_atm = rk4_1(g,f, 6.991e7, 1e-6*1e5, 1.898e27, 2.0e7,10000000)
。この境界値問題に上層大気 (初期条件が与えられている場所) からアプローチし、大気中を下に向かって進んでいることに注意してください (h が負であることに注意してください)。私の意図は、パスカルから10^-1
パスカルへのこの数値積分を評価すること100000
です。このコードを実行して得た結果は、圧力が~1e+123
3 つのステップで単純に爆発するということです。したがって、ストリーミングに何かひどく間違っていることは明らかですが、これは私が実行するのは初めてなので、別の目や視点を持つことは役に立ちます。ルンガ・クッタの方法論。
matlab - inline/subsref を使用した MATLAB ルンゲ クッタ エラー
誰かが関数 A を手伝ってくれます。実行してみませんか? エラーの意味がわかりません、書き方が悪いのでしょうか?Bではグラフィックで問題ないので、Runge Kutta 2 Functions(f、g)の私の方法とmathcadの元の問題を確認してください。私の下手な英語で申し訳ありません
python - Pythonにおけるルンゲ・クッタ法
Pythonでルンゲクッタ法に関するコードを書きましたが、プログラムが微積分を実現するたびに、プログラムは微分方程式を必要とします。
これは私のコードです:
式 dx/dt=x、x(0)=1、xf=1、h=0.1 を使用した例:
微分方程式を一度だけ入力してプログラム全体を計算するにはどうすればよいですか?
python - Python でのルンゲクッタ 4 次を使用した ODE のシステム
両方の初期条件が与えられた場合に、1 次微分方程式の 2x2 システムを解く python プログラムを作成しています。私のコード:
できることはわかっていますが、別の方法で別の行にしreturn (u, v)
たいのですが、v を返すにはトライアルを繰り返す必要があるようです。より良い方法はありますか? 繰り返さずに?また、j = 1、2、...のkを個別に出力したいですか?
例として、 andとのステップ サイズを使用してとを解くことができます。print "u ~ ", u
v
def trialu()
u' = -3*u + 2*v
v' = 3*u - 4*v
[0,0.4]
h = 0.1
u[0] = 0
v = 0.5
c++ - 波動方程式とルンゲ・クッタの積分 (2 次)
数値的に単純な方程式を解こうとしています-ソースのない線形波動方程式: u tt = v 2 u xx
どこで v - 波の速度。
私は初期条件を使用します:
u(x, 0) = sin(x)
u x (x, 0) = -v * sin(x)
これは、x 軸に沿って速度 v で伝播する初期波 sin(x) に対応します (sin(x-vt) はこの波動方程式の解です)。
したがって、問題は、2 ~ 3 回の反復で数値解が解析的な答え (sin(x-vt)) と一致することですが、3 回目の反復の後、何かがうまくいかず、解が非常に速く高くなります (約 128 の値を取ります)。
ルンゲ・クッタの二次導関数法(オイラー法)を用いて二次導関数を四次近似します。
C++ のコードは次のとおりです。
だから、なぜそれがうまくいかないのか、その理由は何なのかわかりません。