解决带条件的非线性方程组

问题描述 投票:0回答:1

我想解决以下非线性方程组。是否可以将所有变量都大于或等于零且所有参数都为正的条件设为条件?变量是(x1,x2,x3,x4,y1,y2),其他只是参数。

而且Maple比sympy更好地解决此系统吗?

from sympy.interactive import printing
printing.init_printing(use_latex=True)
from sympy import *
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp


x1,x2,x3,x4,y1,y2=sp.symbols('x1,x2,x3,x4,y1,y2')
N,c1,c2,c3,c4=sp.symbols('N,c1,c2,c3,c4')
r1,r2,r3,r4=sp.symbols('r1,r2,r3,r4')
f11,f21,f31,f41=sp.symbols('f11,f21,f31,f41')
f12,f22,f32,f42=sp.symbols('f12,f22,f32,f42')
eta11,eta12,eta13,eta14=sp.symbols('eta11,eta12,eta13,eta14')
eta21,eta22,eta23,eta24=sp.symbols('eta21,eta22,eta23,eta24')
eta31,eta32,eta33,eta34=sp.symbols('eta31,eta32,eta33,eta34')
eta41,eta42,eta43,eta44=sp.symbols('eta41,eta42,eta43,eta44')
epsilon1,epsilon2,K11,K22=sp.symbols('epsilon1,epsilon2,K11,K22')
omega1,omega2,gamma12,g12=sp.symbols('omega1,omega2,gamma12,g12')
beta11,beta21,beta31,beta41=sp.symbols('beta11,beta21,beta31,beta41')
beta12,beta22,beta32,beta42=sp.symbols('beta12,beta22,beta32,beta42')

F2=x1*(r1*(1-(eta11*x1+eta12*x2+eta13*x3+eta14*x4)/N)-f11*y1-f12*y2)
F3=x2*(r2*(1-(eta21*x1+eta22*x2+eta23*x3+eta24*x4)/N)-f21*y1-f22*y2)
F4=x3*(r3*(1-(eta31*x1+eta32*x2+eta33*x3+eta34*x4)/N)-f31*y1-f32*y2)
F5=x4*(r4*(1-(eta41*x1+eta42*x2+eta43*x3+eta44*x4)/N)-f41*y1-f42*y2)

F6=y1*(-epsilon1*(1+(y1+omega2*y2)/K22)-g12*y2+beta11*f11*x1+beta21*f21*x2+beta31*f31*x3+beta41*f41*x4)

F7=y2*(-epsilon2*(1+(omega1*y1+y2)/K11)-gamma12*g12*y1+beta12*f12*x1+beta22*f22*x2 +beta32*f32*x3+beta42*f42*x4)              

equ=(F2,F3,F4,F5,F6,F7)
sol=nonlinsolve(equ,x1,x2,x3,x4,y1,y2)   

print(sol)
python system sympy equation
1个回答
0
投票

您可以在符号中添加假设:

x1,x2,x3,x4,y1,y2=sp.symbols('x1,x2,x3,x4,y1,y2', nonnegative=True)
N,c1,c2,c3,c4=sp.symbols('N,c1,c2,c3,c4', positive=True)
© www.soinside.com 2019 - 2024. All rights reserved.