胆固醇
柯列斯基分解
描述
(
指定是否返回排列信息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 =和(2);
自
柯列斯基分解的线性方程
。解出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.8886 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.1158 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) ')
重新排序与排列稀疏矩阵向量
使用“向量”
选择胆固醇
返回排列信息作为一个向量,而不是一个矩阵。
创建一个稀疏的有限元矩阵。
S =画廊(“wathen”10、10);间谍(S)
计算矩阵的柯列斯基因素,指定“向量”
选择返回一个排列向量p
。
(R,国旗,p) =胆固醇(年代,“向量”);
验证国旗= 0
,表明计算成功。
如果~国旗disp (“分解成功。”)其他的disp (“分解失败了。”)结束
分解成功。
验证年代(p, p) = R * R
在舍入误差。
规范(S (p, p) - R * R,“摇来摇去”)
ans = 2.1194 e-13
输入参数
一个
- - - - - -输入矩阵
矩阵
输入矩阵。论点一个
可以使用完整的或稀疏存储,但是必须广场和对称正定。
胆固醇
假设一个
为真正的矩阵是对称的或复杂的埃尔米特矩阵。胆固醇
只使用的上部或下部的三角形一个
执行计算,根据的价值三角形
。
数据类型:单
|双
复数的支持:金宝app是的
年代
- - - - - -稀疏的输入矩阵
稀疏矩阵
稀疏矩阵输入。年代
必须广场和对称正定。
胆固醇
假设年代
为真正的矩阵是对称的或复杂的埃尔米特矩阵。胆固醇
只使用的上部或下部的三角形年代
执行计算,根据的价值三角形
。
数据类型:双
复数的支持:金宝app是的
三角形
- - - - - -输入矩阵的三角因素
“上”
(默认)|“低”
输入矩阵的三角因素,指定为“上”
或“低”
。使用这个选项来指定胆固醇
应该使用输入的上或下三角矩阵计算分解。胆固醇
假定输入矩阵是对称的,真实的或复杂的埃尔米特矩阵。胆固醇
只使用上或下三角来执行其计算。
使用“低”
选择是相当于调用胆固醇
与“上”
选项和输入矩阵的转置,然后移调的输出R
。
例子:R =胆固醇(“低”)
outputForm
- - - - - -的形状排列输出
“矩阵”
(默认)|“向量”
的形状排列输出,指定为“矩阵”
或“向量”
。这个标志控制是否排列输出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 ' * 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 '
在前面的身份。
P
——排列稀疏矩阵
矩阵|向量
排列为稀疏矩阵,作为一个矩阵或向量返回不同的值outputForm
。看到outputForm
身份的描述,这个输出满足。
这个排列矩阵是基于近似最小程度排序计算amd
。然而,这预订可以不同于一个直接获得amd
自胆固醇
稍微改变了顺序以提高性能。
更多关于
对称正定矩阵
一个对称正定矩阵是一个对称矩阵与所有积极的特征值。
对于任何真正的可逆矩阵一个
,您可以构建一个对称正定矩阵与产品B =“*
。柯列斯基分解的逆转这个公式说任何对称正定矩阵B
可以被分解到产品‘* R
。
一个对称半正定矩阵是定义在一个相似的方式,除了特征值都必须是正数或零。
正定和半正定矩阵之间的界线是模糊的数字计算。是罕见的特征值等于零,但他们可以是数字0(机器的精度)。由于这个原因,胆固醇
可以因式分解一个半正定矩阵,但失败与另一个矩阵,特征值非常相似。
提示
使用
胆固醇
(而不是eig
)有效地判断矩阵是对称正定的。看到判断矩阵是对称正定的为更多的信息。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
稀疏矩阵的输入,必须C99标准数学库或更高版本。只有前两个语法
胆固醇(A)
和胆固醇(三角形)
和一个输出参数支持。金宝app
GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。
使用笔记和限制:
只有前两个语法
胆固醇(A)
和胆固醇(三角形)
和一个输出参数支持。金宝app
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
分布式阵列
分区大数组在内存使用并行计算集群的工具箱相结合™。
之前介绍过的R2006a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。