Re: Manipulate piecewise functions,

• To: mathgroup at smc.vnet.net
• Subject: [mg107713] Re: [mg107643] Manipulate piecewise functions,
• From: Bob Hanlon <hanlonr at cox.net>
• Date: Wed, 24 Feb 2010 06:19:47 -0500 (EST)

```You can interconnect the controls to avoid cases where everything is off the graph.

Also the Exclusions option can be used if you want the vertical lines to show.

a = {0, 7, 2, 1, 4};
Manipulate[
Plot[
Evaluate[
Piecewise[
{{x - p - q, x - p - q <= #}},
(x - p - q)^2] & /@ a],
{x, 0, 20},
PlotRange -> {Automatic, {-1, 51}},
Exclusions -> p + q],
{p, 0, 20 - q, 0.1, Appearance -> "Labeled"},
{q, 0, 20 - p, 0.1, Appearance -> "Labeled"}]

Bob Hanlon

---- Patrick Scheibe <pscheibe at trm.uni-leipzig.de> wrote:

=============
Hi,

I thought it was clear that Range[blub] is a list which you have to
substitute by whatever you want:

a = {0, 7, 2, 1, 4};
Manipulate[
Plot[Evaluate[
Piecewise[{{x - p - q, x - p - q <= #}}, (x - p - q)^2] & /@
a], {x, 0, 20}, PlotRange -> {Automatic, {0, 50}}], {p, 0,
20}, {q, 0, 20}]

See where your "a" goes? You have to try to follow every step to
understand and to get better! So try to understande the core which is

Piecewise[{{x - p - q, x - p - q <= #}}, (x - p - q)^2] & /@ a

What is the # and the &? What is /@? Why and how does it work?
You only have to read the examples in the documentation and maybe the
doc itself.

Cheers
Patrick

On Tue, 2010-02-23 at 16:53 -0700, Vedhas Pandit wrote:
> That helped so far as syntax is concerned!
>
> Please note that I need to use elements of array a, a is an array is
> predefined with some random numbers, say a={0 7 2 1 4}. (I cannot use
> range, I need to use the "data" I have with me).
>
> a = {0 7 2 1 4};
> Manipulate[
>  Plot[Evaluate[
>    Piecewise[{{x - p - q, x - p - q <= a}}, (x - p - q)^2]], {x, 0,
>    20}, PlotRange -> {Automatic, {0, 50}}], {p, 0, 20}, {q, 0, 20}]
> didn't work
>
> Thanks,
>
> Vedhas
>
>
> On Tue, Feb 23, 2010 at 3:54 PM, Patrick Scheibe
> <pscheibe at trm.uni-leipzig.de> wrote:
>         Hi,
>
>         > for plot y versus x is:
>         > y=x-p-q for x-p-q<a, and (x-p-q)^2 for (x-p-q)>=a i.e. 6
>         plots getting
>         > manipulated simultaneously.
>
>
>         this makes absolutely no sense, because you will have no
>         information. Set k=p+q and you can do the same with only one
>         parameter.
>         But your original question is easy:
>
>         Manipulate[
>          Plot[Evaluate[
>           Piecewise[{{x - p - q, x - p - q <= #}}, (x - p - q)^2] & /@
>            Range[6]], {x, 0, 20}, PlotRange -> {Automatic, {0, 50}}],
>         {p, 0,
>          20}, {q, 0, 20}]
>
>         If you give Plot a list of functions you'll have them all in
>         the same
>         plot. But I'm pretty sure you expected something different
>         from this
>         plot.
>
>         Cheers
>         Patrick
>
>
>
>         > Again, Thanks for your help and I hope you will again
>         respond to the
>         > query quickly!
>         >
>         > Best regards,
>         >
>         > Vedhas
>         >
>         > On Sun, Feb 21, 2010 at 8:33 AM, Bob Hanlon
>         <hanlonr at cox.net> wrote:
>         >
>         >         If you plot all of the curves on a single plot they
>         will
>         >         overlap and make it difficult to see what is
>         happening.
>         >         Recommend an array of plots.
>         >
>         >         Manipulate[
>         >          Grid[
>         >          Partition[
>         >           Table[
>         >            Plot[
>         >             Piecewise[{
>         >               {x - p, x < a + p},
>         >               {(x - p)^2, x >= a + p}}],
>         >             {x, -8, 5},
>         >             Frame -> True,
>         >             Axes -> False,
>         >             PlotRange -> {-10, 50},
>         >             ImageSize -> 250,
>         >             Epilog ->
>         >              {Style[
>         >                Text[
>         >                 "a = " <> ToString[a],
>         >                 {-6, 40}],
>         >                Blue, 16],
>         >               Style[
>         >                Text[
>         >                 "step = " <> ToString[a (a - 1)],
>         >                 {-6, 30}],
>         >                Blue, 16]}],
>         >            {a, 6}],
>         >           2]],
>         >          {p, -6, -2, Appearance -> "Labeled"}]
>         >
>         >
>         >         Bob Hanlon
>         >
>         >
>         >         ---- Vedhas | sahdeV <vedhas at gmail.com> wrote:
>         >
>         >         =============
>         >         a = {1 2 3 4 5 6}
>         >         The goal is to plot a piecewise function
>         corresponding to each
>         >         of "a"
>         >         values, with manipulate where control variable is p,
>         and the
>         >         function
>         >         for plot y versus x is:
>         >         y=x-p for x-p<a, and (x-p)^2 for (x-p)>=a i.e. 6
>         plots getting
>         >         manipulated simultaneously.
>         >
>         >         I am new to Mathematica and this might be a naive
>         question,
>         >         but I
>         >         couldn't find a solution through help documentation.
>         I will
>         >         appreciate
>         >         if you can help!
>         >
>         >         Thanks,
>         >
>         >         Vedhas

```

• Prev by Date: Re: Manipulate piecewise functions,
• Next by Date: Re: Manipulate piecewise functions,
• Previous by thread: Re: Manipulate piecewise functions,
• Next by thread: Handheld mathematica