matlab循环优化

img

公式: for循环:
clear;
V=0;
M=1./10001;
forx=0:M:1
fory=0:M:1
V=(M.^2)*(exp(x.*sin(y)).*x)+V;
end
end

矩阵:
M=1./1001;
x=0:M:1;
y=0:M:1;
V=exp(x.*sin(y)).*x;
V1=sum(V).*M;

用循环的方法时间多,但是答案精确;用矩阵的方法时间少,但是误差大,想要用矩阵方法减少时间,不知道哪里有错误。

矩阵的方法可改成:
M=1./10001;
x=0:M:1;
y=0:M:1;
[xx,yy]=meshgrid(x,y);
V=exp(xx.*sin(yy)).*xx;
V1=sum(sum(V)).*M^2;

img

这样两种算法结果是一样的了。