#matlab
Вопрос:
Я использую Matlab R2020b (Mac OS 12.0.1).
Когда я войду (-8)^(-2/3), он возвращается:
ans = -0.1250 - 0.2165i
Разве вместо этого не должно быть 0,2500?
Ответ №1:
Возведение отрицательных чисел в дробную степень-сложная многозначная операция. MATLAB просто выбирает одно из решений для вас. Например, для решений (-8)^(1/3). начните с корней следующего полиномиального уравнения:
x^3 8=0
Использование MATLAB для этого:
gt;gt; roots([1 0 0 8]) ans = -2.0000 0.0000i 1.0000 1.7321i 1.0000 - 1.7321i
Затем доведение этого результата до -2 дает мощность:
gt;gt; ans.^-2 ans = 0.2500 0.0000i -0.1250 - 0.2165i -0.1250 0.2165i
MATLAB случайно дал вам второе решение выше для расчета (-8)^(-2/3).
ИТОГ: Всякий раз, когда вы имеете дело со сложными многозначными операциями, если вы хотите получить конкретные результаты, вам нужно будет учитывать это в своем коде, потому что MATLAB может выбрать что-то другое.
Комментарии:
1. Matlab не дал такого результата, вместо этого он всегда возвращает корень основной ветви
(-pi, pi]
, т. Е.(-8)^(-2/3) = 8*exp(pi*(-2/3)) = -0.1250 - 0.2165i
.
Ответ №2:
Зависит от порядка расчета.
(-8)^(-2/3)
означает разделить -2 на 3, а затем увеличить -8 до этой степени.
Но если вы сделаете ((-8)^(-2))^(1/3)
это или nthroot((-8)^(-2),3)
вместо этого, вы получите 0,25.