Student Support Forum: 'Maximizing solutions of NDSolve' topicStudent Support Forum > General > "Maximizing solutions of NDSolve"

 < Previous Comment | Next Comment > Help | Reply To Comment | Reply To Topic
 Author Comment/Response Michael 07/02/12 01:01am In Response To 'Re: Re: Re: Maximizing solutions of NDSolve'---------Find the absolute maximum is tricky, especially for a bumpy function like yours (try plotting it, if you haven't). If no method is specified, Mathematica automatically chooses one. Probably they tweaked the algorithm between v7 and v8, so the answers are different. Some suggestions: 1. Try different methods: NMaximize[{int[x], 0 < x < 1.5}, x, Method -> "RandomSearch"] NMaximize[{int[x], 0 < x < 1.5}, x, Method -> "DifferentialEvolution"] NMaximize[{int[x], 0 < x < 1.5}, x, Method -> {"DifferentialEvolution", "ScalingFactor" -> 1}] NMaximize[{int[x], 0 < x < 1.5}, x, Method -> "SimulatedAnnealing"] See the Url for more information. 2. Use NDSolve to find y as a function of x and \[Kappa]02: s[(q0_)?NumericQ] := s[q0] = First@ NDSolve[{Derivative[2, 0][y][ x, \[Kappa]02] + (4 q[q0, x]) (\[Kappa]02/(2 Sqrt[a[x] q[q0, x]]) + Sin[x]^2) y[ x, \[Kappa]02] == 0, Derivative[1, 0][y][0, \[Kappa]02] == 0, y[0, \[Kappa]02] == 0.5}, y, {x, 0, 200}, {\[Kappa]02, 0, 1.5}, MaxSteps -> 500000, Method -> {Automatic}, MaxStepFraction -> 1/100, WorkingPrecision -> \$MachinePrecision + 2] n[\[Kappa]02_, q0_, t_] := \[Omega][\[Kappa]02, q0, t]/ 2 (Abs[Derivative[1, 0][y][t, \[Kappa]02] /. s[q0]]^2/\[Omega][\[Kappa]02, q0, t]^2 + Abs[y[t, \[Kappa]02] /. s[q0]]^2) - 1/2 Then you can call NMaximize[{mueff[x, (32 Pi)^2, 30.5 Pi], 0 < x < 1.5}, x, Method ->...] directly on mueff without using Interpolation. Should be more accurate. 3. If you notice the "s[(q0_)?NumericQ] := s[q0] = ...", that's called cacheing a function value. Basically, the first time s[q0] is called with, say, q0=(32 Pi)^2, the NDSolve is called and the result is stored in s[(32 Pi)^2]. Any time s[(32 Pi)^2] is called, the stored value is returned without using NDSolve. It's useful if you're going to use the same function value many times, as will happen with NMaximize. It can speed things up. URL: http://www.wolfram.com/learningcenter/tutorialcollection/ConstrainedOptimization/ConstrainedOptimization.pdf,

 Subject (listing for 'Maximizing solutions of NDSolve') Author Date Posted Maximizing solutions of NDSolve Stan 06/27/12 10:31am Re: Maximizing solutions of NDSolve Stan 06/29/12 08:05am Re: Re: Maximizing solutions of NDSolve Michael 06/29/12 12:31pm Re: Re: Re: Maximizing solutions of NDSolve Stan 06/30/12 12:02pm Re: Re: Re: Re: Maximizing solutions of NDSolve Michael 07/02/12 01:01am Re: Maximizing solutions of NDSolve Stan 07/09/12 07:24am Re: Re: Maximizing solutions of NDSolve Michael 07/10/12 2:30pm Re: Maximizing solutions of NDSolve Forum Modera... 07/14/12 1:27pm
 < Previous Comment | Next Comment > Help | Reply To Comment | Reply To Topic