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