注册 登录
编程论坛 Matlab

用matlab做二次积分做不了!

lujunliang 发布于 2006-12-08 20:29, 799 次点击

m文件integrnd.m
function z=integrnd(x,y)
z=(sin(x)*sin(y))^2;


命令窗口键入
q=dblquad(@integrnd,0,pi,0,pi)




目的求f(x,y)=(sinx)^2*(siny)在:0<=x<=¶,0<=y<=¶的值

em06]
3 回复
#2
abingchem2006-12-09 21:24
function z=integrnd(x,y)
z=(sin(x).*sin(y)).^2;
#3
lujunliang2006-12-12 11:28
版主,帮忙解释一下我的错误.
谢谢

#4
hitzhang2006-12-15 18:40
点乘'.*'和乘'*'运算规则不一样,在计算重积分时dblquad将生成网格[x,y],而你的函数integrnd中
z=(sin(x)*sin(y))^2;根据矩阵的乘法规则要求sin(x)*sin(y)必须为方阵,运算才有意义。
楼上的斑竹已经为你解决了,也可以这样该
function z=integrnd(x,y)
z=(sin(x)*sin(y)).^2;
1