int2s.m
来自「matlab源代码,适用于开发研究,带来很好的学习效果.」· M 代码 · 共 42 行
M
42 行
function INTfxy=int2s(f,a,b,c,d,M,N)
% 被积函数f(x,y)的二重积分数值
% 积分区域为R={(x,y)|a<=x<=b,c(x)<=y<=d(x)}
% 使用的积分方法是Simpson法则
if ceil(M)~=floor(M)
hx=M;
M=ceil((b-a)/hx);
end
if mod(M,2)~=0
M=M+1;
end
hx=(b-a)/M;
m=1:M+1;
x=a+(m-1)*hx;
if isnumeric(c)
cx(m)=c;
else
cx(m)=feval(c,x(m));
end
if isnumeric(d)
dx(m)=d;
else
dx(m)=feval(d,x(m));
end
if ceil(N)~=floor(N)
hy=N;
Nx(m)=ceil((dx(m)-cx(m))/hy);
ind=find(mod(Nx(m),2)~=0);
Nx(ind)=Nx(ind)+1;
else
if mod(N,2)~=0
N=N+1;
end
Nx(m)=N;
end
for m=1:M+1
sx(m)=smpsns_fxy(f,x(m),cx(m),dx(m),Nx(m));
end
kodd=2:2:M;
keven=3:2:M-1;
INTfxy=hx/3*(sx(1)+sx(M+1)+4*sum(sx(kodd))+2*sum(sx(keven)));
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?