私は次の問題を抱えています:
次のクラスComplex(複素数を表す)を拡張し、指数形式のフィールドを追加する必要があります。さらに、Complexのメソッドをオーバーロードします。
class Complex{
public double re;
public double im;
public Complex(double r, double i){
re =r;
im = i;
}
public Complex add(Complex a,Complex b){
return new Complex(a.re + b.re,a.im + b.im );
}
public Complex sub(Complex a,Complex b){
return new Complex(a.re - b.re,a.im - b.im);
}
//more code
}
私のクラスは次のようなものです
class ComplexE extends Complex{
public double exponential;
public ComplexE(double a, double b){
re=a;
im = b;
}
public ComplexE(double _exp){
super(0,0);
this.exponential = _exp;
}
public void setExpFromComplex(Complex comp){
double module = Math.sqrt(Math.pow(comp.re,2) + Math.pow(comp.im,2));
double fi = Math.atan2(comp.re,comp.im);
this.exponential = module * Math.pow(Math.E, fi);
}
public ComplexE add(ComplexE a,ComplexE b){
return new ComplexE(a.exponential + b.exponential );
}
}
私の質問は次のとおりです:私はそれを正しくやっていますか?指数形式を見つける私の方法は正しいですか?
編集:私が使おうとした数学的な方法は次のとおりです。
z = |z|*(cos(phi) + i*sin(phi)) = |z|*e^(i*phi).