Message Boards Message Boards

1
|
5021 Views
|
3 Replies
|
3 Total Likes
View groups...
Share
Share this post:

FindMaximum huge divergence from expected results

Posted 10 years ago
I am trying to find the times of maxima and minima in order to calculate the period of some oscillations. However for certain values of my system (essentially a driven simple harmonic oscillator with an additional term) the period jumps hugely to give ridiculous answers, some of order 10^8 times the expected results and I receive the errors InterpolatingFunction::dmval: and FindMinimum::nrnum:. It appears that the FindMaximum function isn't recognising peaks sometimes and is continuing infinitely. My code is given below:
 kR = 5.822559;
 kZ = 2.62326;
 amax = 2
 adelta = 0.2
 a[Z_, R_, T_] := a0*Exp[-(((Z - T)/kZ)^2)/2]*Exp[- ((R/kR)^2)];
 Tmin = -20;
 Tmax = 200;
 Zmin = 0;
 Zmax = 10;
Rmin = -5;
Rmax = 5;
T0 = -20;
Ttest = 50;
tablePeriod1 =
Table[2*Abs[((T /.
        Last[FindMinimum[
          u1[0, 0, T] /.
           NDSolve[{D[
                  u1[Z, R, T], {T, 2}]*(1 + 1.5*D[u1[Z, R, T], T]^2 +
                   0.5*D[v1[Z, R, T], T]^2) + u1[Z, R, T] -
                D[v1[Z, R, T], T]*D[u1[Z, R, T], T]*
                 v1[Z, R, T] == -0.25*D[a[Z, R, T]^2, Z],
              D[v1[Z, R, T], {T, 2}]*(1 + 1.5*D[v1[Z, R, T], T]^2 +
                   0.5*D[u1[Z, R, T], T]^2) + v1[Z, R, T] -
                D[u1[Z, R, T], T]*D[v1[Z, R, T], T]*
                 u1[Z, R, T] == -0.25*D[a[Z, R, T]^2, R],
              (D[u1[Z, R, T], T] /. T -> T0) == 0, v1[Z, R, T0] == 0,
              u1[Z, R, T0] == 0, (D[v1[Z, R, T], T] /. T -> T0) ==
               0}, {u1, v1}, {Z, Zmin, Zmax}, {R, Rmin, Rmax}, {T,
              Tmin, Tmax}, MaxSteps -> Infinity,
             Method -> "Automatic"][[1]], {T, Ttest},
          WorkingPrecision -> 30]]) - (T /.
        Last[
         FindMaximum[
          u1[0, 0, T] /.
           NDSolve[{D[
                  u1[Z, R, T], {T, 2}]*(1 + 1.5*D[u1[Z, R, T], T]^2 +
                   0.5*D[v1[Z, R, T], T]^2) + u1[Z, R, T] -
                D[v1[Z, R, T], T]*D[u1[Z, R, T], T]*
                 v1[Z, R, T] == -0.25*D[a[Z, R, T]^2, Z],
              D[v1[Z, R, T], {T, 2}]*(1 + 1.5*D[v1[Z, R, T], T]^2 +
                   0.5*D[u1[Z, R, T], T]^2) + v1[Z, R, T] -
                D[u1[Z, R, T], T]*D[v1[Z, R, T], T]*
                 u1[Z, R, T] == -0.25*D[a[Z, R, T]^2, R],
              (D[u1[Z, R, T], T] /. T -> T0) == 0, v1[Z, R, T0] == 0,
              u1[Z, R, T0] == 0, (D[v1[Z, R, T], T] /. T -> T0) ==
               0}, {u1, v1}, {Z, Zmin, Zmax}, {R, Rmin, Rmax}, {T,
              Tmin, Tmax}, MaxSteps -> Infinity,
             Method -> "Automatic"][[1]], {T, Ttest},
          WorkingPrecision -> 30]]))], {a0, 0.2, amax, adelta}]
And the results were:
 {6.221796534875934665845156568, 6.279119955159784643716071509, \
 
 6.318407692782765006990372270, 6.302787259988871206694852995, \
 
 6.359180123726873636918626166,
 
  1.48489160439112764037865586341*10^8, 6.491986737115338573852543549, \
 
 46.069994156461475901853847230, 6.727526312055413488476783498, \

20.818040498618419289660167133}

I expected answers around 2Pi, but while some results stay close to this value, others jump around hugely. Does anybody have any ideas as to what I might be doing wrong?

Sorry if I've formatted this terribly, I can't seem to find a way to preview the post. Thank you for you time.
Attachments:
POSTED BY: Henry Banks
3 Replies
Have you looked at the results from NDSolve to see if they are ok?
POSTED BY: Frank Kampas
Posted 10 years ago
I'm getting an error at times from NDSolve but I can't seem to pin it down
POSTED BY: Bill Simpson
Posted 10 years ago
Yeah, I've been plotting graphs with the NDSolve for a couple of months now, they're all ~Sine waves with some growth/decay over long periods of time.
POSTED BY: Henry Banks
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