老师参与

关于det()方法返回值的精度

澄碧钓徒 发表于2019年05月14日
<p><code class="brush:python;toolbar:false" >from numpy import * a = array([[1, 2, -1, 1], [5, -2, 3, 1], [0, 1, -2, 0], [3, 7, -6, 1]]) print(linalg.det(a)) print(int(round(linalg.det(a))))</code></p><p>-27.999999999999996</p><p>-28</p><p>之前用Python做多表替代注意过这个问题,贴出来的先随便造了个矩阵,为什么linalg.det()方法返回的是浮点数要用round函数四舍五入才能跟笔算结果一致?</p>
1 回复

    1楼

  • 王恺-南开大学 发表于2019年05月14日
    1 | 0 | 举报
    <p>行列式计算用的是LU分解方法,其中涉及到除法运算,可能会引入误差。关于LU分解的介绍请参考:<a href="https://blog.csdn.net/u010945683/article/details/45803141" >https://blog.csdn.net/u010945683/article/details/45803141</a> </p><p><br ></p>
    王恺-南开大学 发表于2019年05月14日
    添加评论