我使用的是 Matlab R2020b(Mac OS 12.0.1)。
當我輸入 (-8)^(-2/3) 時,它回傳:
ans =
-0.1250 - 0.2165i
不應該是 0.2500 嗎?
uj5u.com熱心網友回復:
將負數提高到分數冪是一個復雜的多值運算。MATLAB 只是為您挑選一種解決方案。例如,對于 (-8)^(1/3) 的解。從以下多項式方程的根開始:
x^3 8=0
為此使用 MATLAB:
>> roots([1 0 0 8])
ans =
-2.0000 0.0000i
1.0000 1.7321i
1.0000 - 1.7321i
然后將這個結果提高到 -2 次冪產生:
>> ans.^-2
ans =
0.2500 0.0000i
-0.1250 - 0.2165i
-0.1250 0.2165i
MATLAB 碰巧為您提供了上述 (-8)^(-2/3) 計算的第二個解決方案。
底線:每當您處理復雜的多值運算時,如果您想要特定的結果,您需要在代碼中考慮到這一點,因為 MATLAB 可能會選擇其他東西。
uj5u.com熱心網友回復:
取決于計算順序。
(-8)^(-2/3) 意味著將 -2 除以 3,然后將 -8 提高到那個冪。
但如果你這樣做((-8)^(-2))^(1/3)或nthroot((-8)^(-2),3)相反,你會得到 0.25。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/361465.html
標籤:MATLAB
上一篇:將MATLAB代碼轉換為Python后,我得到了不同的結果
下一篇:MATLAB全域變數和腳本
