2

使用 MATLAB 指数函数:

(-8)^0.333333
ans = 1.0000 + 1.7320i

怎么(-8)^0.333333 = -2 取而代之?

x=-10:-1;
x.^0.333333

如何获得真正的价值?

如何重新定义^

x.^y

sign(x).*abs(x.^y))
4

2 回答 2

4

-8 的立方根有 3 个可能的答案:-2, 1+/- sqrt(3)

你可能想要nthroot(-8,3) --> -2

于 2011-09-28T02:10:31.133 回答
3

MATLAB 7.0 提供了该NTHROOT函数,它返回一个数字的实根。所以你的公式变成了NTHROOT(-8, 3) = -2

如果您使用的是 MATLAB 7.0 (R14) 之前的版本,请阅读以下内容:

要获得负实数“x”的实数立方根,而不是执行:

x.^(1/3)

使用命令:

sign(x).*abs(x.^(1/3))

这将找到根的绝对值并通过参数的符号对其进行修改。

看到这个

于 2011-09-28T02:12:43.067 回答