Message Boards Message Boards

0
|
3532 Views
|
4 Replies
|
4 Total Likes
View groups...
Share
Share this post:
GROUPS:

FixedPoint

Posted 9 years ago

How to find Fixedpoint of the famous Mackey Glass Equation using Mathematica code

x'[t] == (1/4) x[t - 15]/ (1 + x[t - 15]^10) - x[t]/10
POSTED BY: Dia Ghosh
4 Replies
Posted 9 years ago

Thank you once again ? I have one more question, you have used the command Findroot, can we use the command Fixedpoint? Is there any deference between root and fixed point?

POSTED BY: Dia Ghosh

Hi,

same idea. Again the right hand side has to be zero. The Bessel function does not make this easier, but it is possible to get this numerically.

It is a good idea to first plot the right hand side - setting x[t-15] and x[t] simply to x.

Plot[(1/4) BesselJ[1, x] - x/10, {x, -5, 5}]

enter image description here

So, it looks as if there are three zeros: one at 0 one close to 1 and one close to -1.

We can get that in one line:

FindRoot[(1/4) BesselJ[1, x] - x/10 == 0, {x, {-1, 0, 1}}]

where the -1,0,1 are the starting values for our search. We obtain:

({x -> {-1.31102, 0., 1.31102}})

so three fixed points. If you are unhappy about guessing the first points, you can start at lots of random starting points:

ToExpression /@ DeleteDuplicates[ToString /@ Chop[FindRoot[(1/4) BesselJ[1, x] - x/10 == 0, {x, #}]] & /@ RandomReal[{-10, 10}, 100]]
(*{{x -> -1.31102}, {x -> 0}, {x -> 1.31102}}*)

The ToString and ToExpression step is not nice, but otherwise DeleteDuplicates does not work.

Cheers,

Marco

POSTED BY: Marco Thiel
Posted 9 years ago

Thank you for your reply. Now instead of x[t - 15] if anybody has BesselJ[1, x[t - 15]] then ? I mean x'[t] == (1/4) BesselJ[1, x[t - 15]] - x[t]/10

POSTED BY: Dia Ghosh

Hi,

the right hand side has to be equal to zero. As the fixed point solution (by definition) does not change in time, we know $x(t)=x(t-15)$ for all $t$.

So we have

Solve[(1/4) x/(1 + x^10) - x/10 == 0, x]

enter image description here

Now, we are only interested in solutions which are real (as opposed to complex with non-vanishing imaginary part). So

NSolve[(1/4) x/(1 + x^10) - x/10 == 0, x, Reals]
(*{{x -> 1.04138}, {x -> -1.04138}, {x -> 0.}}*)

You can now use this as an initial condition to check numerically whether the solution is constant:

sols = NDSolve[{x'[t] == (1/4) x[t - 15]/(1 + x[t - 15]^10) - x[t]/10, x[t /; t <= 0] == +1.0413797439924097}, x, {t, 0, 10}];
Plot[x[t] /. sols[[1]], {t, 0, 10}]

enter image description here

Same for the other two solutions.

Cheers,

Marco

POSTED BY: Marco Thiel
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract