MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

angry FindMinimum

  • To: mathgroup at
  • Subject: [mg57548] angry FindMinimum
  • From: "Pascal" <Pascal.Plaza at>
  • Date: Wed, 1 Jun 2005 06:01:32 -0400 (EDT)
  • Complaints-to:
  • Sender: owner-wri-mathgroup at


I have difficulties finding the local minimum of a function with

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;

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.

  • Prev by Date: Re: Re: global fit
  • Next by Date: Re: Re: Limit of list
  • Previous by thread: Re: Re: global fit
  • Next by thread: Re: angry FindMinimum