关于余弦角度不精确的问题
我的程序中得到的角度值很小,d-5/-6,用内部余弦函数求得的结果是1,而不是准确值,该怎样处理能得到最精确的值呢?我最终的目的是要求一个旋转矩阵r(2,2)
r(1,1)=cos(a);r(1,2)=sin(1,2)
r(2,1)=-r(1,2)r(2,2)=r(1,1)
我的处理办法是r(1,1)=r(1,1)+/-r(1,2),使得r(1,1)**2+r(1,2)**2近似等于1,但是好像循环有累积误差,会发散,不知道该怎样处理能更精确一些。
大虾们有遇到过类似的问题吗?
谁知道赶紧帮帮忙啊,不知道的顶起来! 用双精度的dcos、dsin 回复 秦不可卿 的帖子
好像应该使用-5.0/-6.0吧,要不会按整数处理~
program main
real(kind=8):: r
real(kind=8)::a=-5.0/-6.0
r=cos(a)
write(*,*)a
end
这样就没有问题了~
页:
[1]