最近在学高博的14讲,跟着教程的实战内容自己敲代码,到ceres实战的部分遇到了问题.程序是用ceres解决一个最小二乘问题,来拟合曲线,程序编译运行都通过了,但是优化结果与预期有很大差异,如图: 教程中优化结果应该接近a = 1, b = 2, c = 1,而我的结果是2 -1 1. 于是用gdb调试程序,发现数据点的x值居然全部是0! 于是看x生成的代码,发现问题:i是整形,100是整形,商会被强转为整形,于是得到一堆0.改为 i / 100.0,这时商是double类型,最后运行成功,结果