matlab odeset 中的非负选项

NonNegative option in matlab odeset

这个选项到底有什么作用?似乎它只是将解决方案的相应组件设置为零而没有任何错误,或者用较小的步骤重试,所以我得到了损坏的解决方案。但是,如果我限制一个步骤,那么一切看起来都很好(所有组件都是积极的)。如何限制应为强阳性的溶液成分?

1) NonNegative 选项允许在每个积分步骤检查解决方案并将负值替换为零(对于某些问题可能没问题) 2) 就我而言,我已完成以下步骤:

  1. 一些代码优化,包括线性代数方程组的解析解(在每个积分步骤求解)
  2. 使用 AbsTol 和 RelTol。 AbsTol 应该比解决方案中的变量小几个订单

此外,在某些情况下,尝试在不缩放的情况下求解方程是有意义的