問題タブ [ode]
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.
c++ - ODE も使用する必要がある場合、Eigen から MTL4 に切り替える必要がありますか?
Linux (Fedora) システムで動作する C++ マトリックス ライブラリを探しています。その意図は、計算神経科学のために連続アトラクタ ニューラル ネットワークなどを実装することです。私はすでに Eigen を使い始めました。しかし、自分のタスクには微分方程式ソルバーも必要であることに気付き、Odeint (最近はブーストに受け入れられたようです) に遭遇しました。Odeint は、このページの詳細にあるように MTL4 で動作します。odeint を適切に使用できるようにするために、Eigen の代わりに MTL4 を使用してコードを書き直す必要があるかどうか疑問に思っています。
私はグーグルとスタックオーバーフロー自体の両方を見てきましたが、比較を見つけることができませんでした
matlab - 時間依存のパラメーターを持つ常微分方程式系を解く方法
常微分方程式系..初期値問題..時間または独立変数に依存するパラメータをどのように解くのですか? 私が持っている方程式を言う
ここで、a(t) はベクトルで、b(t) =c*a(t); ここで、a と b の値は単調ではなく時間ステップごとに時間とともに変化します。この投稿を使用してこれを解決しようとしました....しかし、同じ原則を適用すると...エラーメッセージが表示されました
「griddedInterpolant を使用したエラー ポイントの座標が厳密な単調な順序で配列されていません。」
誰かが私を助けてくれますか?
python - Pythonで無限の初期条件を持つODE
Pythonで解きたい二次微分方程式があります。問題は、変数の 1 つに初期条件0
がなく、無限大の値しかないことです。どのパラメーターを指定する必要があるか教えてもらえますscipy.integrate.odeint
か? 解決できますか?
式:
Theta は、時間に関して見つける必要があります。その一次導関数は でゼロに等しくなりますt=0
。theta は不明t=0
ですが、十分に大きな時間でゼロになります。残りはすべてわかっています。近似I
値をゼロに設定できるため、二次導関数を削除して問題を簡単にすることができます。
matlab - タイムステップが短いode45が機能しない
私は ode45 を使用していますが、この場合どうすればよいかわかりません。パラメータが時間とともに非常に急速に変化する微分方程式があります。理想的には、tspan を 0:epsilon:10*epsilon のように選択したいと思います。この場合、DE の因子にあるものを考慮して、epsilon は適切に小さいオーダーです。ただし、これは機能せず、MATLAB は初期条件から何も変化しないプロットを表示するだけです。
私はそれを修正するために明らかなことをしました。それは次のとおりです。xdot(t)=10^9*x(t) があるとします。これを xdot(t)=x(t) と書き直して、時間軸を秒ではなくナノ秒とラベル付けします。
MATLAB が単独でこれを実行できるかどうかに興味があります。
performance - 各反復で ODE ソルバーを含む Matlab コードのベクトル化
for ループを記述する必要があり、毎回常微分方程式を解く必要がある高速な MATLAB コードを記述したいと考えています。コードをベクトル化する方法はありますか? 以下はコードの一部です。
どこ
matlab - Matlab で常微分方程式 (ODE) の系を解く方法
次の形式の常微分方程式系を解かなければなりません。
ここで、x と y は調べる必要のある変数で、s は独立変数です。残りは定数です。私はこれをode45で解決しようとしましたが、これまでのところ成功していません:
@yprime には連立方程式があります。次のエラー メッセージが表示されます。
YPRIME は長さ 0 のベクトルを返しますが、初期条件ベクトルの長さは 2 です。YPRIME によって返されるベクトルと初期条件ベクトルの要素数は同じでなければなりません。
何か案は?ありがとう
python - 完全な行列を使用して scipy で ode をシミュレートする (オブジェクトが目的の配列に対して深すぎる)
am*m 行列 S に diff eq のシステムがあります。S[i,j] は特定の種の濃度であり、S[i-1,j] と S[i,j-1] の影響を受けます。
各ステップで各エントリの dx/dt を取得できますが (update_matrix によって返されます)、それを統合して初期濃度を更新する必要があります (x は x_counts と同じ)。ただし、scipy の integrate.odeint は行列を入力 (または戻り値として受け入れず、オブジェクトが深すぎるというエラーを発生させます。
これを微調整して、マトリックスで積分器を使用する方法はありますか? コードの一部を提供しました: diffeq は各エントリに対して dx/dt を返します。update_matrix は行列 B を返します。ここで、B[ij]=dx[i,j]/dt
matlab - Crank-Nicolson による Fitzhugh-Nagumo モデルの実装
問題として、Crank-Nicolson のスキームによる空間拡散を使用して Fitzhugh-Nagumo モデルを実装する必要があります。ここで、問題は空間拡散にあります。
一方、DV_{xx} は空間拡散です。
Matlab を使用すると、次の関数を ODE45 ソルバーに与えることができます。ただし、空間拡散はまだ実装されていません...
質問: V_{xx} を実装する方法は?
また、V はどのような行列の形状である必要がありますか? 通常、V は t のみに依存するため、[1 x t] ベクトルです。現在、V は x と t の両方に依存しているため、[x by y] ベクトルであると予想されますよね?
ありがとうございました
matlab - MatlabでODEを解くときに匿名関数をイベント関数として使用することは可能ですか?
Matlab で匿名関数をイベント関数として使用することは可能ですか? やりたいことは基本的に
ただし、これは処理する出力の数が正確に一致する必要があることを訴えるエラーを返します。無名関数が複数の引数を返すようにする他の方法はありますか?
matlab - Matlab odeset() で NonNegative 設定を使用する
私はMatLabでいくつかのODEを解こうとしていますが、方程式の変数は母集団であるため、正になるように制約する必要があります。そこで、方程式ソルバーを呼び出して非負にする前に odeset() を使用してみましたが、後で値をプロットすると、実際には負になることがあります (以下のコードでは、マゼンタの線です)。私は何を間違っていますか?
ここにいくつかのコードがあります:
方程式(...) のコードは次のとおりです。