다루는 방정식이 분모를 모두 제거한 후 다항식처럼 보입니다. 좋은 일입니다 (초월 함수는 대수적으로 다루기가 조금 더 어렵습니다). 그러나 방정식에 닫힌 형태의 해가 있다고 보장 할 수는 없습니다. 이것은 많은 사람들이 이론적으로 그것을 알고 있더라도 실제로 "얻지"않는 필수 포인트이므로 다음과 같이 결론을 내립니다. 다항식의 상당히 간단한 시스템이 있습니다. ( 번째) 근 등. 한 예에서 유명한 예는 입니다. 이 위키 백과 페이지 도 참조 하십시오 .nx5−x+1=0
물론 풀 수 있는 방정식 시스템도 있으며 시스템이 그 중 하나인지 확인하는 것이 좋습니다. 또한 시스템을 풀 수없는 경우에도 어떤 식 으로든 더 간단한 방정식 시스템의 양식을 찾을 수 있습니다. 예를 들어, 첫 번째 변수 만 포함하는 하나의 방정식 (대수적으로 풀 수없는 경우에도)을 찾은 다음 첫 번째 변수와 두 번째 변수 만 포함하는 두 번째 방정식 등을 찾으십시오. 다항식 시스템의; 가장 잘 알려진 것은 Groebner의 기본 이론이며, 경쟁하는 이론은 정규 체인 이론입니다.
컴퓨터 대수 시스템 Maple (전체 공개 : 나는 그들을 위해 일함)에서 두 가지가 모두 구현됩니다. 이 solve
명령은 일반적으로 Groebner 기본 방법을 호출하며 랩톱에서 빠르게 중단됩니다. 나는 정규 체인 계산을 시도했지만 인내심보다 오래 걸리지 만 메모리 측면에서 나쁘지 않은 것처럼 보입니다. 관심이 있으시다면 내가 사용한 명령에 대한 도움말 페이지는 here 이며 여기에 내가 사용한 코드가 있습니다.
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);