помогите численно подсчитать интеграл Фурье

Форум пользователей пакета Maple

Модератор: Admin

maa
Сообщения: 6
Зарегистрирован: Пн янв 30, 2012 1:22 pm
Откуда: Пенза

помогите численно подсчитать интеграл Фурье

Сообщение maa » Пн янв 30, 2012 6:13 pm

Добрый вечер! Подскажите, пожалуйста, как численно подсчитать интеграл Фурье: int(exp(-I*lambda*xi)*exp(-abs(xi)^3),xi =-infinity..infinity)? Пишите любые соображения...

mois
Сообщения: 95
Зарегистрирован: Ср дек 09, 2009 9:04 pm

Сообщение mois » Вт янв 31, 2012 3:18 pm

Поскольку справедливо

Int(exp(-I*lambda*xi)*exp(-abs(xi)^3),xi =-infinity..infinity)=Int(exp(I*lambda*xi)*exp(-xi^3),xi =0..infinity)+Int(exp(-I*lambda*xi)*exp(-xi^3),xi =0..infinity);

то интеграл берется аналитически:

int(exp(I*lambda*xi)*exp(-xi^3),xi =0..infinity)+int(exp(-I*lambda*xi)*exp(-xi^3),xi =0..infinity);

(1/9)*Pi*sqrt(3)*((-I*lambda)^(3/2))^(1/3)*((1/3*(AngerJ(1/3, (2/9)*(-I*lambda)^(3/2)*sqrt(3))-BesselJ(1/3, (2/9)*(-I*lambda)^(3/2)*sqrt(3))))*sqrt(3)-BesselY(1/3, (2/9)*(-I*lambda)^(3/2)*sqrt(3))-WeberE(1/3, (2/9)*(-I*lambda)^(3/2)*sqrt(3)))+(1/9)*Pi*sqrt(3)*((I*lambda)^(3/2))^(1/3)*((1/3*(AngerJ(1/3, (2/9)*(I*lambda)^(3/2)*sqrt(3))-BesselJ(1/3, (2/9)*(I*lambda)^(3/2)*sqrt(3))))*sqrt(3)-BesselY(1/3, (2/9)*(I*lambda)^(3/2)*sqrt(3))-WeberE(1/3, (2/9)*(I*lambda)^(3/2)*sqrt(3)))
Движение - все, конечная цель - ничто

maa
Сообщения: 6
Зарегистрирован: Пн янв 30, 2012 1:22 pm
Откуда: Пенза

Сообщение maa » Вт янв 31, 2012 10:03 pm

mois, спасибо огромное за помощь. А можно найти какой-нибудь общий метод нахождения интегралов вида int(exp(-I*lambda*xi)*f(xi),xi =-infinity..infinity), где f(xi) - произвольная функция??? Другими словами, как можно подсчитать интеграл Фурье, если он не берется аналитически?

mois
Сообщения: 95
Зарегистрирован: Ср дек 09, 2009 9:04 pm

Сообщение mois » Ср фев 01, 2012 2:29 pm

Чистое численное инегрирование в Maple осуществляется так:

evalf(Int(f(x),x=a..b));
Движение - все, конечная цель - ничто

maa
Сообщения: 6
Зарегистрирован: Пн янв 30, 2012 1:22 pm
Откуда: Пенза

Сообщение maa » Ср фев 01, 2012 3:12 pm

Так то оно так, но при вычислении интегралов Фурье ответ дает только для функций, которые вычисляются аналитически, а для функций, первообразная которых не выражается через аналитические функции, никакого результата не дает. Может быть есть какие-нибудь альтернативные способы численного вычисления интеграла, кроме команды evalf(Int(f(x),x=a..b))? Сколько всякого рода литературы не смотрел, везде кроме команды evalf, для численного вычисления интеграла ничего не предлагается. Неужели в Maple это единственный способ численного вычисления интеграла? Может подскажите как реализуются методы прямоугольников, трапеций, парабол и т.д.? Буду очень благодарен за ответ.

mois
Сообщения: 95
Зарегистрирован: Ср дек 09, 2009 9:04 pm

Сообщение mois » Чт фев 02, 2012 2:08 pm

Ваш интеграл

int(exp(-I*lambda*xi)*exp(-abs(xi)^3),xi =-infinity..infinity)

