for example
N=10;X = diag(rand(N,1));
U = orth(rand(N,N));
A = U' * X * U
A =
0.5666 -0.0315 0.0207 -0.0577 0.0054 0.0037 0.0083 -0.0172 0.1059 0.2598
-0.0315 0.5382 -0.0414 -0.1522 0.0826 0.0157 -0.1921 -0.1390 0.0022 0.0675
0.0207 -0.0414 0.6717 0.0413 -0.0835 -0.1014 -0.1238 0.1073 0.0778 0.1212
-0.0577 -0.1522 0.0413 0.6187 0.0454 -0.0132 0.0521 -0.1371 0.0206 -0.0642
0.0054 0.0826 -0.0835 0.0454 0.6076 -0.1490 -0.0443 0.0384 0.1469 0.0859
0.0037 0.0157 -0.1014 -0.0132 -0.1490 0.5962 -0.0034 0.0243 0.1871 0.0730
0.0083 -0.1921 -0.1238 0.0521 -0.0443 -0.0034 0.6267 0.0706 -0.0357 0.0184
-0.0172 -0.1390 0.1073 -0.1371 0.0384 0.0243 0.0706 0.5312 -0.0431 0.0270
0.1059 0.0022 0.0778 0.0206 0.1469 0.1871 -0.0357 -0.0431 0.5159 -0.0985
0.2598 0.0675 0.1212 -0.0642 0.0859 0.0730 0.0184 0.0270 -0.0985 0.4023
判断矩阵是否正定
[D p]=chol(A)
D =
0.7527 -0.0418 0.0275 -0.0767 0.0071 0.0049 0.0110 -0.0229 0.1407 0.3451
0 0.7324 -0.0550 -0.2122 0.1131 0.0218 -0.2617 -0.1911 0.0110 0.1118
0 0 0.8173 0.0389 -0.0947 -0.1228 -0.1694 0.1193 0.0912 0.1442
0 0 0 0.7525 0.0978 -0.0045 0.0052 -0.2445 0.0401 -0.0260
0 0 0 0 0.7591 -0.2143 -0.0413 0.1256 0.1967 0.1146
0 0 0 0 0 0.7312 -0.0375 0.0944 0.3279 0.1519
0 0 0 0 0 0 0.7254 0.0703 0.0018 0.1088
0 0 0 0 0 0 0 0.6249 -0.1515 -0.0059
0 0 0 0 0 0 0 0 0.5630 -0.4154
0 0 0 0 0 0 0 0 0 0.1692