博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟复数及其运算
阅读量:7088 次
发布时间:2019-06-28

本文共 3908 字,大约阅读时间需要 13 分钟。

hot3.png

复数

数集拓展到范围内,仍有些运算无法进行。比如判别式小于0的一元二次方程仍无解,因此将数集再次扩充,达到复数范围。

形如z=a+bi的数称为复数(complex number),其中规定i为虚数单位,且i^2=i×i=1ab是任意实数)。我们将复数z=a+bi中的实数a称为复数z的实部(real part)记作Rez=a,实数b称为复数zimaginary part)记作 Imz=b

已知:当b=0时,z=a,这时复数成为实数  当a=0b0时,z=bi,我们就将其称为

共轭复数

对于复数z=a+bi,称复数z'=a-biz的共轭复数。即两个实部相等,虚部(虚部不等于0)互为的复数互为共轭复数(conjugate complex number)。复数z的共轭复数记作z。表示方法为在字母z上方加一横线即共轭符号。

复数的运算

加法

z1=a1+b1i, z2=a2+b2i

z1+z2 = (a1+b1i)+(a2+b2i) = (a1+a2)+(b1+b2)i

乘法

z1=a1+b1i, z2=a2+b2i

z1*z2=(a1+b1i)*(a2+b2i)

= (a1a2-b1b2)+(a1b2+a2b1)i

除法

z1=a1+b1i, z2=a2+b2i

z1/z2 = [(a1a2 + b1b1) + (a2b1-a1b2)i]/(a2a2 + b2b2)

复数的模

将复数的实部与虚部的和的正的的值称为该复数的模,记作z.  即对于复数z=a+bi,它的模  z=a^2+b^2)

棣莫佛定理

对于复数z=r(cosθ+isinθ),有zn次幂

