- 主题:最近用一个数值计算的库,Debug版和Release版本计算出的结果差
差什么?
标题没写完啊
【 在 iamrzd 的大作中提到: 】
: 最开始怀疑是“Floating Point Model”的问题,但是发现Debug和Release版本都是"Precise (/fp:precise)"。
: 后来尝试把Release的优化关掉,结果就一致了,但是Release版本关掉优化并不是一个解决方案。
: 库是Eigen,一直把它当作黑盒子用,实现也比较复杂,没精力深入进去debug
--
FROM 171.113.232.*
我的理解是你的程序算法的有问题。
在绝大多数数值计算中,float已经足够使用了。
之前写过一个运动控制算法,都是每250微妙循环计算,每次也就0.1左右的动作,计算完成后会进行百万倍到整数。float也足够了。
【 在 iamrzd 的大作中提到: 】
: 结果差别很大。是L-M拟合算法,可能就是因为局部的微小差别引起的最终结果差别明显
:
: 【 在 dormouseBHU 的大作中提到: 】
: ...................
--来自微微水木3.5.14
--
FROM 183.193.51.*
就是运算结果差别肉眼可见
【 在 lwp 的大作中提到: 】
: 差什么?
: 标题没写完啊
: 【 在 iamrzd 的大作中提到: 】
: ...................
--来自微微水木3.5.14
--
FROM 223.104.40.*
曲线拟合,公式的形式是已知的,调用Eigen库的LM进行拟合,想不到算法有啥问题
【 在 foliver 的大作中提到: 】
: 我的理解是你的程序算法的有问题。
: 在绝大多数数值计算中,float已经足够使用了。
:
: ...................
--来自微微水木3.5.14
--
FROM 223.104.40.*
算法有没有放大截断误差?
【 在 iamrzd 的大作中提到: 】
: 曲线拟合,公式的形式是已知的,调用Eigen库的LM进行拟合,想不到算法有啥问题
: --来自微微水木3.5.14
--
FROM 223.166.225.*
用法不对
--
FROM 117.136.38.*
库+硬件都会有误差,很难调试的。真要求bitwise的准确度的话,建议买商业数学BLAS库, 配指定的硬件,最后结果在误差范围内就可以了。
如果你跑过超算数值模拟,那才叫头大。。。
--
FROM 111.201.155.*
你的意思是 debug 版的结果是对的,release 版的不对?
--
FROM 167.220.233.*
听起来只是机械的套用了矩阵的那些理论,没有考虑实际数值计算问题
【 在 iamrzd 的大作中提到: 】
: 曲线拟合,公式的形式是已知的,调用Eigen库的LM进行拟合,想不到算法有啥问题
--
FROM 183.128.140.*
两个版本计算出来的值有明显差别
【 在 mango7788 的大作中提到: 】
: 你的意思是 debug 版的结果是对的,release 版的不对?
:
: --
: ...................
--来自微微水木3.5.14
--
FROM 223.70.159.*