Parece que las ecuaciones con las que está tratando son todas polinómicas después de borrar los denominadores. Eso es algo bueno (las funciones trascendentales son a menudo un poco más difíciles de manejar algebraicamente). Sin embargo, no es una garantía de que sus ecuaciones tengan una solución de forma cerrada. Este es un punto esencial que muchas personas realmente no "entienden", incluso si lo saben en teoría, por lo que vale la pena reiterar: existen sistemas bastante simples de ecuaciones polinómicas para las cuales no hay forma de dar las soluciones en términos de ( th) raíces, etc. Un ejemplo famoso (en una variable) es x 5 - x + 1 = 0 . Vea también esta página de wikipedia .norteX5 5- x + 1 = 0
Dicho esto, por supuesto, también hay sistemas de ecuaciones que se pueden resolver, y vale la pena verificar si su sistema es uno de esos. E incluso si su sistema no puede resolverse, aún podría ser posible encontrar una forma para su sistema de ecuaciones que sea más simple, en cierto sentido. Por ejemplo, encuentre una ecuación que involucre solo la primera variable (incluso si no se puede resolver algebraicamente), luego una segunda ecuación que involucre solo la primera y segunda variable, etc. Hay algunas teorías competitivas sobre cómo encontrar tales "formas normales" de sistemas polinomiales; la más conocida es la teoría de la base de Groebner, y una competencia es la teoría de las cadenas regulares.
En el sistema de álgebra computacional Maple (divulgación completa: trabajo para ellos) ambos están implementados. El solve
comando normalmente llama al método base Groebner, creo, y eso se detiene rápidamente en mi computadora portátil. Intenté ejecutar el cálculo de cadenas regulares y lleva más tiempo del que tengo paciencia, pero no parece explotar tan mal en cuanto a memoria. En caso de que esté interesado, la página de ayuda para el comando que utilicé está aquí , y aquí está el código que utilicé:
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);