SWI Prolog evaluate-1提高到一个分数,可以这样做吗

SWI Prolog evaluate-1提高到一个分数,可以这样做吗,prolog,exponentiation,Prolog,Exponentiation,在计算数学表达式时,我需要将-1的值提升为指数。当指数为整数时,结果与预期一致,但当指数为非整数时,结果未定义 是否可以使用SWI Prolog将-1计算为非整数 e、 g-1^0.5 首选答案不应超过几行即可完成。使用包装是可以接受的。使用另一种语言通话是可以接受的,但不太可取 补充 使用SWI Prolog时,如果使用或以-1为基数并以分数作为指数,则会导致未定义 我知道这是基于,正如上面提到的,它不支持复数 我也知道a是实部和虚部的连续函数。目前我只对真实的部分感兴趣 注意到-1^x的曲线

在计算数学表达式时,我需要将-1的值提升为指数。当指数为整数时,结果与预期一致,但当指数为非整数时,结果未定义

是否可以使用SWI Prolog将-1计算为非整数

e、 g-1^0.5

首选答案不应超过几行即可完成。使用包装是可以接受的。使用另一种语言通话是可以接受的,但不太可取

补充 使用SWI Prolog时,如果使用或以-1为基数并以分数作为指数,则会导致未定义

我知道这是基于,正如上面提到的,它不支持复数

我也知道a是实部和虚部的连续函数。目前我只对真实的部分感兴趣

注意到-1^x的曲线图类似于频率偏移,从

cos((10 * x) / pi)
要调整函数的频率,请在X轴上以10的平移绘制函数,然后调整cos函数以匹配,例如

cos((9.9 * x) / pi)
然后继续向外平移和调整。经过几次反复调整,该函数已接近10000的x所需的值

cos((9.8696 * x) / pi)

?- V is cos((9.8696*(10000.0))/pi).
V = 0.9999018741279994.
补充
为了使调整更容易进行,使用绘制函数。注意,由于SWI Prolog和Wolfram Alpha之间的差异,调整系数略有不同。对于Wolfram Alpha,因子为9.86955,而对于SWI Prolog,因子为9.8696

Undefined是正确的答案,因为-1^0.5在R中没有解,但C不受支持。@false我认为SWI Prolog不应返回错误:算术:求值错误:“Undefined”,而是返回不支持的复数。当我第一次看到这个错误时,我以为我在代码的某个地方被零除了。在研究了一个小时后,我才发现根本原因是不支持复数。@GuyCoder undefined是这种情况下的一个合法错误。该操作在操作支持的域中是真正未定义的。我确实同意,诸如complex not support之类的错误消息可能会更有帮助,但可以梳理所有实时消息,如果愿意,还可以改进其中一些消息。那么,这里的问题是,如何通过将虚构的结果表示为某种术语来轻松处理它们?或者你只是想得到真实的部分?我不清楚你到底想要什么。在你的问题中,你已经探索了几个分支…@GuyCoder:LIA模型似乎很自然地涵盖了这个问题。然而,如果你对进一步的研究感兴趣,特别是对w.r.t.结果的可靠性,我建议你看看“潜伏者”,那么这里的问题是,如何通过将虚构的结果表示为某种术语来轻松处理它们?或者你只是想得到真实的部分?对于现在和这个问题,我只需要真实的部分,但在未来,我不需要这个问题的一部分,我需要想象的部分。更具体地说,但在问题中没有提到,我需要知道数学表达式是否会产生奇数或偶数值,以便与规则-1^x一起使用。当x为奇数时,该项可重写为-1,当x为偶数时,该项可重写为1.BTW;在西澳州,有可能在同一坐标系下绘制两个函数吗?我明白这一点。。
cos((9.9 * x) / pi)
cos((9.8696 * x) / pi)

?- V is cos((9.8696*(10000.0))/pi).
V = 0.9999018741279994.