题目: 某水池有2000m3水,其中含盐2kg,以每分钟6m3的速率向水池内注入含盐率为0.5kg/m3的盐水,同时又以每分钟4m3的速率从水池流出搅拌均匀的盐水.①试用计算机仿真该水池内盐水的变化过程,②并每隔10min计算水池中水的体积、含盐量和含盐率.③欲使池中盐水的含盐率达到0.2kg/m3,需经过多少时间? 分析:①由于水池中不断有不同浓度的盐水流进,同时也会流出一部分,故含盐量时时刻刻在变化,且题目要求为池水含盐量随着时间的变化,故需要建立池水含盐量随着时间变化的微分关系: 以s、y、w分别表示含盐量、含盐率、池水中水的体积: s(t+dt)=s(t)+3dt-4s(t)/y(t); y(t)=2000+6dt-4dt; 通过关系式可以解得: s=2000000+3000000t+3000t2+t3)/(1000+t)2; 接下来为程序的运行: h=1;/步长为1/ s0=2;/初始含盐量/ y0=0.001;/含盐率/ w0=2000; y0=s0/w0;/含盐率/ s(1)=s0+3h-4h-r0; w(1)=w0+2h; y(1)=s(1)/w(1); t(1)=h; y(1)=(2000000+3000000h+3000h2+h3)/(1000+h)^2;/微分方程求导得到。/ for i=2:200; t(i)=h+i; s(i)=s(i-1)+3h-4s(i-1)/w(i-1); y(i)=s(i)-w(i); m=floor(i/10); if i/10-m<0.1(即i正好被整除的时候) tm(m)=t(i); sm(m)=s(i); ym(m)=y(i); end if y(i)>0.2 t02=ih; s02=s(i); y02=y(1); end end [10tm’,sm’,rm’;t02’,s02’,r02’]最后画出图像即可。