关于cmath中的sin和cos函数

u010262148 2013-11-04 08:59:11
作业需要自己写一个fft,计算复指数的时候需要计算正弦和余弦。虽然计算这些复指数都是一次性的,但是还是希望追求速度和准确性。

由于只是需要实现2^N长度序列的fft,因此计算复指数也只需要计算pi/2^(N-1)*k角度的相关正余弦,实际的话只需要计算pi/2^(N-3)*k的即可。但不管怎么说,pi/2^(N-3)角度的正弦值计算有些特殊,可以循环用半角公式获得。剩下的工作就剩下复数乘法了,感觉这样会比用来计算一般角度三角函数的sin更快更准一些。

所以我想知道cmath中的三角函数计算是怎么完成的。如果是查表之类的那我就直接用了。如果是迭代的话,我记得有一篇讲开根号的帖子,迭代似乎也可以很快的。如果是泰勒展开做的话,不知道它计算了多少项……

总之就是想了解一下cmath中计算三角函数的方法啦~
...全文
1108 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010262148 2013-11-05
  • 打赏
  • 举报
回复
引用 2 楼 mLee79 的回复:
x86 下一般是用FPU算的, 如果自己写, 在[0,pi/2]查表以后再做泰勒展开的话, 只计算前3,4项就足以获得进度到 1e-15 以上的结果, 速度还是很快的..
谢谢!
u010262148 2013-11-05
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
cmath相当于C语言中math.h 参考http://hi.baidu.com/zsb517/item/ec2f99d2414e9514d90e4410 [quote=引用 楼主 u010262148 的回复:] 作业需要自己写一个fft,计算复指数的时候需要计算正弦和余弦。虽然计算这些复指数都是一次性的,但是还是希望追求速度和准确性。 由于只是需要实现2^N长度序列的fft,因此计算复指数也只需要计算pi/2^(N-1)*k角度的相关正余弦,实际的话只需要计算pi/2^(N-3)*k的即可。但不管怎么说,pi/2^(N-3)角度的正弦值计算有些特殊,可以循环用半角公式获得。剩下的工作就剩下复数乘法了,感觉这样会比用来计算一般角度三角函数的sin更快更准一些。 所以我想知道cmath中的三角函数计算是怎么完成的。如果是查表之类的那我就直接用了。如果是迭代的话,我记得有一篇讲开根号的帖子,迭代似乎也可以很快的。如果是泰勒展开做的话,不知道它计算了多少项…… 总之就是想了解一下cmath中计算三角函数的方法啦~
[/quote] 我是问函数内部如何计算的……
u010262148 2013-11-05
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
sin,cos是对实数的三角函数,对复数的正弦余弦函数不是sin,cos!
我是说要计算复指数(exp(j*2pi/N*r))的实部和虚部啦……哪有复数的三角函数……
mLee79 2013-11-05
  • 打赏
  • 举报
回复
x86 下一般是用FPU算的, 如果自己写, 在[0,pi/2]查表以后再做泰勒展开的话, 只计算前3,4项就足以获得进度到 1e-15 以上的结果, 速度还是很快的..
赵4老师 2013-11-05
  • 打赏
  • 举报
回复
sin,cos是对实数的三角函数,对复数的正弦余弦函数不是sin,cos!
图灵狗 2013-11-04
  • 打赏
  • 举报
回复
cmath相当于C语言中math.h 参考http://hi.baidu.com/zsb517/item/ec2f99d2414e9514d90e4410
引用 楼主 u010262148 的回复:
作业需要自己写一个fft,计算复指数的时候需要计算正弦和余弦。虽然计算这些复指数都是一次性的,但是还是希望追求速度和准确性。 由于只是需要实现2^N长度序列的fft,因此计算复指数也只需要计算pi/2^(N-1)*k角度的相关正余弦,实际的话只需要计算pi/2^(N-3)*k的即可。但不管怎么说,pi/2^(N-3)角度的正弦值计算有些特殊,可以循环用半角公式获得。剩下的工作就剩下复数乘法了,感觉这样会比用来计算一般角度三角函数的sin更快更准一些。 所以我想知道cmath中的三角函数计算是怎么完成的。如果是查表之类的那我就直接用了。如果是迭代的话,我记得有一篇讲开根号的帖子,迭代似乎也可以很快的。如果是泰勒展开做的话,不知道它计算了多少项…… 总之就是想了解一下cmath中计算三角函数的方法啦~

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