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