Что не так с моим методом возведения комплексного числа в степень - PullRequest
2 голосов
/ 04 октября 2019

Мой метод использует теорему Де Мойвра для возведения комплексного числа a + bi в степень. Однако я не получаю правильных ответов.

Я дважды проверил всю математику, и, похоже, все в порядке, поэтому я думаю, что, возможно, я неправильно сделал свой код.

public class ComplexNumber {
//instance variables
    private int real;
    private int imaginary;

//constructors
    public ComplexNumber(int a, int b) {
        real = a;
        imaginary = b;  

//methods
    public ComplexNumber pow(int x) {
        int z = (int) Math.pow(this.getModulus(),x);
        int T = (int) Math.atan(this.imaginary/this.real);
        int a = (int) (z * Math.cos(x*T));
        int b = (int) (z * Math.sin(x*T));
        return new ComplexNumber(a, b);
    }

    public double getModulus() {
        int z = (int) Math.sqrt(real*real + imaginary*imaginary);
        return z;
    }

Например, для комплексного числа 3 + 4i, возведенного в 1-ую степень, я получаю 5 + 0i.

...