Ceres 求解方差
1. ceres 官网
官网简介链接
评估非线性最小二乘法求解器返回的解决方案质量的一种方法是分析解决方案的协方差。
首先,考虑非线性回归问题
y
=
f
(
x
)
+
N
(
0
,
1
)
{y=f(x)+N(0,1)}
y=f(x)+N(0,1)
待续
2. 案例:
double x[3];
double y[2];
Problem problem;
problem.AddParameterBlock(x, 3);
problem.AddParameterBlock(y, 2);
<Build Problem>
<Solve Problem>
Covariance::Options options;
Covariance covariance(options);
vector<pair<const double*, const double*> > covariance_blocks;
covariance_blocks.push_back(make_pair(x, x));
covariance_blocks.push_back(make_pair(y, y));
covariance_blocks.push_back(make_pair(x, y));
CHECK(covariance.Compute(covariance_blocks, &problem));
double covariance_xx[3 * 3];
double covariance_yy[2 * 2];
double covariance_xy[3 * 2];
covariance.GetCovarianceBlock(x, x, covariance_xx)
covariance.GetCovarianceBlock(y, y, covariance_yy)
covariance.GetCovarianceBlock(x, y, covariance_xy)