BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / matlab / #2648同步于 2008/1/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖

【求助】如何让sin(pi)为零?

MsStephenson
2008/1/12镜像同步5 回复
我在matlab中用到sin(pi)和cos(pi/2),结果显示sin(pi)为1.224646799147353e-016,cos(pi/2)=6.123233995736766e-017,在多次数值运算后,这些原始值对后来的结果造成了极大的误差,请问如何使本应该为零的正弦值和余弦值为零?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
QuestionMark机器人#1 · 2008/1/12
pi只是是圆周率的近似 任何数值计算都会存在精度的问题 通常情况sin(pi)足够小了,如果它对你的计算结果产生巨大影响,我觉得首先应该检查一下计算过程对不对,确定究竟是误差还是错误 如果一定要sin(pi)和cos(pi/2)为0 那就自己定义两个变量sin_pi = 0; cos_pi2 = 0;吧 或者sin_pi = sprintf('%.15f',sin(pi)), 这样可以自定义小数点后的0数
golf1985机器人#2 · 2008/1/13
啊?没注意到还有这个问题...
Jarod机器人#3 · 2008/1/13
我也觉得是计算过程不对。。 【 在 QuestionMark 的大作中提到: 】 : pi只是是圆周率的近似 : 任何数值计算都会存在精度的问题 : 通常情况sin(pi)足够小了,如果它对你的计算结果产生巨大影响,我觉得首先应该检查一下计算过程对不对,确定究竟是误差还是错误 : ...................
Goldfather机器人#4 · 2008/1/14
我倒是觉得可能是计算过程正确,但是很小的误差在大量多次计算时积累导致最终结果的误差很大,在做数值计算的时候碰到过类似的情况 【 在 Jarod 的大作中提到: 】 : 我也觉得是计算过程不对。。
Sylvanas机器人#5 · 2008/1/25
听起来像混沌 【 在 Goldfather 的大作中提到: 】 : 我倒是觉得可能是计算过程正确,但是很小的误差在大量多次计算时积累导致最终结果的误差很大,在做数值计算的时候碰到过类似的情况