实验6 线性代数方程组的数值解法

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

实验6 线性代数方程组的数值解法

实验6 线性代数方程组的数值解法 ‎[实验目的]‎ 1. ‎1.     学会用MATLAB软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;‎ 2. ‎2.     通过实例学习用线性代数方程组解决简化的实际问题。‎ ‎[实验内容]‎ ‎5-5 输电网络:一种大型输电网络可简化为图5.5(见书)所示电路,其中R1,R2,…,Rn表示负载电阻,r1,r2,…,rn表示线路内阻,I1,I2,…,In表示负载上的电流。设电源电压为V。‎ ‎(1)列出求各负载电阻R1,R2,…,Rn的方程;‎ ‎(2)设I1=I2=…=In=I,r1=r2=…=rn=r,在r=1,I=0.5,V=18,n=10的情况下求R1,R2,…,Rn及总电阻R0。‎ ‎[问题分析、模型建立及求解]‎ ‎(1) 设电源负极为电势为0,电阻R1上对应节点电压为V1,对于任意节点,根据KCL定律列出方程:‎ 而,可得:‎ ‎ k=2,3,……,n-1;‎ k=1时 ,为与上式形式一致,化为 k=m()时 ‎ k=n时 ‎ 设以上方程组的矩阵形式为:‎ 则 ‎ ‎ ‎ ‎(2)代入参数:‎ ‎,,V=18,n=10,‎ ‎ ‎ 在命令窗口输入MATLAB程序如下:‎ clear all;‎ n=10; %由题目要求设定 A11=sparse(1:n-1,1:n-1,-1,n,n); %定义A的对角元素,除(n,n)‎ A12=sparse(n,n,-0.5,n,n); %定义(n,n)‎ A1=A11+A12; %对角元素 A2=sparse(1:n-1,2:n,0.5,n,n); %输入A的上次对角元素 A3=sparse(2:n,1:n-1,0.5,n,n); %输入A的下次对角元素 A=A1+A2+A3;‎ b1=0.5*ones(n,1); %b的除第一项元素 b2=sparse(1,1,18,n,1); %b的第一项元素 b=b1-b2; ‎ R=Ab 输出结果如下:‎ R =‎ ‎ ‎ ‎ 26.0000‎ ‎ 17.0000‎ ‎ 9.0000‎ ‎ 2.0000‎ ‎ -4.0000‎ ‎ -9.0000‎ ‎ -13.0000‎ ‎ -16.0000‎ ‎ -18.0000‎ ‎ -19.0000‎ 所以各阻值为 ‎(R1,R2,…,R10)=(26,17,9,2,-4,-9,-13,-16,-18,-19)‎ 总电阻R0(即输入等效电阻)为,又 得到 ‎ ‎ ‎ ‎5-6 有5个反应器连接如图5.6(见书),各个Q表示外部输入、输出及反应器间的流量(m3/min),各个c表示外部输入及反应器内某物质的浓度 ‎(mg/m3)。假定反应器内的浓度是均匀的,利用质量守恒准则建立模型,求出各反应器内的浓度c1~c5,并讨论反应器j外部输入改变1个单位(mg/min)所引起的反应器i浓度的变化。‎ ‎[问题分析、模型建立及求解]‎ ‎  当反应容器中反应物浓度稳定时,输入物质质量与输出物质质量平衡,即输入物质质量等于输出物质质量。由此分析,分别对1~5容器列质量平衡方程,以输入物质为“+”,输出物质为“-”‎ ‎,代入数据整理为 由矩阵表示:‎ ‎ ,‎ ‎ ‎ 编写MATLAB程序如下:‎ A=[-6,0,1,0,0 ‎ ‎ 3,-3,0,0,0‎ ‎ 0,1,-9,0,0‎ ‎ 0,1,8,-11,2‎ ‎ 3,1,0,0,-4];‎ b=[-50,0,-160,0,0]';‎ c=Ab %计算并输出c pause;‎ dQc01=[1,0,0,0,0]';‎ dQc02=[0,0,1,0,0]'; ‎ c11=A(b+dQc01); %01的输入减少1个单位 dc11=c-c2;‎ c12=A(b-dQc01); %01的输入增加1个单位 dc12=c-c1;‎ c21=A(b+dQc02); %03的输入减少1个单位 dc21=c-c4;‎ c22=A(b-dQc02) ; %03的输入增加1个单位 dc22=c-c3;‎ ‎[c,c11,dc11,c12,dc12,c21,dc21,c22,dc22]%外部输入改变引起的 ‎ %反应器浓度变化列表比较 MATLAB给出结果如下:‎ c =‎ ‎ ‎ ‎ 11.5094‎ ‎ 11.5094‎ ‎ 19.0566‎ ‎ 16.9983‎ ‎ 11.5094‎ 所以改变前各反应器浓度为 ‎(c1,c2,c3,c4,c5)=( 11.5094,11.5094,19.0566,16.9983,11.5094)‎ 改变容器01或容器03的外部输入,得到各容器平衡时浓度及其增量如下表:‎ ‎ ‎ 浓度 原值C ‎001 减少1单位 ‎001增加1单位 ‎003 减少1单位 ‎003增加1单位 C11‎ C12‎ C21‎ ‎ ‎ C22‎ C1‎ ‎11.5094‎ ‎11.3396‎ ‎0.1698‎ ‎11.6792‎ ‎-0.1698‎ ‎11.4906‎ ‎0.0189‎ ‎11.5283‎ ‎-0.0189‎ C2‎ ‎11.5094‎ ‎11.3396‎ ‎0.1698‎ ‎11.6792‎ ‎-0.1698‎ ‎11.4906‎ ‎0.0189‎ ‎11.5283‎ ‎-0.0189‎ C3‎ ‎19.0566‎ ‎19.0377‎ ‎0.0189‎ ‎19.0755‎ ‎-0.0189‎ ‎18.9434‎ ‎0.1132‎ ‎19.1698‎ ‎-0.1132‎ C4‎ ‎16.9983‎ ‎16.9383‎ ‎0.0600‎ ‎17.0583‎ ‎-0.0600‎ ‎16.9108‎ ‎0.0875‎ ‎17.0858‎ ‎-0.0875‎ C5‎ ‎11.5094‎ ‎11.3396‎ ‎0.1698‎ ‎11.6792‎ ‎-0.1698‎ ‎11.4906‎ ‎0.0189‎ ‎11.5283‎ ‎-0.0189‎ ‎ ‎ ‎[改进做法]‎ 上面这种做法显得有些麻烦,由可得,表明容器平衡浓度c对外部输入b是线性的,所以当b增加1个单位(记作)时,c的增量为,若外部输入增加一个单位,时,为的第一列, 时,为的第三列。外部输入减少1个单位时,取其负值即可。故改用矩阵求逆的方法来计算:‎ A=[-6,0,1,0,0 ‎ ‎ 3,-3,0,0,0‎ ‎ 0,1,-9,0,0‎ ‎ 0,1,8,-11,2‎ ‎ 3,1,0,0,-4];‎ b=[-50,0,-160,0,0]';‎ dx=inv(A) %求A的逆矩阵 输出结果为:‎ dx =‎ ‎ ‎ ‎ -0.1698 -0.0063 -0.0189 0 0‎ ‎ -0.1698 -0.3396 -0.0189 0 0‎ ‎ -0.0189 -0.0377 -0.1132 0 0‎ ‎ -0.0600 -0.0746 -0.0875 -0.0909 -0.0455‎ ‎ -0.1698 -0.0896 -0.0189 0 -0.2500‎ 红色部分显示为所求,此结果与前面的方法计算的一致,但工作量明显少了许多。‎ ‎ ‎ ‎5-8 种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应维持不变,种群因雌性个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。‎ 种群年龄记作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,200,100,求 ‎(3)要使h1~h5均为500, 如何达到?‎ ‎[问题分析、模型建立及求解]‎ ‎(1)要使各年龄种群数量每年维持不变即,‎ 依题意得 ‎ 用矩阵形式表示原方程组为:‎ ‎, ‎ ‎ ‎ ‎(2)代入题中数据 ‎ , ‎ ‎ ‎ 编写MATLAB程序如下:‎ format bank;‎ A=[0.4,-1,0,0,0 ‎ ‎ 0,0.6,-1,0,0‎ ‎ 0,0,0.6,-1,0‎ ‎ 0,0,0,0.4,-1‎ ‎ -1,0,5,3,0];‎ h=[500,400,200,100,0]'; ‎ x=Ah ‎ ‎ ‎ MATLAB输出结果如下:‎ x =‎ ‎ ‎ ‎ 8481.01‎ ‎ 2892.41‎ ‎ 1335.44‎ ‎ 601.27‎ ‎ 140.51‎ ‎ ‎ 第5年龄段:x5=140.5>100=h5 ,说明收获量h5可以达到100。‎ ‎(3)要使h1~h5均为500,则h变为:‎ 其他参数不变,程序变为:‎ format bank;‎ A=[0.4,-1,0,0,0 ‎ ‎ 0,0.6,-1,0,0‎ ‎ 0,0,0.6,-1,0‎ ‎ 0,0,0,0.4,-1‎ ‎ -1,0,5,3,0];‎ h=[500,500,500,500,0]';‎ x=Ah ‎ ‎ MATLAB输出结果如下:‎ x =‎ ‎ ‎ ‎ 10981.01‎ ‎ 3892.41‎ ‎ 1835.44‎ ‎ 601.27‎ ‎ -259.49‎ ‎ ‎ 从结果看出,x5为-259.49,但种群数量不可能为负数,在本题所给条件下,无法使h1~h5均为500。‎ 为达到h1~h5均为500,对题中参数b1,b2,b3,b4,b5, s1,s2,s3,s 4的值作了一些改动。经过分析比较发现,当s1,s2,s3,s 4值较大,而b1=b2=b5=0,,b3,b4值较小时,可以达到。‎ 例如,设s1=s4=0.6,s2=s3=0.8,b1=b2=b5=0,b3=1,b4=2,‎ 输入:‎ format bank;‎ A=[0.6,-1,0,0,0 ‎ ‎ 0,0.8,-1,0,0‎ ‎ 0,0,0.8,-1,0‎ ‎ 0,0,0,0.6,-1‎ ‎ -1,0,1,2,0];‎ h=[500,500,500,500,0]';‎ x=Ah ‎ ‎ ‎ 结果为:‎ x =‎ ‎ ‎ ‎ 13467.74‎ ‎ 7580.65‎ ‎ 5564.52‎ ‎ 3951.61‎ ‎ 1870.97‎ x5=1870>500=h5,说明收获量h5可达到500,从而h1~h5均可达到500。‎ 这里所设的参数只是满足条件的情况之一,但真正意义上来说参数的选取还得符合实际情况,如存活率不可能非常大,繁殖率也不可能只有1,所以要实现获得均为500是有一定困难的。‎ ‎ [结果分析]‎ 第3问要求h1~h5均为500,但在本题所给参数下,结果出现负数,不符合实际。要维持种群的发展,就要有足够多的“年轻”种群数量;而要求各个年龄的种群数量每年维持不变,“年轻”种群有较高的获得时,老龄种群的获得就不会高,这是受到存活率和繁殖率等因素的影响。‎ ‎ ‎ ‎[实验小结]‎ 本次实验同前一次实验相比要容易解答,主要是有比较完备的公式模式,而且经过前几次作业,对题目的理解分析有所提高。当然,在解释一些问题时可能还存在一些不太合理或者不完善的地方,还请老师批评指正。‎
查看更多

相关文章

您可能关注的文档