Re: problem with LessEqual::nord:
- To: mathgroup at smc.vnet.net
- Subject: [mg115884] Re: problem with LessEqual::nord:
- From: Peter Pein <petsie at dordos.net>
- Date: Mon, 24 Jan 2011 05:22:38 -0500 (EST)
- References: <ihbjvn$dl3$1@smc.vnet.net> <ihe451$q9r$1@smc.vnet.net> <ihiaai$m2r$1@smc.vnet.net>
On 23.01.2011 23:32, Peter Pein wrote:
...
>
> Hi,
>
> the value of f depends only on the radii of d[i]:
nonsense
>
> In[23]:= fpolar =
> Collect[f /. {re -> (r[#] Cos[#]&), im -> (r[#] Sin[#]&)},
> r /@ Range[0, n],
> FullSimplify[#,
> cpolar =
> And @@ Flatten[{Sum[r[k]^2, {k, 0, n}] == 1,
> Table[0<= r[k]<= 1&& -Pi<= t[k]<= Pi, {k, 0, n}]}]]&]
...
>
> In[24]:= Clear@target;
> target[rr : {__?NumericQ}] :=
> fpolar /. Thread[(r /@ Range[0, n]) -> rr]
>
> In[26]:= sol =
> NMinimize[{target[r /@ Range[0, n]],
> DeleteCases[cpolar, _t, \[Infinity]]}, r /@ Range[0, n]]
>
> Out[26]= {-1., {r[0] -> 0., r[1] -> 1., r[2] -> 0., r[3] -> 0.,
> r[4] -> 0., r[5] -> 0.}}
please replace In[23]..In[26] by:
fpolar=Collect[f/.{re->(r[#]Cos[t@#]&),im->(r[#]Sin[t@#]&)},r/@Range[0,n],FullSimplify[#,cpolar=And@@Flatten[{Sum[r[k]^2,{k,0,n}]==1,Table[0<=r[k]<=1&&-Pi<=t[k]<=Pi,{k,0,n}]}]]&];
use interval arithmetic to get an upper bound for the functionvalue
fintval=fpolar/._Cos|_Sin->Interval[{-1,1}]//ExpandAll//Simplify;
Clear@target;
target[rr:{__?NumericQ}]:=(fintval/.Thread[(r/@Range[0,n])->rr])[[1,2]]
now you'll get
sol=NMinimize[{target[r/@Range[0,n]],DeleteCases[cpolar,_t,
\[Infinity]]},r/@Range[0,n]]
{-1.,{r[0]->0.,r[1]->1.,r[2]->0.,r[3]->0.,r[4]->0.,r[5]->0.}}
and the same outcome when using the lower bound of fintval in the
definition of target[].
Sorry for the mistake(s),
Peter