huanghuan
2008-11-14, 18:38
写一个MATLAB的递归函数fibo.m来计算fibo数列,定义如下:
fibo(n+2)=fibo(n+1)+fibo(n)
此数列的初条件为
fibo(1)=0, fibo(2 )=1
n的最大数为100,要求:
(1)保存你的fibo.m文件,当在命令窗调用fibo函数时,不论输入任何整数有正确的输出。
(2)做出fibo的二维离散函数图,n取1到10,图的函数值处用小圆圈并涂为黑色,请保存你的图形。
(3)用三次样条插值的方法对(2)中的10个点进行插值,自变量的分辨率为0.01,
请保存你的图形。
(4) 编写一个程序,不论输入任何具有两位小数且小于10大于0的数时有正确的输出。
第一问:
function [a]=fibo(n);
if n==1
a=0;
else if n==2
a=1;
end
fibo(1)=0;
fibo(2)=1;
for i=3:n
if n<=100
fibo(i)=fibo(i-1)+fibo(i-2);
end
end
a=fibo;
end
第二问:
for i=1:10;
n=1:i;
stem(n,fibo(i),'ko')
end
第三问:
xx=1:.01:10;
yy=spline(1:10,fibo(10),xx);
hold on;
plot(xx,yy)
请问第四问该怎么做?应该是很简单,但我就是做不出来。:cry:
fibo(n+2)=fibo(n+1)+fibo(n)
此数列的初条件为
fibo(1)=0, fibo(2 )=1
n的最大数为100,要求:
(1)保存你的fibo.m文件,当在命令窗调用fibo函数时,不论输入任何整数有正确的输出。
(2)做出fibo的二维离散函数图,n取1到10,图的函数值处用小圆圈并涂为黑色,请保存你的图形。
(3)用三次样条插值的方法对(2)中的10个点进行插值,自变量的分辨率为0.01,
请保存你的图形。
(4) 编写一个程序,不论输入任何具有两位小数且小于10大于0的数时有正确的输出。
第一问:
function [a]=fibo(n);
if n==1
a=0;
else if n==2
a=1;
end
fibo(1)=0;
fibo(2)=1;
for i=3:n
if n<=100
fibo(i)=fibo(i-1)+fibo(i-2);
end
end
a=fibo;
end
第二问:
for i=1:10;
n=1:i;
stem(n,fibo(i),'ko')
end
第三问:
xx=1:.01:10;
yy=spline(1:10,fibo(10),xx);
hold on;
plot(xx,yy)
请问第四问该怎么做?应该是很简单,但我就是做不出来。:cry: