克羅內克積 (Kronecker product) 在線性矩陣不等式 (LMI) 中怎么描述


1. Kronecker 積的定義及性質

如果\(A, B\)分別是階數為\(m\times n, p\times q\)的矩陣, 那么\(A\)\(B\)的Kronecker積\(A\bigotimes B\)是階數為\(mp\times nq\)的矩陣. \(A\)\(B\)的Kronecker積為

\[A\bigotimes B= \begin{pmatrix} a_{11}B & \cdots & a_{1n}B\\ \vdots & \ddots & \vdots\\ a_{m1}B & \cdots & a_{mn}B \end{pmatrix}. \]

性質:
文獻 [1] 第 280 頁, 給出了 Kronecker 積的一個性質:

\[(A_1\bigotimes B_1)(A_2\bigotimes B_2) = (A_1A_2) \bigotimes (B_1B_2). \]

(Kronecker 積還有很多有用的性質, 這里只寫出下文要用到的一條)

2. Kronecker 積在 LMI 中舉例

如果 \(\bigotimes\) 兩側均為已知矩陣,那么用MATLAB中的kron函數計算。下文中處理 \(\bigotimes\) 的右側含有未知矩陣的情形,假設 \(X\) 為所求未知矩陣.

2.1 形為 \(A\bigotimes X<0\) 的 LMI

處理方法1:
\(A = (a_{ij})_{2\times 2}\) 為已知矩陣, \(X = (x_{ij})_{2\times 2}\) 為決策變量且 \(X\) 為對稱陣. 假設 LMI 中出現項 \(A\bigotimes X\), 則

\[A\bigotimes X= \begin{pmatrix} a_{11}X & a_{12}X\\ a_{21}X & a_{22}X \end{pmatrix}= \begin{pmatrix} a_{11} & 0 & a_{12} & 0 \\ 0 & a_{21} & 0 & a_{22} \end{pmatrix} \begin{pmatrix} X & O \\ X & O\\ O & X \\ O & X \end{pmatrix}. \]

於是, 在描述線性矩陣不等式 \(A\bigotimes X<0\) 時, 就可以用bigXbigA來代替這個乘積:

% 假設A在本行之前已定義
bigA = [A(1,1) 0 A(1,2) 0; 0 A(2,1) 0 A(2,2)]; % 已知矩陣
[X, ~, sX] = lmivar(1, [2 1]); % 定義決策變量 X
bigX = lmivar(3, [sX O; sX O; O sX; O sX]); % 定義組合矩陣 bigX
lmiterm([1 1 1 bigX], bigA, 1) % 描述LMI

其中O 是與 \(X\) 同維的零矩陣 (注意區分字母O和數字0). 上面的定義[X, ~, sX] 中, X 保存矩陣 \(X\) 的值, sX 保存矩陣 \(X\) 的結構, 所以如果在其他部分還用到了矩陣 \(X\), 那么

  • (1) 若需要用 \(X\) 拼接出其他矩陣, 則使用sX, 即使用 \(X\) 的結構進行拼接;
  • (2) 若描述包含 \(X\) 的項 (矩陣直接相乘的項,不包含 Kronecker 積), 則使用X.

這種處理方式的關鍵是找到bigXbigA\(A\bigotimes X\) 分解, 對於維數較高的情形,找出分解會非常困難, 所以介紹方法2.
處理方法2:
利用第 1 節中的性質, 我們有

\[A\bigotimes X = (AI_1)\bigotimes(I_2X) = (A\bigotimes I_2)(I_1\bigotimes X), \]

其中 \(I_1, I_2\) 為適當維數的單位陣 (更確切地說, \(I_1\)的維數等於\(A\) 的列數, \(I_2\) 的維數等於 \(X\) 的行數). 由於 \(A\bigotimes I_2\) 為已知矩陣, 所以只需處理\(I_1\bigotimes X\) 即可:

\[I_1\bigotimes X = \begin{pmatrix} X & &\\ &\ddots &\\ & &X \end{pmatrix}. \]

不妨設 \(I_1, X\) 均為2階矩陣, 則這一項可如下處理:

% 定義變量
[X, ~, sX] = lmivar(1, [2 1]);
bigX = lmivar(3, [sX O; O sX]);
% 描述LMI
lmiterm([1 1 1 bigX], 1, 1)

2.2 形為 \(A\bigotimes (BX)<0\) 的 LMI

在LMI \(A\bigotimes (BX)<0\), \(A,B\) 為已知矩陣, \(X\) 為未知矩陣. 由第 1 節性質可知

\[A\bigotimes (BX) = (AI)\bigotimes (BX) = (A\bigotimes B)(I \bigotimes X), \]

上式中 \(I\) 表示適當維數的單位陣, \(A\bigotimes B\) 為已知矩陣, 只需對 \(I \bigotimes X\) 按照 2.1 中的方法處理.

3. 說明

  1. 在定義bigX時,不能把 \(A\) 作為系數直接乘到X上,原因見博文Matlab中使用LMI toolboxLMI, 鏈接 https://blog.csdn.net/qq_28093585/article/details/69358180,其中一個例子如下:
setlmis([])
[R,~,sR] = lmivar(1,[3 1]);
[P,~,sP] = lmivar(1,[3 1]);
A = [2,0,0;0,2,0;0,0,2];
[ph1,~,sph1] = lmivar(3,A*sR); % 錯誤, 不會報錯, 結果也不等於A*變量R
[ph2,~,sph2] = lmivar(3,2*sR); % 錯誤, 不會報錯, 結果也不等於變量R的2倍
[ph3,~,sph3] = lmivar(3,-sR); % 正確, 結果會等於-R
[ph4,~,sph4] = lmivar(3,sR'); % 正確, 結果會等於R的轉置

參考文獻

[1] 程雲鵬, 張凱院, 徐仲. 矩陣論 (第四版). 西安: 西北工業大學出版社, 2013.

本文為Beta2187原創博文,地址為https://www.cnblogs.com/beta2187/p/B1924.html,未經本人允許,禁止轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM