根据其他展开矢量
Expand vector in terms of others
我想解方程:
v0 = a1*v1 + a2*v2 + a3*v3 + a4*v4 + a5*v5
其中 v0, v1, v2, v3, v4, v5
是已知的列矩阵(向量),a1, a2, a3, a4, a5
是应该计算的数字。我想知道 numpy,sympy
或 scipy
中是否有函数可以直接计算方程或如何求解方程。
请给我一个link或一个书面例子。
您的等式表示一个方程组,其中 v0
的每个元素表示为数组 v1,v2,v3,v4,v5
.
中各个元素的总和
这是一个完全确定的情况,即未知数的数量a1,a2,a3,s4,s5
等于方程的数量,即向量的长度v1,v2,v3,v4,v5
。
from numpy import allclose,zeros_like
from numpy.random import rand
from numpy.linalg import solve
# generate the 5 vectors as random arrays
mat = rand(5,5)
v1,v2,v3,v4,v5 = mat.T
v0 = rand(5)
x= solve(mat,v0)
#first check
assert allclose(dot(mat,x),v0)
#2nd check, which is the equation of the OP
res = zeros_like(v0)
for xj,vj in zip([v1,v2,v3,v4,v5],x):
res+= xj*vj
assert allclose(res,v0)
我想解方程:
v0 = a1*v1 + a2*v2 + a3*v3 + a4*v4 + a5*v5
其中 v0, v1, v2, v3, v4, v5
是已知的列矩阵(向量),a1, a2, a3, a4, a5
是应该计算的数字。我想知道 numpy,sympy
或 scipy
中是否有函数可以直接计算方程或如何求解方程。
请给我一个link或一个书面例子。
您的等式表示一个方程组,其中 v0
的每个元素表示为数组 v1,v2,v3,v4,v5
.
这是一个完全确定的情况,即未知数的数量a1,a2,a3,s4,s5
等于方程的数量,即向量的长度v1,v2,v3,v4,v5
。
from numpy import allclose,zeros_like
from numpy.random import rand
from numpy.linalg import solve
# generate the 5 vectors as random arrays
mat = rand(5,5)
v1,v2,v3,v4,v5 = mat.T
v0 = rand(5)
x= solve(mat,v0)
#first check
assert allclose(dot(mat,x),v0)
#2nd check, which is the equation of the OP
res = zeros_like(v0)
for xj,vj in zip([v1,v2,v3,v4,v5],x):
res+= xj*vj
assert allclose(res,v0)