2

我正在尝试生成一个尺寸为 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

谁能告诉我这里出了什么问题。我在这里先向您的帮助表示感谢。

4

2 回答 2

4

这是不可能的,因为没有那种形式的矩阵是正定的。

声明:给定一个 1xn(实数,n>1)矩阵 A,对称矩阵 M = A'A 不是正定矩阵:

证明: 根据定义,M 是正定的,当且仅当 x'Mx > 0 对于所有非零 x。也就是说,对于所有非零 x,如果 x'A'Ax = (Ax)'Ax = (Ax)^2 = (A_1 x_1 + ... + A_n x_n) > 0。

由于实数值 A_i 是线性相关的,因此存在 x_i,并非全为零,因此 A_1 x_1 + ... + A_n x_n = 0。我们找到了一个非零向量 x,使得 x'Mx = 0,所以 M 不是肯定的。

可以直接应用于复杂情况的不同证明是:设 A 是 1xn(复数,n>1)矩阵。正定意味着可逆性,因此 M = A*A 必须具有满秩才能是正定的。它显然具有等级 1,因此它不可逆,因此不是正定的。

于 2013-05-10T22:43:49.497 回答
1

这是我通常如何创建 SPD 矩阵

1)创建一个随机对称矩阵
2)确保所有对角线值都大于它们出现的任何行或列的总和。

通常对于(1)我使用 0 到 1 之间的随机数。然后很容易找出每个对角线条目使用的数字。

干杯,

于 2013-11-28T23:45:29.743 回答