complex

Autres langues

Langue: ja

Autres versions - même langue

Version: 2002-07-28 (openSuse - 09/10/07)

Autres sections - même nom

Section: 7 (Divers)

̾Á°

complex - Ê£ÁÇ¿ô¤Î¿ô³Ø¤Î´ðÁÃ

½ñ¼°

#include <complex.h>

ÀâÌÀ

Ê£ÁÇ¿ô¤Ï z = a+b*i ¤Î·Á¼°¤Î¿ô¤Ç¤¢¤ë¡£ a ¤È b ¤Ï¼Â¿ô¤Ç¤¢¤ê¡¢ i ¤Ï i = sqrt(-1) ¤Ä¤Þ¤ê i*i = -1 ¤Î´Ø·¸¤òËþ¤¿¤¹¡£
Ê£ÁÇ¿ô¤òɽ¸½¤¹¤ëÊ̤ÎÊýË¡¤â¤¢¤ë¡£¼Â¿ô¤ÎÁÈ (a,b) ¤Ï XºÂɸ¡¢YºÂɸ¤Ç »ØÄꤵ¤ì¤¿Ê¿Ì̾å¤ÎÅÀ¤È¸«¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤³¤ÎƱ¤¸ÅÀ¤Ï¡¢¼Â¿ô¤ÎÁÈ (r,phi) ¤Çɽ¤¹¤³¤È¤â¤Ç¤­¤ë¡£r ¤Ï¸¶ÅÀ 0 ¤«¤é¤Îµ÷Î¥¤Ç¤¢¤ê¡¢phi ¤Ï X¼´¤È 0 ¤È z ¤ò·ë¤ÖÀþʬ¤¬¤Ê¤¹³Ñ¤Ç¤¢¤ë¡£¤³¤Î¤È¤­¡¢ z = r*exp(i*phi) = r*(cos(phi)+i*sin(phi)) ¤Î´Ø·¸¤¬À®¤êΩ¤Ä¡£

2¤Ä¤ÎÊ£ÁÇ¿ô z = a+b*i, w = c+d*i ¤Ë´Ø¤¹¤ë´ðËܱ黻¤Ï¼¡¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë:

²ÃË¡: z+w = (a+c) + (b+d)*i
¾èË¡: z*w = (a*c - b*d) + (a*d + b*c)*i
½üË¡: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c - a*d)/(c*c + d*d))*i

¤Û¤È¤ó¤ÉÁ´¤Æ¤Î¿ô³Ø´Ø¿ô¤Ë´Ø¤·¤ÆÊ£ÁÇ¿ôÈǤ¬¤¢¤ë¤¬¡¢ Ê£ÁÇ¿ôÀìÍѤδؿô¤â´ö¤Ä¤«¤¢¤ë¡£

Îã

»ÈÍѤ¹¤ë C ¥³¥ó¥Ñ¥¤¥é¤¬ C99 ɸ½à¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ì¤ÐÊ£ÁÇ¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£ -lm ¤ò¤Ä¤±¤Æ¥ê¥ó¥¯¤¹¤ë¤³¤È¡£µõ¿ôñ°Ì¤Ï I ¤Çɽ¸½¤µ¤ì¤ë¡£

/* exp(i * pi) == -1 ¤È¤Ê¤ë¤³¤È¤ò³Îǧ¤¹¤ë */

#include <math.h>        /* for atan */

#include <complex.h>



int

main(void)

{

    double pi = 4 * atan(1.0);

    complex z = cexp(I * pi);

    printf("%f + %f * i\n", creal(z), cimag(z));

}

´ØÏ¢¹àÌÜ

cabs(3), carg(3), cexp(3), cimag(3), creal(3)