我正在尝试生成一个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有人能告诉我这里出了什么问题吗?提前感谢您的帮助。
发布于 2013-05-11 06:43:49
这是不可能的,因为没有那种形式的矩阵是正定的。
声明:给定一个1xn (实数,n>1)矩阵A,对称矩阵M= A'A不是正定的:
证明:By definition,M是正定的当且仅当x‘Ax对所有非零x都是正定的当且仅当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‘M= 0,因此M不是正定的。
可以直接应用于复数情况的另一种证明是:设A是1xn (复数,n>1)矩阵。正定性意味着可逆性,因此M= A*A必须有满秩才是正定的。它显然是秩为1的,所以它不是可逆的,因此也不是正定的。
发布于 2013-11-29 07:45:30
下面是我创建SPD矩阵的例程
1)创建随机对称矩阵
2)确保所有对角线的值大于它们所在的任何行或列的总和。
通常对于( 1 ),我使用0到1之间的随机数。然后很容易找出一个数字来用于每个对角线条目。
干杯,
https://stackoverflow.com/questions/16491375
复制相似问题