两件事情。首先,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
。它们都可以通过leading 来识别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所指出的那样,它给出了tkott,但没有生成任何警告。