例如
A=(X+Y).*E;
B=X.*Y.*E;
C=A.*B;
Z=int(C,E,1,2);
其实Z的计算远比上面的复杂。
现在想选一个X,Y,计算出它的值,然后选不同的X,Y进行求。
最后再作三维图。
具体怎么弄,谢谢。
Matlab做复杂函数三维图问题。
答案:2 悬赏:20 手机版
解决时间 2021-03-07 09:29
- 提问者网友:山高云阔
- 2021-03-06 15:59
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 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'));
%你可以大致这样弄。
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)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