Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*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 2004

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

Search the Archive

Re: LogLog plot of NDSolve solution

  • To: mathgroup at smc.vnet.net
  • Subject: [mg52792] Re: [mg52557] LogLog plot of NDSolve solution
  • From: Adam Getchell <agetchell at physics.ucdavis.edu>
  • Date: Mon, 13 Dec 2004 04:22:58 -0500 (EST)
  • References: <200412020721.CAA05780@smc.vnet.net> <opsidom8sxiz9bcq@monster.cox-internet.com>
  • Sender: owner-wri-mathgroup at wolfram.com

Thanks very much for your detailed answers.

Unfortunately, I cannot replicate your results (Mathematica 5.0.1.0 on 
Windows).

In[1]:=
<< "Graphics`Graphics`"
Off[General::spell1]
<< "Graphics`Legend`"
In[4]:=
Dodelson :=
  Derivative[1][\[CapitalChi]][x] -
   (x/H)*(255/(Subscript[\[Tau],
       n]*x5))*(12 + 6*x +
     x2)*(E^(-x) - \[CapitalChi][x]*
      (1 + E^(-x)))
f = \[CapitalChi] /. First[NDSolve[
      {Dodelson == 0 /.
        {H -> 1.13,
         Subscript[\[Tau], n] ->
          886.7},
       \[CapitalChi][1.293] == 0.25},
      \[CapitalChi], {x, 0.1, 1.3},
      MaxSteps -> 106]];
plot = LogLogPlot[f[x],
    {x, 0.1, 1.3}];

Yields:

 From In[4]:=
\!\(\*FormBox[
  RowBox[{\(NDSolve::"ndnum"\),
    ":", "\<\"Encountered non-numerical value for a derivative at \
\\!\\(TraditionalForm\\`x\\) == \\!\\(TraditionalForm\\`1.293`\\). \
\\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", 
ButtonStyle->\\\"RefGuideLinkText\
\\\", ButtonFrame->None, ButtonData:>\\\"NDSolve::ndnum\\\"]\\)\"\>"}], \
TraditionalForm]\)

 From In[4]:=
