【问题标题】:Is there a method in recent Math.Net to return the SquaredNorm of a vector?最近的 Math.Net 中是否有一种方法可以返回向量的 SquaredNorm?
【发布时间】:2014-03-21 23:59:06
【问题描述】:

在旧版本 (Iridium) 中,有一个方法 Vector.SquaredNorm(),但在最新的稳定版 Math.Net 中没有可用的方法。

我应该使用什么方法?

【问题讨论】:

    标签: math.net


    【解决方案1】:

    如果您想要平方 L2 范数(如果我没记错的话,这是 Iridium 所做的),您可以自己简单地平方:

    var squaredNorm1 = Math.Pow(v.L2Norm(),2);
    

    或者,您也可以使用更短一点的点积(如果您使用本地提供程序并且向量非常大,也可以更快):

    var squaredNorm2 = v*v;
    

    【讨论】:

    • 在 v2 L2Norm 中尚不可用 - 请改用 Norm(2)
    • 使用平方范数的原因是效率。计算常规范数涉及平方根运算,因此 SquaredNorm 跳过该步骤。所以第二个建议更受欢迎。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2020-02-24
    • 2012-12-02
    • 1970-01-01
    相关资源
    最近更新 更多