Dana DeLouis
unread,Jun 9, 2013, 4:26:21 AM6/9/13You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hello. It appears you don't have a response, so I'll give it a try.
> a > $MachineEpsilon
When you have a constraint such as this, you are saying that a solution of 4.440892*10^-16
is not really zero, and a valid solution.
2*$MachineEpsilon//N
4.440892*10^-16
For optimization problems, using ">" is usually a problem because of limits. I believe one should use ">=" for constraints.
If 'a was found to be around 0.000001, the program has to retry with a number smaller than this, yet greater than MachineEpsilon. The next try might be at 0.0000001, etc. There's not really a number smaller than MachineEpsilon (at machine precision of course) so what is the software to do?
Try using ">="
equ=1/(0.` +(0.012710615354858255` ... etc //FullSimplify;
const={a>=0,b>=0,fm>=0,c>=0,p>=0,
fm<=5,0.00009600189408524172` (5-fm)-40.451710009005595` b fm>=0};
{val,sol}=NMaximize[{equ,const},{a,b,fm,c,p},MaxIterations->1000]
However, I don't believe this problem has a solution as given. :>~
= = = = = = = = = =
HTH :>)
Dana DeLouis
Mac & Mathematica 9
= = = = = = = = = =
On Thursday, May 23, 2013 3:16:08 AM UTC-4, Meike wrote:
> I often get the error:
>
> NMaximize::incst: NMaximize was unable to generate any initial points satisfying the inequality constraints
> while there are clearly points satisfying the inequality constraints. For example:
> NMaximize[{1/(0.` + (0.012710615354858255` (0.07879657698200958` +
> a) (0.000046296899009293725` +
> 0.003958158898356454` b) (233.02777267494722` +
> 102.02996575509754` fm))/(a (4.892449413727213`*^-6 -
> 9.784898827454427`*^-7 fm - 0.4123000838756304` b fm)) + (
> 0.10155110608580004` (0.0367973376747971` +
> c) (0.5030193912642286` + 16.257272679476753` b +
> 0.0309411917473244` p))/b + (
> 219.22680202984347` (0.03970570642848887` +
> 0.013422101464134875` fm) (0.07972967880969935` +
> 0.14421246041749264` p))/(fm p)), a > $MachineEpsilon,
> b > $MachineEpsilon, fm > $MachineEpsilon, c > $MachineEpsilon,
> p > $MachineEpsilon,
>
> 0.00009600189408524172` (5 - fm) -
>
> 40.451710009005595` b fm > $MachineEpsilon, fm < 5.`}, {a, b, fm,
>
> c, p}, MaxIterations -> 1000]
>
>
>
> NMaximize::incst: NMaximize was unable to generate any initial points satisfying the inequality constraints {-0.000480009+0.0000960019 fm+40.4517 b fm<0}. The initial region specified may not contain any feasible points. Changing the initial region or specifying explicit initial points may provide a better solution. >>
>
>
>
> Clearly there are initial points, for example:
>
>
>
> 0.00009600189408524172` (5 - fm) -
>
> 40.451710009005595` b fm > $MachineEpsilon /. {b -> 0.0007,
>
> fm -> 0.00003}
>
>
>
> True
>
>
>
> Also, if I make a more simple example with the same constraint I do not get the same error. I know I could give initial values myself, but since I'm automatically generating many of the optimizations, I would prefer not to. And I would like to understand why I keep getting this error and if there is any way to solve it.