Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Расчёт интегрла?


Автор: aconite 5.5.2006, 01:34
Интеграл вида:

                   S(t)=1/(2*pi)\\интеграл-пределы(бесконечность)\\s(w)*e^jwt*dw;
//это обратное преобразование Фурье
Хоть в консоли? Буду благодарен! smile e-mail:

 

Автор: hypocrisy 5.5.2006, 11:47
бесконечность в пределах интегрирования замени на конечное число w_max и w_min  (из соображения чтобы подинтегральная функция была почти нулевой), а дальше заменяй интеграл на сумму, при этом можно использовать метод Симпсона (или более сложные модели: 5-ти точечные схемы и т.д. (Симпсон- это 3-х точечная сх.)).

Если подинтегральная функция не имеет особенностей, то код, что-то на подобие:

//N число точек на которое разбивается пределы интегрирования(чем больше тем лучше, но дольше считает)
Delta_w=(w_max-w_min)/N;
for(n=0, I=0; n<=N; n++){
w=w_min+Delta_w*n;
I+=f(w);//f(w) подинтегральная функция
}
I*=Delta_w/(2*pi) 

Автор: Nikol 6.5.2006, 02:33
Вот хорошая ссылка - здесь описано много алгоритмов с реализацией на некоторых языках. Может найдешь подходящий.
http://alglib.sources.ru/ 

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