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

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

python - 2 つの結合された ODE を持つ scipy.integrate.ode?

私は現在、SciPy の integrate.ode パッケージを使用して、結合された一次 ODE のペアを解こうとしています。ただし、これは、統合ループ中に、反復ごとにメソッドに送信しているパラメーターを更新する必要があることを意味し、単純に前の値を追跡しset_f_params()て反復ごとに呼び出すだけではうまくいかないようです。

各反復で設定している値はset_f_params、コールバック メソッドに反映されていないようです。これは、ウェブ上の例のどれもコールバックに「ライブ」変数を渡すことを含まないように見えることを考えると、それほど驚くことではありませんでしたが、これはこれらの値をコールバック メソッドに取得する唯一の方法でした。

これらの ODE を数値的に統合するために SciPy を使用する方法について誰かアドバイスはありますか?

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

matlab - (Matlab) パラメーターに基づいて 2 つの ODE の相図を描く方法 (図の x(1)、x(2) ではありません)

親愛なる、私は動的システムに関するプロジェクトで matlab の新しいユーザーです。T0、イプシロン (E)、a が固定されている 2 つの方程式があります。b と c がそれぞれ (0, 4) と (0, 100) の範囲で選択されたときのファージ図が見たいです。グラフでは、領域 I は不安定なリミット サイクルを表し、領域 II は単安定領域、領域 II は双安定領域を表します。

実際、最初にb、cファージの点を任意に選択し、次にODEの左部分をゼロにするx1とx2の対応する値を計算することで、グラフを描くことができると思います。次に、右部分のヤコビ行列を計算して、行列の自我値かどうかを判断します。ゼロより大きい場合、システムは不安定です。

結果は下のグラフのようになるはずです。

しかし、グラフの境界線上のポイントを決定する方法が本当にわかりません。有益な提案をしてください。前もって感謝します。

PS: T0 = 0.1、イプシロン = 0.1 a = 0.1 0 <= b <= 4.0; 0 <= c <= 100;

PP.S: グラフと方程式はhttp://www.ncbi.nlm.nih.gov/pmc/articles/PMC2527901/からの抜粋です(パート 2: 生化学振動ネットワークのランドスケープとフラックス)

式1

方程式 2

ファージ図

私の現在の解決策は次のとおりですが、Jを猫にすることはできません。 %Condition:

%(1) F1 = F2 = 0 (2) ヤコビアン = 0

%標的:

%b と c の非線形方程式を取得します。

= 0.1; イプシオン = 0.1; T0 = 5.0;

%シンボリック計算を使用

シムズ xybc

F = [((イプシオン ^ 2 + x ^ 2 ) / ( 1 + x ^ 2) ) / (1 + y) - a * x; b / T0 - y / ( T0 * (1 + c * x ^ 2) )]; V = [x、y];

%ヤコビ行列を計算する

J = ヤコビアン (F, V);

ODE の記号解:

%式を分けて書く

S1 = dsolve ('Dx = ((epslion ^ 2 + x ^ 2 ) / ( 1 + x ^ 2) ) / (1 + y) - a * x'); S2 = dsolve ('Dy = b / T0 - y / ( T0 * (1 + c * x ^ 2) )');

BC_cal = [J(1) J(2) S1 S2]; *%%%間違っています。S1 = solve(sum)**** であるため、S1 を結合できません。計算できませんか?*

fsolve(BC_cal);

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

plot - Maple ODE の解決、グラフィックは完全ではありません。なんで?

そこで、単純な ODE を解こうとします。私たちは教科書を使用します(警告 - ロシア語) . これは、本 (18 ページ) のサンプルとして提示されたコードです。

このコードは以下を描画します:ここに画像の説明を入力

しかし、メープルは私のためにこれを出力します:ここに画像の説明を入力

1) なぜ 1 四半期だけ関数を解くのですか?

2) 本のように見えるようにするにはどうすれば解決できますか?

0 投票する
3 に答える
3518 参照

python - Python を使用した ODE、等角線のプロット

以下に示す Java アプレットに似たものをプロットできるようにする Python パッケージを探しています。

http://math.mit.edu/mathlets/mathlets/isoclines/

このためのODEプロットパッケージを知っている人はいますか? Numpy、Matplotlib を使用してゼロから何かをコーディングすることはできますが、最初に聞いてみたいと思いました。

ありがとう、

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

c++ - ベクター倍速*: なぜ?

これは、私が試したループstd::vector<double>と普通の古いものdouble*です。

double*1,000 万個の要素の場合、ベクター バージョンはバージョンにかかる時間の約 80% で一貫して実行されます。のほぼすべての値に対してN、ベクトルは著しく高速です。

