LinAlgError: Last 2 dimensions of the array must be square

python 矩阵计算时出现错误

此时如果矩阵不是方阵,就会出现如下错误:

    

 

 

 

 这里值得注意的是:当我们这样使用的时候,程序运行又会很正常:

 

 貌似我们求得了非方阵的逆。

 

下面我们来验证一下:

 

 

 

仔细一看,这不是单位阵啊,笔者以为,这种方法并不可行,但带着博客严谨性的想法,笔者决定看看方阵的结果。

 

 

 

 看到这里,笔者发现,方阵的求逆也出现了异常,,不由得仔细一看,,原来本该是0 的项非常小,学过数值分析的朋友们应该知道,这里是由于计算机的舍入误差所造成的的非零问题,所以二者我们都可以将其看做是单位阵。

 

注意:此处不要随意转换数据类型,因为转换数据类型会有数据精度损失,比如上述单位阵在转换数据类型时就会产生变化,对角线上的某一位可能会变为0.

posted @ 2019-11-04 14:45  ambrose  阅读(13118)  评论(0编辑  收藏  举报