如何自动组合不同的方程式
How to combine different equations automatically
我有 9 个不同的方程式,其中只包含 7 个未知数。我想生成一个代码来创建 7 个方程的所有可能系统和 return 所有变量都有正结果的情况。 9个方程式是:
eq1 = 14*x+7*z-21.71
eq2 = 15*x+11*z+w-38.55
eq3=12*x+8*y+12*z+w-52.92
eq4=12*x+8*y+14*z+t-61.7
eq5=13*x+8*y+15*z+t-69.37
eq6=4*x+17*y+14*r+s-98.32
eq7=4*x+18*y+12*w+s-130.91
eq8=4*x+18*y+15*w+2*t-165.45
eq9=4*x+18*y+12*w+2*s-168.16
改编自回答
您要做的是遍历所有只有 7
个方程的组合。您可以使用嵌套循环来执行此操作,但它会变得非常丑陋,因为您将拥有 7
个嵌套。
itertools
python 中的库(标准库)有一个内置的循环方法,所以如果你创建一个方程列表,你可以通过执行正在关注
import itertools
eq = [eq1,eq2eq3,eq4,eq5,eq6,eq7,eq8,eq9]
for system in itertools.combinations(eq, 7):
# do stuff to solve equations however you want
system
将是一个包含系统中 7
方程的元组。从那里使用你想要解决它们的任何解决技术并确定所有输出是否为正(即 numpy
和矩阵方程)
我有 9 个不同的方程式,其中只包含 7 个未知数。我想生成一个代码来创建 7 个方程的所有可能系统和 return 所有变量都有正结果的情况。 9个方程式是:
eq1 = 14*x+7*z-21.71
eq2 = 15*x+11*z+w-38.55
eq3=12*x+8*y+12*z+w-52.92
eq4=12*x+8*y+14*z+t-61.7
eq5=13*x+8*y+15*z+t-69.37
eq6=4*x+17*y+14*r+s-98.32
eq7=4*x+18*y+12*w+s-130.91
eq8=4*x+18*y+15*w+2*t-165.45
eq9=4*x+18*y+12*w+2*s-168.16
改编自
您要做的是遍历所有只有 7
个方程的组合。您可以使用嵌套循环来执行此操作,但它会变得非常丑陋,因为您将拥有 7
个嵌套。
itertools
python 中的库(标准库)有一个内置的循环方法,所以如果你创建一个方程列表,你可以通过执行正在关注
import itertools
eq = [eq1,eq2eq3,eq4,eq5,eq6,eq7,eq8,eq9]
for system in itertools.combinations(eq, 7):
# do stuff to solve equations however you want
system
将是一个包含系统中 7
方程的元组。从那里使用你想要解决它们的任何解决技术并确定所有输出是否为正(即 numpy
和矩阵方程)