实验题目
1、斐波那契数列
编程显示斐波那契数列前20个数。1、1、2、3、5、8、13、21、34…,F(n)=F(n-1)+F(n-2)
(1)源程序(加适当注释)。
(2)运行结果。
(3)调试方法(断点、单步等)2、Computer Problem 1.1
P44,Compter Problem 1.1
(1)源程序(加适当注释)。
(2)题目要求
如下(第一种方法):
%计算斐波那契数列的前二十项
%首位和次位分别为 a b
a = 1;
b = 1;
%n 为需要计算的位数,循环n次,分别输出每一次数列对应位置上面的数
for n=1:20
%c 为中间值,re 为每一位上面的数
c = a+b;
re = a;
a = b;
b =c;
%输出斐波那契数列
fprintf(' %d',re);
end
fprintf('\n');
第二种方法:
function re = Fibonacci( n )
%UNTITLED3 此处显示有关此函数的摘要
% 斐波那契数列
% re = Fibonacci(n) 生成前 n 个斐波那契数
%初始化re为 n*1 的矩阵
re = zeros(n,1);
%判断输入值是否有意义,以及区分 n 是否大于三
if(n < 1)
return;
end
if(n == 1)
re(1) = 1;
end
if( n>=2)
re(1) = 1;
re(2) = 1;
end
if( n >= 3 )
%利用递推,计算 n >= 3 时,斐波那契
f= re(k -1) + re(k - 2);
end
end
第二个问题:
%计算斯特林近似的绝对误差和相对误差
%斯特林近似:n! ~= sqrt(2*pi*n)*power(n/e,n) n = 1,2...,10
%使用矩阵记录这十个绝对误差
x = zeros(10,1);
%使用矩阵记录这十个相对误差
y = zeros(10,1);
%计算斯特林近似的误差
for n=1:10
%绝对误差,这里采用绝对值的形式
x(n)= abs((sqrt(2*pi*n)*power(n/exp(1),n)) - factorial(n)) ;
%相对误差
y(n) = x(n)/(factorial(n)) ;
end
%绘制绝对误差和相对误差
stem(x,'fill','-.')
figure
stem(y,'fill','--') ;