第二章作业。
1. 运用递归的思想。
function a=fib(n) %生成长度为n的斐波那契数列。
if n==1
a=1;elseif n==2
a=[1 1];
elseb=fib(n-1);
a=[b,b(end-1)+b(end)];此程序的亮点。
end注意调用时放入work中,例如在指令窗口中输入fib(10)便可得。
程序1用递归调用。
function f=cantor(ax,ay,bx,by) %定义一个函数cantor
c=0.005;d=0.005c为画出的最小的线段的最小长度,d为两条线段之间的距离。
if (bx-ax)>c如果线段的长度大于c,就继续画曲线。
x=[ax,bx];y=[ay,by画图的范围。
hold on;
plot(x,y,'linewidth',2);
hold off用x ,y画直线,刷新图形界面。
cx=ax+(bx-ax)/3坐标变换关系。
cy=ay-dcx,cy,dx,dy分别为中间段的左端和右端坐标。
dx=bx-(bx-ax)/3;
dy=by-d;
ay=ay-d;
by=by-d;
cantor(ax,ay,cx,cy再次调用cantor函数。
cantor(dx,dy,bx,by再次调用cantor函数。
end注意调用时放入work中,例如在指令窗口中输入cantor(1,4,4,4)
程序2自相似的思想。
clear all
u=[0,i];
subplot(3,3,1);
plot(u)
axis([-0.5,0.5,0,1])
for k=1:7
m=u/3;
uuu=[m,m+i*2/3];
subplot(3,3,k+1)
for j=1:2^(k+1)-1 %每次线段数
if mod(j,2)==0;
plot(uuu(j:j+1),'w','markersize',5)
else plot(uuu(j:j+1),'b','markersize',5
endhold on
endaxis([-0.5,0.5,0,1])
u=uuu; end
程序1用递归调用。
function f=koch(ax,ay,bx,by,c) %定义一个函数koch
if (bx-ax)^2+(by-ay)^2 x=[ax,bx];y=[ay,by];
plot(x,y);hold on;
elsecx=ax+(bx-ax)/3第一次将线段变成了四小段,c,e,d分别为新的端点。
cy=ay+(by-ay)/3;
ex=bx-(bx-ax)/3;
ey=by-(by-ay)/3;
l=sqrt((ex-cx)^2+(ey-cy)^2); l是中间线段长。
alpha=atan((ey-cy)/(ex-cx));中间线段与水平方向的角度,存在角度的换算问题。
if (alpha>=0&(ex-cx)<0)|(alpha<=0&(ex-cx)<0) %注意一些特殊的角度变换。
alpha=alpha+pi;
enddy=cy+sin(alpha+pi/3)*l;
dx=cx+cos(alpha+pi/3)*l;
koch(ax,ay,cx,cy,c);
koch(ex,ey,bx,by,c); 再次调用koch函数。
koch(cx,cy,dx,dy,c);
koch(dx,dy,ex,ey,c);
end注意调用时放入work中,koch(0,0,120,0,10);
程序2clear all
u=[0,i];
subplot(3,3,1);
plot(u);
axis([-0.6,0.6,0,1])
for k=2:9
m=u/3将第一条边缩短到1/3 ,并用它重画图
uu=[m,..
i/3+m*((1+sqrt(3)*i)/2m向左旋转60度,沿虚轴上移1/3
(i/2-sqrt(3)/6)+m*((1-sqrt(3)*i)/2m向右旋转60度,沿虚轴上移1/2,沿负实轴平移sqrt(3)/6 ,也可将此句改为(m-i/3)*(1-sqrt(3)*i)/2)+2*i/3也可。
m+2i/3m沿虚轴上移2/3
subplot(3,3,k);
plot(uu)
axis([-0.6,0.6,0,1])
u=uu; end
clear all
u=[0,1];
axis([0,1,-0.4,0.4])
for k=1:4
m=u/4将第一条边缩短到1/4 ,并用它重画图。
uu=[m将画8条线段。
m*i+1/4m向左旋90度,再沿实轴右移1/4
m+1/4+i/4m沿虚轴上移1/4,再沿实轴右移1/4
m*(-i)+i/4+1/2m向右旋90度,再沿实轴右移1/2,沿虚轴上移1/4
m*(-i)+1/2m向右旋90度,再沿实轴右移1/2
m-i/4+1/2m沿虚轴下移1/4,再沿实轴右移1/2
m*i-i/4+3/4m向左旋90度,再沿实轴右移3/4,沿虚轴,下移1/4
m+3/4m沿实轴右移3/4
subplot(2,2,k);
plot(uu)
axis([0,1,-0.4,0.4])
u=uu;end
matlab第二章作业
2.1创建一个有七个元素的一维数组,并做如下处理。1 直接寻访一维数组的第六个元素。2 寻访一维数组的第。一 三 五个元素。3 寻访一维数组中第四个至最后一个元素。4 寻访一维数组中大于70的元素。a linspace 1,200,7 创建一个有七个元素的一维数组。a columns 1 throu...
MATLAB第二章作业解答
2010级通信工程专业学号姓名 2.13 题目略。变量说明 无。程序 a 5 2 b 5 3 5 6 c 4 6 3 1 2 d 9 6 12 7 5 3 2 e 1 5 3 6 2 2 2 4 1 5.5运行结果 a 25 b 0.2667 c 14.8324 d 2.1885e 004 e 1....
第二章MATLAB
2 matlab 一个强有力的科学计算与。控制系统cad软件。2.1 概述。matlab的名字由matrix和laboratory两词的前三个字母组合而成,始创者是时任美国新墨西哥大学计算机科学系主任的cleve moler教授。于1984年由mathworks公司推出 dos版 1993年推出ma...