Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Неявное преобразование Complex в double


Автор: TheBeginner 2.6.2016, 21:45
Есть метод нахождения интегралов методами трапеций

Код

class TrapezoidalRule : NumericalIntegrationRule
        {
            public double Calculate(Func<double, double> func, double min, double max, double subintervalsCount)
            {
                double result = 0;
                double step = (max - min) / subintervalsCount;
                for (double i = min; i < max; i += step)
                    result += ((func(i) + func(i + step)) / 2) * step;
                return result;
            }
        }


На его основе создано ещё один метод
Этот метод был создан на основе полученной теории математики и физики,он должен решать обратное преобразование Фурье.



Код

public static Complex reverstrans(double U, double anguarFrequency, double T)
       {
 
           NumericalIntegration integration = new NumericalIntegration();
           double u1 = U * integration.Calculate(t => Math.Cos(anguarFrequency), 0, T);//U'(w)
           double u2 = U * integration.Calculate(t => Math.Sin(anguarFrequency), 0, T);//U''(w)
           double ValFurieTrans = u1 - Complex.ImaginaryOne * u2;//U'(w) - U''(w) = U(w)e^-j*fi(w)-----Ошибка неявное преобразования
           return (1 / (2 * Math.PI)) * integration.Calculate(w => Math.Cos(ValFurieTrans), 0, T) + Complex.ImaginaryOne * (1 / (2 * Math.PI)) * integration.Calculate(w => Math.Sin(ValFurieTrans), 0, T);
        }


В итоге указанной строке он просто остановился на Неявном преобразовании
Самое интересное что изменить ничего нельзя,пытался присвоить вместо Complex double но ничего не выходило.

По математическим основам я делаю правильно,просто есть какая-то мелкая деталь,которая упущена.

Как обойти и избавиться от этого неявного преобразования?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)