24小时热门版块排行榜    

CyRhmU.jpeg
查看: 282  |  回复: 0
当前主题已经存档。

wanggongming

铁虫 (小有名气)

[交流] 【求助】Clapack包使用中数据类型的问题

Clapack包是求解线性方程组的常用工具,根据要处理的数据类型不同,很多函数提供多种实现。
例如,对于线性最小二乘问题,min||Ax-b||,每种函数都有单精度、双精度的实现,如:Sgels/Dgels、Sgelsy/Dgelsy、Sgelss/Dgelss等,其中前缀S说明处理数据是单精度(float),前缀D说明处理数据是双精度(Double)。
经过使用发现,对于同样的数据,采用单精度、双精度表示后,使用对应的函数来计算,得到的结果有时不一样,不知道是什么原因。
对于这个问题,在其它地方也发现有问题,例如,清华大学出版社,徐士良编写的《C常用算法程序集(第二版)》里面介绍的很多算法,对应的代码都是double型,如果改为float类型后,即使方程规模很小(3、4个未知数),好多计算结果都不相同,某些结果甚至是错误的。
采用相同的算法,为什么数据类型不同,差异就这么大,不知有谁可以解释一下!

[ Last edited by wanggongming on 2010-4-3 at 22:25 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wanggongming 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见