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