MathGroup Archive 2007

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

Search the Archive

Re: Nullcline and getting "2" values for y

  • To: mathgroup at smc.vnet.net
  • Subject: [mg81471] Re: Nullcline and getting "2" values for y
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Wed, 26 Sep 2007 06:22:11 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <fd7s8h$cgc$1@smc.vnet.net>

sean_incali wrote:

> I have this equation I can plot using the following
> 
> ClearAll["Global`*"]
> 
> 
> fun = (b c y - a y^ n + y^(1 + n))/(b + y^n);
> d = 0.1;
> c = 1;
> b = 10;
> a = 11;
> n = 5;
> ParametricPlot[{fun, (y)}, {y, 0, 1}, PlotRange -> All]
> 
> I am plotting the function "fun" against values of y.
> 
> When I do that I get a curvew that clearly shows that, for a given
> value of y, I should get two value for the function.
> 
> How do I get what they are?
> 
> If I just go..
> 
> d = 0.1;
> c = 1;
> b = 10;
> a = 11;
> n = 2;

Note that the value of n has changed: the first graph was done with n == 
5 whereas this one is drawn with n == 2.

> y = 0.5;
> 
> (b c y - a y^ n + y^(1 + n))/(b + y^n)
> 
> I get
> 
> 0.231707
> 
> but starting at y=0 all the way to y= 0.6 or so, there are two values!
> (according to the graph)
> 
> How do I get what those values are?

Hi Sean,

I am not sure to have followed or understood correctly what you 
attempted to do; nevertheless, I believe that the following will help.

First, let's rewrite the 'equation' as a function of y and set the 
parameters as a list of replacement rules.

In[1]:= fun[y_] := (b c y - a y^n + y^(1 + n))/(b + y^n)
params = {d -> 1/10, c -> 1, b -> 10, a -> 11, n -> 5};
ParametricPlot[{fun[y] /. params, y}, {y, 0, 1}, PlotRange -> All]

[... graphic deleted ...]

In[4]:= fun[0.5] /. params

Out[4]= 0.465732

The above value is indeed correct and unique. It correspond to the value 
of f[y] when y is equal to 1/2, as you can see in the plot below.

In[5]:= Plot[fun[y] /. params, {y, 0, 1}]

[... graphic deleted ...]

So what you are looking for is the solutions to the equation f[y] == 
1/2, that is, "For which values of y do we have f[y] equal to a half?" 
This can be answer by either *Solve* or *Reduce*, the advantage of 
*Reduce* is that we can use inequalities in addition to equations.

In[6]:= Solve[fun[y] == 1/2 /. params, y]

Out[6]= {{y -> Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 1]}, {y ->
    Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 2]}, {y ->
    Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 3]}, {y ->
    Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 4]}, {y ->
    Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 5]}, {y ->
    Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 6]}}

In[7]:= Reduce[{fun[y] == 1/2 /. params, 0 <= y <= 1}, y]

Out[7]= y == Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 2] ||
  y == Root[-10 + 20 #1 - 23 #1^5 + 2 #1^6 &, 3]

In[8]:= % // N

Out[8]= y == 0.560536 || y == 0.742059

Regards,
-- 
Jean-Marc


  • Prev by Date: Question about InputField
  • Next by Date: Wanted: Demonstrations Authors and Editors
  • Previous by thread: Re: Nullcline and getting "2" values for y
  • Next by thread: Re: Nullcline and getting "2" values for y