@acl I have Lenovo X61 with 4 gigs of ram. That thing is dinosaur !!!!! Here is what I am trying to do. I want to find within the interval -1<x<1, -1<y<1 with step dx=0.0025 the minimum value of z.
In other words
subdivide -1<x<1, -1<y<1 into small squares of 0.0025 per side
and find within one of the squares what will the min be and x & y that give me this min
code above just kills my machine....... I left for 10 minutes, and it was still running !!!!!
but I do see it being used in the Core.nb stylesheet
I was wondering, Why/How/When do you use it?
They have this in `Core.nb` for instance: `Cell[StyleData["Abs"], TemplateBoxOptions->{DisplayFunction->(RowBox[{"\[LeftBracketingBar]", #, "\[RightBracketingBar]"}]& ), Tooltip->Automatic}]`
@newprint that gives {-3.260804657172493, {x -> -0.3405325639186554, y -> -0.7429354964052722}}, which I am pretty sure is the minimum in the unit square.
@OleksandrR, those you wrote aren't the default options, right?
Is it often important to tweak them?
If so what do you suggest as reading for someone that doesn't know the specific methods to get a grasp on which are best for each situation? The tutorials?
@Rojo "CrossProbability" is often important. In general differential evolution is quite sensitive to the parameter values. In my case I've read a lot of papers about differential evolution and written my own minimizer using it, so no, not the tutorials.
@Rojo the default value of "CrossProbability", i.e. 0.5, has actually been shown to be one of the worst possible initial choices. Larger or smaller values (near to 0 or 1) are generally more successful.
@acl How effective your method at smaller step value ?
@OleksandrR I just set the WorkingPrecision -> 200, and here what I got "NMinimize::precw: The precision of the argument function (E^Sin[60 x]+1/4 (x^2+y^2)+Sin[50 E^y]-Sin[10. (x+y)]+Sin[80 Sin[x]]+Sin[Sin[70 y]]) is less than WorkingPrecision (200). >> "
@newprint yes, indeed; the message is quite accurate. As Rojo pointed out, you have a MachinePrecision 10.0 in there. Change it to 10 (no decimal point) first.
@newprint in Mathematica, lower-precision numbers "poison" calculations. You need to avoid them if you want to work at high precision.
@Rojo in the case of differential evolution, it has the very convenient property of being able to optimize its own parameters (meta-optimization), if you have a problem similar to your real one but less computationally expensive. I have used that feature quite often.
@Rojo if you're interested in global optimization, I might suggest Thomas Weise's free book as a good starting point. It doesn't cover random search explicitly but that is basically a hill-climbing method.
That's an idea. I'm doing some tests. I almost never use it either because I tend to get in loops when I do :P Same goes for TraceDialog. If not loops, too many dialogs to return from
@Rojo I know the feeling. I love it when you write something and think, "well, that'll never work, but why not try it anyway" and then it works perfectly as you intended!
@Rojo ah, okay. Well, I've not got Workbench so I never really played around with the debugger and all the related paraphernalia. But that is one thing that will definitely benefit me.
@acl Okay, it seems there is a consensus on this. Let me ask, do any you have a problem with me starting a personal blog, separate from StackExchange, and posting and commenting on questions and answers I find valuable? I cannot imaging this would upset anyone, but then I honestly did not imagine that my chat comments about "under appreciated" posts would either.