【发布时间】:2014-08-22 22:48:28
【问题描述】:
我正在尝试使用scipy.optimize.root() 求解非线性方程组
其中一个方程包含像x[5]**epsilon 这样的幂,其中epsilon 是一个参数。对于epsilon=1,我设法找到了根源,但对于1 周围的任何不同的epsilon,我找不到。我在这个过程中的某个地方得到了NaN,我认为它来自求解器尝试负值并为此获得NaN。
有没有办法进一步限制求解器,比如告诉他x[5] >= 0 或类似的?我知道 scipy 的最小化工具可以使用这些边界,但我在 documentation 中找不到类似的东西 root。
【问题讨论】:
-
快速解决方法类似于
if x[5]<0: return ones_like(x)*inf。看我的回答here
标签: python scipy equation-solving