У меня есть код Mathematica, где мне приходится оценивать численно тысячи интегралов, подобных этому
NIntegrate[
(Pi*Cos[(Pi*(-2*x + y))/(1 + y)] + (1 + y)*(-Sin[(2*Pi*x)/(1 + y)] +
Sin[(Pi*(-2*x + y))/(1 + y)]))/(E^x*(1 + y)),
{x, 0, 100}, {y, 0, 100}
] //AbsoluteTiming
Подынтегральное выражение является хорошей абсолютно интегрируемой функцией без особенностей, которая экспоненциально убывает в одном направлении и как 1/y ^ 3 в другом направлении.
Команда NIntegrate
отлично работала в Mathematica 7, но в новейшей версии 8.0.4 она замедляется на два порядка. Я предполагаю, что в новой версии он пытается лучше контролировать ошибку, но за счет этого огромного увеличения времени. Существуют ли какие-то настройки, которые я мог бы использовать, чтобы вычисления выполнялись с той же скоростью, что и в Mathematica 7?