cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 3646|回复: 5

[求助] 三角函数精度校验出现domain error

[复制链接]
发表于 2013-6-22 19:45:27 来自手机 | 显示全部楼层 |阅读模式
为啥asin(acos(atan(tan(cos(sin(9))))))就可以,tan(cos(sin(asin(acos(atan(9))))))就不行,直接Domain error

在nspire上就是前几步可以,后面直接就是“资源耗尽。无法完成计算。”

还有,在Droid48上返回了一个有效结果:9.00000272037
发表于 2013-6-22 20:34:42 | 显示全部楼层
acos的定义域是-1到1,而atan(9)的值不在这个域内,所以会有non-real result或domain error或undef(依机器、角度模式、求精确解或近似解而定),但资源耗尽……我没有发现此情况。至于Droid48,本人没用过,猜测可能由于采用某种特殊的算法而能够得到有效结果
发表于 2013-6-22 20:40:16 | 显示全部楼层
补充一下,上面说的Droid48返回有效结果的问题,这个特殊算法个人猜测可能是利用了复数域。
发表于 2013-6-22 21:56:10 来自手机 | 显示全部楼层
48GX实测,的确acos(atan(9))返回复数值 (0,5.11987013312) 如果把nspire的设置由real改为rectangular应该就可以算了吧。
 楼主| 发表于 2013-6-24 16:56:58 来自手机 | 显示全部楼层
ExAcler 发表于 2013-6-22 22:28
常识都不懂还好意思问啊,知道atan(9)返回的值不在acos的定义域内吗?

@juntokov @朔雪X忆 抱歉,才注意到这个问题,楼主初三只学过锐角三角函数。还有,资源耗尽的是sin(cos(tan(atan(acos(asin(9)))))),其中atan(acos(asin(9)))返回了一个长度高达1812的结果(dim返回的),再高便资源耗尽。
发表于 2016-3-31 22:41:20 | 显示全部楼层
asin(acos(atan(tan(cos(sin(9))))))=9.000000103,CASIO VX-4袖珍计算机,不知道这个精度算不算好的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-4-20 01:10 , Processed in 0.066183 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表