我试着用Python做一个单纯形算法,所有的画面和值都是正确的,但是,在最后一次迭代中,目标函数上的值是错的。我使用sympy
和numpy
。除了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]
字符串
这是进行上述更改的代码部分
1条答案
按热度按时间yqyhoc1h1#
您看到的值是非常小的数字,而不是0(注意
e-16
)。字符串
这应该消除那些“接近0”的值。