向量的范数是一个将向量映射到非负实数的函数,通常表示为 ||x||。它是向量空间中的一种度量,用来衡量向量的大小或长度。范数满足以下性质:
- 非负性:对于任意向量 x,范数 ||x|| 大于等于零,且当且仅当 x 是零向量时等于零。
- 齐次性:对于任意标量 α,范数 ||αx|| 等于 α 与 ||x|| 的乘积。
- 三角不等式:对于任意两个向量 x 和 y,有 ||x + y|| ≤ ||x|| + ||y||。
在数学上,常见的向量范数有多种,如欧几里得范数(也称为 L2 范数)、L1 范数、无穷范数等。这些范数在定义上略有不同,但都是用来衡量向量大小的一种方式。
- 欧几里得范数(L2 范数):||x||₂ = √(Σ|xᵢ|²),表示向量各个元素平方和的平方根。
- L1 范数:||x||₁ = Σ|xᵢ|,表示向量各个元素绝对值的和。
- 无穷范数:||x||ᵢ = max(|x₁|, |x₂|, …, |xᵢ|),表示向量中绝对值最大的元素。

范数的选择取决于具体的应用场景和需要解决的问题,根据需要选择相应的范数进行计算。
Eigen::Vector3d::norm() 函数是 Eigen 库中用于计算向量的范数(模长)的方法,返回一个 double 类型的值,表示向量的长度。
用法示例:
#include <iostream>
#include <Eigen/Dense>
int main() {
Eigen::Vector3d v(1.0, 2.0, 3.0);
double vector_norm = v.norm(); // 计算向量 v 的范数
std::cout << "Norm of vector v: " << vector_norm << std::endl;
return 0;
}
在上面的示例中,我们首先创建了一个三维向量 v,然后调用 v.norm() 计算了向量 v 的范数,并将结果打印输出。
本文介绍了向量范数的概念、常见范数如欧几里得(L2)、L1和无穷范数的区别,以及如何在Eigen库中使用Eigen::Vector3d::norm()函数计算向量模长。实例展示了计算三维向量范例的方法。
1639

被折叠的 条评论
为什么被折叠?



