如何在我的 Complex class 中实现我的 square()、modulus Squared() 和 add() 方法?
How can I implement my square(), modulusSqaured() and add() methods in my Complex class?
我有一个名为 Complex
的 class,它具有用于实数和虚数的访问器方法,以及一种将复数表示为字符串的方法和一种获取大小的方法复数。我在实施最后三种方法时遇到问题 square()
,它是复数的平方,modulusSquared()
,returns 是复数模的平方,最后是 add(Complex d)
,它将将复数 d 添加到该复数。我试过了,但我想我理解错了。这是我的代码:
public class Complex { //real + imaginary*i
private double re;
private double im;
public Complex(double real, double imaginary) {
this.re = real;
this.im = imaginary;
}
public String toString() { //display complex number as string
StringBuffer sb = new StringBuffer().append(re);
if (im>0)
sb.append('+');
return sb.append(im).append('i').toString();
}
public double magnitude() { //return magnitude of complex number
return Math.sqrt(re*re + im*im);
}
public void setReal(double m) {
this.re = m;
}
public double getReal() {
return re;
}
public void setImaginary(double n) {
this.im = n;
}
public double getImaginary() {
return im;
}
public void square() { //squares complex number
Complex = (re + im)*(re + im);
}
public void modulusSquared() { //returns square of modulus of complex number
Math.abs(Complex);
}
public void add(Complex d) { //adds complex number d to this number
return add(this, d);
}
}
感谢您的宝贵时间。
您的 add
和 square
方法非常简单。据我了解 modulusSquared
是 |x+iy| = Square Root(x^2 + y^2),所以实现起来也非常简单:
public void add(Complex d) { // adds complex number d to this number
this.re += d.getReal(); // add real part
this.im += d.getImaginary();// add imaginary part
}
public void square(){
double temp1 = this.re * this.re; // real * real
double temp2 = this.re * this.im; // real * imaginary (will be the only one to carry around an 'i' wth it
double temp3 = -1 * this.im * this.im; // squared imaginary so multiply by -1 (i squared)
this.re = temp1 + temp3; // do the math for real
this.im = temp2; // do the math for imaginary
}
public double modulusSquared() { // gets the modulus squared
return Math.sqrt(this.re * this.re + this.im * this.im);
}
我有一个名为 Complex
的 class,它具有用于实数和虚数的访问器方法,以及一种将复数表示为字符串的方法和一种获取大小的方法复数。我在实施最后三种方法时遇到问题 square()
,它是复数的平方,modulusSquared()
,returns 是复数模的平方,最后是 add(Complex d)
,它将将复数 d 添加到该复数。我试过了,但我想我理解错了。这是我的代码:
public class Complex { //real + imaginary*i
private double re;
private double im;
public Complex(double real, double imaginary) {
this.re = real;
this.im = imaginary;
}
public String toString() { //display complex number as string
StringBuffer sb = new StringBuffer().append(re);
if (im>0)
sb.append('+');
return sb.append(im).append('i').toString();
}
public double magnitude() { //return magnitude of complex number
return Math.sqrt(re*re + im*im);
}
public void setReal(double m) {
this.re = m;
}
public double getReal() {
return re;
}
public void setImaginary(double n) {
this.im = n;
}
public double getImaginary() {
return im;
}
public void square() { //squares complex number
Complex = (re + im)*(re + im);
}
public void modulusSquared() { //returns square of modulus of complex number
Math.abs(Complex);
}
public void add(Complex d) { //adds complex number d to this number
return add(this, d);
}
}
感谢您的宝贵时间。
您的 add
和 square
方法非常简单。据我了解 modulusSquared
是 |x+iy| = Square Root(x^2 + y^2),所以实现起来也非常简单:
public void add(Complex d) { // adds complex number d to this number
this.re += d.getReal(); // add real part
this.im += d.getImaginary();// add imaginary part
}
public void square(){
double temp1 = this.re * this.re; // real * real
double temp2 = this.re * this.im; // real * imaginary (will be the only one to carry around an 'i' wth it
double temp3 = -1 * this.im * this.im; // squared imaginary so multiply by -1 (i squared)
this.re = temp1 + temp3; // do the math for real
this.im = temp2; // do the math for imaginary
}
public double modulusSquared() { // gets the modulus squared
return Math.sqrt(this.re * this.re + this.im * this.im);
}