numpy 如何在表达式中去掉接近零的数字

kh212irz  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(125)

我试着用Python做一个单纯形算法,所有的画面和值都是正确的,但是,在最后一次迭代中,目标函数上的值是错的。我使用sympynumpy。除了2之外,所有的值都是正确的,我不知道它们是从哪里来的。我甚至测试了乘法线,并自己做了加法,它应该工作,但第五和第七个数字很奇怪
旧行的结果、应添加到旧行的行和实际结果:


的数据
我使用sympy来使用M的符号值。旧行应该添加到“待添加行”,结果应该像[0, 0, 0, 1*M + 1.4, 0.5, 1*M + 0.5, 5.4],但第5和第7个元素是奇怪的值,不应该在行上,我不知道如何修复它数组最后一项的M应该是0

for index, row in enumerate(self.tableau):
         if pivot_row != index:
            multiplier = -row[entering_column]
            print(f"Index {index}, Multiplcador {multiplier}")
            new_tableau[index] = multiplier * new_tableau[pivot_row] + self.tableau[index]

字符串
这是进行上述更改的代码部分

yqyhoc1h

yqyhoc1h1#

您看到的值是非常小的数字,而不是0(注意e-16)。

new_tableau[index] = [i.n(chop=True) for i in new_tableau[index]]

字符串
这应该消除那些“接近0”的值。

相关问题