作业帮 > 综合 > 作业

Matlab做复杂函数三维图问题.

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/14 00:52:59
Matlab做复杂函数三维图问题.
例如
A=(X+Y).*E;
B=X.*Y.*E;
C=A.*B;
Z=int(C,E,1,2);
其实Z的计算远比上面的复杂.
现在想选一个X,Y,计算出它的值,然后选不同的X,Y进行求.
最后再作三维图.
具体怎么弄,
Matlab做复杂函数三维图问题.
用循环.
%你可以大致这样弄.
x=[1e16:1e16:9e16,1e17:1e17:9e17,1e18:1e18:9e18,1e19:1e19:1e20];
x=[1e16:2e16:9e16,1e17:2e17:9e17,1e18:2e18:9e18,1e19:2e19:1e20]; %降低点数
y=x;
xtickindex=1:5:length(x);
ytickindex=1:5:length(y);
xtick=x(xtickindex);
ytick=y(ytickindex);
[gx,gy]=meshgrid(x,y);
syms E
for i=1:size(gx,1)
for j=1:size(gx,2)
A=log10(gx(i,j)+gy(i,j))*E; %你的表达式计算出的值过大,我这里加一个log减小
B=(log10(gx(i,j))*log10(gy(i,j)))*E;
C=A*B;
gz(i,j)=double(int(C,E,1,2));
end
i
end
surf(gz)
xlabel('x')
ylabel('y')
zlabel('z')
set(gca,'xtick',xtickindex,'xticklabel',num2str(xtick(:),'%.1e'),...
'ytick',ytickindex,'yticklabel',num2str(ytick(:),'%.1e'));