常微分方程求解问题

请问在我使用ODEProblem(f,u0,tspan)函数求解的过程中,u0是一个非负二元数组,f的值也均被设定为非负,但为什么求解过程中的u会出现负数的情况?如何解决这个问题呢?谢谢

建议上一个示例代码, 你的这个示例代码排版有问题,让人难以复制粘贴 :rofl:
另外,你的代码完全无法运行。报错为 ERROR: UndefVarError:
请提供一个 MWE。其他提问的注意事项参见 发帖里面 综合讨论区>Julia 入门

建立常微分方程的代码:
odeProb = ODEProblem(dNidt, Ni0Kinetics, tSpan, params);
dNidt的微分值计算部分:
function dNidt(dNdt,N,params,t)
for ii =1:length(N)

  •       dNdt[ii] = 2*pi*(p1.dp+di[ii]) *(p1.D+Di[ii]) * βm[ii] * (Pi[ii]-Kei[ii]*Psati[ii])/(kB*T);*
    

end

  • for ii=1:length(dNdt)*
  •   if dNdt[ii]<=0*
    
  •       dNdt[ii]=0.0;*
    
  •   end*
    
  • end*
    其中很多参数比较复杂,和这个问题关系不大,我就不全部放上来了,谢谢!