Re: More problem with DSolve applied to System of ODE
- To: mathgroup at smc.vnet.net
- Subject: [mg28158] Re: [mg28139] More problem with DSolve applied to System of ODE
- From: BobHanlon at aol.com
- Date: Mon, 2 Apr 2001 02:18:28 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
$Version
"4.1 for Power Macintosh (November 2, 2000)"
Clear[a1, b1, a, q1, q2, q3, t];
a12 = 0.8316; a23 = 0.0086625; a31 = 0.0462;
a10 = 1.9404; a30 = 0.001155;
Make substitutions as early in the process as is practicable.
eq = {Derivative[1][q1][t] == a1*E^(- b1*t) - (a12 + a10)*q1[t] +
a31*q3[t],
Derivative[1][q2][t] == a12*q1[t] - a23*q2[t],
Derivative[1][q3][t] == a23*q2[t] - (a31 + a30)*q3[t],
q1[0] == a, q2[0] == 0, q3[0] == 0} /.
{a -> 0, a1 -> 1, b1 -> 1};
{q1[t_], q2[t_], q3[t_]} =
Simplify[{q1[t], q2[t], q3[t]} /.
DSolve[eq, {q1[t], q2[t], q3[t]}, t][[1]] ];
{q1[0], q2[0], q3[0]}
{-3.1268390654481987*^-16, -1.734723475976807*^-17,
-6.938893903907228*^-18}
funcs = Flatten[{
{q1[t], q2[t], q3[t]},
Chop[{q1[t], q2[t], q3[t]}]}];
Plot[Evaluate[funcs], {t, 0, 20},
Frame -> True, Axes -> False,
PlotStyle -> {
{AbsoluteDashing[{5, 5}], RGBColor[1, 0, 0]},
{AbsoluteDashing[{5, 5}], RGBColor[0, .75, 0]},
{AbsoluteDashing[{5, 5}], RGBColor[0, 0, 1]},
{RGBColor[1, 0, 0]}, {RGBColor[0, .75, 0]},
{RGBColor[0, 0, 1]}},
ImageSize -> {335, 200}, PlotRange -> {-0.01, 0.31}];
Chop is required if evaluating above t = 13
Bob Hanlon
In a message dated 2001/4/1 1:18:27 AM, guillerm at gugu.usal.es writes:
>Dear friends. I have some problems with DSolve (It is not the firt time)
>
>in Math 4.1 for Windows. The problem is the follow:
>
>a12 = 0.8316; a23 = 0.0086625; a31 = 0.0462; a10 = 1.9404; a30
>= 0.001155;
>
>eq = {Derivative[1][q1][t] == a1 E^(- b1*t) - (a12 + a10)*q1[t] +
>a31*q3[t], Derivative[1][q2][t] == a12*q1[t] - a23*q2[t],
>Derivative[1][q3][t] == a23*q2[t] - (a31 + a30)*q3[t]};
>
>{q1[t_], q2[t_], q3[t_]} = FullSimplify[{q1[t], q2[t], q3[t]} /.
>DSolve[Join[eq, {q1[0] == a, q2[0] == 0, q3[0] == 0}],
>{q1[t], q2[t], q3[t]}, t][[1]] /. a -> 0];
>
>But the solution is wrong because it doesn`t`with the initial condition.
>
>i.e: for a1 -> 1, b1 -> 1
>
>{q1[0], q2[0], q3[0]} /. {a1 -> 1, b1 -> 1}
>
>out: {-0.18026427146397125, 1.327120201951776*^-16,
>4.406453795543006*^-18}
>
>that is wront It should be q1[0] = 0, and not {-0.18..}. I have test
>to rationalize and increase the precition.
>