1

親愛なる、私は動的システムに関するプロジェクトで 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);

4

1 に答える 1

0

それは難しい質問であり、それを解決する方法を決定する必要があると思います(ブルートフォースとフィネス):厳密に数値的に、または代数的に+数値的に。前者の場合、Matlab で問題ありませんが、後者の場合は、頌歌のスキルが必要です。

私は間違っているかもしれませんが、ヤコビアンを見るのは道だとは思いません。ここに私のアイデアのいくつかがあります:

ケース 1: matlab で ode ソルバーを展開されたベクトル入力と共に使用し[x1 dx1/dt x2 dx2/dt]、for(または parfor) ループで b と c を変化させます。t ->oo として dx1/dt または dx2/dt -> 0 の場合、変数の安定性が発生します。この質問の2番目の解決策を参照して、その方法を理解してください。最終的には、解の適切な近似値が得られますが、大量のデータが必要になります。

ケース 2: 式ごとに変数を 1 つ (x1 または x2) だけ持つように両方の式を書き直します。それほど難しくはありませんが、微分方程式の結果は地獄のように醜いものになります。次に、これらの方程式を数値法で解いてみることができます (Mathematica がこれを実行できるはずだと思います)。したがって、a、b、および c が解にどのように直接影響するかを判断できます。

ところで、適切な用語は相図だと思います

于 2011-05-13T04:24:26.427 に答える