是否有人知道一个简单且可微的函数,该函数将3D vector u = (x, y, z)
转换为与u
正交的另一个 vector 。
更准确地说,我正在寻找三个可微函数{f, g, h}
,以便 vector u = (x, y, z)
与v = (f(x,y,z), g(x,y,z), h(x,y,z))
正交,而v
仅在u
为零时为零。
函数{f, g, h}
应该尽可能简单。我更喜欢它们是线性的,但我认为不存在这样的线性函数。低阶多项式也很好。
附言我找到了这样的函数,但它们不是多项式。例如:
f(x, y, z) = y*(exp(x) + 3) - z*(exp(x) + 2)
g(x, y, z) = z*(exp(x) + 1) - x*(exp(x) + 3)
h(x, y, z) = x*(exp(x) + 2) - y*(exp(x) + 1)
它只是(x,y,z)与(exp(x)+1,exp(x)+2,exp(x)+3)的叉积。除了多项式之外,它满足所有要求。但是它们很简单。
最佳答案
没有这样的连续功能。这是"hairy ball"定理的结果,该定理指出在球体上不能定义连续的永不消失的切线场(如果您可以使F(v)
非零,连续并且始终与v
正交,则可以使用v-F(v)
轻松定义连续的球面的切线场永不消失)。
另一方面,如果函数不需要连续,则问题很容易解决。我通常要做的是选择v
的Y和Z分量之间的较大值(以绝对值表示),然后如果Z分量较大,则计算v
和(0, 1, 0)
之间的叉积;如果Y分量较大,则计算(0, 0, 1)
之间的叉积。这避免了奇异性。
关于math - 可微正交向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4850906/