在不可解决的多变量线性方程中找到相等的变量



我正在尝试找到一种算法来解决当前问题。我有多个未知的变量(F1,F2,F3,... FX)和(R1,R2,R3 ... RX)和类似的多个方程:

F1 + R1 = a
F1 + R2 = a
F2 + R1 = b
F3 + R2 = b
F2 + R3 = c
F3 + R4 = c

其中a,b和c是已知的数字。我试图在此类方程式中找到所有相等的变量。例如,在上述方程式中,我可以看到F2和F3相等,R3和R4相等。

第一个方程式告诉我们R1和R2相等,第二个方程告诉我们F2和F3是相等的,而第三个则告诉我们R3和R4相等。

对于更复杂的方案,是否有任何已知算法可以找到所有相等(F和R)变量????

(如果不够清楚,我将编辑问题)

谢谢

对于一般情况,行梯队可能是必经之路。如果每个方程只有两个变量,则可以考虑每个变量都在分区中。每当两个变量一起出现在方程式中时,它们的分区就会连接。因此,从每个变量开始就在自己的分区中。在第一个方程式之后,其中包含F1R1的分区。在第二个方程式之后,该分区被包含F1R1R2的分区所取代。您应该具有某种顺序的变量,并且在连接两个分区时,将所有变量放在第一个变量以外的所有变量(第一个变量以外)(第一个变量都不重要决定哪个是"第一个")。因此,例如,在第一个方程式之后,您有R1 = a-F1。在第二个方程式之后,您有R1 = a-F1R2 = a-F1。每个变量可以由两个数字表示:分区中第一个变量的一定数量倍,加上常数。然后,在最后,您可以通过每个分区,并查找具有代表它们的两个数字的变量。

这是一个提示:您已经定义了一个具有7个变量和6个方程的线性方程系统。这是一个粗制矩阵/向量符号:

 1 0 0 1 0 0 0     F1     a
 1 0 0 0 1 0 0     F2     a
 0 1 0 1 0 0 0  *  F3  =  b
 0 0 1 0 1 0 0     R1     b
 0 1 0 0 0 1 0     R2     c
 0 0 1 0 0 0 1     R3     c
                   R4

如果您手动进行高斯淘汰,则可以看到例如第一行减去第二行

 (0 0 0 1 -1 0 0) * (F1 F2 F3 R1 R2 R3 R4)^T = a - a
                                     R1 - R2 = 0
                                          R1 = R2

这意味着R1和R2是您所谓的等效物。有许多不同的方法可以解决系统或解释结果。也许您会发现此线程有用:在Python中是否有用于消除高斯的标准解决方案?

相关内容

  • 没有找到相关文章

最新更新