0

我知道这个功能sph2cart,但我觉得我一定是用错了。在微积分教科书中,我看到了以下球面方程:

ρ = 1 + 1/5*sin(6θ)*sin(5Φ)

产生如下所示的东西:

颠簸的球体

我想在 Matlab 图中重现这一点,所以我编写了以下代码

 [q,t] = meshgrid(linspace(0,pi,100),linspace(0,2*pi,100));
 rho = 1+1/5*sin(6*t)*sin(5*q);
 [x,y,z] = sph2cart(t,q,rho);
 surf(x,y,z)
 axis square, axis equal

我得到了以下图表:

不像尖刺那么颠簸

为什么会这样?为什么我没有得到我的计算教科书显示的凹凸不平的球体?

4

1 回答 1

2

有两个问题:

  1. 你需要 .* 而不是 * 在你的 sin(6*t) 和 sin(5*q) 之间,因为你想要每个元素乘法而不是矩阵乘法。

  2. 您希望 q 从 0-PI 运行, t 从 0-2PI 运行

此代码产生您正在寻找的结果。

[q,t] = meshgrid(linspace(0,2*pi,100),linspace(0,pi,100));
rho = 1+(1/5*sin(6*t).*sin(5*q));
[x,y,z] = sph2cart(t,q,rho);
surf(x,y,z)
axis square, axis equal

在此处输入图像描述

于 2015-05-07T00:22:07.267 回答