MATLAB:双数值积分(非常特殊的情况)

MATLAB: double numeric integration (very particular case)

我需要计算一个二重积分,其中内部函数同时依赖于 x 和 y(我在 y 上对它进行积分,其中一个极限取决于 x),然后我在 x 上对剩余的进行积分。这是代码示例:

f1=@(x,y) x.^2+y; %inner function to be integrated on y

f2=@(x) sqrt(x).*integral(@(y)f1(x,y),x,3); %second function, to be integrated on x

V = integral(@(x)f2(x),0,2) %final calculation

由于第二个函数的形式,我认为 integral2 不能使用...

PS: 我不想使用符号函数

PPS: 我知道这个case在papar上通过简单的计算就可以解决,但这只是一个小case,我需要做的更复杂

谢谢

Mathworks 在创建 integral2() 时预料到了这个问题(毕竟,依赖边界并不少见),因此他们也有办法处理这种情况。我选择了另一个更容易验证的函数来处理,但我想你不会介意那么多。

f1=@(x,y) (x.*y)/2; %inner function to be integrated on y
fy = @(x) 3-x; % Lower bound
V = integral2(f1,0,2,fy,3) %final calculation

有关 "doc page"(MATLAB 终端中的 doc integral2)或 here

的更多信息

编辑: 如果你有一个积分 as

integral(g(x) * integral( x^2*y, y=f(x), y=y1 ), x=a, x=b)

其中 f1 = integral( x^2*y, y=f(x), y=y1 ),您可以简化为 f2 = g(x)*f1 = integral( g(x)*x^2*y, y=f(x), y=y1 )