GCC STL ソース コードをstd::vectorのぞいてみると、イディオムが行っていることより本質的に凝ったことを行っているようには見えませんdouble*(つまり、プレーンな old で割り当てnew[]operator[]オフセットを逆参照します)。 この質問もそれを物語っています。

ベクトル版の方が速い理由はありますか?

icpc 11.1 を使用しても、Xeon で実行しても、結果は質的に同じです。また、ベクトライザーのダンプには、std::vectorのコンストラクターでのフィル操作のみがベクトル化されたことが示されています。

ベクター バージョン:

double*バージョン:

rkck_params.h:

util.h:

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

matlab - How to add white noise process term for a couple of ODEs, assuming the Gaussian distribution?

This question has already confused me several days. While I referred to senior students, they also cannot give a reply.

We have ten ODEs, into which each a noise term should be added. The noise is defined as follows. since I always find that I cannot upload a picture, the formula below maybe not very clear. In order to understand, you can either read my explanation or go the this address: Plos one. You could find the description of the equations directly above the Support Information in this address

  1. The white noise term epislon_i(t) is assumed with Gaussian distribution. epislon_i(t) means that for equation i, and at t timepoint, the value of the noise.
  2. the auto-correlation of noise are given:

(EQ.1) eq1

where delta(t) is the Dirac delta function and the diffusion matrix D is defined by

(EQ.2) eq2

Our problem focuses on how to explain the Dirac delta function in the diffusion matrix. Since the property of Dirac delta function is delta(0) = Inf and delta(t) = 0 if t neq 0, we don't know how to calculate the epislonif we try to sqrt of 2D(x, t)delta(t-t'). So we simply assume that delta(0) = 1 and delta(t) = 0 if t neq 0; But we don't know whether or not this is right. Could you please tell me how to use Delta function of diffusion equation in MATLAB?

This question associates with the stochastic process in MATLAB. So we review different stochastic process to inspire our ideas. In MATLAB, the Wienner process is often defined as a = sqrt(dt) * rand(1, N). N is the number of steps, dt is the length of the steps. Correspondingly, the Brownian motion can be defined as: b = cumsum(a); All of these associate with stochastic process. However, they doesn't related to the white noise process which has a constraints on the matrix of auto-correlation, noted by D.

Then we consider that, we may simply use randn(1, 10) to generate a vector representing the noise. However, since the definition of the noise must satisfy the equation (2), this cannot enable noise term in different equation have the predefined partial correlation (D_ij). Then we try to use mvnrnd to generate a multiple variable normal distribution at each time step. Unfortunately, the function mvnrnd in MATLAB return a matrix. But we need to return a vector of length 10.

We are rather confused, so could you please give me just a light? Thanks so much!

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

sage - マキシマの常微分方程式ソルバー

ODEソルバーが必要だったので、sageをダウンロードしてインストールしました。Maximaは、ほとんど基本的なODEを解決していないように見えるため、その部分は比較的制限されていると思います。そのプロジェクトに費やされたすべての努力に感謝しますが、実際に使用できました。より強力なソルバー他に無料の代替手段はありますか?Axiomパッケージはどうですか?前もって感謝します。

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

c++ - 常微分方程式 (ODE) ソルバー用の C++ ライブラリはありますか?

より具体的には、ルンゲクッタとスティッフ方程式に基づく 8 次 Dormand-Prince 埋め込み法に興味があります。

Numerical Recipes 3 を使用していますが、ライブラリのコンパイルに問題が発生することがよくあります。代替案を知りたいです。

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

numerical-methods - 補間のためにステッパー関数で計算を使用する ODE ソルバーはどれですか?

初期条件が異なる ODE の複数の解を平均するので、すべての解が同時に値を持つことが重要です。たとえば、増分は 0.01 です。

数値レシピ 3 (nr3) の ODE ルーチンを使用しています。それらは適応サイズステップを行い、計算された値を使用して同じ順序の補間を行います。ブーストと競合するため、使用できません。他の同様のルーチンはありますか?

私はGSLを見ました、それはとてもいいですが、補間が組み込まれていません。私ができる1つの方法は、適応サイズでODEを解き、Akima補間を実行することです。しかし、nr3 ソリューションの方が高速で正確なようです。

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

function - マトラブode45. 呼び出し中に内部のパラメーターを変更する方法は?

私はMatlabが初めてです。あなたが私を助けてくれることを願っています。ODE45 関数を使用して ODE 系を解かなければなりません。これが私の等式を説明する関数です。

パラメータ F に注意してください。

次に、スクリプト .m-file で、「for ループ」で ode45 関数を呼び出します。各反復中に、パラメーター F を変更し、それを「rateEquations」関数に渡す必要があります。しかし、私はそれを実現する方法がわかりません。

ODE45 を呼び出す前に F を変更します。

等々 ...

前もって感謝します。