7つの非線形方程式のシステムの記号解


9

私は常微分方程式のシステムを持っています-7つの方程式と、病気の伝染の数学モデルの一部としてそれらの振る舞いを支配する約30のパラメーター。私は思います好きな変更、これらの方程式のための定常状態見つけることdx/dt = rest of the equation0 = equation方程式のそれぞれのためには、それは簡単代数の問題になります。これは手動で行うこともできますが、その種の計算はとんでもないほど苦手です。

この問題の小さいバージョンを処理できるMathematicaを使用してみましたが(ここを参照)、Mathematicaはこの問題を解決しようとしています。これに取り組むためのより効率的/効果的な方法はありますか?より効率的なシンボリック数学システム?他の提案?

いくつかの更新(3月21日):

  • 目標は確かにそれらを象徴的に解決することです-数値の答えは素晴らしいですが、現時点では最終目標は象徴的なバージョンです。
  • 少なくとも1つの均衡があります。私は実際に座ってこれを証明したわけではありませんが、設計上、最初は何も感染していない些細なものを少なくとも1つ持つべきです。それ以外に何ないかもしれませんが、それは私が他の何よりもコンテンツとしてなります。
  • 以下は、話し合っている実際の方程式のセットです。

ここに画像の説明を入力してください

要約すると、私は7つの変数の7つの2次方程式のシステムの解のシンボリック式を探しています。


方程式を書けますか?非線形方程式の制約のない大規模システムの解法は、ニュートン法またはその変形の1つを使用して数値的に行われることがよくあります。ここでの選択は、元の連立方程式に関する情報の量によって異なります。最も重要なのは、連立方程式のヤコビアンが利用可能か、計算可能か、または簡単に近似できるかです。
Aron Ahmadia 2012年

ああ!あなたの方程式はMathematicaサイトで詳しく説明されています。ここに持ってきてもらえませんか?(これはクロスポストではありません。特に、Mathematicaで実行できることの範囲を超えて数値解を提案する場合は特にそうです)。
Aron Ahmadia 2012年

今日はMathematicaから方程式を持ち帰ります-5時間のドライブの後で私は邪魔にならないようにしなければなりません。
Fomite 2012年

1
ない。上の式からそうであるように見えます。何か不足していますか?dUsdt=dHdt
ja72 2012年

1
@GeoffOxberry:導関数がゼロに等しいと見なされる場合、方程式#1と#2は両方とも同じであり、1つは省略できます。
ja72 2012年

回答:


13

あなたが扱っている方程式は、分母をクリアした後、すべて多項式のように見えます。それは良いことです(超越関数はしばしば代数的に扱うのが少し難しいです)。ただし、方程式に閉形式の解があることを保証するものではありません。これは、理論的にはわかっていても、多くの人が実際に「取得」しない重要なポイントであるため、言い換えると、多項方程式のかなり単純なシステムがあり、そのために解を与える方法はありません。 (番目)根など。有名な例(1つの変数)はです。このウィキペディアのページご覧くださいx 5x + 1 = 0nx5x+1=0

そうは言っても、もちろん解くことができる方程式のシステムもあります。あなたのシステムがそれらの1つであるかどうかを確認することは価値があります。また、システムを解くことができない場合でも、ある意味でより簡単な方程式系のフォームを見つけることができる場合があります。たとえば、最初の変数のみを含む1つの方程式(代数的に解くことができない場合でも)を見つけ、次に1番目と2番目の変数のみを含む2番目の方程式などを見つけます。多項式システムの; 最もよく知られているのはグレブナー基底理論であり、競合するものは正則鎖の理論です。

コンピューター代数システムMaple(完全な開示:私は彼らのために働いています)では、両方が実装されています。このsolveコマンドは通常、Groebner基底法を呼び出すと思いますが、これはすぐに私のラップトップを停止させます。通常のチェーン計算を実行してみましたが、忍耐力よりも時間がかかりますが、メモリの点でそれほど問題にならないようです。興味がある方のために、私が使用したコマンドのヘルプページはここにあり、ここに私が使用したコードがあります。

