Java实现复数Complex的加减乘除运算、取模、求幅角角度 您所在的位置:网站首页 复数主辐角计算公式推导图 Java实现复数Complex的加减乘除运算、取模、求幅角角度

Java实现复数Complex的加减乘除运算、取模、求幅角角度

2024-02-11 05:54| 来源: 网络整理| 查看: 265

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料)

/** * @Author: Yeman * @Date: 2021-09-23-9:03 * @Description: */ class Complex{ private double realPart; //复数的实部 private double imaginaryPart; //复数的虚部 public Complex() { //空参构造器 } public Complex(double realPart, double imaginaryPart) { this.realPart = realPart; this.imaginaryPart = imaginaryPart; } //属性的get、set方法 public double getRealPart() { return realPart; } public void setRealPart(double realPart) { this.realPart = realPart; } public double getImaginaryPart() { return imaginaryPart; } public void setImaginaryPart(double imaginaryPart) { this.imaginaryPart = imaginaryPart; } //加法运算 public Complex add(Complex otherComplex){ if (otherComplex != null) { return new Complex(this.getRealPart() + otherComplex.getRealPart(),this.getImaginaryPart() + otherComplex.getImaginaryPart()); }else throw new RuntimeException("参与运算的对象为空!"); } //减法运算 public Complex decrease(Complex otherComplex){ if (otherComplex != null) { return new Complex(this.getRealPart() - otherComplex.getRealPart(),this.getImaginaryPart() - otherComplex.getImaginaryPart()); }else throw new RuntimeException("参与运算的对象为空!"); } //乘法运算 public Complex multiply(Complex otherComplex){ if (otherComplex != null) { double newReal = this.getRealPart() * otherComplex.getRealPart() - this.getImaginaryPart() * otherComplex.getImaginaryPart(); double newImaginary = this.getImaginaryPart() * otherComplex.getRealPart() + this.getRealPart() * otherComplex.getImaginaryPart(); return new Complex(newReal,newImaginary); }else throw new RuntimeException("参与运算的对象为空!"); } //除法运算 public Complex divide(Complex otherComplex){ if (otherComplex != null) { if (otherComplex.getRealPart() != 0 && otherComplex.getImaginaryPart() != 0){ double newReal = (this.getRealPart() * otherComplex.getRealPart() + this.getImaginaryPart() * otherComplex.getImaginaryPart()) / (otherComplex.getRealPart() * otherComplex.getRealPart() + otherComplex.getImaginaryPart() * otherComplex.getImaginaryPart()); double newImaginary = (this.getImaginaryPart() * otherComplex.getRealPart() - this.getRealPart() * otherComplex.getImaginaryPart()) / (otherComplex.getRealPart() * otherComplex.getRealPart() + otherComplex.getImaginaryPart() * otherComplex.getImaginaryPart()); return new Complex(newReal,newImaginary); }else throw new RuntimeException("除数不能为0!"); }else throw new RuntimeException("参与运算的对象为空!"); } //取模 public double delivery(){ return Math.sqrt(this.getRealPart() * this.getRealPart() + this.getImaginaryPart() * this.getImaginaryPart()); } //幅度值(角度) public double angle(){ double atan; if (this.getRealPart() != 0) { //注意,该处double型变量若有进行其他操作,则不能以此方式判断其等于0,应该是其绝对值小于某个很小的数;而这当前情景下,其实精度问题并不影响,因此可以这样写 atan = Math.atan(this.getImaginaryPart() / this.getRealPart()); }else { if (this.getImaginaryPart() > 0) { atan = Math.PI / 2; }else if (this.getImaginaryPart()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有