Комплексные числа

Всем привет! Дали задание с комплексными числами, в котором нужно посчитать такое выражение: z - (z * z * z - 1) / (3 * z * z), где z - это комплексное число 1+1i.
Я написал класс с перегрузкой нужных операторов, но программа работает неправильно. Проверяю в онлайн калькуляторе, получается 0,6666+0,5i, а у меня выходит 0,805556+0,5i.
Вот мой класс:

class Complex
    {
        public double Real { get; set; }
        public double Imaginary { get; set; }
        public Complex(double re, double im)
        {
            Real = re;
            Imaginary = im;
        }
        public static Complex operator +(Complex a, Complex b)
        {
            return new Complex(a.Real + b.Real, a.Imaginary + b.Imaginary);
        }
        public static Complex operator *(Complex a, Complex b)
        {
            double x = a.Real * b.Real - a.Imaginary * b.Imaginary;
            double y = a.Imaginary * b.Real + a.Real * b.Imaginary;
            return new Complex(x, y);
        }
        public static Complex operator -(Complex a, Complex b)
        {
            return new Complex(a.Real - b.Real, a.Imaginary - b.Imaginary);
        }
        public static Complex operator /(Complex a, Complex b)
        {
            double x = (a.Real * b.Real + a.Imaginary + b.Imaginary) / (b.Real * b.Real + b.Imaginary * b.Imaginary);
            double y = (a.Imaginary * b.Real - a.Real * b.Imaginary) / (b.Real * b.Real + b.Imaginary * b.Imaginary);
            return new Complex(x,y);

        }
        public static Complex operator -(Complex a, double b)
        {
            return new Complex(a.Real - b, a.Imaginary - b);
        }
        public static Complex operator *(double a, Complex b)
        {
            return new Complex(a * b.Real, a * b.Imaginary);
        }
        public override string ToString()
        {
            return $"{Real}+{Imaginary}i";
        }
    }

Не пойму, где ошибся. I need your help!

double x = (a.Real * b.Real + a.Imaginary + b.Imaginary) / (b.Real * b.Real + b.Imaginary * b.Imaginary);

Нашел 1 ошибку, перепутал в числителе “*” и “+” a.Imaginary + b.Imaginary
Но все равно не правильно считает

Всем спасибо нашел и вторую ошибку. Метод “утенка” :grinning: :grinning:

Неправильно сделал операцию сложения(вычитания) с действительным числом, мнимую часть не нужно было трогать

1 лайк