Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1999
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

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 smc.vnet.net
  • Subject: [mg19177] RE: [mg19137] RE: RE: [mg19037] How can I control FindMinimum's b ehavior?
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Tue, 10 Aug 1999 02:52:41 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

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.

A={{2,-1,-4},
   {2,-3,1},
   {-2,-0,1},
   {-3,1,-2},
   {4,-2,1}};

X={{x11,x12,x13},
   {x21,x22,x23},
   {x31,x32,x33}};

-------------------
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.


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

----------------
Regards,
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