作业帮 > 综合 > 作业

关于 MATLAB 绘三维图的问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/26 07:25:45
关于 MATLAB 绘三维图的问题
%xyz有以下关系:
syms x y z ;
a=6;
S=a+x;
B=sqrt(a^2+x^2+2*a*x*cos(y));
H=B/S;
c=atan(x*sin(y)/(a+x*cos(y)));
z=H*(1-a)*sin(c)/sqrt(S^2+B^2)/(1+sqrt(1-H^2));
% 然后我想绘出关于xyz的三维图:
x=0:0.1:1;
y=-1*pi:0.1:pi;
[x,y]=meshgrid(x,y); %把简单说就是把x、y意义组合,不可少;
z=H*(1-a)*sin(c)/sqrt(S^2+B^2)/(1+sqrt(1-H^2));%定义z;
mesh(x,y,z)
可是就是出不来结果,总是提示错误请问大神,这个问题怎么破?难道要直接写出xyz关系式才行?那工作量可不是闹着玩的,有什么简单方法没?
clc
clear
%xyz有以下关系:
x=linspace(0,1,1000);
y=linspace(-1*pi,pi,1000);
a=6;
S=a+x;
B=sqrt(a^2+x.^2+2*a*x.*cos(y));
H=B./S;
c=atan(x.*sin(y)./(a+x.*cos(y)));
for i=1:length(y)
z(i,:)=H.*(1-a).*sin(c)./sqrt(S.^2+B.^2)./(1+sqrt(1-H.^2));
end
% 然后我想绘出关于xyz的三维图:
[x,y]=meshgrid(x,y);
%把简单说就是把x、y意义组合,不可少;
%z=H*(1-a)*sin(c)/sqrt(S^2+B^2)/(1+sqrt(1-H^2));%定义z;
mesh(x,y,z)


若满意,望采纳哦.
再问: 非常感谢,是不是在画图时x和y方向的取点数必须一样呀?
再答: 这个倒也并不是,只是你这里是必须的,因为要通过x,y来计算这么多其他变量,那么是一维的向量的话,长度当然要一致了。