我正在尝试生成尺寸为8x8的正定矩阵(A'*A)
。
其中A是1x8。
我为许多随机生成的矩阵A尝试了它但无法生成它。
octave-3.6.1.exe:166> A= (rand(1,8)+rand(1,8)*1i);
octave-3.6.1.exe:167> chol(A'*A);
error: chol: input matrix must be positive definite
任何人都可以告诉我这里出了什么问题。感谢您的帮助。
答案 0 :(得分:4)
不可能这样做,因为没有那种形式的矩阵是肯定的。
声明:给定1xn(实数,n> 1)矩阵A,对称矩阵M = A'A不是正定的:
证明: By definition,如果x'Mx>则M为正定。 0表示所有非零x。即,iff x'A'Ax =(Ax)'Ax =(Ax)^ 2 =(A_1 x_1 + ... + A_n x_n)> 0表示所有非零x。
由于实数值A_i是linearly dependent,所以存在x_i,而不是全零,使得A_1 x_1 + ... + A_n x_n = 0.我们发现非零向量x使得x'Mx = 0,所以M不是正定的。
可以直接应用于复杂情况的不同证明是:设A是1xn(复数,n> 1)矩阵。正定性意味着可逆性,因此M = A * A必须具有满秩才能为正定。它显然具有等级1,所以它不可逆,因此不是肯定的。
答案 1 :(得分:0)
以下是我常规创建SPD矩阵的方法
1)创建随机Symetric矩阵 2)确保所有对角线值都大于它们出现的任何行或列的总和。
通常对于(1)我使用0到1之间的随机数。然后很容易找出用于每个对角线条目的数字。
干杯,