import sympy as sym
variables = []
sym.var('G1')
sym.var('N2 O2')
sym.var('N3 O3 C3 W3')
sym.var('N4 O4')
sym.var('N5 O5')
sym.var('N6 O6')
sym.var('G7 O7 W7')
sym.var('C8 W8')
sym.var('N9 O9 M9 C9')
sym.var('X1 X2 X3')
(X1, X2, X3)
matbal = [
sym.Eq(G1 + G7 - X1),
sym.Eq(O2 + O7 + O4 - O3 - 6.0*X1),
sym.Eq(N2 + N4 - N3),
sym.Eq(-C3 + 6.0*X1),
sym.Eq(W7 - W3 + 6.0*X1),
sym.Eq(N3 - N6),
sym.Eq(O3 - O6),
sym.Eq(C3 - C8),
sym.Eq(W3 - W8),
sym.Eq(N6 - N4 - N5),
sym.Eq(O6 - O4 - O5),
sym.Eq(-G7 + X2 - X3),
sym.Eq(C8 - C9 - 6.0*X2 + 3.0*X3),
sym.Eq(N5 - N9),
sym.Eq(O5 - O7 - O9 + 6*X2),
sym.Eq(-M9 + 3.0*X3),
sym.Eq(W8 - W7 - 6.0*X2)
]
specs = [
sym.Eq(G1 + G7, 18000.0/180.0),
sym.Eq(0.01*X2,X3),
sym.Eq(N2, O2*(0.70/0.21)),
sym.Eq(M9, 48.0/16.0),
sym.Eq(M9, 0.02*(N9 + O9 + M9 + C9)),
sym.Eq(M9,C9),
# sym.Eq(W8,600),
# sym.Eq(O4,0.0),
# sym.Eq(N4,0.0),
# sym.Eq(O7,600.0)
]
soln = sym.solve(matbal + specs)
print soln
print len(soln)
for v in soln[0].keys():
print v,soln[0][v]
{O5: O7 - 566.769230769231, N2: 110.769230769231, X3: 1.00000000000000, M9: 3.00000000000000, W7: W8 - 600.0, N5: 110.769230769231, W3: W8, O2: 33.2307692307692, O9: 33.2307692307692, C8: 600.000000000000, C3: 600.000000000000, X2: 100.000000000000, O3: O6, N6: N4 + 110.769230769231, N3: N4 + 110.769230769231, G7: 99.0000000000000, C9: 3.00000000000000, O4: O6 - O7 + 566.769230769231, N9: 110.769230769231, G1: 1.00000000000000, X1: 100.000000000000} 21
--------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-175-fb548ea9b6ae> in <module>() 39 print soln 40 print len(soln) ---> 41 for v in soln[0].keys(): 42 print v,soln[0][v] KeyError: 0
soln = soln[0]
print X1.subs(soln)
print X2.subs(soln)
print X3.subs(soln)
print (O5/N5).subs(soln)
print (O6/N6).subs(soln)
print "\nG1:", G1.subs(soln)
print "\nN2:", N2.subs(soln)
print "O2:", O2.subs(soln)
print "\nStream 3"
print "N3:", N3.subs(soln)
print "O3:", O3.subs(soln)
print "C3:", C3.subs(soln)
print "W3:", W3.subs(soln)
print "\nStream 4"
print "N4:", N4.subs(soln)
print "O4:", O4.subs(soln)
print "\nStream 5"
print "N5:", N5.subs(soln)
print "O5:", O5.subs(soln)
print "\nStream 6"
print "N6:", N6.subs(soln)
print "O6:", O6.subs(soln)
print "\nStream 7"
print "G7:", G7.subs(soln)
print "O7:", O7.subs(soln)
print "W7:", W7.subs(soln)
print "\nStream 8"
print "C8:", C8.subs(soln)
print "W8:", W8.subs(soln)
print "\nStream 9"
print "N9:", N9.subs(soln)
print "O9:", O9.subs(soln)
print "M9:", M9.subs(soln)
print "C9:", C9.subs(soln)
100.000000000000 100.000000000000 1.00000000000000 0.300000000000000 0.300000000000000 G1: 1.00000000000000 N2: 110.769230769231 O2: 33.2307692307692 Stream 3 N3: 110.769230769231 O3: 33.2307692307692 C3: 600.000000000000 W3: 600.000000000000 Stream 4 N4: 0.0 O4: 0.0 Stream 5 N5: 110.769230769231 O5: 33.2307692307692 Stream 6 N6: 110.769230769231 O6: 33.2307692307692 Stream 7 G7: 99.0000000000000 O7: 600.000000000000 W7: 0.0 Stream 8 C8: 600.000000000000 W8: 600.000000000000 Stream 9 N9: 110.769230769231 O9: 33.2307692307692 M9: 3.00000000000000 C9: 3.00000000000000
C9.subs(soln)
3.00000000000000
sym.subs(C9,soln)
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-183-5ffe2f05ab41> in <module>() ----> 1 sym.subs(C9,soln) AttributeError: 'module' object has no attribute 'subs'
C9?