M 兼容使用 fmincon 函数结果与 Matlab 存在误差怎么处理?
技术分享
发布于 2025-07-10 10:37:12
查看 1过去327天
由于 Syslab 中fmincon 函数默认算法为 activate-set,而 Matlab 中默认算法为 interior-point,因此在涉及到多解问题的时候,不能直接比较解 x,应该比较目标函数最小值 fval,如果目标函数最小值 fval结果一致,则表明 Syslab 算法解是正确的。
示例:
1.运行下面代码:
using TyOptimization
fun = x -> 1 + x[1] / (1 + x[2]) - 3 * x[1] * x[2] + x[2] * (1 + x[1])
lb = [0, 0]
ub = [1, 2]
A = []
b = []
Aeq = []
beq = []
x0 = (lb + ub) / 2
x, fval = fmincon(fun, x0, A, b, Aeq, beq, lb, ub)

2.在命令行中输入 fval 并回车:

3.此时计算出的 fval 即为目标函数值,fval 值与 Matlab 输出值一致,则表明算法解是正确的。
所属专栏:Syslab基础平台
产品信息:函数库-优化工具箱