山东大学数值计算实验一(matlab实现)

实验题目

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','--') ;
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值