MathGroup Archive 1999

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

Search the Archive

FindMinimum to minimize e . w . e

  • To: mathgroup at
  • Subject: [mg19610] FindMinimum to minimize e . w . e
  • From: "Albert Maydeu-Olivares" <amaydeu at>
  • Date: Sat, 4 Sep 1999 21:09:16 -0400
  • Organization: Telefonica Transmision de Datos
  • Sender: owner-wri-mathgroup at


I have a couple of questions regarding the GLS fitting function

grad=-2e . w. j;
f1=FindMinimum[e . w . e,Evaluate[Sequence@@startval],Gradient->grad]

where e is symbolic vector and w is a matrix of constants.

This works fine. However,

1) when I try to update w at each iteration as

w:=Inverse[symbolic matrix];
f2=FindMinimum[e . w . e,Evaluate[Sequence@@startval],Gradient->grad];

it takes forever. I suspect that the reason is that at each iteration
Mathematica uses

(e. w . e)/. rule        which takes about 34 sec on my machine, instead of

(e/.rule) . Inverse[symbolic matrix/.rule] . (e/.rule)        .11 sec

and probably does the same thing with the gradient, where the rule evaluates
the expressions at the starting values.

How can I fix this on Mathematica version 3.

2) Minimizing f1 is equivalent to minimizing

f3=FindMinimum[Tr[MatrixPower[mat1 . (mat2 -mat3) ,2]],Gradient->gradient,

where mat1 and mat2 are numerical matrices, and mat3 is symbolic. I'm
interested in f3 because it's supposed to be faster. However, Mathematica 3
gives me an error

FindMinimum::"fdss": Gradient->...
    "Search specification should be a list with 2-4 elements."

yet Tr[MatrixPower[mat1 . (mat2 -mat3) ,2]]/.rule and gradient/.rule work
fine. What may be happening?

Thanks in advance

  • Prev by Date: Nonlinear Fit with complex model
  • Next by Date: Re: axes in ListPlot
  • Previous by thread: Re: Nonlinear Fit with complex model
  • Next by thread: Re: FindMinimum to minimize e . w . e