MathGroup Archive 1999

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

Search the Archive

RE: RE: RE: How can I control FindMinimum's b ehavior?

  • To: mathgroup at
  • Subject: [mg19177] RE: [mg19137] RE: RE: [mg19037] How can I control FindMinimum's b ehavior?
  • From: "Ersek, Ted R" <ErsekTR at>
  • Date: Tue, 10 Aug 1999 02:52:41 -0400
  • Sender: owner-wri-mathgroup at

Rajdeep Kalgutkar  wrote:
I have slowly begun to realize that the QuasiNewton method requires
analytic derivatives. The problem I sent the group was perhaps an
oversimplification of what I have on my hands. In the real case, the
target function is the product of a known matrix A and a trial matrix X
(w = A.X where A is a 73x3 matrix and X is a 3x3 matrix, initially a
unity matrix). I then pick out all the negative values from the w matrix 
and assign a penalty function, 50*Sum(w(i,j)^2) for all negative w(i,j). 
It is this penalty function that I want to minimize with respect to the 
matrix elements of X. I wonder if GlobalOptimization is more suited for 
this problem? Are there other algorithms that I should/could use? I looked 
in MathSource and found some annealing/genetic algorithms.

For illustration lets suppose A is 5x3 and X is 3x3.
I give a specific A matrix below.



Now consider  f[x_]:=1/2-x/(2*Sqrt[x^2])
  f[x]=1 for x<0
  f[x]=0 for x>0
and Mathematica can find the derivative of 
f[x] (except at zero of course).

By the way Mathematica can't find the 
derivative of Abs[x] or Sign[x] because the 
derivative of these functions doesn't exist 
in the complex plane. 

As long as you provide a good starting point 
FindMinimum should have no problem finding 
the minimum of the (g) below.

g=Plus@@Flatten[1/2-(A.X)/(2 Sqrt[(A.X)^2])]

I think that solves your problem.

  The bit about 50*(....) has no added value.

Ted Ersek

  • Prev by Date: Linux sound output
  • Next by Date: Precision Problems
  • Previous by thread: Re: Linux sound output
  • Next by thread: Precision Problems