常用命令
*sdpvar:SDP变量(YALMIP变量)
*sdpsettings:SDP设置(YALMIP设置)
如:
assign(x,[1 23]);assign(y,[4 5 6]);
slovesdp(F,obj,sdpsettings(‘slover’,’mosek’,’usex0′,1));%用mosek求解,使用初始解x=[12 3]
* solvesdp:求解命令(另外,solvemp,solvemoment,slovesos)
monolist:产生不超过一定阶数的多项式,在SDP Relaxation中很有用
polynomial:产生多项式
plot:画图,尤其是画可行域时很方便
sdisplay:sysbolic display 显示符号化的式子,如多项式、单项式
sparse:产生稀疏矩阵
blkvar: 分块矩阵变量类型
blkdiag:分块对角矩阵
binvar: 二值变量
intvar: 整数变量
uncertain: 声明不确定变量(参数),在鲁棒优化中有用
assign:赋值
coefficients:得到表达式的系数、base等信息
double:抽取变量的值
is:测试变量或约束的属性;ismemeber(x,Y):约束x是Y中的一个元素
linerize: 线性化(tylor)
jacobian: jacobian矩阵
hessian: hession矩阵
sparse: 产生稀疏矩阵
entropy: -sum(x.*log(x)) geomean:几何均值形式 logdet:logdet形式logistic:1./(1+exp(-x)) logsumexp:log(sum(exp(x)))
nnz: number of non-zeros
binary:声明变量是binary,类似binvar;integer:声明变量是integer,类似intvar
checkset:检查约束条件被满足的情况
cone: 产生一个(二阶)锥(约束)
cut: 产生用户自定义的cut,与普通约束的区别在于:分支定界中不用于计算upperbound,仅用于改善relaxation。
dilate(扩张):在Robust SDP中应用广泛,在YALMIP的Robust SDPframework中,要求SDP约束对uncertain变量要仿射依赖,但很多时候,这种
依赖关系可能不是如此简单,而是多项式依赖,最近发展的处理技巧是matrixdilations,把多项式依赖化为仿射依赖,代价是增大了SDP本身
的规模和带来更大的保守程度。dilate可以把这种多项式依赖扩张为放射依赖。详见YALMIP Wiki
dual:抽取约束对应的对偶变量的值 dualize:得到对偶模型
hull:得到一组约束的凸包
rank(x):x的秩
robustify:产生鲁棒对等式
set: 可用于产生一个/组约束,现在多用[,]更方便地使用。
sos:声明一个多项式是sos(约束)
sosd: sos decomposition
export:把模型输出为某个求解器能够使用的形式,同时可以通过输出参数来管理YALMIP与external解在表示上不一致的问题
ops = sdpsettings(‘solver’,’sedumi’,’remove’,1);
[model,recoverymodel] = export([F, trace(P)==10],obj,ops);
[x,y] = sedumi(model.A,model.b,model.C,model.K);
z = recoverymodel.x_equ + recoverymodel.H*y;
assign(recover(recoverymodel.used_variables),z);
saveampl:把YALMIP模型输出为AMPL模型并保存到文件上
savesdpafile:把YALMIP模型输出为SDPA模型并保存到文件上
yalmip(‘clear’),yalmip(‘version’), yalmip(‘info’):清楚YALMIP内部对象清除;显示YALMIP版本信息;显示YALMIP更多信息
yalmipdemo:运行yalmip的一些示例
yalmiptest:测试yalmip目前可用状态
yalmiperror:显示yalmip各个错误码对应的错误信息,也可以单独指定一个错误码
clean:清除数值上不重要的项,如把10^(-7)等作为0清楚掉
版权声明:本文为qq_15651815原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。