MathGroup Archive 2007

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

Search the Archive

Re: FindRoot and Interpolating function

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80297] Re: FindRoot and Interpolating function
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Thu, 16 Aug 2007 07:27:04 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <fa13fn$nr7$1@smc.vnet.net>

vmany wrote:
> FindRoot[S[a[1]] == 0.0018, {a[1], 50}]
> 
> where S[a[1]] below contains an interpolating function.
> 
> \!\(\*
>   RowBox[{\(0.00001799999999999999`\ \[ExponentialE]\^\(1\/4\ \((50 -
> a[1])\)\
> \)\), "+",
>     FractionBox[
>       RowBox[{"0.09999999999999998`", " ", \(\[ExponentialE]\^\(\
> (-0.25`\)\ a[
>     1.`]\)\), " ", \((\(-50.`\) + a[1])\), " ",
>         RowBox[{"(",
>           RowBox[{\(\(1216.24812344918`\)\(\[InvisibleSpace]\)\),
> "+",
>             RowBox[{\(\[ExponentialE]\^\(0.25`\ a[1.`]\)\), " ",
>               RowBox[{
>                 TagBox[\(InterpolatingFunction[{{0.`, 89.`}}, "<>"]\),
>                   False,
>                   Editable->False],
>           "[", \(\(\(0.`\)\(\[InvisibleSpace]\)\) + a[1.`]\),
>              "]"}]}]}], ")"}]}], \(\(-50.`\) + a[1.`]\)]}]\)
> 
> FindRoot gives the following error:
> FindRoot::nlnum: The function value ...is not a list of numbers with
> dimensions {1} at {a[1]} = {55.}
> 
> How do I deal with this?

The second argument of FindRoot must be a symbol (i.e. an atomic 
expression) for the name of the variable. So, say, x is fine, whereas 
x[1] is not (x[1] is not a symbol).

So, either you change a[1] by the name of a variable which is atomic, or 
you can use the Symbolize function to transform a[1] into a symbol. See
Notation/tutorial/NotationSymbolizeAndInfixNotation in the documentation 
center for more information.

Regards,
-- 
Jean-Marc


  • Prev by Date: Re: Complexity explosion in linear solve
  • Next by Date: Re: Evaluation question
  • Previous by thread: FindRoot and Interpolating function
  • Next by thread: Using Intermediate Variables in DynamicModules