我有一个包含系数的列表,这些系数定义了我想要求解的方程组。我的系数列表中的第一项始终为 1,并且解中的第一个变量也假定为 1。
如果
coeffs = [1,2,3,4]
然后我想求解的方程组是 coeffs
与变量 [1, x[3], x[2], x[1]]
。这样我们得到
1*1 + 2*x[3] + 3*x[2] + 4*x[1] = 0
1*x[3] + 2*x[2] + 3*x[1] + 4*1 = 0
1*x[2] + 2*x[1] + 3*1 + 4*x[3] = 0
1*x[1] + 2*1 + 3*x[3] + 4*x[2] = 0
给定 coeffs
,我如何在 numpy 中建立这个方程组以便求解 x
?在实际情况下,coeffs
的长度为数百。
最佳答案
>>> import numpy as np
>>> coeffs = [1, 2, 3, 4]
>>> N = len(coeffs)
>>> a = np.tile(coeffs, (N, 1))
>>> a
array([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])
>>> for i in xrange(1, N):
... a[i] = np.roll(a[i], i)
...
>>> a
array([[1, 2, 3, 4],
[4, 1, 2, 3],
[3, 4, 1, 2],
[2, 3, 4, 1]])
>>>
关于python - 如何在 python 中建立方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136998/