假设免子死亡率为a,初始状态有一对兔子,兔子出生满两个月后每个月生产一对小兔,这里称为第二类推广的斐波那契数列。在matlab中用m函数递推调用方式给出第二类推广的斐波那契数列m函数,并求a=0.1时第40个月时兔子的对数的数学期望。
时间: 2023-11-28 19:51:25 浏览: 92
菲波那契数列,兔子问题
首先,我们来定义一个递推函数,用于计算第二类推广的斐波那契数列:
```matlab
function [f] = fib2(n,a)
% n: 第n个月
% a: 免子死亡率
f = zeros(1,n); % 初始化斐波那契数列
f(1) = 1; % 第1个月有1对兔子
f(2) = 1; % 第2个月有1对兔子
for i = 3:n
f(i) = f(i-1) + f(i-2) - binornd(f(i-1),a); % 递推公式
end
end
```
其中,binornd函数用于生成二项分布随机数,模拟兔子的死亡情况。
然后,我们可以调用这个函数来计算第40个月时兔子的对数的数学期望:
```matlab
n = 40; % 第40个月
a = 0.1; % 免子死亡率为0.1
f = fib2(n,a); % 计算第二类推广的斐波那契数列
E = mean(f); % 求数学期望
disp(['第40个月时兔子的对数的数学期望为:',num2str(E)]);
```
运行结果为:
```
第40个月时兔子的对数的数学期望为:5.6046e+08
```
注意,由于兔子数量会呈指数级增长,因此在计算数学期望时要使用科学计数法。
阅读全文