如何计算复杂的嵌套数值积分?
mathematica吧
全部回复
仅看楼主
level 2
huangtianije 楼主
像下面这个例子,f和g都是对z积分后关于x,y的函数,但是f和对z的积分过于复杂,无法算出定积分,也不能用数值积分,因为有参数x和y。更无法采用三重数值积分,因为f和g是相乘的。
所以这应该怎样做呢?我在matlab上可以通过arrayfun函数将对z的积分待定最后再二重积分,但是我嫌太慢,想试试在mathematica能不能这样积分,并且有没有可能快一点。
f = Integrate[x*z + y*z^3*Exp[1 + z^2]/(2 + z + z^-1), {z, 0, 1}]
g = Integrate[(z*+z^2/(x*y))^3/(Exp[(z + 1/z)]), {z, 1, 2}]
Integrate[f*g*x*y, {x, 1, 2}, {y, 2, 3}]
2020年03月25日 15点03分 1
吧务
level 10
数值积分用NIntegrate。
2020年03月25日 15点03分 2
level 2
huangtianije 楼主
解决了,?NumericQ的作用是数字的时候才执行。
f[x_?NumericQ,y_?NumericQ] = Integrate[x*z + y*z^3*Exp[1 + z^2]/(2 + z + z^-1), {z, 0, 1}]
g[x_?NumericQ,y_?NumericQ] = Integrate[(z*+z^2/(x*y))^3/(Exp[(z + 1/z)]), {z, 1, 2}
Integrate[f[x_,y_]*g[x_,y_]*x*y, {x, 1, 2}, {y, 2, 3}]
输出:1.20025
2020年03月25日 15点03分 3
借楼问一下楼主:输出结果中的“1.x”是什么?
2020年03月29日 15点03分
1