.\" Copyright 2002 Walter Harms (walter.harms@informatik.uni-oldenburg.de) .\" Distributed under GPL .\" .\" Japanese Version Copyright (c) 2003 Akihiro MOTOKI .\" all rights reserved. .\" Translated 2003-08-02, Akihiro MOTOKI .\" Updated 2005-02-20, Akihiro MOTOKI .\" .\"WORD: operations 演算 .\"WORD: imaginary unit 虚数単位 .\" .TH COMPLEX 7 2009-07-25 "" "Linux Programmer's Manual" .SH 名前 complex \- 複素数の数学の基礎 .SH 書式 .B #include .SH 説明 複素数は z = a+b*i の形式の数である。 a と b は実数であり、 i は i = sqrt(\-1) つまり i*i = \-1 の関係を満たす。 .br 複素数を表現する別の方法もある。実数の組 (a,b) は X座標、Y座標で 指定された平面上の点と見ることができる。この同じ点は、実数の組 (r,phi) で表すこともできる。r は原点 0 からの距離であり、phi は X軸と 0 と z を結ぶ線分がなす角である。このとき、 z = r*exp(i*phi) = r*(cos(phi)+i*sin(phi)) の関係が成り立つ。 .PP 2つの複素数 z = a+b*i, w = c+d*i に関する基本演算は次のように定義される: .TP .B 加法: z+w = (a+c) + (b+d)*i .TP .B 乗法: z*w = (a*c \- b*d) + (a*d + b*c)*i .TP .B 除法: z/w = ((a*c + b*d)/(c*c + d*d)) + ((b*c \- a*d)/(c*c + d*d))*i .PP ほとんど全ての数学関数に関して複素数版があるが、 複素数専用の関数も幾つかある。 .SH 例 使用する C コンパイラが C99 標準をサポートしていれば複素数を使うことができる。 \fI\-lm\fP をつけてリンクすること。虚数単位は I で表現される。 .sp .nf /* exp(i * pi) == \-1 となることを確認する */ #include /* for atan */ #include #include int main(void) { double pi = 4 * atan(1.0); double complex z = cexp(I * pi); printf("%f + %f * i\\n", creal(z), cimag(z)); } .fi .SH 関連項目 .BR cabs (3), .BR carg (3), .BR cexp (3), .BR cimag (3), .BR creal (3)