yalmip一共有三種方式創(chuàng)建決策變量,分別為:
sdpvar-創(chuàng)建實數型決策變量
intbar-創(chuàng)建整數型決策變量
binvar-創(chuàng)建0/1型決策變量
sdpvar:定義象征變量。
語法:
x=sdpvar(n)
x=sdpvar(n,m)
x=sdpvar(n,m,'type')
x=sdpvar(n,m,'type','field')
x=sdpvar(dim1,dim2,dim3,...,dimn,'type','field')
sdpvar x
例子:
定義正方形的實數對陣矩陣如下:
P=sdpvar(n,n)% SYMMETRIC!
若是需要定義一個對陣矩陣或是標量,上面的命令也可以通過一個參數進行簡化定義:
P=sdpvar(n)% SYMMETRIC!
通過使用詳細的注釋也可定義同樣的矩陣:
P=sdpvar(n,n,'symmetric')
定義全參數矩陣(非必須對陣)需要給定第三個參數:
P=sdpvar(n,n,'full')
定義一個正方形復數全參數矩陣:
P=sdpvar(n,n,'full','complex')
第三個和第四個參數可以簡化為如下形式:
P=sdpvar(n,n,'sy','co')
很多用戶在一開始很簡單的事情上,比如定義一個對角變量,遇到困難。請記住在使用yalmip時幾乎所有matlab操作符都適用于sdpvar對象。今后,用如下命令定義對角變量:
sdpvar x y z(1,1) u(2,2) v(2,3,'full','complex')
或是 漢克矩陣:
X=hankel(sdpvar(n,1));
特定情況下需要幾個相同變量,通常的方式市使用循環(huán)語句實現:
fori=1:100;
X{i}=sdpvar(5,5);
end
更方便的方式是使用維度賦值了的向量(不會翻譯:vector valued dimensions)
X=sdpvar(5*ones(1,100),5*ones(1,100));
定義一個3維變量,其中每一個面的2個維度都是對稱的:
X=sdpvar(3,3,3)
X(:,:,1)
Linear matrix variable 3x3 (symmetric,real,6 variables)
定義一個4維變量,其中第一個2維的每個面都是全參數化。
X=sdpvar(3,3,3,3,'full')
X(:,:,1,1)
Linear matrix variable 3x3 (full,real,9 variables)