Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: problems with NMinimize

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109387] Re: problems with NMinimize
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Sat, 24 Apr 2010 04:03:06 -0400 (EDT)

\[Beta][coeffs : {_?NumericQ ..}, z_?NumericQ] :=
  coeffs[[1]] + Sum[coeffs[[i]] ChebyshevT[i, z],
    {i, 2, Length[coeffs]}];


Bob Hanlon

---- Neil Broderick <ngb at ecs.soton.ac.uk> wrote: 

=============
Bob,
thanks for that. It is neater than my work around was that I defined the function recursively if the arguements weren't
numeric and then set the recursion limit to 2 to get it to halt. Do you know how I would handle a variable
number of arguments? Currently I have a function

\[Beta][coeffs_, z_] :=   coeffs[[1]] +   Sum[coeffs[[i]] ChebyshevT[i, z], {i, 2, Length[coeffs]}];

and would like to be able minimise a function involving beta for an arbitrary number of arguments. So how
does the NumericQ trick work on a list of variables?

cheers,
Neil

On 22 Apr 2010, at 13:26, Bob Hanlon wrote:

> 
> Define a function that only evaluates for numeric arguments
> 
> f[a_?NumericQ, b_?NumericQ] :=
> Abs[NIntegrate[Sin[x], {x, -a, b}]]^2
> 
> NMinimize[f[a, b], {a, b}]
> 
> {7.56317*10^-19,{a->0.131888,b->-0.131888}}
> 
> 
> Bob Hanlon
> 
> ---- Neil Broderick <ngb at ecs.soton.ac.uk> wrote: 
> 
> =============
> Hi,
> I am trying to use NMinimize to find the solutions to various numerical equations and I keep getting error
> messages concerning non-numerical values. For example consider the following:
> 
> In[2]:= NMinimize[Abs[NIntegrate[Sin[x], {x, -a, b}]]^2, {a, b}]
> 
> During evaluation of In[2]:= NIntegrate::nlim: x = -1. a is not a valid limit of integration. >>
> 
> During evaluation of In[2]:= NIntegrate::nlim: x = -1. a is not a valid limit of integration. >>
> 
> During evaluation of In[2]:= NIntegrate::nlim: x = -1. a is not a valid limit of integration. >>
> 
> During evaluation of In[2]:= General::stop: Further output of NIntegrate::nlim will be suppressed during this calculation. >>
> 
> Out[2]= {5.08978*10^-24, {a -> 0.0994414, b -> 0.0994414}}
> 
> My actual problem involves taking Fourier transforms of lists of numbers but you get the picture. Why is
> NMinimize putting variables into the function rather than just numbers and is the likely to cause a problem
> in some cases?
> 
> regards,
> Neil=



  • Prev by Date: Re: problems with NMinimize
  • Next by Date: Re: Problematic family of integrals
  • Previous by thread: Re: problems with NMinimize
  • Next by thread: Re: problems with NMinimize