restart;
sys, vars := {theta*H - rho_p*sigma_p*
       Cp*(Us/N) - rho_d*sigma_d*D*(Us/N)*rho_a*sigma_a*
       Ca*(Us/N) = 0, 
         rho_p*sigma_p*Cp*(Us/N) + rho_d*sigma_d*
       D*(Us/N)*rho_a*sigma_a*Ca*(Us/N) + theta*H = 0, 
         (1/omega)*Ua - alpha*Up - rho_p*psi_p*
       Up*(H/N) - Mu_p*sigma_p*Up*(Cp/N) - 
             Mu_a*sigma_a*Up*(Ca/N) - Theta_p*
       Up + Nu_up*(Theta_*M + Zeta_*D) = 0, 
         alpha*Up - (1/omega)*Ua - rho_a*psi_a*
       Ua*(H/N) - Mu_p*sigma_p*Ua*(Cp/N) - 
             Mu_a*sigma_a*Ua*(Ca/N) - Theta_a*
       Ua + Nu_ua*(Theta_*M + Zeta_*D) = 0, 
         (1/omega)*Ca + Gamma_*Phi_*D + rho_p*psi_p*
       Up*(H/N) + Mu_p*sigma_p*Up*(Cp/N) + 
             Mu_a*sigma_a*Up*(Ca/N) - alpha*Cp - Kappa_*
       Cp - Theta_p*Cp + Nu_cp*(Theta_*M + Zeta_*D) = 0, 
         alpha*Cp + Gamma_*(1 - Phi_)*D + rho_a*psi_a*
       Ua*(H/N) + Mu_p*sigma_p*Ua*(Cp/N) + 
             Mu_a*sigma_a*Ua*(Ca/N) - (1/omega)*
       Ca - Kappa_*Tau_*Ca - Theta_a*Ca + 
             Nu_ca*(Theta_*M + Zeta_*D) = 
     0, Kappa_*Cp + Kappa_*Tau_*Ca - Gamma_*Phi_*
       D - Gamma_*(1 - Phi_)*D - 
             Zeta_*D + Nu_d*(Theta_*M + Zeta_*D) = 0, 
    Us + H + Up + Ua + Cp + Ca + D = 0, 
         Up + Ua + Cp + Ca + D = 0}, {Us, H, Up, Ua, Cp, Ca, D, N, 
    M}:

sys := subs(D = DD, sys):
vars := subs(D = DD, vars):
params := indets(sys, name) minus vars:
ineqs := [theta > 0 , rho_p > 0 , sigma_p > 
       0 , rho_d > 0 , sigma_d > 0 , 
            rho_a > 0 , sigma_a > 0 , 
      omega > 0 , alpha > 0 , psi_p > 0 , Mu_p > 0 , 
            Mu_a > 0 , Theta_p > 0 , Nu_up > 0 , Theta_ > 
       0 , Zeta_ > 0 , psi_a > 0 , 
            Theta_a > 0 , Nu_ua > 0 , Gamma_ > 0 , Phi_ > 
       0 , Kappa_ > 0 , Nu_cp > 0 , 
            Tau_ > 0 , Nu_ca > 0]:
with(RegularChains):
R := PolynomialRing([vars[], params[]]):
sys2 := map(numer, map(lhs - rhs, normal([sys[]]))):
sol := LazyRealTriangularize(sys2,[],map(rhs, ineqs),[],R);

7

プロフェッショナルな方法は、AMPLやGAMSなどのモデリング言語で方程式を記述し、IPOPTなどのソルバーで解くことです。

AMPLは商用システムですが、AMPLの無料の学生版は、最大300の方程式と変数で問題を引き起こす可能性があります。

1つまたはいくつかの問題を解決したい場合は、最適化のためにNEOSサーバーを使用してオンラインで自由に解決できます。AMPLの説明を送信し、回答が返されるのを待つだけです。

より大きな調査の一環としてそのようなシステムを繰り返し解決する必要がある場合(たとえば、パラメーターを変更する場合)、IPOPT(非常に自由なライセンスに基づくソフトウェア)をダウンロードする必要があります。

