主要内容

胆固醇

柯列斯基分解

描述

例子

R=胆固醇(一个)因式分解对称正定矩阵一个成一个上三角R满足= R ' * R。如果一个非对称,那么胆固醇将矩阵对称和只使用对角线上的三角形一个

例子

R=胆固醇(一个,三角形)指定的三角因素一个在计算分解使用。例如,如果三角形“低”,然后胆固醇只使用对角线和下三角的一部分一个产生一个下三角矩阵R满足一个= R * R '。的默认值三角形“上”

例子

(R,国旗)=胆固醇(___)还返回的输出国旗指示是否一个对称正定。您可以使用任何输入参数的组合在以前的语法。当你指定国旗输出,胆固醇不会生成一个错误如果输入矩阵不对称正定。

  • 如果国旗= 0然后输入矩阵是对称正定和分解是成功的。

  • 如果国旗不为零,那么输入矩阵对称正定和国旗是一个整数表示主位置的索引分解失败了。

例子

(R,国旗,P)=胆固醇(年代)此外返回一个置换矩阵P,这是一个稀疏矩阵的预订年代获得的amd。如果国旗= 0,然后年代是对称的正定和R是一个上三角矩阵满足吗‘* R = P ' S * P

例子

(R,国旗,P)=胆固醇(___,outputForm)指定是否返回排列信息P作为一个矩阵或向量,使用任何输入参数组合在以前的语法。此选项只用于稀疏矩阵输入。例如,如果outputForm“向量”国旗= 0,然后年代(p, p) = R * R。的默认值outputForm“矩阵”这样‘* R = P ' S * P

例子

全部折叠

使用胆固醇因式分解对称系数矩阵,然后使用柯列斯基因素解决线性系统。

创建一个对称矩阵与积极的对角线上的值。

一个= [1 0 1;0 2 0;1 0 3)
一个=3×31 0 1 0 2 0 1 0 3

计算矩阵的柯列斯基因素。

R =胆固醇(A)
R =3×31.4142 1.4142 1.0000 1.0000 0 0 0 0 0

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

b =和(2);

一个 = R T R 柯列斯基分解的线性方程 R T R x = b 。解出x使用反斜杠符。

x = R \ (R \ b)
x =3×11.0000 1.0000 1.0000

计算上下柯列斯基矩阵的分解和验证结果。

创建一个6-by-6对称正定矩阵测试使用画廊函数。

一个=画廊(“黄土”6);

计算使用的上三角的柯列斯基因素一个

R =胆固醇(A)
R =6×61.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.8660 0.5774 0.4330 0.3464 0.2887 0 0 0.7454 0.5590 0.4472 0.3727 0 0 0 0 0 0 0 0.6614 0.5292 0.4410 0.5528 0.6000 - 0.5000 0 0 0 0 0

验证上三角因子满足‘* R = 0在舍入误差。

规范(‘* R - A)
ans = 2.5801 e-16

现在,指定“低”选择计算使用低三角形的柯列斯基因素一个

L =胆固醇(,“低”)
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 ' - = 0在舍入误差。

规范(L * L - A)
ans = 2.5801 e-16

使用胆固醇有两个输出抑制错误当输入矩阵不对称正定。

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

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

计算的柯列斯基因素一个。如果指定两个输出,以避免产生错误一个不对称正定。

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

国旗是零,它给出了主指数分解失败的地方。胆固醇能够计算q = flag-1 = 4行和列正确之前失败当遇到矩阵改变的一部分。

验证‘* R返回四行和列同意(1:问,1:问)

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

计算的柯列斯基因素稀疏矩阵,使用排列输出创建一个用更少的非零柯列斯基因素。

创建一个基于稀疏正定矩阵west0479矩阵。

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

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

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

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

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

非零的数量进行比较胆固醇(S)和重新排序矩阵胆固醇(P“* * P)。最佳实践是使用的三个输出语法胆固醇用稀疏矩阵,因为重新排序的行和列可以大大减少非零的柯列斯基因素。

