求hession矩阵的特征值和特征向量

这段代码展示了如何计算Hessian矩阵的特征值和特征向量。通过计算theta、t、c和s等中间变量,然后确定e1和e2为特征值,n1和n2为对应的特征向量。如果特征值的绝对值相等,会根据符号来决定它们的顺序。
摘要由CSDN通过智能技术生成
//求hession矩阵的特征值和特征向量
void CmCurveEx::compute_eigenvals(double dfdrr, double dfdrc, double dfdcc, double eigval[2], double eigvec[2][2])
{
double theta, t, c, s, e1, e2, n1, n2; /* , phi; */


/* Compute the eigenvalues and eigenvectors of the Hessian matrix. */
if (dfdrc != 0.0) {
theta = 0.5*(dfdcc-dfdrr)/dfdrc;
t = 1.0/(fabs(theta)+sqrt(theta*theta+1.0));
if (theta < 0.0) t = -t;
c = 1.0/sqrt(t*t+1.0);
s = t*c;
e1 = dfdrr-t*dfdrc;
e2 = dfdcc+t*dfdrc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值