DAS 发表于 2013-6-22 19:45:27

三角函数精度校验出现domain error

为啥asin(acos(atan(tan(cos(sin(9))))))就可以,tan(cos(sin(asin(acos(atan(9))))))就不行,直接Domain error

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

还有,在Droid48上返回了一个有效结果:9.00000272037

juntokov 发表于 2013-6-22 20:34:42

acos的定义域是-1到1,而atan(9)的值不在这个域内,所以会有non-real result或domain error或undef(依机器、角度模式、求精确解或近似解而定),但资源耗尽……我没有发现此情况。至于Droid48,本人没用过,猜测可能由于采用某种特殊的算法而能够得到有效结果

juntokov 发表于 2013-6-22 20:40:16

补充一下,上面说的Droid48返回有效结果的问题,这个特殊算法个人猜测可能是利用了复数域。

朔雪X忆 发表于 2013-6-22 21:56:10

48GX实测,的确acos(atan(9))返回复数值 (0,5.11987013312) 如果把nspire的设置由real改为rectangular应该就可以算了吧。

DAS 发表于 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返回的),再高便资源耗尽。

xiaoganglu 发表于 2016-3-31 22:41:20

asin(acos(atan(tan(cos(sin(9))))))=9.000000103,CASIO VX-4袖珍计算机,不知道这个精度算不算好的?
页: [1]
查看完整版本: 三角函数精度校验出现domain error