gpt4 book ai didi

matlab - Fortran 与 Matlab 的精度

转载 作者:行者123 更新时间:2023-12-01 14:37:40 26 4
gpt4 key购买 nike

在 Fortran 中,我输出 tanh(1) 的结果并得到值 0.7615941763:

open(unit=2, file='test_digits.txt', ACTION="write")
write(2, '(1000F14.10)')( real(tanh(1.0)))

但是,我现在尝试在 MatLAB 中执行相同的操作,输出为 0.761594155955765。第 8 位不同。

造成这种精度差异的原因是什么?我能以某种方式修复它吗?

最佳答案

Matlab 默认使用 double ,您使用的是单精度 float !它们被限制为 7-8 位数字......如果你也使用 double ,你将获得相同的精度:

program test
write(*,*) 'single precision:', tanh(1.0)
write(*,*) 'double precision:', tanh(1.0d0)
end program

输出:

 single precision:  0.761594176    
double precision: 0.76159415595576485

关于matlab - Fortran 与 Matlab 的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com