如何使 4 个向量(所有你知道方向但你可以设置大小)加起来成为一个已知向量?
How to make 4 vectors (all which you know the direction but you can set the magnitude) add up to a known vector?
因此,如果您有 4 个向量,并且您知道它们的方向(所有方向都可能不同),并且您可以更改它们的所有大小,那么如果您希望所有 4 个向量相加,您会将大小设置为多少到另一个你知道的向量?
这似乎是一个有点太具体的问题,但我问这个的原因是我用 kRPC 为 KSP 制作的一个程序,其中有 4 个倾斜的发动机悬停在飞机上,即使整个飞机都是倾斜的.我试着搜索它,但我不知道到底要搜索什么。我对向量的数学知之甚少。谢谢!
据我了解,您正在尝试对向量求和,并且正在寻找特定的解决方案来获得结束向量。在某种程度上,您是在询问如何解决如下所示的问题:
a1V1 + a2V2 + a3V3 + a4V4 = aV
其中 V 是向量,a 是幅值。我假设 V 是固定的(你的计划喷气机的定位方式?)。我还假设你的向量是 3 维的
因此仅从数学角度来看,您有 3 个维度和 4 个参数。这意味着 'a' 之一可以是任何东西。如果不知道确切的向量,我认为我无法提供更多帮助。
就代码而言,求解 'a's 是尝试求解线性方程,通常使用 scipy 的 linalg 来完成:
https://docs.scipy.org/doc/scipy-0.15.1/reference/linalg.html
特别是 scipy.linalg.solve()。
同样,如果将 4 个向量与矩阵一起使用,您必须非常了解问题的维度,您将 运行 陷入很多问题。在尝试求解方程之前,必须先确定 'a' 值之一。
编辑:我对这个问题进行了更多的思考,我意识到系统中有一个约束,那就是 'a's 不能为负数。所以看起来系统有独特的解决方案。
不一定总是可行,这取决于向量。从技术上讲,您的目标向量必须在您的四个输入向量的 linear span 中。
可以写成如下矩阵方程:
Ax = b
其中,b
目标向量,x
系数求和系数和 A
通过按列堆叠四个向量而形成的矩阵。当且仅当 A
矩阵可逆时,x
向量才存在。
您可以使用 numpy.linalg.solve
函数解决此问题。
在您的情况下,如果您有 4 个 3 维(或 2 维)向量,您可能会遇到问题:在这种情况下,不仅有一个解决方案,而且会变得棘手。实际上,您需要放弃一个(或两个)向量以仅保留 3(或 2)个独立向量。
您仍然可以使用 numpy.linalg.lstsq
来获得近似解。
因此,如果您有 4 个向量,并且您知道它们的方向(所有方向都可能不同),并且您可以更改它们的所有大小,那么如果您希望所有 4 个向量相加,您会将大小设置为多少到另一个你知道的向量?
这似乎是一个有点太具体的问题,但我问这个的原因是我用 kRPC 为 KSP 制作的一个程序,其中有 4 个倾斜的发动机悬停在飞机上,即使整个飞机都是倾斜的.我试着搜索它,但我不知道到底要搜索什么。我对向量的数学知之甚少。谢谢!
据我了解,您正在尝试对向量求和,并且正在寻找特定的解决方案来获得结束向量。在某种程度上,您是在询问如何解决如下所示的问题:
a1V1 + a2V2 + a3V3 + a4V4 = aV
其中 V 是向量,a 是幅值。我假设 V 是固定的(你的计划喷气机的定位方式?)。我还假设你的向量是 3 维的
因此仅从数学角度来看,您有 3 个维度和 4 个参数。这意味着 'a' 之一可以是任何东西。如果不知道确切的向量,我认为我无法提供更多帮助。
就代码而言,求解 'a's 是尝试求解线性方程,通常使用 scipy 的 linalg 来完成: https://docs.scipy.org/doc/scipy-0.15.1/reference/linalg.html 特别是 scipy.linalg.solve()。
同样,如果将 4 个向量与矩阵一起使用,您必须非常了解问题的维度,您将 运行 陷入很多问题。在尝试求解方程之前,必须先确定 'a' 值之一。
编辑:我对这个问题进行了更多的思考,我意识到系统中有一个约束,那就是 'a's 不能为负数。所以看起来系统有独特的解决方案。
不一定总是可行,这取决于向量。从技术上讲,您的目标向量必须在您的四个输入向量的 linear span 中。
可以写成如下矩阵方程:
Ax = b
其中,b
目标向量,x
系数求和系数和 A
通过按列堆叠四个向量而形成的矩阵。当且仅当 A
矩阵可逆时,x
向量才存在。
您可以使用 numpy.linalg.solve
函数解决此问题。
在您的情况下,如果您有 4 个 3 维(或 2 维)向量,您可能会遇到问题:在这种情况下,不仅有一个解决方案,而且会变得棘手。实际上,您需要放弃一个(或两个)向量以仅保留 3(或 2)个独立向量。
您仍然可以使用 numpy.linalg.lstsq
来获得近似解。