matlab 花瓣图的编程原理是什么,向天下大侠求解!!!!给力的大侠再赏双倍分!!!

我知道生成花瓣图的源代码:
theta=-pi:0.01:pi; %为什么要用theta来声明,而且变量范围是固定的吗
rho(1,:)=2*sin(5*theta).^2;
%rho表示极半径,rho(1,:)表示什么,2*sin(5*theta).^2 是随便定义的表达式吗,还是固定的?而且我知道数组要点运算符,为什么表达式中用了点次方,但不需要用点乘?
rho(2,:)=cos(10*theta).^3;
%为什么要用表达式cos(10*theta).^3,这是随便的吗
rho(3,:)=sin(theta).^2;
%同理为什么要用表达式sin(theta).^2
rho(4,:)=5*cos(3.5*theda).^3;
%表达式5*cos(3.5*theda).^3的原理又是什么呢
%为什么定义四个rho(;;),可以定义更多吗,还是规定的
for k=1:4
polar(theta,rho(k,:))
pause %为什么要用pause
end

大虾们求解!!
为什么运行程序时候,按enter键会连续出现多个图像,这个变化缘于哪端段代码的操作

极坐标的玫瑰线(polar rose)是数学曲线中非常著名的曲线,看上去像花瓣,它只能用极坐标方程来描述,方程如下:
r(θ) = a*cos kθ 或
r(θ) = a sin kθ,
如果k是整数,当k是奇数时那么曲线将会是k个花瓣,当k是偶数时曲线将是2k个花瓣。如果k为非整数,将产生圆盘(disc)状图形,且花瓣数也为非整数。注意:该方程不可能产生4的倍数加2(如2,6,10……)个花瓣。变量a代表玫瑰线花瓣的长度。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
theta=-pi:0.01:pi; %%theta就是一个变量的符号,你也可以用别的,a,b之类的。其-pi到pi是一个周期,你也可以取0到2*pi。极坐标角度转一圈是2*pi。
rho(1,:)=2*sin(5*theta).^2;
%rho(1,:)是rho的第一行,2*sin(5*theta).^2是根据上面的花瓣数学表达式写出来的;一个theta对应一个rho,假设theta=[2 3 4],那么theta.^2=[2^2 3^2 4^2],也可以用点乘sin(5*theta).*sin(5*theta),一样的。
rho(2,:)=cos(10*theta).^3;%也是根据数学表达式写出来的,三角函数的立方还是三角函数,rho(2,:)rho的第二行
rho(3,:)=sin(theta).^2;%%rho(3,:)rho的第三行
rho(4,:)=5*cos(3.5*theda).^3;%%rho(4,:)rho的第四行。每一行对应一个花瓣的数学表达式,当然你可以写好多花瓣的表达式,再添加更多的行
for k=1:4
polar(theta,rho(k,:))
pause %%使用pause,运行后,显示一幅图,敲击回车后显示另一幅图
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
敲击回车出现多个不同的花瓣图,那是各个花瓣图的数学表达式不同。
rho(1,:),rho(2,:),rho(3,:),rho(4,:)函数表达式不同引起。追问

(1)该方程为什么不可能产生4的倍数加2(如2,6,10……)个花瓣,求解
(2)2*sin(5*theta).^2可不可以写成2.sin(5.*theta).^2
(3)你说每一行对应一个花瓣的数学表达式,为什么不能每一列去对应一个花瓣的表达式
谢谢。继续求解

追答

(1)当k是偶数时曲线将是2k个花瓣,要产生2,6,10...,k=1,3,5,可以看出k是奇数,不是偶数;
(2)标量和矩阵相乘可以不用点乘,也可以用点乘,一样的结果;
(3) theta是行向量,所以花瓣的结果就是行向量;你要写成列向量的话,你把theta转置下,rho(:,1)这样写就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-21
for k=1:4
polar(theta,rho(k,:))
pause %为什么要用pause
end
上边的代码是出现多个图形的原因。。。。
至于其他的,还是好好看书吧,都是基础。。。追问

既然是基础的问题,你帮忙解答一下好吗

追答

theta应该仅仅是一个变量,你也可更改成其他的变量名,-pi到pi是他的取值范围,作图时用到,就好像一个函数y=2*x,要画出他的图形,就要知道x的取值范围,如果不给定的话 ,计算机也不知道画多大呀?另外你可以改一下它的取值范围,例如-pi-0,看一下划出的图像有什么不同,你理解的就会更深刻一些,其他的我也不便多说,因为我也不是很熟悉matlab。。。。