cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 8416|回复: 11

菜鸟新发现:哪个HP计算器能算负数的负数幂?

[复制链接]
发表于 2015-9-25 11:22:52 | 显示全部楼层 |阅读模式
如果火星了,请大家原谅...
如题:(-0.2)^(-0.2)或者(-1/5)^(-1/5)
推广一下:对于f(x)=x^x(X<0且ABS(X)非整数的实数解),HP哪款计算器能算正确吗?
已知:
(1):fx82es,fx991es,TI全系列都没有问题.
(2):HP39GS和HP Prime有问题.这也是f(x)=x^x永远画不出来(画不正确)的原因.
小结:
要说这算BUG吧,这BUG至少也十年以上了吧...
假如我去给中学生推荐的话,我也不会推荐HP的计算器...

发表于 2015-9-25 12:34:12 | 显示全部楼层
HP Prime可以算
发表于 2015-9-25 13:26:35 | 显示全部楼层
这个不是bug,负数的小数次方涉及到复数。
贴个相关例子,纯文本复制粘贴,格式见谅。
[提问] 为什么用用MATLAB计算-8的1/3次方不能得到 -2呢? [复制链接]
shinesky

该用户从未签到
电梯直达跳转到指定楼层 楼主
发表于 2009-8-20 21:44:15 | 只看该作者 回帖奖励
为什么用用MATLAB计算-8的1/3次方不能得到 -2呢?
>> a=-8;
r=a^(1/3)
r =
   1.0000 + 1.7321i
得到的结果是这个复数,为什么啊?
我是新手,刚接触,请各位赐教!
分享到:  
QQ好友和群QQ好友和群

QQ空间QQ空间

腾讯微博腾讯微博

腾讯朋友腾讯朋友
收藏收藏1

分享分享

鲜花鲜花
鸡蛋鸡蛋
回复 使用道具 举报
dynamic

签到天数: 12 天
[LV.3]偶尔看看II
沙发
发表于 2009-8-20 22:12:48 | 只看该作者
这个问题的原因是,Matlab的乘方计算的时候总是返回幅角绝对值最小的那个数值结果

学过复变函数和复数的网友都知道

a=-8;
r=a^(1/3)

有三个根,但是1.0000 + 1.7321i幅角绝对值最小,我们实数范围的-2由于幅角是180°,比现在这个大多了

如果想得到所有根,请使用roots和solve函数

>> solve('x^3+8')

ans =

          -2
1+i*3^(1/2)
1-i*3^(1/2)


>> syms x
>> y=x^3+8

y =

x^3+8


>> p=sym2poly(y)

p =

     1     0     0     8

>> roots(p)

ans =

  -2.0000         
   1.0000 + 1.7321i
   1.0000 - 1.7321i
回复 支持 反对 使用道具 举报
wacs5

该用户从未签到
板凳
发表于 2009-8-20 23:23:07 | 只看该作者
哈哈,支持一下。

另外我觉得我想说的一点是:
C语言等编程语言中,负数的小数次方是非法的。
即pow(-8,1.0/3)是非法的。因为C语言中没有复数(得自己定义)

另外你如果想得到1/3次方的话,你可以
a=-8;
b=sign(a).*(abs(a)^(1.0/3))
回复 支持 反对 使用道具 举报
reastrong

该用户从未签到
地板
发表于 2009-8-21 20:44:32 | 只看该作者
两位牛人

这两个校长回答的都太厉害了
顶下 佩服
发表于 2015-9-25 19:54:01 | 显示全部楼层
你这种情况用nthroot(-8,3)就可以了。
无论是roots还是solve,在代码中提取结果是很蛋疼的。
发表于 2015-9-26 09:40:40 | 显示全部楼层
古董机HP20S直接出错,HP42S给出复数答案。
 楼主| 发表于 2015-9-26 10:31:08 | 显示全部楼层
本帖最后由 yayongm5 于 2015-9-26 10:39 编辑

我把安卓上的HP Prime 1.09版的结果补充一下吧:
一.非CAS下:
使用自然书写编辑(-1/5)^(-1/5)结果是:错误:(X<0)^(<Z)
(-0.2)^(-0.2)结果是:错误:(X<0)^(<Z)
使用自然书写编辑-5√(-0.2)结果是:错误:(X<0)^(<Z)
二.CAS下:
使用自然书写编辑-5√(-0.2)结果是-1.37972966146,该结果同调用系统NTROOT命令完全一致
(-0.2)^(-0.2)结果是:复数
使用自然书写(-1/5)^(-1/5)的结果是:((-1/5)^(1/5))^-1,使用Shift+Enter后结果是:复数
三.Prime真机情况未知,但这个结果用各种解释都有点儿勉强,这种结果至少是无法向初中生解释的,所以初中生还是老老实实用Casio或者TI比较好.

四.从使用习惯和基于自然输出的CAS来看,HP的这种结果对于我这种小学生来说基本上是很难接受的,尽管我知道那个复数结果是对的...


发表于 2015-10-17 18:38:34 | 显示全部楼层
本帖最后由 yzskyt 于 2015-10-17 18:51 编辑

你错了,x^x亲测在HP Prime与9860G Slim成功画出,前提要打开复数模式。Nspire (OS 3.6)的便签本画这个函数有Bug,但在文档中又能正确画出。
发表于 2015-10-17 18:42:02 | 显示全部楼层
同样地,Prime无论在CAS还是Home都可以正确地计算(0.2^-0.2),只要你在主屏幕设置和CAS设置中为“复数”项打勾。
发表于 2015-10-17 19:19:47 | 显示全部楼层
如图,两次计算分别打开或关闭复数计算选项
1701.jpg
画x^x的图像:两条线分别代表实部和虚部,三系列全部正确画出
1702.jpg
1703.jpg
说到对复数的支持,HP绝对算得上是三系列中最好的,在没有CAS的图形机中,9860和Ti84计算sin(i)全部报错,而像HP42s这种老古董的非图形计算器都能轻松算出(好像39gs也可以)
 楼主| 发表于 2015-10-18 00:28:30 | 显示全部楼层
本帖最后由 yayongm5 于 2015-10-18 00:46 编辑
yzskyt 发表于 2015-10-17 19:19
如图,两次计算分别打开或关闭复数计算选项

画x^x的图像:两条线分别代表实部和虚部,三系列全部正确画 ...

首先谢谢您的补充说明。
我看了您的图片,然后仔细想了一下:您是否将x^x作为两个函数分开来画了?如果是,那我就知道是怎么一回事了。如果不是,还请您多多指教。
以我的观点看,其实您的TI CX CAS实际上只用一个函数即可将该图形画出,而不需要两个函数分别画实部和虚部(TI CAS画的都是实数根),这也是我所说的关键所在。当然,所有具有CAS功能的TI都能用一个函数将该图形画出而不需要分开。理解这一点,您也就能明白为啥我对HP计算器意见有点儿大的原因了。呵呵,开玩笑,我跟HP无冤无仇。。。另外再多嘴一句:(-0.2)^(-0.2)在TI CAS的实数范围内的根是-1.37972966146,这个实数根是可以向初中生讲明白的,这也是我说建议初中生使用Casio和TI的原因吧。
再次表示感谢。

发表于 2020-9-30 17:55:55 | 显示全部楼层
hp39gii给出复数答案
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 18:58 , Processed in 0.049066 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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