预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验5:线性方程组的数值解法 化学工程系分2安振华2012011837 【实验目的】 1、掌握线性方程组的常用数值解法,包括高斯消去法、LU分解法以及校正法。 2、体验数值计算的时间复杂度和计算规模的关系。 3、加深对数值计算误差的理解。 4、学习使用迭代法等算法,求解非线性方程。 5、学习如何使用MATLAB解非线性方程组和方程组。 【实验内容】 【实验五:习题9】 种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应保持不变,种群因雌性个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。 种群年龄记作k=1,2,…,n,当年年龄k的种群数量记作xk,繁殖率记作bk(每个雌性个体在1年繁殖的数量),自然存活率记作sk(sk=1-dk,dk为1年的死亡率),收获量记作hk,则来年年龄k的种群数量应为: 要求各个年龄的种群数量每年维持不变就是要使 (1) 若bk,sk已知,给定收获量hk,建立求各年龄的稳定种群数量xk的模型(用矩阵向量表示) (2) 设n=5,b1=b2=b5=0,b3=5,b4=3,s1=s4=0.4,s2=s3=0.6,如果要求h1~h5为500,400,200,100,100,求x1~x5 (3) 要使h1~h5均为500,如何达到? 【分析】 为方便起见以下种群数量均指其中的雌性。我们并且有以下的假设: (1)雌性个体的繁殖率和存活率在特定的时间内是不变的。 (2)人工饲养的种群在质量和数量上是不受外界环境和资源的限制的。 (3)模型中不考虑人为的或是自然的灾害所造成的种群数量、繁殖率和存活率的变动。 (4)样本的量足够大使得每年新出生的个体数均为整数。 (5)模型中的种群按年龄进行分组。 【解答】 (1) 基于以上假设,要使各年龄种群数量每年维持不变即 依题意得 对上述方程组变换后得到AX=H 其中, X=[x1,x2,x3,…,xn]T H=[0,h1,h2,…,hn-1]T 其解为X=A-1H 此式即为种群数量xk的模型。 (2) MATLAB程序: clc;clearall; %按题给定的值赋予参数相应的值 s=[0.4,0.6,0.6,0.4]; b=[0,0,5,3,0]; h=[500,400,200,100,100]; n=5; %生成矩阵A A1=sparse(1,1:n,b,n,n); A2=-eye(n); A3=sparse(2:n,1:n-1,s,n,n); A=A1+A2+A3; %生成矩阵H H=[0,h(1:4)]'; %求解X x=A\H; X=round(x)%对结果取整 运行结果: k12345hk500400200100100XK848128921335601141 结果分析: 图像显示结果与前面分析大致相同,即圆桶在此过程做加速 结果分析: 其中x5=141>h5=100,说明方程的解满足条件,计算正确。 (3)在上述程序中,将矩阵h的值全赋为500,其他不做任何变化, MATLAB程序: clc;clearall; %按题给定的值赋予参数相应的值 s=[0.4,0.6,0.6,0.4]; b=[0,0,5,3,0]; h=[500,500,500,500,500]; n=5; %生成矩阵A A1=sparse(1,1:n,b,n,n); A2=-eye(n); A3=sparse(2:n,1:n-1,s,n,n); A=A1+A2+A3; %生成矩阵H H=[0,h(1:4)]'; %求解X x=A\H; X=round(x)%对结果取整 运行结果: X1X2X3X4X51098138921835601-259 结果分析: 结果中X5为负值,这显然是不可能的,这说明按题目中设定的前提条件是不可能使得h1,…,h5均为500的。 对于一个特定的生物物种,通过人工条件改变其繁殖率是相当困难的,但是可以通过改善养殖条件等方法增大物种的成活率。很显然,x1<x2<x3<x4<x5只要使得x5能够大于500,就肯定能满足题设条件。考虑到养殖的成本,在满x5≥500的情况下,使得k=15xk最小,即可得到最优化的解。 MATLAB程序: clc;clearall; b=[0,0,5,3,0];%按题中给定的值赋予参数以相应的值 h=[500,500,500,500,500];n=5; H=[0,h(1:4)]';t=Inf;%生成矩阵H A1=sparse(1,1:n,b,n,n); A2=-eye(n); %通过循环求解最优解 fors1=0.1:0.1:1 fors2=0.1:0.1:1 fors3=0.1:0.