kazmax - Linux で自宅サーバー

complex - 約束事その他の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 関連項目

名前

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>
main() {
	double pi = 4*atan(1);
	complex z = cexp(I*pi);
	printf("%f+%f*i\n", creal(z), cimag(z));
}

関連項目