1

を生成する場合b=randn(10,1)、行列A=b*b'は正の半確定行列である必要があるため、そのすべての固有値は>=0である必要があります。

関数を使用すると、 and ...(負のdouble)eig(A)のようなdoubleが返されます。-3.6934e-16

精度を上げる方法はありますか?それらを絶対零度に丸めても安全ですか?

ありがとう。

編集:無関係な部分を削除しました。

4

1 に答える 1

5

これは単なる丸めの問題です。一部の要素が他の要素よりも 16 桁小さいベクトルがある場合、matlab でゼロに丸めるだけで安全です。

于 2012-11-20T17:17:12.297 に答える