简述
本文主要讲述的是MATLAB中的sqrtm()函数和chol()函数,做一个简短的个人笔记。
用法
sqrtm()是矩阵开方,针对半正定矩阵。chol()是对矩阵进行乔利斯基分解,要求输入矩阵必须是正定矩阵(可用作正定矩阵的判定方式)。
两个函数的另一个使用区别就是,倘若你要获得的结果满足式(1),那就使用sqrtm()函数,代码为:
// sqrtm()
B=sqrtm(A);
A
=
B
∗
B
(1)
A=B*B \tag{1}
A=B∗B(1)
倘若要满足式(2),就使用chol()函数。
式(2a)使用乔利斯基分解的下三角矩阵,代码书写为:
// chol(),取下三角矩阵
C=chol(A,"lower");
A = C ∗ C T (2a) A=C*C^T \tag{2a} A=C∗CT(2a)
式(2b)使用乔利斯基分解的上三角矩阵,由于MATLAB的chol()函数默认返回上三角矩阵,故代码书写为:
// chol(),取上三角矩阵
C=chol(A);
A = C T ∗ C (2b) A=C^T*C \tag{2b} A=CT∗C(2b)
以上是我简短的关于sqrtm()和chol()的使用方法的介绍,若有错误欢迎指正,同时也欢迎大家与我讨论它俩的具体区别