z^n=(r^n)*[cos(nθ+isin(nθ] (其中n

开方法则

 若z^n=r(cosθ+isinθ),则

 z=nr[cos(2kπ+θ/n+isin(2kπ+θ/n]k=0,1,2,3……n-1)

模拟复数及其运算的源码实现

package cn.edu.jxau.image;/** * 用y = a+bi;模拟复数 * @author luoweifu * */class Complex {	private double a;	private double b;		public Complex(double a, double b) {		this.a = a;		this.b = b;	}		public double getA() {		return a;	}	public double getB() {		return b;	}	/**	 * 求一个复数和一个实型数据的和;	 * @param a 实数	 * @return 结果(复数)	 */	public Complex add(double a) {		this.a = this.a + a;		return this;	}	/**	 * 用于求解两复数的和	 * z1=a1+b1i, z2=a2+b2i	 * z1+z2 = (a1+a2) + (b1+b2)i	 * @param c	 * @return	 */	public Complex add(Complex c) {		a = a + c.getA();		b = b + c.getB();		return this;	}	/**	 * 用于求一个复数和一个实型数据的差;	 * @param x	 * @return	 */	public Complex minus(double x) {		a = a-x;		return this;	}	/**	 * 用于求解两复数的差	 * @param c	 * @return	 */	public Complex minus(Complex c) {		a = a - c.getA();		b = b - c.getB();		return this;	}	/**	 * 用于求一个复数和一个实型数据的积;	 * @param r	 * @return	 */	public Complex multiply(double r) {		a = a* r;		b = b*r;		return this;	}	/**	 * 复数的乘法	 * z1=a1+b1i, z2=a2+b2i	 * z1*z2 = (a1+b1i)*(a2+b2i)= (a1a2-b1b2) + (a1b2+a2b1)i	 * @param c	 * @return	 */	public Complex multiply(Complex c) {		double a1 = this.a, b1 = this.b;		double a2 = c.getA(), b2 = c.getB();		a = a1*a2 - b1*b2;		b = a1*b2+a2*b1;		return this;	}	/**	 * 复数的除法	 * z1=a1+b1i, z2=a2+b2i	 * z1/z2 = [(a1a2 + b1b1) + (a2b1-a1b2)i]/(a2a2 + b2b2)	 * @param c	 * @return	 */	public Complex division(Complex c) {		double a1 = this.a, b1 = this.b;		double a2 = c.getA(), b2 = c.getB();		a = (a1*a2 + b1*b2)/(a2*a2 + b2*b2);		b = (a2*b1 - a1*b2)/(a2*a2 + b2*b2);		return this;	}		@Override	public String toString() {		if(b>=0) {			return a + "+" + b + "i";		} else {			return a + "" + b + "i";		}			}	/**	 * 求复数的模	 * @return	 */	public double model() {		return Math.sqrt(a*a + b*b);	}	/**	 * 复数的n次幂	 * @param n	 * @return	 */	public Complex pow(int n) {		double r = model();		double o = Math.atan2(b, a);		a = Math.pow(r, n)*Math.cos(n*o);		b = Math.pow(r, n)*Math.sin(n*o);		return this;	}	/*	public double sqrt(int n) {		double r = model();		double o = Math.atan2(b, a);				//Math.		return 0;	}	*/	/*public static void main(String[] args) {		Complex c1 = new Complex(5, 3);		Complex c2 = new Complex(1, 2);				c1.add(4);		System.out.println("复数(5+3i)与实数4的和为:"+c1);				c1.add(c2);		System.out.println("复数(5+3i)与复数(1+2i)的和为:"+c1);				c1.minus(4);		System.out.println("复数(5+3i)与实数4的差为:"+c1);					c1.minus(c2);			System.out.println("复数(5+3i)与复数(1+2i)的差为:"+c1);				c1.multiply(7);		System.out.println("复数(5+3i)与实数7的积为:"+c1);						c1.multiply(c2);		System.out.println("复数(5+3i)与复数(1+2i)的积为:"+c1);				c1.division(c2);		System.out.println("复数(5+3i)与复数(1+2i)的商为:"+c1);		//System.out.println(Math.pow(81, 0.25));	}*/	}

复数的几何表示法

 形式  

复数z=a+bi 被复平面上的点 za)唯一确定。这种形式使复数的问题可以借助图形来研究。也可反过来用复数的理论解决一些几何问题。 

 形式。复数z=a+bi用一个以原点O为起点,点Zab)为终点的向量OZ表示。这种形式使复数四则运算得到恰当的几何解释。 

 三角形式。复数z=a+bi化为三角形式 

 z=rcosθ+isinθ)  式中r= a^2+b^2),是复数的模(即) 

 θ 是以x轴为始边,OZ为终边的角,叫做复数的辐角,辐角的主值记作arg(z)  这种形式便于作复数的乘、除、乘方、运算。

  形式。将复数的三角形式z=r( cosθ+isinθ)中的cosθ+isinθ换为 exp(iθ),复数就表为指数形式z=rexp(iθ

转载于:https://my.oschina.net/verynix/blog/366003

你可能感兴趣的文章
Android Camera 使用一例,视频聊天app
查看>>
caffe 中的一些参数介绍
查看>>
JAVA多线程和并发基础面试问答
查看>>
关于直播学习笔记-003-nginx-rtmp、srs、vlc、obs
查看>>
Memory Monitor
查看>>
[Android Pro] 由模块化到组件化(一)
查看>>
区块链代币(Token)笔记 — — 术语
查看>>
python 解析json讲解(demjson)
查看>>
Apache优化:修改最大并发连接数
查看>>
Golang--Hello World
查看>>
《火球——UML大战需求分析》(第1章 大话UML)——1.4 如何学好UML?
查看>>
某IT校招笔试
查看>>
分布式系统介绍-PNUTS
查看>>
归并分类
查看>>
php生成图片验证码
查看>>
Android Studio git 版本回退到最新的版本
查看>>
C#中使用Log4net日志输出到本地文件、Textbox或Listview
查看>>
Java系列:JVM中的OopMap(zz)
查看>>
【物联网云端对接-4】通过MQTT协议与百度云进行云端通信
查看>>
Ubuntu下包含2种远程桌面的方式:VINO-Server以及VNC Server
查看>>