issue solving algebraic system of equations

20 views
Skip to first unread message

Alexander Tille

unread,
Jan 16, 2017, 9:29:04 AM1/16/17
to sympy
Hi,

 please have a look at the following code:

from sympy import *

X
,Y,Z = symbols("\X,\Y,\Z")

Rxy,Rxz, Ry,Ryx,Ryz, Rz,Rzy,Rzz  = symbols("\\RXY,\\RXZ,  \\RY,\\RYX,\\RYZ, \\RZ,\\RZY,\\RZZ")
Rzy1,Rzy2  = symbols("\\RZYI,\\RZYII")

dimensionless_DES_list
= [X*(1-X - Ryx*Y),
                         
Ry*Y*(1 - Y + Rxy*X + Rzy1*Z - Rzy2*Z*Z),
                         
Rz*Z(-Rzz + Rxz*X + Ryz* Y)]

equilibria
= solve( dimensionless_DES_list,(X,Y,Z))

if I execute it I have the following results:

Out[3]:
[{\Y: 0, \X: 0},
 
{\Y: \RZYI*\Z - \RZYII*\Z**2 + 1, \X: 0},
 
{\Y: 0, \X: 1},
 
{\Y: (\RXY + \RZYI*\Z - \RZYII*\Z**2 + 1)/(\RXY*\RYX + 1),
 
\X: (-\RYX*\RZYI*\Z + \RYX*\RZYII*\Z**2 - \RYX + 1)/(\RXY*\RYX + 1)}]

The System is just solved for the Variables X and Y and NOT for Z. What is the reason?


I use the following python enviroment.
~$ ipython
Python 2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:42:40)

# packages in environment at /home/atille/.anaconda2:
#
sympy                     1.0                      py27_0 

Thank you in advance.
Alex

Michele Zaffalon

unread,
Jan 16, 2017, 2:44:56 PM1/16/17
to sympy
Are you missing the multiplication sign in the last line of your definition?

Rz*Z(-Rzz + Rxz*X + Ryz* Y)




Michele Zaffalon

unread,
Jan 16, 2017, 2:50:05 PM1/16/17
to sympy
With the multiplication, after a few minutes, the answer I get is:
[(0, 0, 0),
 
(0, 1, 0),
 
(0,
  RZZ
/RYZ,
 
(RYZ*RZYI - sqrt(RYZ**2*RZYI**2 + 4*RYZ**2*RZYII - 4*RYZ*RZYII*RZZ))/(2*RYZ*RZYII)),
 
(0,
  RZZ
/RYZ,
 
(RYZ*RZYI + sqrt(RYZ**2*RZYI**2 + 4*RYZ**2*RZYII - 4*RYZ*RZYII*RZZ))/(2*RYZ*RZYII)),
 
(1, 0, 0),
 
((-RYX + 1)/(RXY*RYX + 1), (RXY + 1)/(RXY*RYX + 1), 0),
 
((RYX*RZZ - RYZ)/(RXZ*RYX - RYZ),
 
(RXZ - RZZ)/(RXZ*RYX - RYZ),
 
(RXZ*RYX*RZYI - RYZ*RZYI - sqrt(4*RXY*RXZ*RYX**2*RZYII*RZZ - 4*RXY*RXZ*RYX*RYZ*RZYII - 4*RXY*RYX*RYZ*RZYII*RZZ + 4*RXY*RYZ**2*RZYII + RXZ**2*RYX**2*RZYI**2 + 4*RXZ**2*RYX**2*RZYII - 4*RXZ**2*RYX*RZYII - 2*RXZ*RYX*RYZ*RZYI**2 - 8*RXZ*RYX*RYZ*RZYII + 4*RXZ*RYX*RZYII*RZZ + 4*RXZ*RYZ*RZYII + RYZ**2*RZYI**2 + 4*RYZ**2*RZYII - 4*RYZ*RZYII*RZZ))/(2*RZYII*(RXZ*RYX - RYZ))),
 
((RYX*RZZ - RYZ)/(RXZ*RYX - RYZ),
 
(RXZ - RZZ)/(RXZ*RYX - RYZ),
 
(RXZ*RYX*RZYI - RYZ*RZYI + sqrt(4*RXY*RXZ*RYX**2*RZYII*RZZ - 4*RXY*RXZ*RYX*RYZ*RZYII - 4*RXY*RYX*RYZ*RZYII*RZZ + 4*RXY*RYZ**2*RZYII + RXZ**2*RYX**2*RZYI**2 + 4*RXZ**2*RYX**2*RZYII - 4*RXZ**2*RYX*RZYII - 2*RXZ*RYX*RYZ*RZYI**2 - 8*RXZ*RYX*RYZ*RZYII + 4*RXZ*RYX*RZYII*RZZ + 4*RXZ*RYZ*RZYII + RYZ**2*RZYI**2 + 4*RYZ**2*RZYII - 4*RYZ*RZYII*RZZ))/(2*RZYII*(RXZ*RYX - RYZ)))]

Reply all
Reply to author
Forward
0 new messages