我最近在寻找可以解决ODE系统并遵守约束的东西时发现了PyDSTool(我的图形所需要的是值,因为它们是模拟群体,因此值保持在0以上)。虽然文档相当差,但基本用法并不是那么困难,但我在加入非负性约束时遇到了一些麻烦。
就好像 xdomain 一行被完全忽略了一样。下面的代码生成了一个横跨x轴的图,所以我必须在设置边界时做错。有人有什么建议吗?
import PyDSTool as pdt
ini = {'A':1000,'B':1000,'C':1000}
DSargs = pdt.args(name='test',
ics=ini,
tdata = [0,20],
varspecs = {'A':'-100','B':'0','C':'1'},
xdomain = {'A':[0,pdt.Inf],'B':[0,pdt.Inf],'C':[0,pdt.Inf],'incontact':1})
DS = pdt.Generator.Vode_ODEsystem(DSargs)
traj = DS.compute('test')
pts = traj.sample()
pdt.plt.plot(pts['t'],pts['A'],label='A')
pdt.plt.plot(pts['t'],pts['B'],label='B')
pdt.plt.plot(pts['t'],pts['C'],label='C')
pdt.plt.legend()
pdt.plt.xlabel('t')
pdt.plt.show()