矢量的梯度(ΔV)如何变成3x3矩阵?你如何有效地计算其特征值?有没有可以做到这一点的C ++库(C ++库Eigen可以这样做吗?)
答案 0 :(得分:1)
gradient是具有多个变量的函数的导数的推广。它由函数的所有偏导数组成,因此它对每个变量都有一个导数。
对于标量值 N变量函数scalar y = f(x1, ..., xN)
,渐变是具有N个标量元素的向量。
将其进一步推广到向量值函数vector y = f(x1, ..., xN)
,(其中向量具有N个元素,并且函数具有N个标量变量),渐变可以被认为是带有N个向量元素的向量,它实际上是一个带有NxN元素的矩阵,也称为Jacobian。
在您的情况下,函数必须类似于vector3 y = f(x1, x2, x3)
,因此渐变是3x3矩阵。
你可以像任何其他矩阵一样计算它的特征值,例如:使用Eigen decomposition。顾名思义,Eigen线性代数库确实提供了这样的功能。