用计算机代码模拟基因,实验十二计算机随即模拟与基因遗传问题(11页)-原创力文档...

实验十二 计算机随即模拟与基因遗传问题

[实验目的]

学会用计算机模拟方法来解决随即性问题;

用计算机模拟方法研究基因遗传问题,

§1 背景介绍

计算机模拟就是用计算机来模仿真实系统运行,对其进行分析、计算,了解系统的各种特性,从而进行判断与决策。

计算机模拟具有直观性强、简便易行的特点。对于那些具有随机性的问题,由于变量见错综复杂的内外联系,使问题很难用适当的数学形式来表达。此时计算机模拟困难是获得问题答案的方法。随着计算机技术的不断发展及模拟软件的不断完善,计算机模拟方法在自然科学 、社会科学及管理科学中越来越受到重视。在本实验中,主要是对随机现象进行模拟。 遗传问题是生物学的一个重要课题。遗传问题之所以重要,主有以下三个方面的原因。第一,遗传学描述了生物进化的基本机制,如有害昆虫种群回逐渐地对杀虫剂产生抗体,使药剂的效力降低。第二,物种数量遗传原理的应用具有特殊的重要性,在改进农作物和畜牧育种方面有许多成功的例子。第三,在人类这一有不同种族构成的群体中,遗传学知识可指导人们去认识遗传疾病,提高人口素质,在本实验中,将重点研究基金遗传方面的一些随机性问题。

§2 实验内容与练习

2.1 随机数的产生

要进行随机模拟,一个重要的过程就是产生随机数。用 Mathematica软件可以很方便的产生随机数。我们已经介绍了产生均匀随机数的命令,下面介绍如何用 Mathmatica软件产生非均匀分布随机数。

连续分布随机数的产生

给定了一个连续分布随机变量以后,可以通过程序给出这个随即变量的随即数,这些程序一般比较复杂。在 Mathematica中,常用的连续分布函数已经写入程序中,可以直接调用。在本实验§3中,介绍了Mathematica中常用的连续分布函数。

用Mathematica 软件产生连续分布随机数,必须先调用连续分布的程序库,起命令为:

《 Statistics`ContinuousDistribution`

调用此程序库后,就可以产生常见的各种连续分布的随即数,例如

Random[NormalDistribution[0,1]]

给出一个标准正态分布随机数。

下面的程序给出一个正态分布随机数的集合;

<

A={};

Do[A=Append[A,Random[NormalDistrbution[0,1]]],{I,1,4}];

A

运行该程序得

{-1。74821, -0。646468 0。689262 -0。945783}

注意,在不同的时间之下运行该程序得到的结果一般不一样,对于其他产生随即数的命令也有类似的问题。

练习1 用Mathematica的程序库产生T分布G(3.2,2)的100个随即数(命令参考§3)。

离散分布随即数的产生

在Mathematica 中产生离散分布的随即数可以用两中方法 。

方法一 由于离散分布在形式上比较简单,可以直接编写程序产生随即数。

如果知道离散随即变量ξ的概率分布:P{ξ=xk}=pk(k=1,2,…),产生随即变量ξ的随即数时可简单的按如下算法:

(1)将区间[0,1]依次分为长度为P1,P2,……的小区间,I1,I2 ……

(2)产生[0,1]的均匀分布随数R,若R∈Ik,则令X∈X K,

重复(2)即得离散随即变量ε的随即数序列。

下面介绍一个用方法一产生离散分布随即数的例子。

表12。1 给出了离散分布ε的概率分布表,试产生100个随即数。

表12。1ε的概率分表

XK

1

3

5

7

9

PK

0.5

0.05

0.2

0.05

0.2

解 将[0 1]分为5个区间:

I1 =[0,0.5] I2 =[0.5,0.55] I3 =[0.55,0.75] I4 =[0.75.0.80] I5 =[0.80,1.00]

产生100个U(0,1)随即数ri,若 ri xi ,令εi=xi

上述产生随即数的过程可以用Mathematica软件来实现,程序如下;

Clear[x,p,a,aa,b,k,s];

n=100(*模拟次数*)

Array[s,n](* 数组s 存放产生的随即数*);

Array[a,6](*数组a存放区间的端点*);

Array[b,6](*b[k]表示取值x[[k]]的随即数的个数*);

x={1,3,5,7,9}

p={0.5,0.05,0.2,0.05,0.2}

Do[b[k]]=0,{k,1,5};

A[1]=0

Do[b[k]]=a[k-1]+p[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值