Hi Stefan,
Both of these solutions return an empty array. Where I should get an array
of possible solutions
similar to the output of the Mathematica version. Such as:
{{x -> -1.4282, y -> -1.08259, z -> -1401.51},
{x -> -6.67923, y -> -598.932, z -> -0.500032},
{x -> -2.17279 - 53.7467 I, y -> -1.88296 + 63.8985 I, z -> -2.08239 +
17.0259 I},
{x -> -2.17279 + 53.7467 I, y -> -1.88296 - 63.8985 I, z -> -2.08239 -
17.0259 I},
{x -> -66.1313, y -> -30.6463, z -> -2.37085},
{x -> 61.528, y -> 29.1041, z -> 2.41731}}
On Sunday, June 30, 2013 12:44:45 PM UTC-7, Stefan Krastanov wrote:
>
> f_1 = x + s1 + s2 + s5 - t1
>
> this is all that you need to do if I understand your question correctly
>
> Or if you wish, you can create 'Eq(right_hand, left_hand)' instances.
>
> On 30 June 2013 21:09, Justin Carden <[email protected] <javascript:>>
> wrote:
> > Hi all,
> >
> > I'm trying to make the switch from Mathematica to Python in the lab, but
> I'm
> > running into a small problem binding the result space to a boundary.
> > Specifically, I'm trying to assign equality to each polynomial equation
> in a
> > system to a total t1,t2 and t3 to solve the system symbolically. Since
> > double equals (==)
> > tests equality exactly and not symbolically in Sympy, setting the
> equations
> > to t1,t2 or t3 does not work. This works in Mathematica with no problem.
> >
> > How would I go about doing this with Sympy ?
> > (Complete code for the system in both mathematica and Sympy below)
> >
> > Mathematica:
> >
> > f1 = x + s1 + s2 + s5 == t1
> > f2 = y + s2 + s3 + s6 == t2
> > f3 = z + s4 + s5 + s6 == t3
> >
> > Current Sympy:
> > f_1 = x + s1 + s2 + s5
> > f_2 = y + s2 + s3 + s6
> > f_3 = z + s4 + s5 + s6
> >
> >
> >
> > =====================
> > Sympy
> > =====================
> > k1 = kdAA = 0.11
> > k2 = kdBB = 0.0
> > k3 = kdCC = 0.0
> > k4 = kdAB = 0.25
> > k5 = kdAC = 0.5
> > k6 = kdBC = 0.33
> >
> > kineticRates = [k1,k2,k3,k4,k5,k6]
> >
> >
> > t1 = totA = 1000
> > t2 = totB = 500
> > t3 = totC = 100
> >
> > totals = [t1,t2,t3]
> >
> > freeA = x
> > freeB = y
> > freeC = z
> >
> > free = [freeA,freeB,freeC]
> >
> > s1 = kdAA*x**2
> > s2 = kdAB*x*y
> > s3 = kdBB*y**2
> > s4 = kdCC*z**2
> > s5 = kdAC*x*z
> > s6 = kdBC*y*z
> >
> > states = [s1,s2,s3,s4,s5,s6]
> >
> > f_1 = x + s1 + s2 + s5
> > f_2 = y + s2 + s3 + s6
> > f_3 = z + s4 + s5 + s6
> >
> > system = [f_1,f_2,f_3]
> >
> > results = solve(system, x,y,z, dict=True, set=True)
> >
> > --------------------------------------
> >
> > [{x: -9.09090909090909, z: 0, y: 0},
> > {x: -4.00000000000000, z: 0, y: -2.24000000000000},
> > {x: -2.00000000000000, z: -1.56000000000000, y: 0},
> > {x: -1.96537201684605, z: -1.54138483572269, y: -0.0524666411423548},
> > {x: 0, z: -3.03030303030303, y: -3.03030303030303},
> > {x: 0, z: 0, y: 0}]
> >
> >
> > =====================
> > Mathematica
> > =====================
> >
> > eq1 = kdAA = 0.11
> > eq2 = kdBB = 0.0
> > eq3 = kdCC = 0.0
> > eq4 = kdAB = 0.25
> > eq5 = kdAC = 0.5
> > eq6 = kdBC = 0.33
> >
> > t1 = totA = 1000
> > t2 = totB = 500
> > t3 = totC = 100
> >
> > freeA = x
> > freeB = y
> > freeC = z
> >
> > s1 = kdAA*x^2
> > s2 = kdAB*x*y
> > s3 = kdBB*y^2
> > s4 = kdCC*z^2
> > s5 = kdAC*x*z
> > s6 = kdBC*y*z
> >
> > f1 = x + s1 + s2 + s5 == t1
> > f2 = y + s2 + s3 + s6 == t2
> > f3 = z + s4 + s5 + s6 == t3
> >
> > NSolve[{f1, f2, f3}, {x, y, z}]
> >
> > --------------------------------------
> >
> > Out[22] =
> >
> > {{x -> -1.4282, y -> -1.08259, z -> -1401.51},
> >
> > {x -> -6.67923, y -> -598.932, z -> -0.500032},
> >
> > {x -> -2.17279 - 53.7467 I, y -> -1.88296 + 63.8985 I, z -> -2.08239 +
> > 17.0259 I},
> >
> > {x -> -2.17279 + 53.7467 I, y -> -1.88296 - 63.8985 I, z -> -2.08239 -
> > 17.0259 I},
> >
> > {x -> -66.1313, y -> -30.6463, z -> -2.37085},
> >
> > {x -> 61.528, y -> 29.1041, z -> 2.41731}}
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups
> > "sympy" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an
> > email to [email protected] <javascript:>.
> > To post to this group, send email to [email protected]<javascript:>.
>
> > Visit this group at http://groups.google.com/group/sympy.
> > For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
>
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.