2016-11-05 1 views
1

[e^i6(theta)]^2의 값을 C로 계산하려고합니다. 코드 몇 줄을 보여 주려고합니다.C 프로그래밍을 사용하는 복소수 정리

#include <stdio.h> 
#include <math.h> 

float theta; 
float dist,xcoord,division; 

fprintf(fs,"%f\t%f\t%f\t%f\t%f\n", 
    dist, xcoord, division, 
    6*theta, pow(exp(I*6*theta),2)); 

내 출력은 다음과 같습니다 :이 답변 (How to work with complex numbers in C?)에 의해 제안 I 추가 헤더 파일을 추가 한 내 출력 파일의

1.00000 

처음 3 개 라인 :

94.214905  68.130005  0.723134  4.574803  1.000000 
107.493179  -33.500000  -0.311648  11.326338  1.000000 
120.586807  52.529999  0.435620  6.720418  1.000000 

어떤 I 생각은 정확하지 않습니다. 작동 시키려면 무엇을 포함시킬 수 있습니까? 나는 cos과 sin에서이 공식을 분해 할 수 있다는 것에 동의하지만 직접 옵션을 찾고 있습니다.

+0

을 변수의 값에 대해 더 자세히 설명하십시오. – skrtbhtngr

+0

'I'의 값은 무엇입니까? – skrtbhtngr

+0

'#include '을 사용하고 [선언 된 항목] (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/complex.h.html)을 사용하십시오. – pmg

답변

0

<math.h> 대신 <complex.h>을 사용해야합니다. I은 complex.h에서만 정의됩니다. 언급 한 바와 같이 복잡한 기능을 사용하여,

또한 컴파일 타임에 경고를 트리거해야 :

printf("I = %f%+fi\n", crealf(I), cimagf(I)); 
z = clog(cexp(I * 6.0 * theta)); 
printf("z = %f%+fi\n", crealf(z), cimagf(z)); 

출력 :

I = 0.000000+1.000000i 
z = 0.000000-1.708382i 

링크시 수학 LIB 잊지 마세요 : -lm