求解线性方程组的一个简单界面

pysolve3的Python项目详细描述


解线性方程组

此代码的目的是帮助表达和解决 使用python的方程组。

此工具将对方程式进行文本描述 然后迭代运行解算器,直到它收敛到一个解。

解算器提供以下解算选项: -高斯赛德尔 -牛顿·拉斐逊 -布罗登

它还使用部分sympy来帮助解析方程式。

这个工具的最初动机是解决经济问题 基于股票流一致性(sfc)模型的模型。

安装

::
pip3安装pysolve

用法

from pysolve3.model import Model
from pysolve3.utils import round_solution,is_close

model = Model()

model.set_var_default(0)
model.var('Cd', desc='Consumption goods demand by households')
model.var('Cs', desc='Consumption goods supply')
model.var('Gs', desc='Government goods, supply')
model.var('Hh', desc='Cash money held by households')
model.var('Hs', desc='Cash money supplied by the government')
model.var('Nd', desc='Demand for labor')
model.var('Ns', desc='Supply of labor')
model.var('Td', desc='Taxes, demand')
model.var('Ts', desc='Taxes, supply')
model.var('Y', desc='Income = GDP')
model.var('YD', desc='Disposable income of households')

# This is a shorter way to declare multiple variables
# model.vars('Y', 'YD', 'Ts', 'Td', 'Hs', 'Hh', 'Gs', 'Cs',
#            'Cd', 'Ns', 'Nd')
model.param('Gd', desc='Government goods, demand', initial=20)
model.param('W', desc='Wage rate', initial=1)
model.param('alpha1', desc='Propensity to consume out of income', initial=0.6)
model.param('alpha2', desc='Propensity to consume o of wealth', initial=0.4)
model.param('theta', desc='Tax rate', initial=0.2)

model.add('Cs = Cd')
model.add('Gs = Gd')
model.add('Ts = Td')
model.add('Ns = Nd')
model.add('YD = (W*Ns) - Ts')
model.add('Td = theta * W * Ns')
model.add('Cd = alpha1*YD + alpha2*Hh(-1)')
model.add('Hs - Hs(-1) =  Gd - Td')
model.add('Hh - Hh(-1) = YD - Cd')
model.add('Y = Cs + Gs')
model.add('Nd = Y/W')

# solve until convergence
for _ in xrange(100):
    model.solve(iterations=100, threshold=1e-3)

    prev_soln = model.solutions[-2]
    soln = model.solutions[-1]
    if is_close(prev_soln, soln, rtol=1e-3):
        break

print round_solution(model.solutions[-1], decimals=1)
有关其他示例,请查看ipython笔记本
http://nbviewer.ipython.org/github/kennt/monetary-economics/tree/master/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
为什么我们不能用java制作动态数组   java如何调用自定义hamcrest匹配器?   java如何在eclipse ADT上将textview转换为double?   java如何将字符串转换为64位整数?   Oauth2.0如何在没有用户交互的情况下使用java将文档插入google drive Oauth2   实现类或接口中的java注释方法?   java在MySQL数据库中存储微秒   java重写@PostConstruct在CDI viewscoped bean上调用了两次(Weld,Seam 3)   安卓为什么Java中的某些方法不需要创建实例来使用?   Java:如何从外部运行在同一台机器上的jvm和http监视器中保证应用程序的安全?   java Spring BeanUtils使用列表字段复制属性   java TestHazelcastFactory客户端模拟不工作   单元测试为JavaHTTPClientBuilder编写模拟测试类   java ora00933:update SQL语句的SQL命令未正确结束   imageView的java随机XML动画   java无法打开流:HTTP请求使用phpjavabridge失败   java将大字符串拆分为集合项   运行在Java7上的用于GAE的java BigTable SDK   java Android视图是片段内部的空对象引用   安卓如何发送超过160个字符的短信?