MathGroup Archive 2012

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

Search the Archive

Re: Plotting a series of Roots

  • To: mathgroup at
  • Subject: [mg128694] Re: Plotting a series of Roots
  • From: "djmpark" <djmpark at>
  • Date: Sun, 18 Nov 2012 03:57:18 -0500 (EST)
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • Delivered-to:
  • References: <26601221.26209.1353142348747.JavaMail.root@m06>


Have you looked at the pieces of your construction? Before compounding one
complex expression inside another and then wondering why the whole thing
doesn't work, why not look at the steps on their own, outside of the
Manipulate? Looking at the beginning, s1 is just a simple straight line
through the origin, and t1 is just a constant. I don't see what is
interesting about that. Maybe something interesting comes later? It looks
like you are "multiplying" a Plot times a Column and I don't understand what
that could mean.

I think you would make more progress if you developed the parts of your
construction first and made sure they worked and returned the entities you
were expecting and only then put together the Manipulate presentation.

David Park
djmpark at 

From: William Duhe [mailto:wjduhe at] 

Bellow is a program that solves a diff eq, then finds a particular valued
root for that eq. What I want to do is be able to plot how the root changes
as a function of Lambda. 

m = Manipulate[Module[
   {ti, tf, s1},
   imgSize = 375;
   ti = 0;(*initial time*)
   tf = 100;(*final plot time*)
   s1 = NDSolve[{x'[t] == lambda, x[0] == 0}, x, {t, ti, tf}][[1]];
   t1 = FindRoot[x[t] == .1 /. s1, {t, tf}];
   delta[lambda] := 
    Module[{times, v, s = s1[lambda]}, 
     times = Quiet[
       Chop[FindRoot[x[t] == .1 /. s, {t, #}] & /@ {tf - 1, ti + 1}]];
     v = Flatten[x[t] /. s /. times];
     Subtract @@ v];
   Plot[delta[lambda], {lambda, 0, .007}, Frame -> True, 
     Axes -> False, 
     FrameLabel -> {"lambda", "Change in value of root"}, 
     ImageSize -> imgSize, 
     Epilog -> {Text[ToString[pt, TraditionalForm], pt, {-1.25, 1}], 
       Red, AbsolutePointSize[4], Point[pt]}]
    Column[{Plot[Evaluate[{Tooltip[x[t] /. s1, "x[t]"]}], {t, ti, tf},
        PlotRange -> Automatic, AxesLabel -> {"Time", "functions"}, 
       ImageSize -> 350, Exclusions -> Automatic],
      Row[{"x[t] = 1 when ", 
        t1 = 
           FindRoot[x[t] == .1 /. s1, {t, #}] & /@ {tf, ti}]]}],
      "\n\n"}]], {{lambda, .001}, 0.001, 0.007, 
   Appearance -> "Labeled"}]

  • Prev by Date: Re: Euclidean distance of all pairwise combinations (redundants)
  • Next by Date: Subscript on plus expression
  • Previous by thread: Re: Superscript on plus expression
  • Next by thread: Re: Plotting a series of Roots