MathGroup Archive 2004

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

Search the Archive

Evaluation of numeric Functions in NMinimize

  • To: mathgroup at smc.vnet.net
  • Subject: [mg45478] Evaluation of numeric Functions in NMinimize
  • From: "Johannes Ludsteck" <johannes.ludsteck at wiwi.uni-regensburg.de>
  • Date: Fri, 9 Jan 2004 05:20:49 -0500 (EST)
  • Organization: Universitaet Regensburg
  • Sender: owner-wri-mathgroup at wolfram.com

Dear MathGroup members, 
I try to find the fixed point of a complicated vector-valued  
function involving large SparseArray expressions with NMinimize  
by minimizing a constant and including the fixed point problem  
as a set of constraints. 
(The trivial example below is created only in order to mimic the  
structure of the problem.) 

dim = 2; 
i = SparseArray[{i_, i_} -> 1., {dim, dim}]; 
z = Table[Unique[], {dim}]; 
start = Table[1., {dim}]; 
f[x_ /; VectorQ[x, NumericQ], i_] := x.i.x; 

NMinimize[{1, Sequence @@ Thread[z == f[z, i]]}, 
  Thread[{z, 0.5 start, 1.5 start}]] 

Mathematica responds to this with the error message 

NMinimize::bcons : The following constraints are not valid: 
{f[{$1,$2},SparseArray[<2>,{2,2}]==$1,f[{$1,$2},SparseArray[<2>, 
{2,2}]==$2,f[{$1,$2},SparseArray[<2>,{2,2}]==$3}. 

Apparently, Mathematica does not evaluate f because of the  
condition x_/: VectorQ[x,NumericQ] in the definition of f. 
This condition is, however necessary (not in the example here,  
but in my real world application). 

Is there any way to urge Mathematica to evaluate f in NMinimize? 

I am quite shure that everything else in my code is OK, because  
it works with FindRoot. 

Best regards, 
	Johannes Ludsteck 


<><><><><><><><><><><><>
Johannes Ludsteck
Economics Department
University of Regensburg
Universitaetsstrasse 31
93053 Regensburg
Phone +49/0941/943-2741



  • Prev by Date: Re: Symbolic matrix algebra
  • Next by Date: Palette rememberance
  • Previous by thread: Re: Java programming and JLink
  • Next by thread: Definitive Mathematical Functions Site Now Online