开发者

How to get (-8)^0.333333 = -2 in MATLAB?

Using MATLAB exponential function:

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

How to get (-8)^开发者_如何学C0.333333 = -2 instead?

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

How to get real value?

How to redefine ^:

x.^y

to

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


There are 3 possible answers for the cube root of -8: -2, 1+/- sqrt(3)

You probably want nthroot(-8,3) --> -2


MATLAB 7.0 provides the NTHROOT function, which returns the real roots of a number. So your formula becomes NTHROOT(-8, 3) = -2

If you are using a version prior to MATLAB 7.0 (R14), please read the following:

To obtain the real cube root of a negative real number "x", rather than executing:

x.^(1/3)

use the command:

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

This will find the absolute value of the root and modify it by the sign of the argument.

See this

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