cholesky分解:
如果矩陣x是對稱正定的,則cholesky分解將矩陣x分解成乙個下三角矩陣和上三角矩陣的乘積。設上三角矩陣為r,則下三角矩陣為其轉置,即x=r'r。
matlab函式chol(x)用於對矩陣x進行cholesky分解,
其呼叫格式為:
r=chol(x):產生乙個上三角陣r,使r'r=x。若x為非對稱正定,則輸出乙個出錯資訊。
[r,p]=chol(x):這個命令格式將不輸出出錯資訊。當x為對稱正定的,則p=0,r與上述格式得到的結果相同;否則p為乙個正整數。如果x為滿秩矩陣,則r為乙個階數為q=p-1的上三角陣,且滿足r'r=x(1:q,1:q)。
實現cholesky分解後,線性方程組ax=b變成r『rx=b,所以x=r\(r』\b)。
例1:a=[1 2 3;2 8 8;3 8 35]
輸出:a =
1 2 3
2 8 8
3 8 35
u=chol(a)
輸出:u =
1 2 3
0 2 1
0 0 5
u'輸出:
ans =
1 0 0
2 2 0
3 1 5
驗證u'*u
輸出:ans =
1 2 3
2 8 8
3 8 35
例2: 用cholesky分解求解線性方程組。
命令如下:
a=[2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4];
b=[13,-9,6,0]';
r=chol(a)
??? error using ==> chol
matrix must be positive definite
命令執行時,出現錯誤資訊,說明a為非正定矩陣。
ps:正定矩陣(乙個n×n的實對稱矩陣m是正定的,當且僅當對於所有的非零實係數向量z,都有ztmz > 0。其中zt表示z的轉置。)
Matlab中size函式用法
size 獲取矩陣的行數和列數 1 s size a 當只有乙個輸出引數時,返回乙個行向量,該行向量的第乙個元素時矩陣的行數,第二個元素是矩陣的列數。2 r,c size a 當有兩個輸出引數時,size函式將矩陣的行數返回到第乙個輸出變數r,將矩陣的列數返回到第二個輸出變數c。3 size a,n...
Matlab中find函式用法
matlab中find函式用法 1.對官網上用法做一下簡單說明。m,n,v find logical expression,amount,direction m表示返回的行標,n表示返回的列下標,v表示在原判斷矩陣滿足條件位置數值,logical epression代表邏輯判斷表示式,amount表...
Matlab中 imadjust函式用法
imadjust在數字影象處理中用於進行影象的灰度變換 調節灰度影象的亮度或彩色影象的顏色矩陣 imadjust函式用法如下 j imadjust i j imadjust i,low in high in low out high out j imadjust i,low in high in l...