【发布时间】:2015-12-09 20:38:46
【问题描述】:
This answer 到 this question 仅适用于耦合函数的所需解不限于特定范围的情况。
但是,例如,如果我们想要0 < x < 10 和0 < y < 10 这样的解决方案呢?另一种思考方式是,如果 x 或 y 小于零时耦合函数未定义怎么办?
scipy.optimize 中有一些函数可以在给定区间内找到函数的根(例如,brentq),但这些函数仅适用于一个变量的函数。
为什么scipy 没有提供适用于特定范围内的多变量函数的根求解器?如何实现这样的求解器?
【问题讨论】:
-
您需要像 Newton Raphson 或 BFGS 这样的非线性求解器。它变成了一个线性代数问题,无法保证有解。
-
@duffymo 我想无论是否给出限制都不能保证解决方案。为什么将解决方案限制在一定范围内需要一个全新的算法?为什么不能调整像
fsolve这样的 scipy 函数来限制?你能指点我这方面的参考吗? -
@duffymo 嗯,这没有回答我的问题,但我想我可以在那个 SE 网站上问我的问题——可能更有可能得到我的答案。
标签: python optimization scipy solver nonlinear-optimization