基于马尔科夫过程的老鼠人口结构演变模型分析

1、题目

        半数新生老鼠存活 ;存活其中的半数活到2岁;最大寿命3岁;老鼠在1,2,3岁分别生0,6,8老鼠;求100年后老鼠的“人口结构”,老中青三代比例。200年结果?

2、题目分析

        由题目可知,每一代老鼠的“人口结构”只与上一代老鼠的“人口结构”有关,假设第n代老鼠中青年、中年和老年的数量分别是y(n)、m(n)、o(n),则下一代老鼠中青年、中年和老年的数量分别是y(n+1)=1/2*(m(n)*6+o(n)*8)、m(n+1)=1/2*y(n)、o(n+1)=m(n)。先假定第一代的老鼠“人口结构”,根据以上迭代关系便可求得100年和200年后的老鼠“人口结构”。

3、仿真结果

图 1 繁衍100代后老鼠的“人口结构”
图 2 繁衍200代后老鼠的“人口结构”
图 3 每一代老鼠的青中老占比
图 4 青中老占比随代数增加的变化曲线
图 5 改变第一代老鼠数量分布后青中老占比随代数增加的变化

​​​​​​​4、结果分析

        由图1和图2可以发现,青中老三代在100年和200年后的占比都分别是0.672、0.204、0.124,由图3和图4可以发现,老鼠的“人口结构”在25年之后会稳定下来,由图5可发现,不管第一年老鼠的青中老三代如何分布,其最终分布都会在25年之后稳定在某一个确定的状态。综上,可以得出结论:在马尔可夫链中,每个状态的出现只和上一状态有关,因此初始概率分布对后续的状态转移概率影响不大,即便我们使用不同的初始概率分布,最终的稳定状态概率分布仍然趋于相同的值。

​​​​​​​5、代码

clear;
Generation(1,:) = [10,0,0];%第一代老鼠中青年、中年、老年的数量
Generation_rate(1,:) = Generation(1,:)/sum(Generation(1,:),2);%第一代青中老占比
%根据老鼠的繁衍规律进行迭代
for i=2:200
    Generation(i,1) = Generation(i-1,2)*3 + Generation(i-1,3)*4;
    Generation(i,2) = Generation(i-1,1)*0.5;
    Generation(i,3) = Generation(i-1,2);
    %计算第i代中老鼠青中老三代的数量占比
    Generation_rate(i,:) = Generation(i,:)/sum(Generation(i,:),2);
end
g = 1:i;
%画出青中老占比随代数增加的变化曲线
plot(g,Generation_rate(:,1),'-.',g,Generation_rate(:,2),'-',...
g,Generation_rate(:,3),':','LineWidth',2)
legend('younth-rate','middle-rate','old-rate')
xlabel('Generation')
ylabel('Rate')
% all_sum = sum(Generation(i,:),2);%计算第i代老鼠总数
% %计算第i代中老鼠青中老三代的数量占比
% youth = Generation(i,1)/all_sum;
% middle = Generation(i,2)/all_sum;
% old = Generation(i,3)/all_sum;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值