菜百科百科问答matlab中det([1 2 3;4 5 6;7 8 9])为什么得出一个非常小的数而不是0,而det([2 3 4;5 6 7;8 9 10])是0。

matlab中det([1 2 3;4 5 6;7 8 9])为什么得出一个非常小的数而不是0,而det([2 3 4;5 6 7;8 9 10])是0。

matlab中det([1 2 3;4 5 6;7 8 9])为什么得出一个非常小的数而不是0,而det([2 3 4;5 6 7;8 9 10])是0。

matlab中det([1 2 3;4 5 6;7 8 9])为什么得出一个非常小的数而不是0,而det([2 3 4;5 6 7;8 9 10])是0。

计算机中360问答的数值是浮点数,不是我们理解的实数,所以当我们输入一个矩垂别金末安阿终阵时,里面的元素和我们输入的数据是有一点点误差的。LU分解时,对矩阵的一些元素进行了减溶旧迅法,扩大了这些误差,所以本来应该是零的值很可能变成一个使很小的值。第二个矩阵的行列式恰好等于零是因为运气好正好没扩大误差。嗯,如果你想深入分析,最好先看看浮点数系统(floating-pointssystem)。然后自己编一个精度更低的浮点数系统模拟器,再算算,就可以体会到期间的奥妙了。

本文来自网络,不代表本站立场,转载请注明出处:https://www.kcbk.net/answer/129511.html