matlab等式约束怎么写

matlab等式约束怎么写,第1张

函数linprog%用于求解线性规划问题(即目标函数与约束条件均为线性)。

[x,fva]=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)。

x=linprog(f,A,b)%求minf'*xsub.to线性规划的最优解。

x=linprog(f,A,b,Aeq,beq,lb,ub,x0)%设置初值x0。

x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)%options为指定的优化参数。

%fval返回目标函数最优值,即fval=f'*x。

%lambda为解x的Lagrange乘子。

编局正程环境

MATLAB由一系列工具组成。这些工具方便用户使仔卖用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器桐戚悔和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。

随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强, *** 作更简单。

首先应当说明,你所给的约束条件0<x<1对应的不是闭集,问题很可能是无解的。例如看起来很简单的 min x s.t. x>0 就是无解的,因为无论你给一个多小的正数,把它除以2就比它更小。

就这种含有附加参明让橡数的优化问题而言,主要有三种方法:

1、简单的一点的情况可以直接用arrayfun配合匿名函数,例如:

A=0:10

arrayfun(@(a)fmincon(@(x)a*x^2-3*x+2,0,[],[],[],[],0,1),A)

2、复杂一点的情况可以用嵌套函数(nested function),大致结构如下:

function main

A = ...

for  a=A

    fmincon(@objfun,...

end

    function y = objfun(x)

        y = a*x   % 在子函数中可以使用主函数激旁的变量

    end 

end

3、传统做法是通过传递附加参数的方式,类似fmincon之类的大多数函数都支持附加参数。主要滑桥在MATLAB 7.0之前用这种方式(那时没有匿名函数、嵌套函数、arrayfun等手段),现在用的比较少了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12464388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存