Зворотне перетворення Фур'є, перетворення між complex і double - stack overflow російською

Ось джерело звідки я взяв формули

Зворотне перетворення Фур'є, перетворення між complex і double - stack overflow російською

І так у мене є U (jw) -вона у мене в методі GetSpectralDensityOfAmplitude (GetSpectralDensity (U, angularFrequency, T))

Що мною було зроблено

тобто відняв U '(w) від U' '(w) І отримані значення планував уже підставити в формулу. Ніякої фази, як мені вказали раніше я окремо не знаходжу, все як я зрозумів знаходиться в знайденому значенні ValFurieTrans

Тепер власне до програмної реалізації Проблем полягає в синтаксисі формули, можливо я її не так відображаю в коді

Лається на Math.Cos (anguarFrequency * w -ValFurieTrans) -Перетворення типу з "System.Numerics.Complex" в "double" неможливо

А тепер мої спроби, які я наводив щоб виправити ситуацію.

Якщо замість Math.Sin, Math.Cos я напишу Complex.Sin, Complex.Cos то компілятор видасть таку помилку

Неможливо перетворити "лямбда-вираз" в делегат "System.Func", оскільки деякі з типів результатів, що повертаються блоком, не можуть бути неявно перетворені в тип результату, що повертається делегатом

Воно й зрозуміло адже метод Calculate містить Func і я не думаю що мені потрібно весь клас і методи переробляти в Complex.

Я робив окремі методи Calculate1 з типом Complex але компілятор невблаганний.

А якщо я зроблю так

Те компілятор це пропустить, але виникне інша проблема, при роботі програми вискакує виняток у верхньому рядку.

Але проблема з перетворенням з Complex в double переміщається в цей рядок. Проблема в синтаксисі. Тому і з'являються проблеми з перетворенням.