COMPLEX(7) | Linux Programmer's Manual | COMPLEX(7) |
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 に関する基本演算は次のように定義される:
ほとんど全ての数学関数に関して複素数版があるが、 複素数専用の関数も幾つかある。
使用する C コンパイラが C99 標準をサポートしていれば複素数を使うことができる。 -lm をつけてリンクすること。虚数単位は I で表現される。
/* exp(i * pi) == -1 となることを確認する */ #include <math.h> /* for atan */ #include <stdio.h> #include <complex.h> int main(void) {
double pi = 4 * atan(1.0);
double complex z = cexp(I * pi);
printf("%f + %f * i\n", creal(z), cimag(z)); }
cabs(3), cacos(3), cacosh(3), carg(3), casin(3), casinh(3), catan(3), catanh(3), ccos(3), ccosh(3), cerf(3), cexp(3), cexp2(3), cimag(3), clog(3), clog10(3), clog2(3), conj(3), cpow(3), cproj(3), creal(3), csin(3), csinh(3), csqrt(3), ctan(3), ctanh(3)
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2011-09-16 |