为了简化,假设我可以用
变量x1
和x2
参数p1
和p2
,以及
约束条件f(x, p) = 0
和g(x, p) = 0
:
例如:
f(x1, x2, p1, p2) = x1^2 * p1 + x1^2 * p2 + x2 = 0
g(x1, x2, p1, p2) = x2^2 * p2 + x1 * p1 = 0
现在,假设给定参数p1
和p2
的真实值,根存在。
然而,在我的例子中,参数是以不完美的方式确定的,像scipy.optimize
的fsolve
这样的非线性根查找器是不成功的。我们可以将参数作为变量输入,并尝试找到根,但是将变量和参数增加一个数量级,就像在我的实际系统中一样,约束变得非常难以遵守
因此,我一直在研究python中可以“解决”我的非线性方程组的优化包。这就是我对优化缺乏理解的地方,也是一个障碍
如果我理解正确,正如假设的那样,我的方程是约束条件,这意味着我的设计要成功,必须尊重它们。然而,我已经意识到,鉴于参数的不完美性质(或大量可能的变量),我需要有一个(或多个)目标函数来最小化,而不是约束
所有描述我的系统的方程都具有相同的有效性,所以我不认为我可以简单地选择一个或几个方程作为目标函数,其余的方程作为约束。看起来我需要把所有的方程都作为目标函数
因此,我有两个问题:
我已经看了{
注:目前我的模型有11个变量和11*5个参数(五个系数代表每个变量的四次多项式)。如果需要,我还可以在优化包中为变量添加约束
目前没有回答
相关问题 更多 >
编程相关推荐