Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: question ,,thankx!!!

  • To: mathgroup at smc.vnet.net
  • Subject: [mg70709] Re: [mg70681] question ,,thankx!!!
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Tue, 24 Oct 2006 02:24:11 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

You need to define r at all points in the interval including 0, 100, 110,  200, and 400.

r[t_]:=0/;0<=t<100;
r[t_]:=10/;100<=t<110;
r[t_]:=2.5/;110<=t<200;
r[t_]:=0/;200<=t<=400;

Or more simply

Clear[r];

r[t_]:= Piecewise[{
        {10, 100<=t<110}, 
        {2.5, 110<=t<200}}];

sol=NDSolve[{b'[t]==30a'[t],
        c'[t]==10a[t](100-c[t])-0.3c[t],
        d'[t]==400a[t],
        a'[t]+b'[t]+c'[t]+d'[t]\[Equal]r[t],
        a[0]==0,b[0]==0,c[0]==0,d[0]==0},
      {a[t],b[t],c[t],d[t]},{t,0,400}];

Plot[Evaluate[
      {a[t],b[t],c[t],d[t]}/.sol[[1]]],
    {t,0,400},
    PlotStyle->{Red, Blue, Green,Black},
    PlotRange->All,Frame->True,
    Axes->False, ImageSize->500];

Plot[Evaluate[
      {a[t],b[t],c[t],d[t]}/.sol[[1]]],
    {t,0,400},
    PlotStyle->{Red, Blue, Green,Black},
    PlotRange->{0,0.7},Frame->True,
    Axes->False, ImageSize->500];

Plot[Evaluate[
      {a[t],b[t],c[t],d[t]}/.sol[[1]]],
    {t,0,400},
    PlotStyle->{Red, Blue, Green,Black},
    PlotRange->{0,0.025},Frame->True,
    Axes->False, ImageSize->500];

Table[{t, a[t],b[t],c[t],d[t]}/.sol[[1]]//Chop,
  {t,0,400,20}]


Bob Hanlon

---- walkon <fsun81 at mail.ru> wrote: 
> hello to everyone!
> here question is:
> input:
> r[t_] := 0 /; (t > 0) && (t < 100)
> r[t_] := 10 /; (t > 100) && (t < 110)
> r[t_] := 2.5 /; (t > 110) && (t < 200)
> r[t_] := 0 /; (t > 200) && (t < 400)
> 
> sol = NDSolve[{b'[t] == 30a'[t],
>          c'[t] == 10a[t](100 - c[t]) -0.3c[t],
>          d'[t] ==400a[t],
>          a'[t] + b'[t] + c'[t] + d'[t] == r[t],
>          a[0] == 0, b[0] == 0, c[0] == 0, d[0] == 0}, {a[t], b[t],
> c[t], d[t]}, {t, 0, 400}]
> 
> Plot[({a[t], b[t], c[t], d[t]} /. sol[[1]] // Evaluate), {t, 0,400},
> PlotRange -> All, Frame -> True]
> 
> who can tell me what 's wrong with the programming?
> and if I input a certain r[t] value like:
> input:
> sol = NDSolve[{b'[t] == 30a'[t], c'[t] == 10a[t](100 - c[t]) -0.3c[t],
> d'[t] ==400a[t], a'[t] + b'[t] + c'[t] + d'[t] == 0, a[0] == 10, b[0]
> == 0, c[0] == 0, d[0] == 0}, {a[t], b[t], c[t], d[t]}, {t, 0, 100}]
> Plot[({a[t], b[t], c[t], d[t]} /. sol[[1]] // Evaluate), {t, 0,100},
> PlotRange -> All, Frame -> True]
> output:
> [Graphic]
> It works well!
> so,,whether the programming can only be seperately resolved or not?
> 
> the most important is that I need to get the numerical value of
> a[t],b[t],c[t],d[t]
> at each time point(0-400),but how to list them from the result of
> NDSolve??even I can show the picture.
> 
> thank you very much!!!
> 

--

Bob Hanlon
hanlonr at cox.net



  • Prev by Date: Evaluate, /., {{...}}, etc.
  • Next by Date: Re: Using "=" vs ":=" [Thanks!]
  • Previous by thread: Re: question ,,thankx!!!
  • Next by thread: Re: Using "=" vs ":=" [Thanks!]