Вопрос по math, c – Почему pow (-infinity, положительное нецелое число) + бесконечность?

13

Приложение C99 & # xA0; F (поддержка IEEE с плавающей запятой) говорит следующее:

pow(−∞, y) returns +∞ for y > 0 and not an odd integer.

Но, скажем, (& # x2212; & # x221E;)0.5 на самом деле имеет мнимые значения & # xB1; & # x221E; i, а не + & # x221E ;. Собственный C99sqrt(−∞) возвращает NaN и генерирует ошибку домена, как и ожидалось. Почему тогдаpow требуется вернуть + & # x221E ;?

(Большинство других языков используют библиотеку C напрямую или, как и Python в этом случае, копируют поведение, требуемое в соответствии со стандартами, поэтому на практике это затрагивает не только C99.)

@ Стандартная математика OliCharlesworth - взятие квадрата отрицательного числа дает мнимое число. Alnitak
@ Alnitak: Я не уверен, что такие понятия, как "∞i", имеют особое значение ... Oliver Charlesworth
Я не уверен, что вы подразумеваете под "−∞ <sup> 0.5 </ sup> на самом деле является мнимым числом ∞i"; откуда взялись мнимые числа? Oliver Charlesworth
@ OliCharlesworth, это то, что большинство людей говорят о воображаемых числах и о бесконечности, но я не знаю, почему их нельзя объединять. Alnitak
@ Alnitak: Ну, стандартный комплексный анализ имеет расширенный комплексный самолет, который имеет одно значение бесконечности ... Oliver Charlesworth

Ваш Ответ

1   ответ
14

Для нечетного целого числаy, имеет смысл определить

pow(±0, y) = ±0

В конце концов, возведение в нечетную силу всегда сохраняет знак. Если мы сможем сохранить знак нуля, мы могли бы сделать это. Для положительного Не -integery, мы должны определить

pow(±0, y) = +0.

Знак не определен. Но мы не устанавливаем это наNaN для-0 по той же причине, по которой мы не ставимsqrt(-0) равноNaN: это просто не имеет смысла. (FWIW, это также, как это определено в разделе 9.2.1 стандарта IEEE-754-2008.)

С 1 / ± 0 = ± ∞ и математически

pow(x,y) = 1/pow(1/x,y)

затем настройкаx=±∞ в приведенном выше, приводит к:

pow(±∞,y) = 1/pow(±0,y) = 1/+0 = +∞

дляy положительное нецелое число.

Что если вы считаете (± 1) / 0 = ± ∞, считая, что «-0» - это то же самое действительное число, что и «0»? Heath Hunnicutt
@ HeathHunnicutt(-inf)^(1/2) = (-1/0)^(1/2) = (-1)^(1/2)/0 = nan/0 = nan Chortos-2
Я все еще не согласен со стандартом оpow(−∞, y) (возможность получить положительную бесконечность в дополнение к двум сложным корням должна только способствовать определению его как NaN), но это объясняет, откуда исходит стандартное поведение (или может появиться). Благодарность Chortos-2
Это переносит вопрос на «Почему вообще -0?» Ну, одна из причин в том, что-0 обозначает недостаток снизу. Другая причина состоит в том, что разрезы ветвей в сложной плоскости, как они традиционно определены, просто работают как ожидается с-0. Jeffrey Sax
+ 1, выбор IEEE для определения Pow таким способом не имеет большого смысла для меня, но это первый несколько разумный аргумент, который я видел для этого. R..

Похожие вопросы