YALMIP学习总结

  • Post author:
  • Post category:其他







常用命令








*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 版权协议,转载请附上原文出处链接和本声明。