c++ - 需要 pow(-1,1.2) 为 1

标签 c++ math numerical-methods pow

我将 math.h 与 GCC 和 GSL 一起使用。我想知道如何对此进行评估?

我希望 pow 函数将 pow(-1,1.2) 识别为 ((-1)^6)^(1/5)。但事实并非如此。

有人知道可以识别这些的 C++ 库吗?也许有人可以分享他们的分解例程。

最佳答案

在数学上,pow(-1, 1.2) 根本没有定义。负数的小数指数没有幂,我希望没有库会简单地为这样的表达式返回一些任意值。你是否也期待这样的事情

pow(-1, 0.5) = ((-1)^2)^(1/4) = 1

这显然是不可取的。

此外, float 1.2 甚至不完全等于 6/5。最接近 1.2 的 double 是

1.1999999999999999555910790149937383830547332763671875

鉴于此,对于 pow(-1, 1.2),您现在期望得到什么结果?

关于c++ - 需要 pow(-1,1.2) 为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325745/

相关文章:

c++ - 修改右值引用的值 - 它是如何工作的?

c++ - C++ 撤消/重做实现中的抽象类问题

c++ - 如何访问 vector 值 std::vector <cv::Point2f> pto

javascript - 相对于另一个物体旋转

math - 把一条线变成一个矩形

python - 将一个数拆分为两个幂的和

c++ - 我能以某种方式将 Maple 过程包含到 C++ 代码中吗

c++ - 如何使用 iofstream 将函数的输出写入文件?

algorithm - 并行计算Pi的快速算法

matlab - 耦合常微分方程的龙格库塔