两种生成对称正定矩阵的方法
1. pascal()
P = pascal(n) 返回 n 阶帕斯卡矩阵。P 是一个对称正定矩阵,其整数项来自帕斯卡三角形。
帕斯卡矩阵有非常好的性质。首先各个矩阵中元素都是从1开始比较小的正整数,便于我们去验证。然后我们对其进行乔列斯基分解,结果是一个对合矩阵( A − 1 = A A^{-1}=A A−1=A)
matlab文档中的例子:
2.运用正交分解的思想
一个对称正定矩阵可以分解为: A = U ′ D U A=U'DU A=U′DU U为标准正交基向量组成的矩阵,D为对角阵且存储的是特征值。
X = diag(rand(N,1));
U = orth(rand(N,N));
A = U' * X * U
对于rand(N,N)我们可以这么理解,生成非满秩的矩阵的概率是非常小的,只要保证特征值都是正数,那生成的矩阵是为对称正定阵。
运用这种方法的方便之处在于可以比较灵活的调整矩阵的性质(特征值、正交基)