Почему log(inf + inf j) равен (inf + 0,785398 j) в C++/Python/NumPy?Python

Программы на Python
Ответить
Anonymous
 Почему log(inf + inf j) равен (inf + 0,785398 j) в C++/Python/NumPy?

Сообщение Anonymous »

Я обнаружил странное поведение функций log в C++ и numpy о поведении функции log, обрабатывающей сложные бесконечные числа. В частности, log(inf + inf * 1j) равен (inf + 0.785398j), хотя я ожидаю, что это будет (inf + nan * 1j).
При логарифме комплексного числа действительная часть — это лог абсолютного значения входных данных, а мнимая часть — это фаза входных данных. Возврат 0,785398 в качестве мнимой части log(inf + inf * 1j) означает, что предполагается, что inf в действительной и мнимой частях имеют одинаковую длину.
Это предположение не кажется для согласованности с другими вычислениями, например, inf - inf == nan, inf / inf == nan, что предполагает, что 2 inf не обязательно имеют одни и те же значения.
Почему предположение для log(inf + inf * 1j) отличается?
Воспроизведение кода C++:< /p>

Код: Выделить всё

#include 
#include 
#include 
int main() {
double inf = std::numeric_limits::infinity();
std::complex b(inf, inf);
std::complex c = std::log(b);
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/74798626/why-is-loginf-inf-j-equal-to-inf-0-785398-j-in-c-python-numpy[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»