【发布时间】:2021-02-03 13:10:42
【问题描述】:
我有三个分别按 a、b 和 c 缩放的向量。如何获得 a、b 和 c 的估计值,以使向量的总和最接近第四个向量?
【问题讨论】:
标签: python math computer-science heuristics
我有三个分别按 a、b 和 c 缩放的向量。如何获得 a、b 和 c 的估计值,以使向量的总和最接近第四个向量?
【问题讨论】:
标签: python math computer-science heuristics
使用 Numpy。 solve() 函数就是你要找的。p>
import numpy as np
from numpy.linalg import solve
A = np.array([[4,11,9],[6,5,7],[3,5,9]])
B = np.array([3,8,5])
X = solve(A,B)
print(A)
print(B)
print(X)
输出应该是:
[[ 4 11 9]
[ 6 5 7]
[ 3 5 9]]
[3 8 5]
[ 1.28723404 -0.54787234 0.43085106]
【讨论】:
如果您逐行阅读示例,您有三个方程式。
a*4 + b*11 + c*9 = 2
a*6 + b*5 + c*7 = 8
a*3 + b*5 + c*9 = 5
然后你可以很容易地解决每个变量
a = (2 - b*11 - c*9) / 4
b = (8 - a*6 - c*7) / 5
b = (8 - ((2 - b*11 - c*9) / 4)*6 - c*7) / 5
b*5 + b*16.5 = 8 - 3 - c*13.5 - c*7
b = (8 - 3 - c*13.5 - c*7) / 21.5
a = (2 - ((8 - 3 - c*13.5 - c*7) / 21.5)*11 - c*9) / 4
现在你可以用最后一个方程求解 c。当你有 c 时,使用它在 a&b 的最后两个方程中的值来求解它们。
【讨论】: