Экспонентация с отрицательной базой - PullRequest
4 голосов
/ 17 ноября 2011

Итак, выражение R и его вывод выглядят следующим образом:

> (4-7)^1.3
[1] NaN

Есть идеи, как решить эту проблему в R?

Ответы [ 2 ]

8 голосов
/ 17 ноября 2011

Ответ является комплексным числом, поэтому вам нужно дать ему сложный аргумент:

> (4-7+0i)^1.3
[1] -2.451751-3.374545i

но помните, что это только один корень ...

6 голосов
/ 17 ноября 2011

Я цитирую из Википедии, особенно жирный текст (http://en.wikipedia.org/wiki/Exponentiation):

. Стандарт IEEE 754-2008 используется для разработки большинства> библиотек с плавающей запятой. Он рекомендует ряд различных функций длявычисление степени: [19]

  • pow рассматривает 00 как 1. Это самая старая определенная версия. Если значение представляет собой точное целое число, результат такой же, как и для pown, в противном случае результат равендля powr (за исключением некоторых исключительных случаев).
  • pown рассматривает 00 как 1. Степень должна быть точным целым числом. Значение определено для отрицательных оснований, например, pown (−3,5) равно -243.
  • powr рассматривает 00 как NaN (Not-a-Number - undefined) .Это значение также равно NaN для случаев, подобных powr (-3,2), где основание меньше нуля.Значение определяется как epower × log (base).

Поэтому я думаю, что R демонстрирует стандартное поведение в соответствии с международными стандартами.

...