Re: Plotting a series of Roots
- To: mathgroup at smc.vnet.net
- Subject: [mg128711] Re: Plotting a series of Roots
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Mon, 19 Nov 2012 04:09:37 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <20121117084935.868E56AF3@smc.vnet.net>
Not clear what you are trying to accomplish. The following example
provides some approaches
s1[lambda_, t_] =
x[t] /. DSolve[{x'[t] == lambda, x[0] == 0}, x[t], t][[1]]
lambda t
t1[lambda_, value_] = t /. Solve[s1[lambda, t] == value, t][[1]]
value/lambda
s1[lambda, t1[lambda, value]]
value
Manipulate[
Module[
{ti = 0,
tf = 100,
pt = {t1[lambda, value], value}},
Plot[s1[lambda, t], {t, ti, tf},
PlotRange -> {0, 0.7},
Epilog -> {
Text[
{NumberForm[pt[[1]], {4, 1}],
NumberForm[pt[[2]], {4, 2}]},
pt, {1.5, -1.5}],
LightGray,
Line[{{ti, value}, pt}],
Line[{
{t1[lambda, value], 0}, pt}],
Red,
AbsolutePointSize[5],
Point[pt]}]],
{{value, 0.1}, 0, 0.7, 0.01,
Appearance -> "Labeled"},
{{lambda, 0.001}, 0.001, 0.007, 0.00025,
Appearance -> "Labeled"}]
Bob Hanlon
On Sat, Nov 17, 2012 at 3:49 AM, William Duhe <wjduhe at loyno.edu> wrote:
> 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 =
> Quiet[Chop[
> FindRoot[x[t] == .1 /. s1, {t, #}] & /@ {tf, ti}]]}],
>
> "\n\n"}]], {{lambda, .001}, 0.001, 0.007,
> Appearance -> "Labeled"}]
>
- References:
- Plotting a series of Roots
- From: William Duhe <wjduhe@loyno.edu>
- Plotting a series of Roots