登录论坛

查看完整版本 : 解决边界


poster
2019-12-10, 20:48
有没有一种方法可以在MATLAB中使用fsolve,为解决方案指定界限?即所有解变量> 0



回答:

解决这个问题的方法并不直接,而是在方程式中添加一个约束您问题的项。

我没有优化工具箱,因此无法使用fsolve给出具体示例,但是这是我使用fminsearch的方法,它也存在相同的问题。

myFun = @(args) abs( sin(args(1)) + cos(args(2)) ) fminsearch(myFun, [0, 0]) ans = -0.8520 0.7188 但是如果我想将我的问题限制为积极的解决方案

myFun = @(args) abs(sin(args(1)) + cos(args(2))) + (args(1)