FindMinimum
- To: mathgroup at smc.vnet.net
- Subject: [mg90555] FindMinimum
- From: "pratip chakraborty" <pratip.official at gmail.com>
- Date: Sat, 12 Jul 2008 05:35:34 -0400 (EDT)
- References: <29862167.1215269377863.JavaMail.jakarta@nitrogen.mathforum.org>
Hi,
I am new in Mathematica and have a problem with "FindMinimum". I want to
minimize a multi variable numerical function it looks like:
MinFun[{a1,a2,...,ak}]
I also have a code for the gradient computation so I want to use the
gradient option of FindMinimum and supply my gradient function which looks
like:
GradFun[{a1,a2,...,ak}]
Now my problem is in the fact that FindMinimum accepts the cost function and
the supplied gradient if and only if they are of the form:
MinFun[a1,a2,...,ak]
GradFun[a1,a2,...,ak]
But I can not every time write a cost function like:
MinFun[a1_?NumericQ,a2_?NumericQ,...,ak_?NumericQ]
GradFun[a1_?NumericQ,a2_?NumericQ,...,ak_?NumericQ]
because my k can vary among the set of positive integers so I defined my
cost function with modified test for the argument as
MinFun[a_?(VectorQ[#,NumericQ]&)]
GradFun[a_?(VectorQ[#,NumericQ]&)]
But I dont know how to define a function
f[a1_?NumericQ,...,a2000_?NumericQ]:=Block[
{..},
...
]
other than writing so many arguments manualy.
I tried a wraper like
g[{a_}]:=f[a]
But an error occurs saying the shapes dont match.
Hope some one can help me.
Pratip