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

时间:2016-08-22 08:32:05

标签: matlab integration numeric handle integral

我需要计算一个双积分,其中内部函数依赖于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:我知道这个案子可以通过对papar的简单计算来解决,但这只是一个微不足道的案例,我需要做的是更复杂的

由于

1 个答案:

答案 0 :(得分:3)

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页面的更多信息" (MATLAB终端中的doc integral2)或here

修改 如果你有一个积分

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 )