Я нахожу странное поведение функций log в C ++ и Numpy о поведении журнала Обработка функций. Сложные бесконечные числа. В частности, log (inf + inf * 1j) equals (inf + 0.785398j) , когда я ожидаю, что он будет (inf + nan * 1j) .
при получении журнала комплексного числа, реальная часть - это журнал абсолютного значения входного и воображаемого, и воображаемая часть является фазой входного входа. Returning 0.785398 as the imaginary part of log(inf + inf * 1j) means it assumes the infs in the real and the imaginary part have the same length.
This assumption does not seem to be consistent with other calculation, for example, inf - inf == nan, inf / inf == nan which assumes 2 infs do not necessarily have the same значения.
Почему предположение для журнала (inf+ inf * 1j) отличается?
воспроизводить код C ++:
#include
#include
#include
int main() {
double inf = std::numeric_limits::infinity();
std::complex b(inf, inf);
std::complex c = std::log(b);
std::cout
import numpy as np
a = complex(float('inf'), float('inf'))
print(np.log(a))
< /code>
Изменить: Спасибо за всех, кто участвует в обсуждении исторической причины и математической причины. Вы все превратите этот наивный вопрос в действительно интересную дискуссию. Предоставленные ответы - все высокое качество, и я хотел бы принять более 1 ответов. Тем не менее, я решил принять ответ @Саймона, как он более подробно объясняет математическую причину и предоставил ссылку на документ, объясняющий логику (хотя я не могу полностью ее понять).
Подробнее здесь: https://stackoverflow.com/questions/747 ... thon-numpy
Почему log (inf + inf j) равен (inf + 0,785398 j), в C ++/Python/Numpy? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
«java.io.FileNotFoundException: Velocity.log», добавленный в файл eclipse .log
Anonymous » » в форуме JAVA - 0 Ответы
- 51 Просмотры
-
Последнее сообщение Anonymous
-