{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import sympy as sym" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(X1, X2, X3)" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "variables = []\n", "\n", "sym.var('G1')\n", "sym.var('N2 O2')\n", "sym.var('N3 O3 C3 W3')\n", "sym.var('N4 O4')\n", "sym.var('N5 O5')\n", "sym.var('N6 O6')\n", "sym.var('G7 O7 W7')\n", "sym.var('C8 W8')\n", "sym.var('N9 O9 M9 C9')\n", "\n", "sym.var('X1 X2 X3')\n" ] }, { "cell_type": "code", "execution_count": 175, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{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}\n", "21\n" ] }, { "ename": "KeyError", "evalue": "0", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 39\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0msoln\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 40\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msoln\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 41\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m \u001b[0;32min\u001b[0m \u001b[0msoln\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 42\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msoln\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mKeyError\u001b[0m: 0" ] } ], "source": [ "matbal = [\n", " sym.Eq(G1 + G7 - X1),\n", " sym.Eq(O2 + O7 + O4 - O3 - 6.0*X1),\n", " sym.Eq(N2 + N4 - N3),\n", " sym.Eq(-C3 + 6.0*X1),\n", " sym.Eq(W7 - W3 + 6.0*X1),\n", " \n", " sym.Eq(N3 - N6),\n", " sym.Eq(O3 - O6),\n", " sym.Eq(C3 - C8),\n", " sym.Eq(W3 - W8),\n", " \n", " sym.Eq(N6 - N4 - N5),\n", " sym.Eq(O6 - O4 - O5),\n", " \n", " sym.Eq(-G7 + X2 - X3),\n", " sym.Eq(C8 - C9 - 6.0*X2 + 3.0*X3),\n", " sym.Eq(N5 - N9),\n", " sym.Eq(O5 - O7 - O9 + 6*X2),\n", " sym.Eq(-M9 + 3.0*X3),\n", " sym.Eq(W8 - W7 - 6.0*X2)\n", "]\n", "\n", "specs = [\n", " sym.Eq(G1 + G7, 18000.0/180.0),\n", " sym.Eq(0.01*X2,X3),\n", " sym.Eq(N2, O2*(0.70/0.21)),\n", " sym.Eq(M9, 48.0/16.0),\n", " sym.Eq(M9, 0.02*(N9 + O9 + M9 + C9)),\n", " sym.Eq(M9,C9),\n", " \n", " # sym.Eq(W8,600),\n", " # sym.Eq(O4,0.0),\n", " # sym.Eq(N4,0.0),\n", " # sym.Eq(O7,600.0)\n", "]\n", "\n", "soln = sym.solve(matbal + specs)\n", "print soln\n", "print len(soln)\n", "for v in soln[0].keys():\n", " print v,soln[0][v]" ] }, { "cell_type": "code", "execution_count": 173, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "100.000000000000\n", "100.000000000000\n", "1.00000000000000\n", "0.300000000000000\n", "0.300000000000000\n", "\n", "G1: 1.00000000000000\n", "\n", "N2: 110.769230769231\n", "O2: 33.2307692307692\n", "\n", "Stream 3\n", "N3: 110.769230769231\n", "O3: 33.2307692307692\n", "C3: 600.000000000000\n", "W3: 600.000000000000\n", "\n", "Stream 4\n", "N4: 0.0\n", "O4: 0.0\n", "\n", "Stream 5\n", "N5: 110.769230769231\n", "O5: 33.2307692307692\n", "\n", "Stream 6\n", "N6: 110.769230769231\n", "O6: 33.2307692307692\n", "\n", "Stream 7\n", "G7: 99.0000000000000\n", "O7: 600.000000000000\n", "W7: 0.0\n", "\n", "Stream 8\n", "C8: 600.000000000000\n", "W8: 600.000000000000\n", "\n", "Stream 9\n", "N9: 110.769230769231\n", "O9: 33.2307692307692\n", "M9: 3.00000000000000\n", "C9: 3.00000000000000\n" ] } ], "source": [ "soln = soln[0]\n", "\n", "print X1.subs(soln)\n", "print X2.subs(soln)\n", "print X3.subs(soln)\n", "\n", "print (O5/N5).subs(soln)\n", "print (O6/N6).subs(soln)\n", "\n", "print \"\\nG1:\", G1.subs(soln)\n", "\n", "print \"\\nN2:\", N2.subs(soln)\n", "print \"O2:\", O2.subs(soln)\n", "\n", "print \"\\nStream 3\"\n", "print \"N3:\", N3.subs(soln)\n", "print \"O3:\", O3.subs(soln)\n", "print \"C3:\", C3.subs(soln)\n", "print \"W3:\", W3.subs(soln)\n", "\n", "print \"\\nStream 4\"\n", "print \"N4:\", N4.subs(soln)\n", "print \"O4:\", O4.subs(soln)\n", "\n", "print \"\\nStream 5\"\n", "print \"N5:\", N5.subs(soln)\n", "print \"O5:\", O5.subs(soln)\n", "\n", "print \"\\nStream 6\"\n", "print \"N6:\", N6.subs(soln)\n", "print \"O6:\", O6.subs(soln)\n", "\n", "\n", "print \"\\nStream 7\"\n", "print \"G7:\", G7.subs(soln)\n", "print \"O7:\", O7.subs(soln)\n", "print \"W7:\", W7.subs(soln)\n", "\n", "print \"\\nStream 8\"\n", "print \"C8:\", C8.subs(soln)\n", "print \"W8:\", W8.subs(soln)\n", "\n", "\n", "print \"\\nStream 9\"\n", "print \"N9:\", N9.subs(soln)\n", "print \"O9:\", O9.subs(soln)\n", "print \"M9:\", M9.subs(soln)\n", "print \"C9:\", C9.subs(soln)\n" ] }, { "cell_type": "code", "execution_count": 184, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3.00000000000000" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C9.subs(soln)" ] }, { "cell_type": "code", "execution_count": 183, "metadata": { "collapsed": false }, "outputs": [ { "ename": "AttributeError", "evalue": "'module' object has no attribute 'subs'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0msym\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msubs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mC9\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msoln\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'module' object has no attribute 'subs'" ] } ], "source": [ "sym.subs(C9,soln)" ] }, { "cell_type": "code", "execution_count": 180, "metadata": { "collapsed": false }, "outputs": [], "source": [ "C9?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }