赞
踩
今天做matlab数学实验,求个二重积分(非矩形区域)让我搞了半天,我好菜呀!!!
好在现在解决了,在这记录一下,如果有朋友遇到相似问题,希望我的记录可以帮助到你。。。
吼吼吼 。开始
题目
被积区间图像
画图代码:
clc,clear all
syms x y;
ezplot('y^2-x',[0,8,-4,4]);
hold on;
ezplot('x-2',[0,8,-4,4]);
hold off
然后就要求解了。
求解
第一步先求交点:
[x1,y1]=solve('y^2-x=0','x-2=y');
得到如下结果:
然后就可以求积分了。
求二重积分我们通常使用dblquad()函数。
dblquad(‘f’,xmin,xmax,ymin,ymax)
这时我们输入如下代码:
syms x y;dblquad('x*y',y^2,y+2,-1,2)
结果matlab会报错。
这是因为dblquad()只能进行矩形区域的积分。于是我们想到可以将构造如下函数:
由此我第一次写出了如下错误代码:
f(x,y)=x*y.*(x>y^2&x<(y+2));
dblquad(f,1,4,-1,2)
然而这样并不行,就这样。。。
one hundred years later…
终于我找到了另一种正确办法:
dblquad(@(x,y) x*y.*(x>=y^2&x<=y+2),1,4,-1,2)
这样就可以了。。哈哈,我好智障。
希望,对你有所帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。