Две вещи. Прежде всего, Integrate
принимает несколько «итераторов», т. Е. {x, x1, x2}
, поэтому вы можете указывать множественный интеграл без их вложения, как показано ниже
Integrate[x y, {x, 0, 1}, {y, 0, x}]
объединяет x y
по треугольнику, ограниченному y == x
, x == 0
и x == 1
. Обратите внимание, в порядке лимитов они идут от внешнего к внутреннему, поэтому интегрирование выполняется справа налево. Тогда ваш интеграл становится
Integrate[Exp[-0.099308 s] Exp[0.041657423 u] Exp[-3.1413 s + 3.12 u]
* ((u/(s - u))^(1/2) BesselI[1,2 (u (s - u))^(1/2)]
+ 0.293 BesselI[0,2 (u (s - u))^(1/2)]),
{s,0,10}, {u,0,s}]
Во-вторых, Mathematica имеет ряд числовых эквивалентов своих стандартных алгоритмов, таких как NSolve
, NDSolve
, NSum
и NIntegrate
. Все они могут быть идентифицированы по ведущему N
, который тоже является функцией . Приятно то, что эти функции имеют ту же сигнатуру, что и их аналитический эквивалент. Таким образом, чтобы численно интегрировать ваш интеграл, вы просто меняете Integrate
на NIntegrate
следующим образом
NIntegrate[Exp[-0.099308 s] Exp[0.041657423 u] Exp[-3.1413 s + 3.12 u]
* ((u/(s - u))^(1/2) BesselI[1,2 (u (s - u))^(1/2)]
+ 0.293 BesselI[0,2 (u (s - u))^(1/2)]),
{s,0,10}, {u,0,s}]
, что дает 27.4182
, как отмечено tkott , но без каких-либо предупреждений.