matlab的第二章作业,matlab 第二章作业

第二章作业

1. 运用递归的思想

function a=fib(n) %生成长度为n的斐波那契数列

if n==1

a=1;

elseif n==2

a=[1 1];

else

b=fib(n-1);

a=[b,b(end-1)+b(end)]; %此程序的亮点

end %注意调用时放入work中,例如在指令窗口中输入fib(10)便可得

2.

程序1用递归调用

function f=cantor(ax,ay,bx,by) %定义一个函数cantor

c=0.005;d=0.005; %C为画出的最小的线段的最小长度,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-d; %cx,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 %每次线段数1、3、7、15、31

if mod(j,2)==0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值