- 2021-05-17 发布 |
- 37.5 KB |
- 8页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
实验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,但在本题所给参数下,结果出现负数,不符合实际。要维持种群的发展,就要有足够多的“年轻”种群数量;而要求各个年龄的种群数量每年维持不变,“年轻”种群有较高的获得时,老龄种群的获得就不会高,这是受到存活率和繁殖率等因素的影响。 [实验小结] 本次实验同前一次实验相比要容易解答,主要是有比较完备的公式模式,而且经过前几次作业,对题目的理解分析有所提高。当然,在解释一些问题时可能还存在一些不太合理或者不完善的地方,还请老师批评指正。查看更多