反例:
A =
2 -4
-4 10
eigA =
0.3431
11.6569
A 是对称正定阵
B =
5 -4
-4 4
eigB =
0.4689
8.5311
B 是对称正定阵
AB =
26 -24
-60 56
S = (AB+BA)/2
26 -42
-42 56
eigS =
-3.5982
85.5982
可见 AB 的对称部分不是正定的,因而 AB 不是正定的。
寻找类似以上反例的 matlab 代码如下:
n = 2;
for i = 1:100000
P = randi([-3 3],n);
Q = randi([-3 3],n);
A = P'*P
eigA = eig(A)
B = Q'*Q
eigB = eig(B)
AB = A*B
S = (A*B+B*A)/2
e = eig(S)
if sum(e<-1e-6)>0
fprintf('found\n')
break
end
end