Python矩阵求解器

时间:2019-03-25 14:36:23

标签: python matrix scipy

我从一个矩阵开始,唯一的规则是一行的前3个单元格必须加到该行的第4个单元格:

enter image description here

为了遵守该规则,我想基于第一个矩阵创建一个新矩阵,其中每列的前3行的总和应接近但不超过每列的第4个数字,如下所示:

enter image description here

我认为这是可以使用excel在Solver中完成的工作,但是他正在寻找一种在Python中完成此工作的方法。如果我必须从头开始创建它,那很好,但我的问题是,是否存在诸如SciPy或其他库之类的东西,以便在可能的情况下避免重新发明轮子?

编辑: 我认为这个问题的第二部分还不清楚。

[[ 2.  2.  2. 6.] -> 1st 3 cells can change but sum must always add up to 6
 [ 4.  4.  4. 12.] -> 1st 3 cells can change but sum must always add up to 12
 [ 6.  6.  6. 18.] -> 1st 3 cells can change but sum must always add up to 18
 [ 8.  16.  12. NA.]] -> This cannot change

您总是从矩阵开始,在矩阵中水平方向上前三个单元的总和等于最后一个单元,即2,2,2,6。困难的部分是优化每一行,以使它们在垂直方向上尽可能接近底部单元格。在此示例中,2,4,6,8垂直运行,前三个加起来为12。应优化所得矩阵,以便前三个加起来为8,如下所示:

[[ 1.  3.  2. 6.] 
 [ 3.  5.  4. 12.]
 [ 4.  8.  6. 18.] 
 [ 8.  16.  12. NA.]]

此新矩阵的所有行仍累加到最后一个单元格(即1,3,2,6),垂直还累加到最后一个单元格(即1,3,4,8)。 希望这可以清除一切。

0 个答案:

没有答案