赞
踩
sdpvar:使用方法为sdpvar(name, dimension),其中name为变量名,dimension为变量的维度。例如,定义一个3x3的实数矩阵变量x,可以写成:x = sdpvar(‘x’, 3, 3)。
optimize:使用方法为optimize(constraints, objective, settings),其中constraints为约束条件,objective为优化目标函数,settings为YALMIP参数设置。例如,求解线性规划问题minimize c’x,subject to Ax <= b,x >= 0,可以写成:optimize([A*x <= b, x >= 0], c’*x)。
constraints:使用方法为constraint(expression, operator, value),其中expression为约束条件表达式,operator为约束条件类型(<=, ==, >=),value为约束条件的值。例如,定义一个等式约束条件x + y == 1,可以写成:constraint(x + y == 1)。
objective:使用方法为objective(expression, type),其中expression为目标函数表达式,type为目标函数类型(minimize或maximize)。例如,定义一个二次型目标函数f(x) = x’Qx + c’*x,可以写成:objective(x’Qx + c’*x, ‘minimize’)。
value:使用方法为value(variable),其中variable为变量名。例如,求解后获取变量x的值,可以写成:x_value = value(x)。
display:使用方法为display(expression),其中expression为输出表达式。例如,输出约束条件Ax <= b,可以写成:display(Ax <= b)。
set:使用方法为set(option, value),其中option为设置项,value为设置项的值。例如,设置求解器为MOSEK,可以写成:set(‘solver’, ‘mosek’)。
binvar:使用方法为binvar(name, dimension),其中name为变量名,dimension为变量的维度。例如,定义一个2x2的二进制变量x,可以写成:x = binvar(‘x’, 2, 2)。
intvar:使用方法为intvar(name, dimension),其中name为变量名,dimension为变量的维度。例如,定义一个3x1的整数变量x,可以写成:x = intvar(‘x’, 3, 1)。
semivar:使用方法为semivar(name, dimension),其中name为变量名,dimension为变量的维度。例如,定义一个2x2的半正定变量x,可以写成:x = semivar(‘x’, 2, 2)。
sos2:使用方法为sos2(variable),其中variable为二次型变量名。例如,定义一个二次型约束条件x1和x2在某一维度上至多只能同时为1,可以写成:sos2([x1, x2])。
geomean:使用方法为geomean(variables),其中variables为一组变量。例如,给定变量v1、v2、v3,计算它们的几何平均值,可以写成:geomean([v1, v2, v3])。
norm:使用方法为norm(matrix, type),其中matrix为矩阵,type为范数类型(1、2、inf、‘fro’)。例如,计算矩阵A的2范数,可以写成:norm(A, 2)。
bodeplot:使用方法为bodeplot(sys),其中sys为系统模型。例如,绘制系统模型G的Bode图,可以写成:bodeplot(G)。
bodeplot:使用方法为bodeplot(sys),其中sys为系统模型。例如,绘制系统模型G的Bode图,可以写成:bodeplot(G)。
下面是一些常用的函数的详细介绍和简单的例子:
sdpvar
:定义变量sdpvar x y % 定义两个变量
x = sdpvar(1,1); y = sdpvar(1,1); % 以上两行等价
constraints
:约束条件F = [x + y <= 1, x >= 0, y >= 0]; % 定义不等式约束
G = [x + y == 1, x >= 0, y >= 0]; % 定义等式约束
optimize
:求解最优解optimize(F, objective); % F为约束条件,objective为目标函数
value
:输出最优解value(x); value(y); % 输出变量x和y的最优解
% 定义变量
x = sdpvar(1);
y = sdpvar(1);
% 设置约束条件和目标函数
F = [x + y <= 1, x >= 0, y >= 0];
objective = -x - 2*y;
% 求解最优解
optimize(F,objective);
% 输出最优解
value(x)
value(y)
value(objective)
该例子求解的是一个线性规划问题,变量x和y满足不等式约束,目标是最大化目标函数-f(x,y)=-(x+2y)。
其中,optimize(F, objective)
函数求解最优解,value(x)
和value(y)
函数分别输出x和y的最优解,value(objective)
函数输出目标函数的最优解。
另外,YALMIP还提供了很多其他的函数,例如:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。