用内produ计算两个矢量之间的夹角

2024-04-20 07:06:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个函数来计算两个向量x,y之间的夹角,使用内积的定义x@A@y,其中A是正定矩阵。在

我的职能是:

def angle(A, x, y):

    import numpy as np
    from numpy.linalg import norm

    nominator = x@A@y
    denominator = (x@A@x)*(y@A@y)

    angle = np.arccos(nominator/denominator)

    return(angle)

但是,它没有返回正确的答案。在

例如

^{2}$

这不是正确的答案。在


Tags: 函数答案importnumpy定义defnp矩阵
1条回答
网友
1楼 · 发布于 2024-04-20 07:06:20

你需要取分母的平方根,因为向量v的范数被定义为sqrt(innerprod(v, v))。这能给你预期的答案吗?在

import numpy as np

def angle(A, x, y):
    nominator = x@A@y
    denominator = np.sqrt((x@A@x)*(y@A@y))
    angle = np.arccos(nominator/denominator)
    return(angle)

angle(A, x, y)
2.6905658417935308

相关问题 更多 >