一、說明
本博客講述內容根據MIT線性代數第二十八課歸納而成。
MIT線性代數鏈接:http://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fdaishu.html
二、主要講述問題
1-如何判斷一個矩陣是正定矩陣
2-正定矩陣的最小值
3-正定矩陣的幾何解釋
三、如何判斷一個矩陣是正定矩陣
1-正定矩陣
一個矩陣是正定矩陣,那么必須要滿足以下的關系
(1)它必須是一個nXn的方陣(我們用符號A來表示)
(2)對於任意的一個向量x(不是每一個元素都是0), 都必須滿足這樣的一個條件:$x^{T}Ax>0$
2-正定矩陣具有的特點
(這個可以參考第二十六課內容,如果有時間我會補充)
(1)它的所有的主元都必須是大於0的
(2)它的所有的特征值都是大於0的(實際上,特征值和主元的符號是相同的,比如,如果主元有三個正的,兩個負的,那么特征值也是這樣)
(3)它的所有的子行列式都是大於0的。
至於什么是子行列式,我們可以看一下下面的例子:
對於一個矩陣:
$\begin{bmatrix}2 & 3 & 1\\ 0 & 2 & 2\\ 1 & 1 & 1\end{bmatrix}$
那么它的子行列式有:$\begin{bmatrix}2\end{bmatrix}$,
$\begin{bmatrix}2 & 3\\ 0& 2\end{bmatrix}$
$\begin{bmatrix} 2 & 3 & 1\\ 0 & 2 & 2\\ 1 & 1 & 1\end{bmatrix}$
3-如何判斷
根據上面的條件,那么自然而然就知道如何判斷一個矩陣是不是正定矩陣:
(1)只有所有的主元都是正的,那么這個矩陣是正定矩陣
(2)所有的特征值是正的,那么這個矩陣是正定矩陣
(3)這個矩陣的所有子行列式是正的,那么這個矩陣是正定矩陣
(4)如果對於矩陣A, $x^{T}Ax>0$ (這個是根據定義式出發)
4-一個例子
4.1對於一個二階矩陣$\begin{bmatrix}a & b\\ c & d\end{bmatrix}$,那么下面的四個條件都可以判斷:
(1) $\lambda _{1}>0, \lambda _{2}>0$
(2) $a>0, \frac{ac-bd}{a}>0$
(3)$a>0, ac-bd>0$
(4) $x^{T}Ax>0$
4.2如下面一個矩陣:$\begin{bmatrix}2 & 6\\ 6 & 18\end{bmatrix}$
我們可以看到,第一列和第二列存在一個倍數的關系,所以這是一個奇異矩陣。
奇異矩陣一定有一個特征值是0, 另外一個特征值就等於跡減去這個特征值(這里是根據特征值之和等於主對角線的元素之和,也就是跡)
所以另外一個特征值是:20。
可以看到,一個特征值是0,另外一個特征值大於0,這個時候我們說這個矩陣是一個半正定矩陣。
這個時候我們根據$x^{T}Ax$,看一下其得到的結果:
$x=\begin{bmatrix}x_{1}\\ x_{1}\end{bmatrix} $
$f(x_{1},x_{2})=\begin{bmatrix} x_{1}&x_{2} \end{bmatrix}\begin{bmatrix}2 &6 \\ 6 & 18\end{bmatrix}\begin{bmatrix}x_{1}\\ x_{2}\end{bmatrix}$
$f(x_{1},x_{2})=2x_{1}^{2}+12x_{1}x_{2}+18x_{2}^{2}$
這個時候函數就相當於:
$f(x,y)=2x^{2}+12xy+18y^{2}$
這個時候我們畫出它的圖像如下:
matlab代碼:
[x,y]=meshgrid(-100:0.1:100); z=2*x.^2+18*y.^2+12*x.*y; mesh(x,y,z); xlabel('x'),ylabel('y'),zlabel('z');
圖像如下:
可以看到,它在(0,0)位置的值是0,但是這個時候並不是一個最低點,所形成的曲面是一個馬鞍形的面。
四、幾何含義
其實其幾何含義我們在上面已經表示出來了。
4.1例子一
下面我們可以再舉出來一個例子:
對於一個二維矩陣:$\begin{bmatrix}2 &6 \\ 6& 7\end{bmatrix}$,這個時候我們得到的 $x^{T}Ax$函數為:
$f(x,y)=2x^{2}+12xy+7y^{2}$
也可以知道這是一個非正定矩陣,我們按照上面的方法畫出來,可以知道這也是一個馬鞍面。
這也說明了,當一個矩陣不是正定矩陣的時候,這個時候所得到的函數$x^{T}Ax$並不是每一處都是大於0的,也無法得到最小值
4.2 例子二
如果對於正定矩陣:$\begin{bmatrix}2 &6 \\ 6& 20\end{bmatrix}$
這個時候我們得到的函數是:
$f(x,y)=2x^{2}+12xy+20y^{2}$
我們得到下面的一個拋物面圖像:
我們可以看到,對於一個正定矩陣,這個時候所得到的函數每一處都是大於0的。
其最小值在(0,0)處,且根據函數極值的只是我們知道:
在該點的函數一次導數為0,二次導數大於0
4.2.1<最小值判斷>
對於一維函數來說是當其二次導數大於0的時候,一次函數等於0,這個時候函數存在極值。
而對於一個n維函數來說,只有當它的二階導數矩陣是正定的時候,這個時候這個n維函數才存在最小極值點(上面兩個例子已經說明了這一點)。
比如一個二階函數f(x,y),那么它的二階導數矩陣就是:
4.2.2利用配方法證明上述函數始終大於0:
我們可以利用配方法對於上面函數始終是大於0的做一個證明:
$f(x,y)=2x^{2}+12xy+20y^{2}\\=2(x+3y)^{2}+2y^{2}$
同時我們可以對矩陣$A=\begin{bmatrix}2 &6 \\ 6& 20\end{bmatrix}$做一個分解,分解為一個上三角矩陣(U)和一個下三角矩陣(L):
$A=\begin{bmatrix}1 & 0\\ 3 & 1\end{bmatrix}\begin{bmatrix}2 &6 \\ 0& 2\end{bmatrix}$
同時我們可以知道,這個矩陣的主元是:2, 2。
我們可以對比一下上面的函數和矩陣里面的系數。
這個時候我們可以先這樣一個事實:
1-矩陣的主元是配方法里面平方外面的系數。
2-置換矩陣的系數是配方法平方里面的系數。
實際上,高斯的配方法就是對於矩陣消元的一個過程。
4.3 例子三
對於這樣一個矩陣:
$A=\begin{bmatrix}2 &-1 &0 \\ -1 & 2 & -1\\ 0& -1 & 2\end{bmatrix}$
我們可以得到如下特點:
1-子行列式:
一階子行列式:2
二階子行列式:3
三階行列式:4
2-根據行列式。其實我們可以得到主元:
2,1.5, 4/3
3-特征值: $2+\sqrt{2},2-\sqrt{2},2$
4- $ x^{T}Ax$
$f(x,y,z)=2x^{2}+2y^{2}+2z^{2}-2x_{1}x_{2}-2x_{2}x_{3}$
這個時候如果我們令f = 1 去截取這個圖像(這是一個思維的圖像)的時候,我們可以得到一個橄欖球樣式的三維圖像。
代碼如下:
f = @(x,y,z)2*x.*x+2*y.*y+2*z.*z-2*x.*y-2*y.*z-1; % 函數表達式 [x,y,z] = meshgrid(-10:.2:10,-10:.2:10,-10:.2:10); % 畫圖范圍 v = f(x,y,z); h = patch(isosurface(x,y,z,v,0)); isonormals(x,y,z,v,h) set(h,'FaceColor','r','EdgeColor','none'); xlabel('x');ylabel('y');zlabel('z'); alpha(1) grid on; view([1,1,1]); axis equal; camlight; lighting gouraud
可以看到,這里存在存在一個長軸,一個中軸,一個短軸,整個物體相對於這三個軸中任意兩個所構成的平面對稱。
這三個軸就是特征向量的方向,三個軸的長度是特征值的大小。
並且是對應的。
這個時候我們可以得到,$A=Q\Lambda Q^{T}$,也與剛才我們的表述相符合。
其中Q是正交矩陣,其中因為A是對稱矩陣,所以將$A=Q\Lambda Q^{-1}$換成了$A=Q\Lambda Q^{T}$。
所以可以看到,對於一個函數,我們可以通過判斷二階矩陣的是否正定來判斷是否存在其是否存在最小值。
如果是正定矩陣,對應的函數有最小值,且整個函數都是大於0的。
如果不是,則(0,0)不是最小值。
並且當我們截取函數的時候(令f = 一個常數)
這個時候我們得到的往往是一個特殊的形狀,並且和特征值、特征向量相互聯系。
而且通過高斯配方法的時候,其系數往往和矩陣的LU分解有關。