24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1481  |  回复: 3

lqhcxx

铜虫 (职业作家)

[交流] 【求助】请问下FORTRAN的计算精度能不能达到MATLAB的计算精度高呢?

我现在是一样的程序,先matlab编好,也没调用它的内部函数。然后完全按原来的算法,格式转换成fortran,用双精度,结果就是不好,很苦恼啊
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ykwang

金虫 (正式写手)

lqhcxx(金币+5): 2010-11-04 05:30:31
lqhcxx(金币+3): 2011-04-26 07:16:57
FORTRAN中采用双精度对于一般的科学运算就足够了。如果需要,也可以用自定义例程实现更高精度的运算。你的问题可能是转换错误,仔细检查一下你的FORTRAN代码。
Nothing_Is_Impossible!
2楼2010-11-03 21:12:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

lqhcxx(金币+5): 2010-11-05 04:52:40
lqhcxx(金币+1): 2010-12-22 20:32:33
lqhcxx(金币+3): 2011-04-26 07:17:07
提示: Fortran是不进行隐式类型转换的, 所以整数, 单精度, 双精度的计算如果混合在一起的话, 绝对会出问题. 我是刚刚完成了一次matlab到fortan的转换, 相当麻烦. 要得到相同的结果,你需要:
1. 把所有的浮点数写成x.0dx的形式,以确保以双精度进行计算
2. 在整数后面乘以 1.0d0,以防止整数除法的出现.
3. 如果可能的话, 找到编译器的手册, 看看如何改变real的默认精度, 比如ivf需要加上 -r8选项, 这样real默认为双精度.

确保以上3点都完美地完成, 你就能得到和matlab一样的结果了.
3楼2010-11-04 18:51:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luoxitc

新虫 (初入文坛)

lqhcxx(金币+3): 2010-12-22 20:32:42
Fortran 应该比matlab精度高的
想有件T恤,上面印着空姐的头像
4楼2010-12-22 14:32:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lqhcxx 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见