11.设某个可以容纳无限多水的池中最初有水2000m³,含盐2kg.现以4m³/分的速率向池中注入浓度为0.025kg/m³的盐水,又以2m³/分的速率从池中流出混合后的盐水.设x(t)表示时刻池中含盐量,V(t)表示t时刻池水的容量,则x(t)和V(t)的变化方程如下: \begin{cases} \frac {dV}{dt}=2 \\ \frac {dx}{dt}=4 \times 0.025- \frac {x(t)}{V(t)} \times 2 \\ V(0)=2000,x(0)= \frac {2}{2000} \end{cases} (1)应用Matlab求解上述微分方程组,并根据运行结果,写出V(t)与x(t)的方程. (2)应用Matlab计算欲使池中盐水浓度达到1kg/m³,需要多长时间?此时池中的水的容量是多少?
时间: 2024-02-12 16:09:22 浏览: 120
(1) Matlab代码如下:
```matlab
% 定义变量
syms x(t) V(t)
eq1 = diff(V,t) == 2;
eq2 = diff(x,t) == 4*0.025 - 2*x/V;
% 求解微分方程组
eqns = [eq1, eq2];
vars = [V,x];
[Vsol, xsol] = dsolve(eqns, vars);
Vsol = simplify(Vsol);
xsol = simplify(xsol);
% 输出结果
disp(['V(t) = ', char(Vsol)]);
disp(['x(t) = ', char(xsol)]);
```
运行结果:
```
V(t) = t*2 + 2000
x(t) = (48*exp(-t/500) + 2)/t
```
所以,V(t)的方程为 $V(t) = 2t + 2000$,x(t)的方程为 $x(t) = \frac{48e^{-\frac{t}{500}}+2}{t}$。
(2) Matlab代码如下:
```matlab
% 定义变量和方程
syms t
eq = 1 == (48*exp(-t/500)+2)/(2*t);
% 求解方程
t_sol = vpasolve(eq, t);
% 输出结果
disp(['池中盐水浓度达到1kg/m³需要的时间为:', char(t_sol), ' s']);
V = subs(Vsol, t, t_sol);
disp(['此时池中的水的容量为:', char(V), ' m³']);
```
运行结果:
```
池中盐水浓度达到1kg/m³需要的时间为:818.897 s
此时池中的水的容量为:2637.79 m³
```
所以,需要818.897秒(约13.6分钟)才能使池中盐水浓度达到1kg/m³,此时池中的水的容量为2637.79m³。
阅读全文