編集:理解可能なシンボリックソリューションは通常、非常に小さな問題に制限されます。通常、Groebner基底のサイズは、変数の数または多項式の次数、およびさらに処理時間とともに爆発的に大きくなります。したがって、Mathematicaでの1時間以上の待機時間は、(証明ではありませんが)シンボリック解が完全に理解できないことを示しています。さらに、このような長い式の評価は数値的に不安定になる可能性が高いため、意味のある結果を得るには、評価に高い精度が必要になります。


6

ソリューション全体を書き出すことは、理屈の範囲内で不可能です。しかし、システムを少し下げるための方程式は次のとおりです。

USUS

US=HNθ(γ+ζ)CAKA+Cp+KD
KA=γρAσA+κρDσDτ+ρAσAζKD=γρpσp+κρDσD+ρpσpζ

D

D=κ(CAτ+Cp)γ+ζ.

CACP

UAUPUAUP

UAUPHCACPD

HCACPCACP

幸運を!


USDUAUPUSHCACP

HCACPCACP

右に。@GeoffOxberry、私はコメントを直接ja72の回答に追加するべきだと思います。
David Ketcheson、2012年

@DavidKetcheson:完了しました。担当者は重要ではないので、私はそれを気まぐれにすることについて心配していません。私はまだ戻っておらず、象徴的な操作を入力していません。
Geoff Oxberry

3

それはあなたの方程式の構造に依存します。

あなたが探している場合は、すべての方程式のあなたのセットの安定した状態、及び ErikPは多項式に言うようにあなたがそれらを並べ替えることができ、あなたは、高精度に、すべての数値解を計算するために、実際の代数幾何学からのメソッドを使用することができます。ベルティーニは私が知っているそのようなパッケージの1つですが、他にもあります。私は数年前にノートルダムで開催された会議に行った。そこでは、ベルティーニを使用して化学反応速度論からODEの定常状態を見つけた。ベルティーニはノートルダムで開発されました。

もう1つの可能性は、MD Stuber、V。Kumar、およびPI Barton、「BIT Numerical Mathematics 50(4)、885-917、DOI:DOI:10.1007 / s10543-010-0280-6 ; これらの方法では、連立方程式を多項式にする必要はありません。ポール・バートンは私の顧問であり、マット・スチューバーは私の同僚です。よろしければ、私に彼にソフトウェアを要求してあなたに送ることができます。この論文では、グローバル最適化と区間演算(ArnoldNeumaierの本を引用)の手法と、ニュートンの手法を使用しています。この方法の利点は、すべてのソリューションを特定できることです。欠点は、複雑であることです。

F(x)=0

minxSF(x),

ここで、は、解こうとするのではなく、問題の制約によって定義される実行可能なセットです。非常に大雑把なレベルでは、滑らかな非線形プログラミングソルバーを使用することは、ニュートンの方法を使用することによく似ており、ロバスト性とパフォーマンスのための追加のアルゴリズム的洗練を備えています。IPOPTは、この目的に最適なソフトウェアです。他にも多くのソルバーがあります(GAMSAMPL、またはNEOSの利用可能なソルバーリストを参照してください。このような方法を選択する場合は、いくつかの注意点に注意してください:S

  • 一度に検索できるソリューションは1つだけです。追加のソリューションを見つけるには、見つけた以前のソリューションをすべて除外する制約を追加する必要があります。
  • あなたの最適化問題はIPOPTまたは類似のソルバーを使用して、非凸である場合は、どちらかの近くにあなたの方程式の解(ニュートン法と同じ基本原理)に、良好な初期推測を必要とする、等の非凸最適化ソルバーますBARONCouenneBonmin、など。各非凸非線形プログラミングソルバーのパフォーマンスは問題に依存するため、手にしたすべてのソルバーを試す必要があります。

1

ホモトピー法を検討することをお勧めします。これは象徴的なものではありませんが、問題のすべての解決策を生み出します。ライブラリを簡単にチェックアウトするには:

http://homepages.math.uic.edu/~jan/PHCpack/phcpack.html


2n

アフマディア博士、ホモトピー法に関する文献に遅れをとっているのは明らかです。Janの出版物を読み、この数を修正してください。
aterrel 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.