CHOL

柯列斯基分解

描述

[R=胆固醇(一种对对称正定矩阵进行因式分解一种变成上三角[R即满足= R ' * R。如果一种是不对称的话CHOL将矩阵视为对称的,只使用的对角三角形和上三角形一种

[R=胆固醇(一种三角形指定哪个三角因子一种在计算因式分解使用。例如,如果三角形“低”, 然后CHOL仅使用对角和降低的三角形部分一种生成一个下三角矩阵[R即满足一个= R * R '。的默认值三角形“上”

[[R国旗] = CHOL(___也返回输出国旗指示是否一种对称正定。您可以在以前的语法中使用任何输入参数组合。当您指定国旗输出,CHOL如果输入矩阵不是对称正定的,则不会产生误差。

  • 如果国旗= 0输入矩阵是对称正定的,因式分解是成功的。

  • 如果国旗不是零,则该输入矩阵是对称正定国旗是一个整数,指示主元位置的指标,其中因式分解失败。

[[R国旗P] = CHOL(小号另外返回一个排列矩阵P,这是一个稀疏矩阵的预排序小号获得的amd。如果国旗= 0, 然后小号对称是正定的吗[R是满足上三角矩阵R '* R = P' * S * P

[[R国旗P] = CHOL(___outputForm指定是否返回排列信息P作为一个矩阵或向量,使用任何在前面的语法输入参数组合。此选项仅适用于稀疏矩阵输入。例如,如果outputForm“向量”国旗= 0, 然后S(P,P)= R'* R。的默认值outputForm“矩阵”这样R '* R = P' * S * P

例子

全部收缩

使用CHOL对一个对称系数矩阵进行因式分解,然后利用切勒斯基因子求解一个线性方程组。

创建对角线上,正值对称矩阵。

A = [1 0 1;0 2 0;1 0 3]
A =3×31 0 1 0 2 0 1 0 3

计算矩阵的切尔斯基因子。

R = CHOL(A)
R =3×31.0000 0 1.0000 0 1.4142 0 0 0 1.4142

为方程右边创建一个向量 斧头 = b

b =和(2);

一种 = [R Ť [R 通过切列斯基分解,线性方程变为 [R Ť [R X = b 。求解X使用反斜杠操作。

X = R \(R'\ b)中
x =3×11.0000 1.0000 1.0000

计算矩阵的上、下切尔斯基分解并验证结果。

使用。创建一个6×6对称正定测试矩阵画廊功能。

A =画廊(“莱默”,6);

使用的上三角形计算Cholesky因子一种

R = CHOL(A)
R =6×60000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 000

验证上三角因子是否满足R'*R - A = 0,舍入误差。

范数(R'* R  -  A)
ans = 2.8886 e-16

现在,指定的“低”选项使用的下三角形计算Cholesky因子一种

L = CHOL(A,“低”
L =6×61.0000 0 0 0 0 0 0.5000 - 0.8660 0 0 0 0 0.2500 0.4330 0.5590 0.6614 0.3333 0.5774 0.7454 0 0 0 0 0 0.2000 0.3464 0.4472 0.5292 0.6000 0.1667 0.2887 0.3727 0.4410 0.5000 0.5528

验证下三角因子是否满足L * L” - A = 0,舍入误差。

范数(L * L”  -  A)
ans = 2.1158 e-16

使用CHOL当输入矩阵不是对称正定的时候,用两个输出来抑制误差。

创建二项式系数的5×5矩阵。这个矩阵是对称正定的,因此从最后一个元素中减去1,以确保它不再是正定的。

一个=帕斯卡(5);A(end) = A(end) - 1
A =5×51 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 4 10 20 35 1 5 15 35 69

计算Cholesky因子一种。如果。请指定两个输出,以避免生成错误一种是不是对称正定。

[R,国旗]=胆固醇(A)
R =4×41 1 1 1 0 1 2 3 0 1 3 0 0 1
国旗= 5

国旗为非零值,它给出当因式分解失败枢轴索引。CHOL能够计算q = flag-1 = 4行和列在遇到改变基质的部分正确地之前失败。

验证‘* R返回与之一致的四行和四列A(1:Q,1:Q)

q = flag-1;‘* R
ANS =4×41 1 1 1 2 3 4 1 3 6 10 1 4 10 20
A(1:Q,1:Q)
ANS =4×41 1 1 1 2 3 4 1 3 6 10 1 4 10 20

计算稀疏矩阵的乔列斯基因子,并使用置换输出创建的Cholesky因数具有较少的非零元素。

的基础上,创建一个稀疏的正定矩阵west0479矩阵。

加载west0479一个= west0479;S =“*;

计算矩阵两种不同的方式乔莱斯基因素。首先说明两个输出,然后指定三个输出,使行和列重新排序。

[R,国旗]=胆固醇(年代);(RP flagP P) =胆固醇(年代);

对于每一个计算,检查国旗= 0确认计算成功。

如果〜标志&&〜flagP DISP(“分解成功。”其他disp (“分解失败了。”结束
分解成功。

比较非零元素的个数CHOL(S)相对于重新排序的矩阵CHOL(P'* S * P)。最佳实践是使用的三种输出语法CHOL使用稀疏矩阵,因为对行和列重新排序可以极大地减少Cholesky因子中的非零个数。

副区(1,2,1)间谍(R)标题(的非零胆固醇(年代))副区(1,2,2)间谍(RP)标题(的非零胆固醇(P“* * P) '

使用“向量”的选择CHOL以向量而不是矩阵的形式返回排列信息。

创建一个稀疏的有限元矩阵。

S =画廊('wathen'10、10);间谍(S)

计算矩阵的Cholesky因子,并指定“向量”返回置换向量的选项p

[R,标志,P] = CHOL(S,“向量”);

验证国旗= 0,表示计算成功。

如果~国旗disp (“分解成功的。”其他disp (“分解失败了。”结束
分解成功。

验证S(P,P)= R'* R,舍入误差。

规范(S (p, p) - R * R,“摇来摇去”
ans = 2.1039 e-13

输入参数

全部收缩

输入矩阵。争论一种可以使用全存储或稀疏存储,但必须是正方形和对称正定的。

CHOL假设一种是对称的用于实矩阵或厄米特为复数矩阵。CHOL的上或下三角形一种的值来执行其计算三角形

数据类型:|
复数支持:万博1manbetx是的

稀疏矩阵输入。小号必须是平方对称正定的。

CHOL假设小号是对称的用于实矩阵或厄米特为复数矩阵。CHOL的上或下三角形小号的值来执行其计算三角形

数据类型:
复数支持:万博1manbetx是的

输入矩阵的三角因子,指定为“上”“低”。使用此选项来指定CHOL应该使用输入矩阵的上三角形或下三角形来计算因子分解。CHOL假设输入矩阵对于实矩阵是对称的,对于复矩阵是厄米矩阵。CHOL只使用上面或下面的三角形来执行计算。

使用“低”期权相当于打电话CHOL“上”选项和输入矩阵的转置,然后调换输出[R

例子:R =胆固醇(“低”)

排列输出的形状,指定为“矩阵”“向量”。此标志控制是否输出排列P以置换矩阵或置换向量的形式返回。

  • 如果国旗= 0, 然后小号对称是正定的吗P '* S * P = R' * R(如果P是一个矩阵),或S(P,P)= R'* R(如果p是一个向量)。

  • 如果国旗不为零,则小号是不是对称正定。[R是大小为上三角矩阵q——- - - - - -ñ,在那里Q =标志-1。第一L形区域q行和第一q‘* R同意那些P'* S * P(如果P是一个矩阵),或S(P,P)(如果p是一个向量)。

  • 如果“低”然后指定选项[R是一个可以替换的下三角矩阵吗‘* R* R '在以前的身份。

的乔莱斯基因素P'* S * P(如果P是一个矩阵),或S(P,P)(如果p是一个向量)倾向于比的Cholesky因子更稀疏小号

例子:(R,国旗,p) =胆固醇(年代,“矢量”)

输出参数

全部收缩

Cholesky因子,作为一个矩阵返回。

  • 如果[R是上三角吗= R ' * R。如果你指定P然后是稀疏矩阵的输出P '* S * P = R' * RS(P,P)= R'* R,取决于的值outputForm

  • 如果[R是下三角吗一个= R * R '。如果你指定P然后是稀疏矩阵的输出P '* S * P = R * R'S(P,P)= R * R”,取决于的值outputForm. .

  • 每当国旗不为零,[R只包含部分结果。国旗表示分解失败的主元位置,和[R包含部分完成分解。

对称正定标志,返回一个标量。

  • 如果国旗= 0,则输入矩阵是对称正定的。[R是上三角矩阵,使得‘* R =

  • 如果一种那么不是对称正定的吗国旗是一个正整数,指示在因式分解失败枢转位置,并且MATLAB®不会生成错误。[R是大小为上三角矩阵Q =标志-1这样R'* R = A(1:Q,1:Q)

  • 如果一种是稀疏的,那么[R是大小为上三角矩阵q——- - - - - -ñ如第一个l形区域q行和第一q‘* R同意那些一种小号

  • 如果“低”然后指定选项[R是一个可以替换的下三角矩阵吗‘* R* R '在以前的身份。

稀疏矩阵的置换,根据的值作为矩阵或向量返回outputForm。看到outputForm对于该输出所满足的恒等式的描述。

该排列矩阵是基于所计算的近似最小度排序amd。然而,这种预先排序可以不同于直接由amdCHOL稍稍改变来提高性能的顺序。

更多关于

全部收缩

对称正定矩阵

一种对称正定矩阵与所有正的特征值的对称矩阵。

对于任何实数可逆矩阵一种,你可以用乘积构造一个对称的正定矩阵B =“*。Cholesky分解说逆转这个公式,任何对称正定矩阵可以被分解到产品中吗‘* R

一种对称半正定矩阵被以类似的方式定义的,不同的是本征值都必须是正数或零。

正定和半正定矩阵之间的线在数值计算的上下文中模糊不清。它是罕见的特征值,以精确地等于零,但它们可以是数字零(的机器精度的数量级上)。为此原因,CHOL可以因式分解一个正半定矩阵,但是不能分解另一个具有相似特征值的矩阵。

提示

扩展功能

也可以看看

|||

主题

之前介绍过的R2006a