в принципе не может быть рассчитан численно никакими методами численного интегрирования, так как не задано значение для lambda. Стоит его задать и все проблемы исчезают:

lambda:=1;
evalf(Int(exp(-I*lambda*xi)*exp(-abs(xi)^3),xi =-infinity..infinity));

Что касается других методов численного интегрирования.
Во-первых, посмотрите справку по Int, набрав команду:

?evalf,int;

и Вы увидите, что можете задавать различные методы численного интегрирования.
Во-вторых, какие-то простые методы численного интегрирования есть в пакете Student.
Движение - все, конечная цель - ничто

maa
Сообщения: 6
Зарегистрирован: Пн янв 30, 2012 1:22 pm
Откуда: Пенза

Сообщение maa » Чт фев 02, 2012 10:23 pm

Спасибо огромное. Но значения для lambda я не могу присвоить, так как следом после нахождения данного интеграла, мне нужно отыскать int(F(lambda)*exp(-t*(lambda)^2), lambda=-infinity..infinity), где F(lambda):=int(exp(-I*lambda*xi)*f(xi),xi =-infinity..infinity), где f(xi)-произвольная функция. Другими словами, при вычислении интеграла int(exp(-I*lambda*xi)*f(xi),xi =-infinity..infinity) должна получиться функция, зависящая от lambda. Может быть задача должна сводиться к нахождению интеграла с параметром? Я только начинаю пользоваться Maple, поэтому заранее извиняюсь, если мои вопросы звучать не совсем корректно.

Markiyan Hirnyk
Сообщения: 1366
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Порядок интегрирования

Сообщение Markiyan Hirnyk » Чт фев 02, 2012 11:29 pm

Если поменять порядок интегрирования (см. В. Зорич, т. 2), получается
int(int(exp(-I*lambda*xi)*f(xi)*exp(-t*lambda^2), lambda = -infinity .. infinity), xi = -infinity .. infinity)
piecewise(csgn(t) = 1, int(exp(-(1/4)*xi^2/t)*f(xi)*sqrt(Pi)/sqrt(t), xi = -infinity .. infinity), infinity)

maa
Сообщения: 6
Зарегистрирован: Пн янв 30, 2012 1:22 pm
Откуда: Пенза

Сообщение maa » Вс фев 05, 2012 1:47 pm

Спасибо огромное, Markiyan Hirnyk. А можно ли менять порядок интегрирования, в интеграле int(exp(-t*lambda^2)*exp(I*lambda*x)*int(exp(-I*lambda*xi)*f(xi), xi = -infinity .. infinity), lambda = -infinity .. infinity) на интеграл вида int(int(exp(-I*lambda*xi)*f(xi)*exp(-t*lambda^2)*exp(I*lambda*x), lambda = -infinity .. infinity), xi = -infinity .. infinity). Я почитал Зорича, вроде бы можно, но хотел бы спросить у знающих людей. Заранее спасибо за ответ.

Markiyan Hirnyk
Сообщения: 1366
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Условия

Сообщение Markiyan Hirnyk » Вс фев 05, 2012 3:59 pm

maa писал(а):Спасибо огромное, Markiyan Hirnyk. А можно ли менять порядок интегрирования, в интеграле int(exp(-t*lambda^2)*exp(I*lambda*x)*int(exp(-I*lambda*xi)*f(xi), xi = -infinity .. infinity), lambda = -infinity .. infinity) на интеграл вида int(int(exp(-I*lambda*xi)*f(xi)*exp(-t*lambda^2)*exp(I*lambda*x), lambda = -infinity .. infinity), xi = -infinity .. infinity). Я почитал Зорича, вроде бы можно, но хотел бы спросить у знающих людей. Заранее спасибо за ответ.
Действительная и мнимая части функции exp(-I*lambda*xi)*f(xi)*exp(-t*lambda^2)*exp(I*lambda*x)
должны удовлетворять условиям утверждения 8 ( п. 4 пар. 2 гл. 17 ) на с. 421. т.2 книги В. Зорича.

maa
Сообщения: 6
Зарегистрирован: Пн янв 30, 2012 1:22 pm
Откуда: Пенза

Сообщение maa » Вс фев 05, 2012 6:23 pm

Спасибо, Markiyan Hirnyk. Теперь буду разбираться. Спасибо всем за помощь.