函数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:10arrayfun(@(a)fmincon(@(x)a*x^2-3*x+2,0,[],[],[],[],0,1),A)
2、复杂一点的情况可以用嵌套函数(nested function),大致结构如下:
function mainA = ...
for a=A
fmincon(@objfun,...
end
function y = objfun(x)
y = a*x % 在子函数中可以使用主函数激旁的变量
end
end
3、传统做法是通过传递附加参数的方式,类似fmincon之类的大多数函数都支持附加参数。主要滑桥在MATLAB 7.0之前用这种方式(那时没有匿名函数、嵌套函数、arrayfun等手段),现在用的比较少了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)