2011-09-28 111 views
2

使用MATLAB指數函數:如何在MATLAB中獲得(-8)^ 0.333333 = -2?

(-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)) 
+2

你可能想了解這一點:http://en.wikipedia.org/wiki/Principal_branch – jason

+0

非常感謝你。 – h02h001

回答

3

MATLAB 7.0提供了NTHROOT函數,它返回一個數字的真正根。所以,你的公式如果您使用的是之前MATLAB 7.0(R14)版本變得NTHROOT(-8, 3) = -2

,請閱讀以下內容:

爲了得到一個負實數「×」,真正的立方根,而不是執行:

x.^(1/3) 

使用命令:

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

這將找到根的絕對值和由參數的符號進行修改。

See this

+0

非常感謝。 如何重新定義^: x。^(1/3) 至 sign(x)。* abs(x。^(1/3)) – h02h001

4

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

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