matlab2013中如何求解被积函数为分段函数的二重积分?

∫010∫020f(x,y,1)*f(x,y,2)*f(x,y,....10)dxdy,(0,10),(0,20)分别为积分上下限。被积函数为的i从1到10f(x,y,i... ∫0 10∫0 20 f(x,y,1)*f(x,y,2)*f(x,y,....10) dxdy,(0,10),(0,20)分别为积分上下限。
被积函数为的i从1到10 f(x,y,i)的求积,
且function a=f(x,y,i)
if(sqrt(x^2+y^2)*i<=2) a=1;
if(sqrt(x^2+y^2)*i>2) a=0;
本人是新手,请高手指点迷津,非常着急,万分感激!
展开
 我来答
匿名用户
2014-07-06
展开全部

参考代码:

function zd1766370457469573620
dblquad(@f10,0,10,0,20)

function b=f10(x,y)
b = 1;
for i=1:10
    b = b .* f(x,y,i);
end

function a=f(x,y,i)
a = sqrt(x.^2+y.^2)*i <= 2;

求得结果:

ans =
    0.0314
追问
谢谢您的回答,
要是:
if(sqrt(x^2+y^2)*i2) a=0;

修改为:
if(sqrt(x^2+y^2)*i2) a=20;
您这样的解法就不适用的!还有别的解法吗?
追答

像这种二值的函数都是可以的,例如,对你举的例子,可以改成:

a = 20 - 10*(sqrt(x.^2+y.^2)*i <= 2);

当然,这种做法对于多值的情况就不太适用了,那种情况下可以用判断语句处理,或者类似下面这样:

a = (x+y)*0 + 20;
a(sqrt(x.^2+y.^2)*i <= 2) = 10;

应该指出的是,这个例子的函数值太大(超过10^10),用默认的设置计算会导致迭代超过10000次,导致大量的警告信息。可通过设置较大的误差限来避免:

dblquad(@f10,0,10,0,20,1e5,@quadl)

求得结果大约为

ans =
   2.0293e+15
黄先生
2024-12-27 广告
矩阵切换器就是将一路或多路视音频信号分别传输给一个或者多个显示设备,如两台电脑主机要共用一个显示器,矩阵切换器可以将两台电脑主机上的内容renyi切换到同一个或多个显示器上;迈拓维矩矩阵切换器种类齐全,性价比高,支持多种控制方式,为工程商采... 点击进入详情页
本回答由黄先生提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式