matlab中chol函式用法

2021-07-09 02:36:57 字數 1129 閱讀 3585

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...