用matlab实现:推广的斐波那契数列.斐波那契数列是以兔子繁殖为例子而引入,其假设是初始状态有一对兔子、兔子出生满两个月后每个月生产—对小兔;兔子不会死亡。(1) 假设出生满三个月后每个月生产一对小兔,其他假设不变,这里称为第一类推广的斐波那契数列.用m函数递推调用方式给出第一类推广的斐波那契数列m函数。并求第40个月时兔子的对数.(2)假没兔子死亡率为a,其他假设不变、这里称为第二类推广的斐波那契数列,用m函数递推调用方式给出第二类推广的斐波那契数列 m函数,并求a=0.1时第40个月时兔子的对数的数学期望.
时间: 2024-03-25 19:35:23 浏览: 83
第一类推广的斐波那契数列的递推公式为:$f(n)=f(n-1)+f(n-3)$,其中$f(1)=f(2)=1$,$f(3)=2$。可以用以下的 Matlab 代码实现:
```matlab
function f = fibonacci_general1(n)
% 第一类推广的斐波那契数列
f = zeros(1, n);
f(1) = 1;
f(2) = 1;
f(3) = 2;
for i = 4:n
f(i) = f(i-1) + f(i-3);
end
disp(['第40个月时兔子的对数为:', num2str(f(40))]);
```
第二类推广的斐波那契数列的递推公式为:$f(n)=f(n-1)+f(n-3)-a \cdot f(n-4)$,其中$f(1)=f(2)=f(3)=1$,$f(4)=2$。可以用以下的 Matlab 代码实现:
```matlab
function f = fibonacci_general2(n, a)
% 第二类推广的斐波那契数列
f = zeros(1, n);
f(1) = 1;
f(2) = 1;
f(3) = 1;
f(4) = 2;
for i = 5:n
f(i) = f(i-1) + f(i-3) - a * f(i-4);
end
exp_value = sum(f(40:end)) / length(f(40:end));
disp(['a=0.1时第40个月时兔子的对数的数学期望为:', num2str(exp_value)]);
```
注意到在第二类推广的斐波那契数列中,我们需要额外传入一个参数 $a$ 表示兔子死亡率。在代码中,我们将其设为0.1,即兔子死亡率为10%。
阅读全文