{ "info": { "author": "Gabriel Petrini da Silveira", "author_email": "gpetrinidasilveira@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "==========\npysolve\n==========\nSolving systems of linear equations\n-----------------------------------\n\nThe purpose of this code is to aid in expressing and solving\nsets of equations using Python.\n\nThis tool will take a textual description of the equations \nand then run the solver iteratively until it converges to a solution.\n\nThe solver provides the following choices for solving:\n- Gauss-Seidel\n- Newton-Raphson\n- Broyden\n\nIt also uses parts of sympy to aid in parsing the equations.\n\nThe initial motivation for this tool was to solve economic\nmodels based on Stock Flow Consistent (SFC) models.\n\n\nInstallation\n--------------\n::\n\tpip3 install pysolve\n\n\nUsage\n-------------\n\n.. code::\n\n\tfrom pysolve3.model import Model\n\tfrom pysolve3.utils import round_solution,is_close\n\n\tmodel = Model()\n\n\tmodel.set_var_default(0)\n\tmodel.var('Cd', desc='Consumption goods demand by households')\n\tmodel.var('Cs', desc='Consumption goods supply')\n\tmodel.var('Gs', desc='Government goods, supply')\n\tmodel.var('Hh', desc='Cash money held by households')\n\tmodel.var('Hs', desc='Cash money supplied by the government')\n\tmodel.var('Nd', desc='Demand for labor')\n\tmodel.var('Ns', desc='Supply of labor')\n\tmodel.var('Td', desc='Taxes, demand')\n\tmodel.var('Ts', desc='Taxes, supply')\n\tmodel.var('Y', desc='Income = GDP')\n\tmodel.var('YD', desc='Disposable income of households')\t\n\n\t# This is a shorter way to declare multiple variables\n\t# model.vars('Y', 'YD', 'Ts', 'Td', 'Hs', 'Hh', 'Gs', 'Cs',\n\t# 'Cd', 'Ns', 'Nd')\n\tmodel.param('Gd', desc='Government goods, demand', initial=20)\n\tmodel.param('W', desc='Wage rate', initial=1)\n\tmodel.param('alpha1', desc='Propensity to consume out of income', initial=0.6)\n\tmodel.param('alpha2', desc='Propensity to consume o of wealth', initial=0.4)\n\tmodel.param('theta', desc='Tax rate', initial=0.2)\n\n\tmodel.add('Cs = Cd')\n\tmodel.add('Gs = Gd')\n\tmodel.add('Ts = Td')\n\tmodel.add('Ns = Nd')\n\tmodel.add('YD = (W*Ns) - Ts')\n\tmodel.add('Td = theta * W * Ns')\n\tmodel.add('Cd = alpha1*YD + alpha2*Hh(-1)')\n\tmodel.add('Hs - Hs(-1) = Gd - Td')\n\tmodel.add('Hh - Hh(-1) = YD - Cd')\n\tmodel.add('Y = Cs + Gs')\n\tmodel.add('Nd = Y/W')\n\n\t# solve until convergence\n\tfor _ in xrange(100):\n\t model.solve(iterations=100, threshold=1e-3)\n\n\t prev_soln = model.solutions[-2]\n\t soln = model.solutions[-1]\n\t if is_close(prev_soln, soln, rtol=1e-3):\n\t break\n\n\tprint round_solution(model.solutions[-1], decimals=1)\n\nFor additional examples, view the iPython notebooks at\n\thttp://nbviewer.ipython.org/github/kennt/monetary-economics/tree/master/\n\n\nTutorial\n--------\nA short tutorial with more explanation is available at\n\thttp://nbviewer.ipython.org/github/kennt/monetary-economics/blob/master/extra/pysolve%20tutorial.ipynb\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gpetrini/pysolve3", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pysolve3", "package_url": "https://pypi.org/project/pysolve3/", "platform": "", "project_url": "https://pypi.org/project/pysolve3/", "project_urls": { "Homepage": "https://github.com/gpetrini/pysolve3" }, "release_url": "https://pypi.org/project/pysolve3/0.1.5/", "requires_dist": [ "sympy (>=1.4)", "numpy", "pandas" ], "requires_python": "", "summary": "A simple interface for solving systems of linear equations", "version": "0.1.5" }, "last_serial": 5353702, "releases": { "0.1.1.2": [ { "comment_text": "", "digests": { "md5": "b22e01b326d6dba79418e9e42be5d2ab", "sha256": "ed3f35bb21cde83881af61afdbd1f38ff5ddbe76666b4159bf6dab20d30267dd" }, "downloads": -1, "filename": "pysolve3-0.1.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b22e01b326d6dba79418e9e42be5d2ab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28259, "upload_time": "2018-11-23T01:51:46", "url": "https://files.pythonhosted.org/packages/ea/58/dbaa4abee41ff7a8d8b7a7ea1346fc528ba92b03439431356b662c9f9bd5/pysolve3-0.1.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f61b7ac03192732adaaeb91f82cab60d", "sha256": "98da31b3fb5e7764590cd8bab747501035f4f0efda31c168d3005fd8b237f691" }, "downloads": -1, "filename": "pysolve3-0.1.1.2.tar.gz", "has_sig": false, "md5_digest": "f61b7ac03192732adaaeb91f82cab60d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21942, "upload_time": "2018-11-23T01:51:47", "url": "https://files.pythonhosted.org/packages/ae/e1/58ac0e7c91196a7e4685e66107e5a4c0e149fd6d2be12baf57a3db357b9a/pysolve3-0.1.1.2.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9124ec8b25a9f181a30184fabcda3525", "sha256": "7bbfe68f63bf7691934c1b6ade0b50f2e6493fba2651fd39cdcb9e21c80c771d" }, "downloads": -1, "filename": "pysolve3-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9124ec8b25a9f181a30184fabcda3525", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26311, "upload_time": "2019-01-31T18:37:04", "url": "https://files.pythonhosted.org/packages/5a/64/5d7a38fa561d09d9dd545673e8b87c4233797d42b0b08aa67da4e76cf56b/pysolve3-0.1.2-py3-none-any.whl" } ], "0.1.2.1": [ { "comment_text": "", "digests": { "md5": "97372247050bbe36c72fd95c67158f91", "sha256": "181013d4e9908b8a0bef06aab951fe21127824f5cc9ef73f0924929b2d2785c1" }, "downloads": -1, "filename": "pysolve3-0.1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "97372247050bbe36c72fd95c67158f91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26329, "upload_time": "2019-01-31T18:37:03", "url": "https://files.pythonhosted.org/packages/e5/f3/0eaa3983347b1a7bee1d4366830a67395bbe09d7aded1c390ee476f1f68a/pysolve3-0.1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0b4d282c5e098e77698fb8f2393edef", "sha256": "125044ba1f8cdca256b62db4995da35c8c5a7ee07aa56c0e391f8b657febd083" }, "downloads": -1, "filename": "pysolve3-0.1.2.1.tar.gz", "has_sig": false, "md5_digest": "b0b4d282c5e098e77698fb8f2393edef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22116, "upload_time": "2019-01-31T18:37:06", "url": "https://files.pythonhosted.org/packages/3f/ab/2030cf2cf28a650564a43a5482806186b0d6e1de2b918d64fc0ec441bdb3/pysolve3-0.1.2.1.tar.gz" } ], "0.1.3.1": [ { "comment_text": "", "digests": { "md5": "890f07445dcd423db22de1f88fab9104", "sha256": "f6e6d46c5791a9baa5133192d2238bcc5806add055b37c34ad6f523716893288" }, "downloads": -1, "filename": "pysolve3-0.1.3.1-py3.7.egg", "has_sig": false, "md5_digest": "890f07445dcd423db22de1f88fab9104", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 61254, "upload_time": "2019-01-31T19:44:32", "url": "https://files.pythonhosted.org/packages/b0/bc/e7d1ae6eff07904d73e29138ef1ce2686cba49aaa1866f630296aabc71eb/pysolve3-0.1.3.1-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "184a329775cfea33c58de872b06507ac", "sha256": "b7ec6c1f0da45ca1f3ddbf8a3d46c0990779c70577dc8e6ecd6c5ea5bd60cfd0" }, "downloads": -1, "filename": "pysolve3-0.1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "184a329775cfea33c58de872b06507ac", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27160, "upload_time": "2019-01-31T19:35:49", "url": "https://files.pythonhosted.org/packages/5f/ad/dbd51b55f89b83a88b864812fe39f85fd8f783a5d9adfd58dec6e76e5b37/pysolve3-0.1.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee587d3889c957138bb5cd84ad464b3a", "sha256": "2d43096863d1013e89da931bb489d6909f26c6d3eee232d652b98ab02be9a5c8" }, "downloads": -1, "filename": "pysolve3-0.1.3.1.tar.gz", "has_sig": false, "md5_digest": "ee587d3889c957138bb5cd84ad464b3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22105, "upload_time": "2019-01-31T19:35:51", "url": "https://files.pythonhosted.org/packages/4f/c7/bac43cb601c8fb19d2a906220b1b221a8d399f0ed10f2f8392ae97a39fc1/pysolve3-0.1.3.1.tar.gz" } ], "0.1.3.2": [ { "comment_text": "", "digests": { "md5": "d89eae5976751292ead61a2b344b40fc", "sha256": "7809649d662c2ec008c350acadcc9542335a08dd31b7fb631713b11d18b991cc" }, "downloads": -1, "filename": "pysolve3-0.1.3.2-py3.7.egg", "has_sig": false, "md5_digest": "d89eae5976751292ead61a2b344b40fc", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 61292, "upload_time": "2019-01-31T20:16:22", "url": "https://files.pythonhosted.org/packages/96/18/e14de62de373b98126d08c82716ba7bc8a549422e3cf8bd854cf5b210c0c/pysolve3-0.1.3.2-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "0f49327bc2644e34a95a46363bd7e513", "sha256": "0df34d0cfa5c9b4e26978486513efdf1eb97ed54952cc12b7d848e3e066d49cd" }, "downloads": -1, "filename": "pysolve3-0.1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0f49327bc2644e34a95a46363bd7e513", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27160, "upload_time": "2019-01-31T19:44:30", "url": "https://files.pythonhosted.org/packages/6d/b6/66cc5ac1bd1feac641b8ff9e360763ae54c06019e9ca0e49008f410d7b15/pysolve3-0.1.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fdf3c6dcb96cfd5be3bfbae851421f5", "sha256": "2e39b9081d922f419e17ae749c48c4b1380a9849fc3b7c61325c8289863cccb1" }, "downloads": -1, "filename": "pysolve3-0.1.3.2.tar.gz", "has_sig": false, "md5_digest": "9fdf3c6dcb96cfd5be3bfbae851421f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22105, "upload_time": "2019-01-31T19:44:36", "url": "https://files.pythonhosted.org/packages/a5/91/3674994a100b4659698ff3b0ebdbb04969acdf32f389a0bbcf21fd02d052/pysolve3-0.1.3.2.tar.gz" } ], "0.1.3.3": [ { "comment_text": "", "digests": { "md5": "6e2b8cbbcdb407d6e07817f5ac61536e", "sha256": "55e8758e4655c814da7cde1f59e81b3587a77023836b31dbb95b2fc529c04480" }, "downloads": -1, "filename": "pysolve3-0.1.3.3-py3.7.egg", "has_sig": false, "md5_digest": "6e2b8cbbcdb407d6e07817f5ac61536e", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 61370, "upload_time": "2019-04-15T23:27:26", "url": "https://files.pythonhosted.org/packages/19/5e/3dbb76802988fd2a140b38a0ecb6230d63584f26f85dfa411a1a3206055f/pysolve3-0.1.3.3-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "453d68ec81348e7a1c10537cbc784171", "sha256": "2ae5fbd0bf722dd71e3567e2eaed4d7207181865427cc05de010bc754a5e7ca7" }, "downloads": -1, "filename": "pysolve3-0.1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "453d68ec81348e7a1c10537cbc784171", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27175, "upload_time": "2019-01-31T20:16:16", "url": "https://files.pythonhosted.org/packages/5b/6e/4a1de7556abea56eb483bd1cbb1a5f6927811182cf21f5e2cfcfad30c2f7/pysolve3-0.1.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "092ef7a80ebb818bf5839adb99e184f9", "sha256": "48c54b8969cfc6ddb7f368efb988038a62984cc3ab33729aa00023507ea952d9" }, "downloads": -1, "filename": "pysolve3-0.1.3.3.tar.gz", "has_sig": false, "md5_digest": "092ef7a80ebb818bf5839adb99e184f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22117, "upload_time": "2019-01-31T20:16:25", "url": "https://files.pythonhosted.org/packages/df/99/34a5d567f93291128e539191677f6f9f88b7f95530acb32470e01b3ef6fc/pysolve3-0.1.3.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "5a11546790921cbb4c67ff87d8633ea3", "sha256": "4e028cde149d2096eac67b946b7edd1e04b3d0aacaa7969eb555ac25a1978279" }, "downloads": -1, "filename": "pysolve3-0.1.4-py3.7.egg", "has_sig": false, "md5_digest": "5a11546790921cbb4c67ff87d8633ea3", "packagetype": "bdist_egg", "python_version": "3.7", "requires_python": null, "size": 61510, "upload_time": "2019-04-15T23:27:30", "url": "https://files.pythonhosted.org/packages/98/8e/1364c54177311d53efcdfe1de1acecc9113e579168056e3709c109753729/pysolve3-0.1.4-py3.7.egg" }, { "comment_text": "", "digests": { "md5": "0baf28f7010e728e0e3242ff14e2ab4f", "sha256": "04fe88d1bca48b42a32e2f656f2a56cd6caf9d06a87643ef3777483326d6dd29" }, "downloads": -1, "filename": "pysolve3-0.1.4.tar.gz", "has_sig": false, "md5_digest": "0baf28f7010e728e0e3242ff14e2ab4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22247, "upload_time": "2019-04-15T23:27:32", "url": "https://files.pythonhosted.org/packages/54/d7/4614457fb3a41f2672bd8a372425ad6790bfab629ef28de15f1e6727f534/pysolve3-0.1.4.tar.gz" } ], "0.1.4.1": [ { "comment_text": "", "digests": { "md5": "940bb3f34b01a8cb1da59ee3f50294f6", "sha256": "bf8268b2dec65ae9fcd61b519a3b2f7bcbc768dd0216728b9f6c004fb130dda3" }, "downloads": -1, "filename": "pysolve3-0.1.4.1.tar.gz", "has_sig": false, "md5_digest": "940bb3f34b01a8cb1da59ee3f50294f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22274, "upload_time": "2019-04-16T12:34:19", "url": "https://files.pythonhosted.org/packages/0a/ae/003953791ffa47f3ba5b5b2870556bec3d3a0923df46109c670af96fb2a1/pysolve3-0.1.4.1.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "01d359022d00446d953d964db0c9455b", "sha256": "d5fb940657594198bdc66955ea97fbc51fffc578a01bd818e2c5f6923cc19fbb" }, "downloads": -1, "filename": "pysolve3-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "01d359022d00446d953d964db0c9455b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28009, "upload_time": "2019-06-03T17:51:59", "url": "https://files.pythonhosted.org/packages/27/41/30b9b4c14a3b242fde11a2b36844b25ae59a48acd407e39bb35e8c350a2e/pysolve3-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20882a06ddb90c15685d1739d69b8fdf", "sha256": "2d7402f362f2320e070fad3a8524f5533718e8e85bc984dea6c0cb7a88b30962" }, "downloads": -1, "filename": "pysolve3-0.1.5.tar.gz", "has_sig": false, "md5_digest": "20882a06ddb90c15685d1739d69b8fdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20034, "upload_time": "2019-06-03T17:52:01", "url": "https://files.pythonhosted.org/packages/69/12/280b2e4817199e157260b7221e3530d35ee0714482139637d9054d882bb9/pysolve3-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "01d359022d00446d953d964db0c9455b", "sha256": "d5fb940657594198bdc66955ea97fbc51fffc578a01bd818e2c5f6923cc19fbb" }, "downloads": -1, "filename": "pysolve3-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "01d359022d00446d953d964db0c9455b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28009, "upload_time": "2019-06-03T17:51:59", "url": "https://files.pythonhosted.org/packages/27/41/30b9b4c14a3b242fde11a2b36844b25ae59a48acd407e39bb35e8c350a2e/pysolve3-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20882a06ddb90c15685d1739d69b8fdf", "sha256": "2d7402f362f2320e070fad3a8524f5533718e8e85bc984dea6c0cb7a88b30962" }, "downloads": -1, "filename": "pysolve3-0.1.5.tar.gz", "has_sig": false, "md5_digest": "20882a06ddb90c15685d1739d69b8fdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20034, "upload_time": "2019-06-03T17:52:01", "url": "https://files.pythonhosted.org/packages/69/12/280b2e4817199e157260b7221e3530d35ee0714482139637d9054d882bb9/pysolve3-0.1.5.tar.gz" } ] }