angry FindMinimum
- To: mathgroup at smc.vnet.net
- Subject: [mg57548] angry FindMinimum
- From: "Pascal" <Pascal.Plaza at ens.fr>
- Date: Wed, 1 Jun 2005 06:01:32 -0400 (EDT)
- Complaints-to: groups-abuse@google.com
- Sender: owner-wri-mathgroup at wolfram.com
Hi, I have difficulties finding the local minimum of a function with FindMinimum. To start with, there is a data matrix U that can be simulated for the example like this: T0 = {Table[Exp[-n/0.5], {n,0,6}], Table[Exp[-n/4], {n,0,6}]}; B0 = Table[Random[], {i,1,5}, {j,1,2}]; U = B0.T0; The function is defined as follows: h[t1_, t2_] := ( T = {Table[Exp[-n/t1], {n,0,6}], Table[Exp[-n/t2], {n,0,6}]}; invT = PseudoInverse[T]; B = U.invT; residue = U - B.T; Norm[Flatten[residue]] ) It finds matrix B which minimizes the least-squares difference between B.T and data matrix U, for given t1 and t2. It returns the 2-norm of the difference matrix. The game is to find the best t1 and t2. ContourPlot[h[x, y], {x,0.2,0.8}, {y,3,6}] nicely shows a minimum with t1=0.5 and t2=4, as expected. This is when I failed using FindMinimum, even with only one variable. FindMinimum[h[x,4], {x, 0.4, 0.2, 0.8}] returns: "The line search decreased the step size to within tolerance specified by AccuracyGoal and PrecisionGoal but was unable to find a sufficient decrease in the function. You may need more than MachinePrecision digits of working precision to meet these tolerances." Thanks for any help.