作业帮 > 综合 > 作业

这个函数如何用matlab在三维坐标中画出

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 11:51:31
这个函数如何用matlab在三维坐标中画出
p值为固定值1000,σ为100,50,20,10,怎么把这些数据在三维图中画出啊
主要思想是利用球坐标系,代码如下:
P=1000;
S=[100 50 20 10];

aa=pi*linspace(0,1.5,200);%为了看清楚内部,只画了3/4圆周,全部是pi*linspace(0,2,100)
bb=0.5*pi*[-logspace(0,-1.2,50),0,logspace(-1.2,0,50)];%b=0是无意义的,此处的数据为NaN,可以用于断图
[a,b]=meshgrid(aa,bb);

figure
hold on
for h=3*P./S/2/pi
    r=h*(abs(sin(b))).^(-3/5);%题目中公式的等价变形
    x=r.*cos(b).*cos(a);
    y=r.*cos(b).*sin(a);
    z=r.*sin(b);
    surf(x,y,z)
end

view([30 10])
shading interp
light('Position',[-1 -1 1])
lighting gouraud
axis off