2016-08-22 102 views
2

我需要计算一个双积分,其中内函数依赖于x和y(我将它整合到y上,其中一个限制取决于x),然后我将剩余在x上。这是代码的例子:MATLAB:双数值积分(非常特殊的情况下)

[email protected](x,y) x.^2+y; %inner function to be integrated on y 

[email protected](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:我知道这种情况下可能会通过巴帕简单的计算来解决,但它只是一个微不足道的情况下,我需要做的是方式更复杂

感谢

+0

这听起来像你想要象征性地解决的事情。你为什么不想这样做? –

+0

@DennisJaheruddin我也试图解决它的象征,但我需要整合的功能没有一个已知的原始,所以matlab无法解决它...请告诉我,如果我错了 – user3758182

+0

尝试你的代码和谷歌搜索该错误给了我这个http://jp.mathworks.com/matlabcentral/answers/77733-integrating-over-integral-error-a-and-b-must-be-floating-point-scalars,我想解决你的问题问题 –

回答

3

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

[email protected](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 integral2在MATLAB终端)的更多信息,或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)

+0

你的例子与我问的很不一样。看看我的第二个函数(我的意思是f2)是如何定义的:'sqrt(x)* integral(...)'。我不想将整个表达式整合到两个变量上,我清楚了吗?不过谢谢你,我希望会有解决方案... – user3758182

+0

@ user3758182不,你不清楚。 patrik在这里描述的与您在问题的第一行中描述的内容完全相符。现在你在说别的。唯一的事情是这里的patrik使用了一个不同的例子。 – Bernhard

+0

@Bernhard我想说的是,我需要在y上集成一个函数,它依赖于x和y(其中一个极限是x)。然后我把这个积分乘以sqrt(x),我需要计算x上的积分。在x和y上集成的函数是“更大的”,如果你看看我的代码,我认为它会很清楚,Patrik正在使用一个不符合我的需求的示例 – user3758182