作业帮 > 综合 > 作业

matlab求二重积分

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/05 15:27:09
matlab求二重积分

以上两个公式是一样的,f(x)是一个密度函数,我一般用f(x)=aczmidu(x,acz,ack1)代替,而F(x)是f(x)积分的结果,即
,现在我要将最上面的函数算出来,matlab程序应该怎么编?u是一个常数,可以随意假定.
就是yanyan那个函数,你以前帮忙编的.
【f(x)=aczmidu(x,acz,ack1)】是你自己编写的函数吧?要把函数代码给出来我才好编程.
再问: function c=aczmidu(x,y,z)
n=length(y);
yux=n*z*(2*pi)^0.5;
c=arrayfun(@(x)sum(exp(-(x-y).^2/(2*z^2))),x)/yux;
end
再答: 参考代码:y = 1:10;
z = 0.2;
u = 3;
f = @(x)aczmidu(x,y,z);
G = 1 - 2/u*quadgk( @(x) f(x).*arrayfun(@(xx)quadgk(@(t)t.*f(t),0,xx),x), 0, inf)其中,前3行是相关常数,不多说明;第4行是为了把函数aczmidu写简单一些。第5行是核心代码,需要说明几点:1、积分函数使用quadgk,该函数支持积分限为无穷的情况。在2011a以上版本也可以使用函数integral代替。2、被积分函数需要支持向量运算,注意使用点运算。3、由于内层的积分式上限只能是标量,所以使用arrayfun 实现向量化。