名 前
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 <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/ に 書 か れ て い る 。