求助大神,这样的积分如何积(a,b根据不同值求出来的中间值),用matlab编写程序,或者c++都可以

 我来答
tianxiawulang
2014-02-24 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2643万
展开全部

MATLAB上重积分的计算方法综述

MATLAB中采用数值方法计算重积分,我所知范围内有以下资源可用:

1、对于积分上下限为固定值的情况,可以使用dblquadtriplequad函数;

2、对于积分上下限不是固定值的情况(即所谓一般区域的重积分),有以下几种方法:

  • 最笨的做法是所谓的拓展函数法,也就是把被积函数乘上一个与积分限有关的逻辑表达式,然后调用dblquad或triplequad。这种做法效率很低,误差大,而且对于复杂积分区域的逻辑表达式也比较难写,所以很少用。

  • 从2009a开始,增加了对一般区域二重积分的计算函数quad2d,但没有一般区域三重积分的计算函数。

  • 第三方NIT工具箱有二重积分的quad2dggen函数。

  • 从2012a开始,增加了integralintegral2integral3函数。这几个函数比起早期的quad系列函数有不少改进,比如支持瑕积分以及任意区域的重积分,如果使用的是2012a之后的版本,建议使用这组函数。我猜测这几个函数应该也可以移植到早期的版本上使用,但没试。

  • 如果使用的MATLAB版本较低(但至少应在7.0以上),可以使用SimWe仿真科技论坛rocwoods 版主提出的方法,该方法主要使用匿名函数以及arrayfun两种工具,受到不少人的推崇,还出版了一本相关的书(当然,只是部分内容)。我这里使用的就是这种方法。

  • 借助于符号数学工具箱的int函数,即使不能求出显式解,多数情况下也能使用vpa得到足够精度的结果,但耗时往往较长(具体情况与符号运算内核有关)。

 

实例

1、三重积分

>> a=1;b=2;
>> quadl(@(xx) arrayfun(@(x) quadl(@(yy) arrayfun(@(y) quadl(@(z) a*(8-b)^2./((x-1).^2+y.^2+z.^2).^2,1.5,sqrt(2.405-y^2-(x-1)^2)),yy),-sqrt(0.156-(x-1)^2),sqrt(0.156-(x-1)^2)),xx),1,1.394968)
ans =
    0.0405

 

2、二重积分

>> a=1;b=2;
>> quadl(@(xx) arrayfun(@(x) quadl(@(y) a*(8-b)^2./((x-1).^2+y.^2+(x.^2+y.^2).^2).^3,x^2-2,x^3-1),xx),1,4)
ans =
    1.7039

 

说明

1、图片不太清晰,有些符号看不太清楚(尤其是积分限),请自行认真核实。

 

2、第一题的三重积分,我把积分上限原来的1.395进行微调,改为1.394968,这是因为,如果按照1.395计算,则y的积分限根号下的内容可能取值

>> 0.156-(1.395-1)^2
ans =
 -2.5000e-005

从而导致结果出现复数。

 

3、关于我使用的方法,要说清楚需要花点时间。度娘不让贴链接,如果想详细了解,你可以自行搜索一下“一般区域二重、三重积分MATLAB计算方法”相关的内容。我上传的附件是该论坛另一位高手bainhome 把相关内容做成PDF文件,可供参考。不过,我觉得如果花点时间看看论坛原帖的讨论,可能有更大收获。

 

4、我使用符号的习惯与rocwoods原作略有区别。

WM_THU
2014-02-23 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3926万
展开全部

matlab里有函数integral3做三重积分,用法示例:

fun = @(x,y,z) x.*cos(y) + x.^2.*cos(z);
xmin = -1;
xmax = 1;
ymin = @(x)-sqrt(1 - x.^2);
ymax = @(x) sqrt(1 - x.^2);
zmin = @(x,y)-sqrt(1 - x.^2 - y.^2);
zmax = @(x,y) sqrt(1 - x.^2 - y.^2);
q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,'Method','tiled')

照这样子,改一下公式就可以了。

更多追问追答
追问
文档里面  例子,积分上下限 都是常数。
追答
谁说的。。。我写的这个就是。你刷新一下 我刚刚改了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式