有限差分偏微分方程解算器。
pdep的Python项目详细描述
概述
免责声明:请自行承担使用风险。我拥有应用和计算数学学士学位,但从未在该领域从事过专业工作。
用有限差分法求解线性偏微分方程初边值问题的python 3库:
- 拉普拉斯
- 隐式中心
- 抛物线
- 显式中心
- 显式逆风
- 隐式中心
- 隐式逆风
- 波浪
- 显式
- 隐式
开始
安装
pip install pdepy
示例
laplace方程:
importnumpyasnpfrompdepyimportlaplacexn,xf,yn,yf=30,3.,40,4.x=np.linspace(0,xf,xn+1)y=np.linspace(0,yf,yn+1)f=lambdax,y:(x-1)**2-(y-2)**2bound_x0=f(0,y)bound_xf=f(xf,y)bound_y0=f(x,0)bound_yf=f(x,yf)axis=(x,y)conds=(bound_x0,bound_xf,bound_y0,bound_yf)laplace.solve(axis,conds,method='ic')
抛物线方程:
importnumpyasnpfrompdepyimportparabolicxn,xf,yn,yf=40,4.,50,0.5x=np.linspace(0,xf,xn+1)y=np.linspace(0,yf,yn+1)init=x**2-4*x+5bound=5*np.exp(-y)p,q,r,s=1,1,-3,3axis=(x,y)conds=(init,bound,bound)params=(p,q,r,s)parabolic.solve(axis,params,conds,method='iu')
波动方程:
importnumpyasnpfrompdepyimportwavexn,xf,yn,yf=40,1.,40,1.x=np.linspace(0,xf,xn+1)y=np.linspace(0,yf,yn+1)d_init=1init=x*(1-x)bound=y*(1-y)axis=(x,y)conds=(d_init,init,bound,bound)wave.solve(axis,conds,method='i')
开发和测试
pip install tox pip install -e . # Testing. tox # Always remove .tox/ after changing the files in ./requirements. rm -rf .tox/
包装和分销
不要忘记更新setup.py
中的version
字段。
pip install twine # Packaging. python setup.py sdist python setup.py bdist_wheel # Distributing. twine upload dist/*
有关包装和分发here的更多信息。