求解欠定方程组的symphy解算器

2024-10-01 17:35:46 发布

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

好的,我基本上想解一组欠定方程。我有289个变量和288个方程。在

我按照following link创建了求解程序来求解未确定的方程组。在

由于我有289个变量和几乎一样多的方程,手工编写这些方程是不可能的,我引入了一个循环,它将方程和Sym变量保存在数组中,并返回传递给solve()函数的值。在

代码:

def getEqn(A, B):
    for i in range(len(A)):
        A[i] = Symbol('A['+str(i)+']')

    equations = [None]*(len(predictions)-1)
    for i in range(len(equations)-1):
        equations[i] = Eq(A[i]-A[i+1], B[i])

    return equations, A
def solver(predictions):
    lenPredictions = len(predictions)
    A = [None]*lenPredictions
    for i in range(lenPredictions):
        A[i] = Symbol('A['+str(i)+']')
    equations, variables = getEqn(A, predictions)
    for i in range(lenPredictions-1):
        res = solve(equations, variables)
    return res
def main():
    res = solver(predictions)

当我尝试运行以下代码时,出现以下错误: enter image description here

注意:整个程序运行良好,没有任何错误。只有以下这些函数才会抛出错误。我对Python&Sympy也是完全陌生的。任何指导都会很有帮助,因为我不知道我在哪里遗漏了什么。在


Tags: 函数代码inforlendef错误range
1条回答
网友
1楼 · 发布于 2024-10-01 17:35:46

在getEqn()中,您有。。。在

equations = [None]*(len(predictions)-1)

然后。。。在

^{pr2}$

这意味着您的最后一个等式不会得到值,但仍然没有值,因为您的-1在范围内。在

我想你想。。。在

equations = [None]*(len(predictions))
for i in range(len(equations)):

相关问题 更多 >

    热门问题