1 .\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
2 .\" Distributed under GPL
4 .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI
5 .\" all rights reserved.
6 .\" Translated 2003-08-02, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
7 .\" Updated 2005-02-20, Akihiro MOTOKI
9 .\"WORD: operations 񂯯
10 .\"WORD: imaginary unit µõ¿ôñ°Ì
12 .TH COMPLEX 7 2011-09-16 "" "Linux Programmer's Manual"
14 complex \- Ê£ÁÇ¿ô¤Î¿ô³Ø¤Î´ðÁÃ
16 .B #include <complex.h>
18 Ê£ÁÇ¿ô¤Ï z = a+b*i ¤Î·Á¼°¤Î¿ô¤Ç¤¢¤ë¡£ a ¤È b ¤Ï¼Â¿ô¤Ç¤¢¤ê¡¢
19 i ¤Ï i = sqrt(\-1) ¤Ä¤Þ¤ê i*i = \-1 ¤Î´Ø·¸¤òËþ¤¿¤¹¡£
21 Ê£ÁÇ¿ô¤òɽ¸½¤¹¤ëÊ̤ÎÊýË¡¤â¤¢¤ë¡£¼Â¿ô¤ÎÁÈ (a,b) ¤Ï XºÂɸ¡¢YºÂɸ¤Ç
22 »ØÄꤵ¤ì¤¿Ê¿Ì̾å¤ÎÅÀ¤È¸«¤ë¤³¤È¤¬¤Ç¤¤ë¡£¤³¤ÎƱ¤¸ÅÀ¤Ï¡¢¼Â¿ô¤ÎÁÈ
23 (r,phi) ¤Çɽ¤¹¤³¤È¤â¤Ç¤¤ë¡£r ¤Ï¸¶ÅÀ 0 ¤«¤é¤Îµ÷Î¥¤Ç¤¢¤ê¡¢phi ¤Ï
24 X¼´¤È 0 ¤È z ¤ò·ë¤ÖÀþʬ¤¬¤Ê¤¹³Ñ¤Ç¤¢¤ë¡£¤³¤Î¤È¤¡¢
25 z = r*exp(i*phi) = r*(cos(phi)+i*sin(phi))
28 2¤Ä¤ÎÊ£ÁÇ¿ô z = a+b*i, w = c+d*i ¤Ë´Ø¤¹¤ë´ðËܱ黻¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:
30 .B ²ÃË¡: z+w = (a+c) + (b+d)*i
32 .B ¾èË¡: z*w = (a*c \- b*d) + (a*d + b*c)*i
34 .B ½üË¡: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i
36 ¤Û¤È¤ó¤ÉÁ´¤Æ¤Î¿ô³Ø´Ø¿ô¤Ë´Ø¤·¤ÆÊ£ÁÇ¿ôÈǤ¬¤¢¤ë¤¬¡¢
37 Ê£ÁÇ¿ôÀìÍѤδؿô¤â´ö¤Ä¤«¤¢¤ë¡£
39 »ÈÍѤ¹¤ë C ¥³¥ó¥Ñ¥¤¥é¤¬ C99 ɸ½à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤ÐÊ£ÁÇ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤¤ë¡£
40 \fI\-lm\fP ¤ò¤Ä¤±¤Æ¥ê¥ó¥¯¤¹¤ë¤³¤È¡£µõ¿ôñ°Ì¤Ï I ¤Çɽ¸½¤µ¤ì¤ë¡£
43 /* exp(i * pi) == \-1 ¤È¤Ê¤ë¤³¤È¤ò³Îǧ¤¹¤ë */
44 #include <math.h> /* for atan */
51 double pi = 4 * atan(1.0);
52 double complex z = cexp(I * pi);
53 printf("%f + %f * i\\n", creal(z), cimag(z));