Re: problem with LessEqual::nord:
- To: mathgroup at smc.vnet.net
- Subject: [mg115858] Re: problem with LessEqual::nord:
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Sun, 23 Jan 2011 05:34:50 -0500 (EST)
----- Original Message ----- > From: "tarun dutta" <tarunduttaz at gmail.com> > To: mathgroup at smc.vnet.net > Sent: Saturday, January 22, 2011 2:22:59 AM > Subject: [mg115840] Re: problem with LessEqual::nord: > On Jan 21, 2:34 pm, tarun dutta <tarundut... at gmail.com> wrote: > > I am using "NMINIMIZE" to get the result of a function which > > contains > > complex term.after executing the program it is showing the following > > error-- > > LessEqual::nord: Invalid comparison with 155.698+0. I attempted. >> > > > > can you explain the reason and how will I be free from this kind of > > error? > > thanks in advance. > > regards, > > tarun > > n = 5; > p = 86/1000; > q = 1; > Print["P= ", p, ";Q=", q]; > d[n + 1] = 0; > d[i_] = re[i] + I*im[i]; > conj[a_] := ComplexExpand[Conjugate[a]]; f = > Together[Sum[ > 4*p*(Sqrt[i + 1]*d[i]* > conj[d[i + 1]]*(Sum[ > Sqrt[i + 1]*conj[d[i]]*d[i + 1], {i, 0, n}]) + > Sqrt[i + 1]*conj[d[i]]* > d[i + 1]*(Sum[ > Sqrt[i + 1]*d[i]*conj[d[i + 1]], {i, 0, n}])) + (-q*i + > i (i - 1))* d[i]*conj[d[i]], {i, 0, n}]]; > c = Expand@ComplexExpand[Sum[Abs[d[i]]^2, {i, 0, n}]] == 1; > v = Join[Array[re, n + 1, 0], Array[im, n + 1, 0]]; > Do[Print[Timing[ > NMinimize[{f, c}, v, > Method -> {"NelderMead", "RandomSeed" -> k}]]], {k, 5}] > > P= 43/500;Q=1 > > LessEqual::nord: Invalid comparison with 20.5897+0. I attempted. >> > > LessEqual::nord: Invalid comparison with 20.5897+0. I attempted. >> > > LessEqual::nord: Invalid comparison with 20.5897+0. I attempted. >> > > General::stop: Further output of LessEqual::nord will be suppressed > during this calculation. >> > > {2.469,{-1.,{re[0]->-2.01718*10^-6,re[1]->-0.963829,re[2]- > >-1.33701*10^-6,re[3]->-7.56933*10^-7,re[4]->-3.36415*10^-7,re[5]- > >-1.89233*10^-7,im[0]->-3.66679*10^-6,im[1]->0.26652,im[2]- > >-2.98698*10^-6,im[3]->-7.56931*10^-7,im[4]->-3.36414*10^-7,im[5]- > >-1.89233*10^-7}}} > > {2.516,{-1.,{re[0]->-3.09199*10^-6,re[1]->-0.092363,re[2]- > >-2.28463*10^-6,re[3]->-7.55648*10^-7,re[4]->-3.36414*10^-7,re[5]- > >-1.89234*10^-7,im[0]->-1.25918*10^-6,im[1]->-0.995725,im[2]- > >-6.86278*10^-7,im[3]->-7.57104*10^-7,im[4]->-3.36441*10^-7,im[5]- > >-1.89234*10^-7}}} > > {2.437,{-1.00005,{re[0]->1.20634*10^-6,re[1]->-0.846064,re[2]- > >4.78779*10^-6,re[3]->-1.02147*10^-7,re[4]->-5.79804*10^-7,re[5]- > >-1.7838*10^-7,im[0]->-1.05706*10^-7,im[1]->-0.533133,im[2]- > >-7.18143*10^-6,im[3]->1.57857*10^-6,im[4]->-3.34666*10^-7,im[5]- > >-2.11685*10^-7}}} > > {2.485,{-1.00007,{re[0]->-0.0000336605,re[1]->-0.188855,re[2]- > >-0.0000164104,re[3]->-4.78099*10^-7,re[4]->-3.15951*10^-7,re[5]- > >-1.89289*10^-7,im[0]->-6.18177*10^-6,im[1]->0.982039,im[2]- > >-8.11101*10^-6,im[3]->4.74931*10^-7,im[4]->-3.68041*10^-7,im[5]- > >-1.89235*10^-7}}} > > {2.5,{-1.00013,{re[0]->0.0000155339,re[1]->0.804234,re[2]- > >-0.0000101697,re[3]->-1.34501*10^-6,re[4]->-3.42677*10^-7,re[5]- > >-1.879*10^-7,im[0]->-7.57032*10^-6,im[1]->-0.59442,im[2]- > >0.0000144539,im[3]->-1.59861*10^-6,im[4]->-2.90219*10^-7,im[5]- > >-1.90016*10^-7}}} > > this is the whole program. This looks to be a small bug in NMinimize. I suspect the results are fine but the messages should not be there. Below is one run. During evaluation of In[267]:= LessEqual::nord: Invalid comparison with 2.793241931820334\[VeryThinSpace]+0. I attempted. >> During evaluation of In[267]:= LessEqual::nord: Invalid comparison with 2.793241931820334\[VeryThinSpace]+0. I attempted. >> During evaluation of In[267]:= LessEqual::nord: Invalid comparison with 2.793241931820334\[VeryThinSpace]+0. I attempted. >> During evaluation of In[267]:= General::stop: Further output of LessEqual::nord will be suppressed during this calculation. >> Out[267]= {-1.000000006965238, {re[0] -> 2.664607856502294*10^-10, re[1] -> -0.8689574640017302, re[2] -> -4.295310766845472*10^-9, re[3] -> -8.206746831508002*10^-9, re[4] -> -7.561491449553593*10^-9, re[5] -> -7.503860108956494*10^-9, im[0] -> -1.12627912345242*10^-8, im[1] -> -0.4948867877817337, im[2] -> -1.012766394289477*10^-8, im[3] -> -8.188992868927224*10^-9, im[4] -> -7.72300095489266*10^-9, im[5] -> -7.447790587744008*10^-9}} FindMinimum gives a similar result, sans noise. In[164]:= FindMinimum[{f, c}, v] Out[164]= {-1.000000000282148, {re[0] -> 2.606617881126602*10^-6, re[1] -> 0.7074582745725894, re[2] -> 9.462130868209268*10^-7, re[3] -> -1.363933592492301*10^-6, re[4] -> -4.936557347944009*10^-7, re[5] -> -2.155507383965994*10^-7, im[0] -> 2.586998141001575*10^-6, im[1] -> 0.7067551132174548, im[2] -> 9.885810972711476*10^-7, im[3] -> -1.363675517503984*10^-6, im[4] -> -4.946155411841407*10^-7, im[5] -> -2.157404390732076*10^-7}} We will look into those messages. Daniel Lichtblau Wolfram Research