Как получить (-8) ^ 0.333333 = -2 в MATLAB? - PullRequest
2 голосов
/ 28 сентября 2011

Использование экспоненциальной функции MATLAB:

(-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 ]

4 голосов
/ 28 сентября 2011

Существует 3 возможных ответа для корня куба -8: -2, 1+/- sqrt(3)

Вы, вероятно, хотите nthroot(-8,3) --> -2

3 голосов
/ 28 сентября 2011

MATLAB 7.0 предоставляет функцию NTHROOT, которая возвращает реальные корни числа. Таким образом, ваша формула становится NTHROOT(-8, 3) = -2

Если вы используете версию, предшествующую MATLAB 7.0 (R14), прочитайте следующее:

Чтобы получить реальный кубический корень из отрицательного действительного числа "x" вместо выполнения:

x.^(1/3)

используйте команду:

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

Это найдет абсолютное значение корня и изменит его по знаку аргумента.

Смотрите это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...