Julia “如何修复”;dt<;=dtmin。“中止”;解算代码错误

Julia “如何修复”;dt<;=dtmin。“中止”;解算代码错误,julia,solver,ode,Julia,Solver,Ode,我试图模拟一个ODEs系统(Tilman,1994,生态学,第75卷,第1期,第2-16页,图3 B),但Julia积分法未能给出解决方案 误差是dt我想你把方程式看错了。本课程的最后一学期是 我还明确指出,dpk是pk的倍数。这是必要的,因为它确保动态保持在正变量的八分之一 使用python时,该图类似于 def p_ode(p,c,m): 返回[p[i]*(c[i]*(1-求和(p[j]表示范围(i+1)中的j))-m[i]-求和(c[j]*p[j]表示范围(i))中的j)表示范围(le

我试图模拟一个ODEs系统(Tilman,1994,生态学,第75卷,第1期,第2-16页,图3 B),但Julia积分法未能给出解决方案


误差是dt我想你把方程式看错了。本课程的最后一学期是

我还明确指出,
dpk
pk
的倍数。这是必要的,因为它确保动态保持在正变量的八分之一


使用python时,该图类似于

def p_ode(p,c,m):
返回[p[i]*(c[i]*(1-求和(p[j]表示范围(i+1)中的j))-m[i]-求和(c[j]*p[j]表示范围(i))中的j)表示范围(len(p))]
c=[0.333,3.700,41.150457.200];m=4*[0.100]
u0=[0.05,0.05,0.05,0.05]
t=np.linspace(0,60601)
p=odeint(λu,t:p_ode(u,c,m),u0,t)
对于范围(4)中的k:plt.plot(t,p[:,k],label='$p_%d$'%(k+1));
plt.grid();plt.legend();plt.show()
using DifferentialEquations
TFour = @ode_def TilmanFour begin
dp1 = c1*p1*(1-p1) - m*p1
dp2 = c2*p2*(1-p1-p2) -m*p2 -c1*p1*p2
dp3 = c3*p3*(1-p1-p2-p3) -m*p3 -c1*p1*p2 -c2*p2*p3
dp4 = c4*p4*(1-p1-p2-p3-p4) -m*p4 -c1*p1*p2 -c2*p2*p3 -c3*p3*p4 
end c1 c2 c3 c4 m

u0 = [0.05,0.05,0.05,0.05]
p = (0.333,3.700,41.150,457.200,0.100)
tspan = (0.0,300.0)
prob = ODEProblem(TFour,u0,tspan,p)
sol = solve(prob,alg_hints=[:stiff])
sum(c[j]*p[j]*p[i] for j<i) 
dp1 = p1 * (c1*(1-p1) - m)
dp2 = p2 * (c2*(1-p1-p2) - m - c1*p1)
dp3 = p3 * (c3*(1-p1-p2-p3) - m - c1*p1 -c2*p2)
dp4 = p4 * (c4*(1-p1-p2-p3-p4) - m - c1*p1 - c2*p2 - c3*p3)