微分方程系统解算器
DESolver的Python项目详细描述
脱溶器
这是一个python包,用于使用各种数值积分器解决初始值问题。 包括许多集成程序,从固定步长到辛到自适应积分器。
隐式积分器是为3.0版设计的,但目前还远未实现。
最新版本
2.2.0-pytorch后端现在已经实现。现在可以用pytorch张量对方程组进行数值积分,然后从中计算梯度。 需要从here安装pytorch。没有pytorch,手电筒后端将无法工作!
要安装:
只需键入
pip install desolver
实施的集成方法
自适应方法
显式方法
- Runge Kutta 45,现金卡普系数
- 自适应heun-euler方法
隐式方法
尚未实现
固定步长法
显式方法
- 中点法
- 乡氏法
- 欧拉方法
- 欧拉梯形法
- bab s9o7h法——基于arxiv:1501.04345v2-bab's9o7h
- abas5o6ha法——基于arxiv:1501.04345v2-abas5o6h
- Runge Kutta 5-RK45的5阶积分器。非常精确,步长固定。
隐式方法
尚未实现
最小工作示例
这个例子显示了使用Desolver的谐波振荡器的集成。
importdesolverasdeimportdesolver.backendasD@de.rhs_prettifier("""[vx, x]""")defrhs(t,state,**kwargs):x,vx=statedx=vxdvx=-xreturnD.array([dx,dvx])y_init=D.array([1.,0.])a=de.OdeSystem(rhs,y0=y_init,dense_output=True,t=(0,2*D.pi),dt=0.01,rtol=1e-6,atol=1e-9)a.show_system()a.integrate()print(a)print("If the integration was successful and correct, a[0].y and a[-1].y should be near identical.")print(a[0].y,a[-1].y)