Tell me more ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have a mathematical model of a Continuous stirred-tank reactor which I want to apply to a salt leaching process. After consulting with teacher and digging some literature I end up with a system of differential equations which look like this:

$\Bigg\{ \begin{array}{} \dot{C}=f(C, R) \\ \dot{R}=g(C) \end{array}$

Where $R$ is the radius of a cavern and $C$ is the salt density. At the time of 0, $C = 0$ and $R = 0.15$.

After I tried to input those equations in Mathematica it turns out that none of them are dependent on t, but rather on results of a previous computations. What should I do in this case?

Here is the full version of model:

$\Bigg\{ \begin{array}{} \dot{C}=\frac {2 (1 - \frac{C}{2 \gamma \pi}) W_b z - (C-C_0) \nu} {z(R) R} \\ \dot{R}=\frac{W_b}{2 \gamma \pi} \end{array}$

Where $z=\pi R H$ and $\gamma$, $\nu$, $C_0$, $H$ are constants.

The function $W_b$ can be analytically found as $W_b = \frac{d(2 \gamma \pi R)}{dt}$. But practically it can be treated as $W_b = k_bC_h(1-\frac{C}{C_h})^\frac{4}{3}$, where $k_b$ and $C_h$ are constants.

My Mathematica code:

kb = 10^-4;  
Ch = 317;  
gamma = 2350;  
H = 0.2;  
v = 50/3600;  
C0 = 0;  
z[R_] := Pi*R*H;  
Wb[C_] := kb*Ch*(1 - C/Ch)^(4/3);  

f[C_, R_] := (2*z[R]*Wb[C]*(1 - C/(2*Pi*gamma)) - (C - C0)*v)/(z[R]*R);  
g[C_] := Wb[C]/(2*Pi*gamma);  

What methods can I use to solve this system of differential equations? I would appreciate any ideas.

share|improve this question
You've checked the examples for DSolve[] (and I suppose NDSolve[] as well), I presume? – J. M. May 12 '12 at 16:58
Yes, I tried to use NDSolve like this NDSolve[{C'[t] == f[C[t], R[t]], R'[t] == g[C[t]], C[0] == 0, R[0] == 0.15}, {C, R}, {t, 0, 10800*24}]. But since my functions aren't really depend on time it doesn't produce any meaningful result. When I try to Plot the values like so Plot[Evaluate[C[x] /. s], {x, 0, 30}, PlotRange -> All] I got {s} is neither a list of replacement rules nor a valid dispatch \ table, and so cannot be used for replacing – Andrew May 12 '12 at 17:06
It's supposed to work. What are f and g supposed to be? – J. M. May 12 '12 at 17:16
1  
Also: C is a built-in function; you might want to use different names for your functions... – J. M. May 12 '12 at 17:17
1  
{c[5], r[5]} /. First@NDSolve[{c'[t] == Sin[c[t] + r[t]], r'[t] == Log[1 + c[t]], c[0] == 0, r[0] == 0.15}, {c, r}, {t, 0, 10}] works nicely, to give a random example... – J. M. May 12 '12 at 17:19
show 1 more comment

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.