2014-12-25 2 views
1

파이썬 3.4에서 수학 모듈을 가지고 놀고 있는데 파이썬 웹 사이트에서 자세한 정보를 얻는 데 어려움을 겪고있는 fmod 함수를 사용할 때 흥미로운 결과를 얻었습니다.math.fmod()를 사용한 파이썬 이상한 결과

하나의 간단한 예는 다음과 같다 :

from math import * 

x = 99809175801648148531 
y = 6.5169020832937505 
sqrt(x)-cos(x)**fmod(x, y)*log10(x) 

가 반환

(9990454237.014296+8.722374238018135j) 

방법이 결과를 해석하는? j는 무엇입니까? 내가 허수인가요? 그렇다면 j가 아닌 이유는 무엇입니까? fmod에 대한 정보뿐만 아니라 일부 리소스에 대한 링크도 매우 환영합니다.

+0

상수는'a + bj'가 아닌'a + bi'로 표현됩니다. –

+1

'i'와'j'는 복소수 단위를 나타내는 표기법이며'i'는 수학에서 많이 사용되고'j '더 많은 엔지니어링에 사용됩니다. – shuttle87

+0

예, 전자 공학의 관습입니다 ('i'는 타이핑 글쓰기에서 '1'과 매우 유사하므로). 이 [SO 스레드] (http://stackoverflow.com/questions/8370637/complex-numbers-usage-in-python)에서 더 많은 것을 읽을 수 있습니다. – logc

답변

0

ji, -1의 제곱근과 동일합니다. 엔지니어링에서 일반적으로 사용되는 규칙으로 i은 전류를 나타내는 데 사용됩니다.

귀하의 경우 복소수가 발생하는 이유는 음수를 분수로 올리는 것입니다. 자세한 내용은 How do you compute negative numbers to fractional powers?을 참조하십시오.

0

cos (x)는 음수입니다. 음수를 비 정수 함수로 올리면 복잡한 결과를 얻는 것은 놀라운 일이 아닙니다. 대부분의 음수 뿌리는 복잡합니다.

>>> x = 99809175801648148531 
>>> y = 6.5169020832937505 

>>> cos(x) 
-0.7962325418899466 
>>> fmod(x,y) 
3.3940870272073056 
>>> cos(x)**fmod(x,y) 
(-0.1507219382442201-0.436136801343955j) 

상수는 'i'또는 'j'로 나타낼 수 있습니다. 그 이유는 역사적이라고 생각합니다. 수학자들은 'i'를 상상해보십시오. 전기 기술자들은 상상의 'i'를 현재 'i'와 혼동하기를 원하지 않으므로 'j'를 사용했습니다. 자, 둘 다 사용됩니다.