永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-03-07 09:29
  • 提问者网友:山高云阔
  • 2021-03-06 15:59
例如
A=(X+Y).*E;
B=X.*Y.*E;
C=A.*B;
Z=int(C,E,1,2);
其实Z的计算远比上面的复杂。
现在想选一个X,Y,计算出它的值,然后选不同的X,Y进行求。
最后再作三维图。
具体怎么弄,谢谢。
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-03-06 16:40
用循环。

%你可以大致这样弄。
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'));
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-03-06 17:08
clear;clc syms X Y E; A=(X+Y).*E; B=X.*Y.*E; C=A.*B; Z=int(C,E,1,2); [x,y]=meshgrid(linspace(-1,1)); z=subs(Z,{X,Y},{x,y}); mesh(x,y,z)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