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]> 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]. > 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. > > -- 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.