次要情节(1、2、1)间谍(R)标题(的非零胆固醇(年代)次要情节(1、2、2)间谍(RP)标题(的非零胆固醇(P“* * P) ')

图包含2轴对象。坐标轴对象1与标题非零胆固醇(S)包含一个类型的对象。坐标轴对象2与标题零胆固醇(P“* * P)包含一个类型的对象。

使用“向量”选择胆固醇返回排列信息作为一个向量,而不是一个矩阵。

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

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

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。

计算矩阵的柯列斯基因素,指定“向量”选择返回一个排列向量p

(R,国旗,p) =胆固醇(年代,“向量”);

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

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

验证年代(p, p) = R * R在舍入误差。

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

输入参数

全部折叠

输入矩阵。论点一个可以使用完整的或稀疏存储,但是必须广场和对称正定。

胆固醇假设一个为真正的矩阵是对称的或复杂的埃尔米特矩阵。胆固醇只使用的上部或下部的三角形一个执行计算,根据的价值三角形

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

稀疏矩阵输入。年代必须广场和对称正定。

胆固醇假设年代为真正的矩阵是对称的或复杂的埃尔米特矩阵。胆固醇只使用的上部或下部的三角形年代执行计算,根据的价值三角形

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

输入矩阵的三角因素,指定为“上”“低”。使用这个选项来指定胆固醇应该使用输入的上或下三角矩阵计算分解。胆固醇假定输入矩阵是对称的,真实的或复杂的埃尔米特矩阵。胆固醇只使用上或下三角来执行其计算。

使用“低”选择是相当于调用胆固醇“上”选项和输入矩阵的转置,然后移调的输出R

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

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

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

  • 如果国旗不为零呢年代不对称正定。R是一个上三角矩阵的大小——- - - - - -n,在那里q = flag-1。第一个的l型地区行和第一‘* R同意的人P ' S * P(如果P是一个矩阵)或S (p, p)(如果p是一个向量)。

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

的柯列斯基因素P ' S * P(如果P是一个矩阵)或S (p, p)(如果p是一个向量)比的柯列斯基因素往往是稀疏的吗年代

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

输出参数

全部折叠

柯列斯基因素,作为一个矩阵返回。

  • 如果R是上三角,然后= R ' * R。如果你指定P输出为稀疏矩阵,然后P ' *年代* P = R * R年代(p, p) = R * R,这取决于的价值outputForm

  • 如果R下三角,然后一个= R * R '。如果你指定P输出为稀疏矩阵,然后P ' * * P = R * R 'S (p, p) = R * R ',这取决于的价值outputForm。。

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

对称正定国旗,作为一个标量返回。

  • 如果国旗= 0,然后输入矩阵是对称正定的。R是一个上三角矩阵,这样吗‘* R =

  • 如果一个不对称的正定,呢国旗是一个正整数分解的枢轴位置指示失败,和MATLAB®不产生一个错误。R是一个上三角矩阵的大小q = flag-1这样‘* R =(1:问,1:问)

  • 如果一个是稀疏的,那么R是一个上三角矩阵的大小——- - - - - -n这样的l型区域行和第一‘* R同意的人一个年代

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

排列为稀疏矩阵,作为一个矩阵或向量返回不同的值outputForm。看到outputForm身份的描述,这个输出满足。

这个排列矩阵是基于近似最小程度排序计算amd。然而,这预订可以不同于一个直接获得amd胆固醇稍微改变了顺序以提高性能。

更多关于

全部折叠

对称正定矩阵

一个对称正定矩阵是一个对称矩阵与所有积极的特征值。

对于任何真正的可逆矩阵一个,您可以构建一个对称正定矩阵与产品B =“*。柯列斯基分解的逆转这个公式说任何对称正定矩阵B可以被分解到产品‘* R

一个对称半正定矩阵是定义在一个相似的方式,除了特征值都必须是正数或零。

正定和半正定矩阵之间的界线是模糊的数字计算。是罕见的特征值等于零,但他们可以是数字0(机器的精度)。由于这个原因,胆固醇可以因式分解一个半正定矩阵,但失败与另一个矩阵,特征值非常相似。

提示

引用

[1]安德森,E。艾德。LAPACK用户指南。第三。软件环境,工具。费城:工业与应用数学学会,1999年。https://doi.org/10.1137/1.9780898719604

[2],延庆,蒂莫西·a·戴维斯,威廉·w·海格,Sivasankaran Rajamanickam。“887年算法:CHOLMOD Supernodal稀疏的柯列斯基分解和更新/ Downdate。”ACM交易的数学软件35岁,没有。3(2008年10月):1 - 14。https://doi.org/10.1145/1391989.1391995

扩展功能

版本历史

之前介绍过的R2006a