关于#matlab#报错

matlab报错

img

报错内容:

Solving problem using fmincon.
错误使用 optim.problemdef.OptimizationProblem/solve
Nonlinear problem with integer variables not supported.

出错 Un24 (第 9 行)
[sol, fval, flag] = solve(prob),sol.x

这是为什么啊,想好久都没想出来

看看参数的类型,非线性不支持整数变量

  • 这篇博客: Matlab求解优化问题-Optimization Toolbox中的 2.4.1 fmincon函数介绍 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 问题

    • fmincon输入:
      • x = fmincon(fun,x0,A,b)
      • x = fmincon(fun,x0,A,b,Aeq,beq)
      • x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
      • x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
      • x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
      • x = fmincon(problem)
      • fun为目标函数,x0为决策变量初始值;nonlcon为非线性不等式或等式约束,options则是定义求解的一些具体参数,一般使用默认的就好。
      • options的文档:https://ww2.mathworks.cn/help/optim/ug/optim.problemdef.optimizationproblem.optimoptions.html
    • 输出:
      • x=fmincon()
      • [x,fval] = fmincon(___)
      • [x,fval,exitflag,output] = fmincon(___)
      • [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(___)
      • x为最优值,fval为取得最优值的决策变量值,exitflag为fmincon 的退出条件的值,output为优化过程信息的结构体