我试图通过这种方式解决我的问题:
a = np.array([[1,2,4,1,0,2],[0,1,2,0,0,1],[0,0,0,2,2,0],[0,0,0,0,14,4],[0,0,0,0,0,-2]])
b = np.array([3,0,1,0,14])
x = np.linalg.solve(a,b)
然而,由于它们没有完全排名,所以没有一个解决方案,而是无穷无尽的解决方案。通常我会在解决这个问题时插入一个参数,比如x3 = t。然后我有一个解决方案,其中x2和x1也可以包含t。但是我怎么能告诉python这样解决呢?或者至少告诉它x3是t并继续使用它?
我知道有最少的方式,但这不是我想要的。
编辑:解决方案看起来像这样:x6 == -7 && x5 == 2 && x4 == -(3/2) && x2 == 7 - 2 x3 && x1 == 9/2- 使用Mathematica制作。只想知道如何在python中实现相同的结果。
解决办法:使用SymPy,
import numpy as np
import sympy as sym
a = np.array([[1,2,4,1,0,2],[0,1,2,0,0,1],[0,0,0,2,2,0],[0,0,0,0,14,4],[0,0,0,0,0,-2]])
b = np.array([3,0,1,0,14])
num_equations, num_variables = a.shape
x = sym.symarray('x', num_variables)
solution = sym.solve([sym.Eq(ax-b) for ax, b in zip(np.dot(a, x), b)])
print(solution)
产量
{x_5: -7, x_4: 2, x_3: -3/2, x_1: -2*x_2 + 7, x_0: 9/2}








暂无数据