将一组等式命名为Python

2024-09-24 00:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在解一个方程组。你知道吗

方程的一个子集是:

eq1  = pi1  * q[0+1] == pi0 * r[0+1]
eq2  = pi2  * q[0+1] == pi0 * r[1+1]  + pi1 * r[1+1]
eq3  = pi3  * q[0+1] == pi0 * r[2+1]  + pi1 * r[2+1]  + pi2 * r[1+1]
eq4  = pi4  * q[0+1] == pi0 * r[3+1]  + pi1 * r[3+1]  + pi2 * r[2+1]  + pi3 * r[1+1]
eq5  = pi5  * q[0+1] == pi0 * r[4+1]  + pi1 * r[4+1]  + pi2 * r[3+1]  + pi3 * r[2+1]  + pi4 * r[1+1]
eq6  = pi6  * q[0+1] == pi0 * r[5+1]  + pi1 * r[5+1]  + pi2 * r[4+1]  + pi3 * r[3+1]  + pi4 * r[2+1]  + pi5 * r[1+1]
eq7  = pi7  * q[0+1] == pi0 * r[6+1]  + pi1 * r[6+1]  + pi2 * r[5+1]  + pi3 * r[4+1]  + pi4 * r[3+1]  + pi5 * r[2+1]  + pi6 * r[1+1]

不幸的是,这不是我想要的工作方式。我想把它理解为:第一个方程的名字是“eq1”,有一个等式。其他行也应该这样读。在我的代码中,我有14个更长的方程。我想给他们一个名字,以避免在“solve([],[])中出现很长的表达式。你知道吗

这可能吗?如果是的话,应该怎么做?你知道吗


Tags: 方程组名字子集方程pi3pi2pi4pi1
1条回答
网友
1楼 · 发布于 2024-09-24 00:28:56

你可以把方程存储在字典里——你将把方程的索引(1,2等)映射到一个元组,元组包含两个表示方程两边的项。你知道吗

equations = dict()
equations[1]  = (pi1  * q[0+1], pi0 * r[0+1])

然后可以调用solve(equations[1]),并在solve()函数中执行以下操作:

def solve(equation):
    left_side_of_equation = equation[0]
    right_side_of_equation = equation[1]
    # Here do everything you need with this equation values.

或者像这样调用函数:solve(equations[1][0], equations[1][1]),并且在solve()函数中有两个参数。你知道吗

编辑以回答评论:

如果你想得到多于一个只有==(更大,更大等于等)的方程,你还需要把这些信息保存在元组中。它可以是这样的:

equations[42] = (pi1, 0, "ge")

并实现如下solve()函数:

def solve(equation):
    left_side_of_equation = equation[0]
    right_side_of_equation = equation[1]
    operator = equation[2]
    if operator == "ge": # Greater or equal
        # Do your comparison
    elif operator == "g": # Greater
        # Do your comparison
    # Add all remaining possibilities.

相关问题 更多 >