\!\(\*FormBox[
  RowBox[{\(ReplaceAll::"reps"\),
    ":", "\<\"\\!\\(TraditionalForm\\`\\({\\(\\(\\(\\(\\(\\(\\(\\(\\*\
SuperscriptBox[\\\"\[CapitalChi]\\\", \\\"\[Prime]\\\", \
Rule[MultilineFunction, None]]\\)\\)(x)\\)\\) - 
\\(0.2544983836857554`\\\\ x \
\\(\\(\[LeftSkeleton] 1 \[RightSkeleton]\\)\\) \\(\\(\[LeftSkeleton] 1 \
\[RightSkeleton]\\)\\)\\\\ \\(\\((\\(\[LeftSkeleton] 1 \
\[RightSkeleton]\\))\\)\\)\\)\\/x5\\)\\) \[Equal] 0\\)\\), \\(\\(\\(\\(\
\[CapitalChi](1.293`)\\)\\) \[Equal] 0.25`\\)\\)}\\)\\) is neither a 
list of \
replacement rules nor a valid dispatch table, and so cannot be used for \
replacing. \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", \
ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \
ButtonData:>\\\"ReplaceAll::reps\\\"]\\)\"\>"}], TraditionalForm]\)

And pages and pages of more stuff.

Whereas this:

In[10]:=
Dodelson := Derivative[1][y][
    x] - (x/H)*(255/
     (Subscript[\[Tau], n]*x^5))*
    (12 + 6*x + x^2)*
    (E^(-x) - y[x]*
      (1 + E^(-x)))

In[11]:=
ans = NDSolve[
   {Dodelson == 0 /.
     {H -> 1.13,
      Subscript[\[Tau], n] ->
       886.7}, y[1.293] ==
     0.25}, y, {x, 0.88,
    1.3}, MaxSteps -> 10^6]

In[12]:=
LogLogPlot[y[x] /. ans,
  {x, 0.88, 1.3},
  PlotStyle -> {Hue[0.7]},
  AxesLabel -> {"x (MeV)",
    "y"}, PlotLabel ->
   "y[x]", PlotRange -> All]

Still generates garbage of a different sort:

 From In[12]:=
\!\(\*FormBox[
  RowBox[{\(ParametricPlot::"pptr"\),
    ":", "\<\"\\!\\(TraditionalForm\\`\\({\\(log(x)\\)\\/\\(log(10)\\), \
\\(log(\\(\\(\\(\\(y(x)\\)\\)/.\[InvisibleSpace]ans\\)\\))\\)\\/\\(log(10)\\)}\
\\)\\) does not evaluate to a pair of real numbers at \
\\!\\(TraditionalForm\\`x\\) = \\!\\(TraditionalForm\\`0.8800000175`\\). \
\\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", 
ButtonStyle->\\\"RefGuideLinkText\
\\\", ButtonFrame->None, 
ButtonData:>\\\"ParametricPlot::pptr\\\"]\\)\"\>"}], \
TraditionalForm]\)


DrBob wrote:

>
> Third, here's a working LogLogPlot:
>
> Dodelson := Derivative[1][\[CapitalChi]][
>     x] - (x/H)*(255/
>      (Subscript[\[Tau], n]*x^5))*
>     (12 + 6*x + x^2)*(E^(-x) -
>      \[CapitalChi][x]*(1 + E^(-x)))
> f = \[CapitalChi] /. First[NDSolve[
>       {Dodelson == 0 /.
>         {H -> 1.13,
>          Subscript[\[Tau], n] ->
>           886.7}, \[CapitalChi][1.293] ==
>         0.25}, \[CapitalChi], {x, 0.1,
>        1.3}, MaxSteps -> 10^6]];
> plot = LogLogPlot[f@x, {x, 0.1, 1.3}];
>
> It gives error messages, but only because Log[f[x]] isn't real for x < 
> 0.88 or so, when f[x] is negative. Here's the first data point on the 
> graph above:
>
> E^First[Cases[plot, Line[a_] -> a, Infinity]];
> First[%]
>
> {0.8838322898494186, 0.08540796127338049}


>
> This gives no errors:
>
> LogLogPlot[f@x, {x, 0.88, 1.3}];
>
> But these may be more informative:
>
> Plot[f@x, {x, 0.5, 0.7}, PlotRange -> All]
> Plot[f@x, {x, 0.6, 0.8}, PlotRange -> All]
> Plot[f@x, {x, 0.8, 1.3}, PlotRange -> All]
> Plot[Exp@f@x, {x, .3, 1.3}, PlotRange -> All];
>
> We might call the last one an ExpPlot, rather than a LogPlot.
>
> And here's a little more detail:
>
> Plot[f@x, {x, 0.7, 0.8}, PlotRange -> All];
> FindRoot[f@x, {x, 0.75}]
> LogPlot[Abs@f@x, {x, 0.3, 1.3}, PlotRange -> All]
> {x -> 0.751965}
>
> (That's a LogAbsPlot, I guess.)
>
> The last two plots, along with the result of FindRoot, may be all you 
> need.
>
> Bobby
>
> On Thu, 2 Dec 2004 02:21:06 -0500 (EST), Adam Getchell 
> <agetchell at physics.ucdavis.edu> wrote:
>
>> Hello all,
>>
>> I'm solving an ODE via NDSolve (neutron abundance for Big Bang
>> Nucleosynthesis -- from "Modern Cosmology", S. Dodelson). The result
>> comes out as an InterpolatingFunction, which plots fine using Plot.
>> However, if I wish to do a Log-Log plot, neither LogLogPlot nor
>> LogLogListPlot work. What am I missing?
>>
>> \!\(Dodelson := \(\[CapitalChi]'\)[
>>         x] - \(x\/H\) \(255\/\(\(\[Tau]\_n\) x\^5\)\) \((12 + 6  x +
>>             x\^2)\) \((\[ExponentialE]\^\(-x\) - \[CapitalChi][
>>                 x] \((1 + \[ExponentialE]\^\(-x\))\))\)\)
>>
>> In[329]:=
>> \!\(\(\(\[IndentingNewLine]\)\(ans =
>>     NDSolve[{Dodelson \[Equal]
>>             0 /. {H \[Rule] 1.13, \[Tau]\_n \[Rule] 886.7}, 
>> \[CapitalChi][
>>             1.293] \[Equal]  .25}, \[CapitalChi], {x,  .1, 1.3},
>>       MaxSteps \[Rule] 10\^6]\)\)\)
>>
>> Using the Evaluate trick suggested by
>> http://www.nhn.ou.edu/~morrison/Mathematica/TipSheets/2Dgraphics.pdf
>> doesn't work.
>>
>> This example doesn't cover LogLogPlots:
>> http://documents.wolfram.com/v4/MainBook/3.8.2.html
>>
>> Other search results on Google haven't turned up anything so far.
>>
>> Thanks,
>>
>> --Adam Getchell
>>
>>
>>
>>
>>
>
>
>



  • Prev by Date: Re: Solve Feature?
  • Next by Date: mathkernel.exe does not unload
  • Previous by thread: Re: LogLog plot of NDSolve solution
  • Next by thread: Re: LogLog plot of NDSolve solution