gpt4 book ai didi

matlab - Matlab fmincon-找不到可行的解决方案,但没有发现错误

转载 作者:行者123 更新时间:2023-12-03 07:44:53 25 4
gpt4 key购买 nike

我正在使用优化功能“fmincon”,在某些情况下它不会收敛。我必须确定这些情况并采取必要的措施,但是所使用的所有方法都无法捕获错误,因此我继续遇到错误:

No feasible solution found.

fmincon stopped because the size of the current search direction is less than
twice the default value of the step size tolerance but constraints are not
satisfied to within the selected value of the constraint tolerance.

首先,我尝试选择函数的exitflag:如果它返回已知错误(-1、1、0 ...),但是每次出现错误时,返回的exitflag都具有正确的值。
[x,fval,exitflag] = fmincon(@(x) costFunction(x,INPUTS),x0,A,b,[],[],lb,ub,[],options);
if exitflag == 0
do something;
end

然后,我尝试使用“try/catch”结构,但在这种情况下,代码继续运行,没有错误发生……
try %start try/catch
[x,fval,exitflag] = fmincon(@(x) costFunction(x,INPUTS),x0,A,b,[],[],lb,ub,[],options);
catch err
disp(err.identifier);
... actions
end % end try/catch

任何建议都欢迎。

ps:使用的选项是:
options = optimset(oldopts,'Display','notify', 'Algorithm','active-set', 'MaxFunEvals', 10000);

最佳答案

  • oldopts中是什么?
  • is less than twice the default value of the step size tolerance建议您更改步长或公差值。有几种解决方法:猜测或显示迭代显示。
    optimset(oldopts,'Display','iter' ...% or 'iter-detailed'
  • 确定要更改的内容后,可以使用以下方法进行设置:
    optimset(options,'stepsize', 1e-2) % or optimset(options,'tolX', 1e-e)...
  • 停止查看导出标志以引发错误。该错误是收敛或迭代问题。
  • 询问自己算法是否可以使用图形方法收敛(如果可能)
  • RTM:http://www.mathworks.com/help/optim/ug/when-the-solver-fails.html
  • 关于matlab - Matlab fmincon-找不到可行的解决方案,但没有发现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14790063/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com