欢迎光临散文网 会员登陆 & 注册

由弧度和角度引发的血案

2020-11-10 10:25 作者:ocean_tide  | 我要投稿

最近有个学弟请教我问题,如下所示,ha是振幅,hp是迟角,Re是ha*cos(hp),但是他一算发现怎么Re和ha*cos(hp)的结果不一样啊?他百思不得其解,我笑了笑,因为你的hp是角度,而cos函数的输入要求是弧度,你可以用cosd函数,这个函数的可以输入角度。然后问题就解决了。这个问题虽然简单,但是无数人掉过这个坑。

这个同学只是运行几行代码,如果你的代码有数百甚至上千行,要找出这个错误可就难了。FVCOM是海洋学研究中广泛使用的海洋模型,代码可能有几万行都不止。FVCOM3.1.6和3.2.1版本在使用球坐标进行拉格朗日质点追踪时质点轨迹异常,表现为质点移动速度过快或者质点长时间静止不动。原因很简单就是把角度直接输入了cos函数(Fortran和matlab函数都是类似的)
fvcom的bug是苗春葆师兄发现的


由弧度和角度引发的血案的评论 (共 条)

分享到微博请遵守国家法律