为了学习动态系统和混沌,首先要知道迭代,即不断重复某个过程。 例如种群的增长就是一个迭代过程,因为繁衍过程会不断地重复。 我们先来看一个简单的增长模型——simple population growth.nlog。 这个模型可以在课程网页上下载。 打开这个模型。 在这个模型里,当我们点击setup按钮时,模型产生一个个体作为种群。 出生率设为2,即每一步这只兔子会生下两只兔子,然后死亡。 所以当按下reproduce按钮时,可以注意到这个过程。 现在后代是两只兔子。 如果再来一次,那么现在这两只兔子会生下4只兔子,然后死去。 以此类推,模型里很快就到处是兔子。 模型给出了两条曲线。 上面一条是种群数量对时间作图。 每一步种群数量都会翻倍,增长非常迅速。 还有另一种描述这个过程的方法。 用去年的种群数量对今年的数量作图。 这里每一步就代表一年。 如果去年的数量是,大概100吧,那今年的数量就是200. 如两个横纵坐标所示。 去年是300,今年就是600。 所以图像是条直线。非常简单。 因为它很简单,所以我们可以写出它的数学模型。 先点这里关掉netlogo。把它扔一边去。 然后我们来写方程。 首先来定义一些符号: 种群数量称为n, 初始种群数量为n0(0是下标), ——在我们的模型中,n0等于1,即最开始只有1只兔子—— n1等于第一年的数量,然后依次类推 ——这里n1等于2,最开始的那只兔子生了2只兔子然后死去。 我们可以把第t年的种群数量标为nt。 同时也要设定出生率,即每年出生的后代数量。 注意n1等于出生率乘以n0,即最初有1只,然后乘以2得两个后代。 类似地,n2等于出生率乘以n1。 所以一般的表达式就是nt+1,即第t+1年的数量,等于出生率乘以前一年的数量nt。 这就是我们的模型。 在这里,迭代就是利用前一年的数量去计算下一年的数量。 再下一年的数量又可以由刚得到的数量计算。以此类推。 这就是迭代。 刚才的种群增长是指数增长。 这可以由一个统计种群增长的表格看出。 先是年t,然后是当年的数量nt。 当t等于0,nt等于1. 还有出生率等于2。 第一年nt等于2;第二年nt等于4.每年种群数量都在翻倍。 到第三年nt等于8,等等。 希望大家看出了其中的趋势。 在第t年,种群数量为2的t次方。 2的1次,2次,3次,t次(话真多!)。 这就叫指数函数,因为这里有个指数t。 这种增长方式非常迅速。 当然,这是完全不现实的。 因为这是完全不受控的增长。 在现实世界中,增长是有限制的。 种群在增长时会耗尽资源,食物和空间。 但我们先假设没有这些限制,然后再看一遍netlogo模型。 一个充满兔子的世界,一条数量对时间的曲线, 也可以用今年数量对去年数量作图 这里数量对时间的曲线符合指数函数,2的t次方。 但如果用今年的数量对去年的数量作图则得到线性方程。 写个备注提醒一下: nt+1等于出生率乘以nt 如果大家还记得代数学,那这个方程就代表了一条直线: y等于斜率乘以x。 y是今年的数量,斜率就是生长率2, 将x乘以2就得到y。 这个线性方程反映了这个系统的线性本质,注意今年和去年数量的关系。 我们刚才说到线性和非线性。 线性是说兔子与兔子之间没有相互影响, 兔子独立繁殖,互不影响。 在这个意义上,互不影响导致了线性增长。 小测验:假设出生率是3,初始兔子数量n0等于1,那么n4是多少?