Ось джерело звідки я взяв формули
І так у мене є 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 переміщається в цей рядок. Проблема в синтаксисі. Тому і з'являються проблеми з перетворенням.