複素数

目的

複素数の計算を行うための構造体です。

使い方

public Complex(double re, double im)
複素数$z=(re) + (im)i$の多倍長整数構造体を作ります($i$は虚数単位)。
void add(Complex o)
複素数$o$との和$z+o$をreturn。
void sub(Complex o)
複素数$o$との差$z-o$をreturn。
void mul(Complex o)
複素数$o$との積$zo$をreturn。
void div(Complex o)
複素数$z/o$をreturn。
double abs()
複素数$z$の絶対値$|z|$をreturn。
void conj()
複素数$z=a+bi$の複素共役$\overline{z}=a-bi$をreturn。

ソースコード

class Complex {

	double re, im;

	public Complex(double re_, double im_) {
		re = re_;
		im = im_;
	}

	Complex add(Complex o) {
		return new Complex(re + o.re, im + o.im);
	}

	Complex sub(Complex o) {
		return new Complex(re - o.re, im - o.im);
	}

	Complex mul(Complex o) {
		return new Complex(re * o.re - im * o.im, re * o.im + im * o.re);
	}

	Complex mul(double coe) {
		return new Complex(re * coe, im * coe);
	}

	Complex div(Complex o) {
		Complex ret = this.mul(o.conj());
		double det = o.abs() * o.abs();
		ret.refont color=#006636> /= det;
		ret.imfont color=#006636> /= det;
		return ret;
	}

	Complex conj() {
		return new Complex(re, -im);
	}

	double abs() {
		return Math.sqrt(re * re + im * im);
	}

}