Моя ситуация.
У меня есть функция комплексной переменной определенной через сложный интеграл. Меня интересует значение этой функции на мнимой оси. У меня есть цифровой доступ к этой функции на следующей ленте: . Формально интегральное выражение расходится вне этой области, и поэтому мне нужно аналитическое продолжение. Подводя итог моей ситуации на картинке,z = ( x , y ) ∈ ( - ∞ , ∞ ) × [ - 1 , 1 ]
Вот что я знаю о на этой ленте из чисел:
Одновременно симметрично относительно мнимой и реальной осей.
Он уменьшается до нуля в .
Это взрывается около . Это может быть столб или точка разветвления, я не знаю. Я подозреваю, что природа этой особенности (и, возможно, всех других изолированных особенностей аналитического продолжения) зависит от конкретной параметризации этой функции (подробности см. Ниже в интеграле)ξ
На самом деле это выглядит очень похоже на или 1 / ( 1 + z 2 ) 2 n при построении. Вот сюжет реальной части:
Мой вопрос, учитывая огромное количество информации, которую я имею о функции (общий числовой доступ к ней на этой ленте), есть ли какой-то способ для меня для численного расчета приближения к этой функции вдоль воображаемой оси? Кстати, я использую Mathematica.
Причина, по которой меня интересуют значения вдоль мнимой оси, заключается в том, что мне нужно оценить следующее преобразование Фурье этой функции:
для больших значений , который в моем случае на самом деле порядка 10 . Хотя я хорошо знаю подынтегральное выражение, это преобразование Фурье является чрезвычайно колебательным, поэтому единственный способ, которым я знаю, как это вычислить, - это интеграция по Контуру.
Что я уже пробовал.
Я на самом деле пытался вычислить окончательный сильно колебательный интеграл, ур. (1). Оценка экв. (1) для одного значения 't' требуется несколько часов для вычисления. Я уже выполнил некоторые из этих интегралов, и результаты действительно имеют смысл, но я бы хотел альтернативный подход.
Я попытался аналитически продолжить аппроксимации Паде, но это также дорого в вычислительном отношении, но не так сильно, как прямая оценка. Что еще более важно, я не мог установить сходимость при увеличении порядка аппроксимантов (или среднего значения их частичных сумм!), Что контрастирует с тем, как прошли мои тесты с простыми функциями, такими как (я мог легко получить очень быстро сходимость в широких диапазонах комплексной z- плоскости с простыми тестовыми функциями).
Я пробовал символическую интеграцию безрезультатно. Я пытался массировать подынтегральное выражение в более удобоваримую форму для Mathematica, но мои попытки не увенчались успехом.
Оскорбляющий интеграл.
Пусть , k ⊥ , ξ и α - положительные действительные числа, а E - интересующее нас комплексное число (играет роль z в предыдущем обсуждении). Определение:
Интересующий меня интеграл следующий:
где я подавил обозначения функциональной зависимости в подынтегральном выражении для краткости. Меня особенно интересуют значения , диапазон 0 < α < 1 и (как указано выше) преобразование Фурье (1) для t 10 .
источник
Ответы:
Примечание: я несколько обеспокоен тем, что целочисленные значения, которые Mathematica дает мне, являются поддельными. Я думал, что это сработало, потому что за короткий промежуток времени он дал ощутимый результат, но, возможно, дело в том, что метод, который он пытается использовать, глючит или что я сделал что-то не так. Возможно, приведенный ниже код вообще не работает, я не знаю, извините.
Примечание 2: Меня это беспокоило, поэтому я написал другую версию ( код здесь , извините за качество кода), используя Julia и GSL, и он оценивает
g
через 2 секунды тот же ответ, который Mathematica дает ниже. Поэтому я думаю, что код, вероятно, в порядке.Мой прошлый опыт численного интегрирования приводит меня к убеждению, что более интересные математические методы иногда могут быть чрезвычайно полезны, но также и то, что оценка числовых преобразований Фурье и интегрирование рациональных и алгебраических функций являются первоочередной задачей алгоритмов численного интегрирования, поэтому часто можно сделать легкий прогресс, тщательно выбирая алгоритмы и играя с их параметрами. Обычно это более простой вариант, если трудно понять, как заставить математическую технику работать правильно.
Результат:
Я заставил Mathematica потратить ноль времени на символическую предварительную обработку подынтегральных функций, потому что в этом случае он не смог бы найти что-нибудь полезное об этом. Я также сказал ему специально использовать колебательный квадратурный метод для второго интеграла.
Моя догадка, почему случайно теребя стратегию интеграции (см NIntegrateIntegrationStrategies ) работает на все является то , что иногда Mathematica может случайно выбрать плохую стратегию автоматически, убивая производительность, в то время как все , что я спрашиваю это сделать, по крайней мере , немного содержательные , даже если неоптимальный. Вы также можете рассмотреть возможность получения помощи по адресу /mathematica/ , они могут узнать больше о внутренностях Mathematica.
источник
g[t,e0]