好吧,我基本上想要解决一组欠定方程。我有大约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)
注意:整个程序运行正常,没有任何错误。它只有以下这些抛出错误的功能。我对Python& Sympy也。任何指导都会非常有用,因为我无法知道我在哪里遗漏了什么。
答案 0 :(得分:1)
你有......
for i in range(len(equations)-1):
equations[i] = Eq(A[i]-A[i+1], B[i])
然后......
-1
这意味着您的最后一个等式不会获得值,但仍然是无,因为您的equations = [None]*(len(predictions))
for i in range(len(equations)):
在范围内。
我想你想......
for i in range(len(temp)):
plt.text(x[i], y[i], temp[i], va="top", family="monospace")