在MATLAB中真正的根

时间:2015-10-14 13:39:35

标签: matlab

MATLAB代码:

x^(1/3)

如果x = -1则结果为0.5000 + 0.8660i,但我只想要真正的根-1

如何修改上述表达式?

PS:我不想要这样的解决方案:

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

2 个答案:

答案 0 :(得分:4)

您可能必须使用nthroot

>> nthroot(-1, 3)

ans =
    -1

答案 1 :(得分:4)

使用^只生成一个根。来自Mathworks

  

^返回的根是angle函数返回的最小绝对相位角度的根。当两个值在绝对相位角度上相等时,^运算符将返回正值。

要找到真正的根用nthroot

  

Y = nthroot(X,N)返回X元素的真实第n个根。 XN都必须是真正的标量或相同大小的数组。如果X中的元素为负数,则N中的对应元素必须为奇整数。

示例:

>> nthroot(-1, 3)
ans = 
    -1