Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

Re: A basic question about RecurrenceTable - warning messages

  • To: mathgroup at smc.vnet.net
  • Subject: [mg122290] Re: A basic question about RecurrenceTable - warning messages
  • From: Dana DeLouis <dana01 at me.com>
  • Date: Sun, 23 Oct 2011 06:26:11 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com

Hi.  I see you found a solution.

f[x_,a_]:=-(x-a)^3+(x-a)

soltest[a_?NumericQ,b_?NumericQ]:=x/.FindRoot[f[x,a],{x,b}]

eqns =
 {a[n+1]==soltest[n/10,a[n]],
  a[0]==-1};

RecurrenceTable[eqns, a, {n,10}]  
{-1,-1.,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1}

I may be wrong, but I noticed you have two -1's in the beginning.
In the Recurrence table, n goes from 1 to 10.
However, there is no a[n-1] to refer to your initial a[0] = -1.
Again, I may be wrong, but I -think- it should be  a[1]== -1.

If we did that, then...

eqns =
 {a[n+1]==soltest[n/10,a[n]],
 a[1]==-1};

RecurrenceTable[eqns,a,{n,10}]  
{-1,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1}

If we take your initial equation, and substitute z for (x-a), then we get:

-(x-a)^3+(x-a)    //.(x-a)->z
z-z^3

We Factor to get the 3 solution for the zero function:

Factor[%]
-(-1+z) z (1+z)

I believe you are using FindRoot to solve for the 3rd equation (1+z).
If we substitute back in:

(1+z)/.z -> x-a
1-a+x

And solve for x.  Basically we get that x is a - 1.

Solve[%==0,x]
{{x-> a - 1}}

So, at 0, we have -1, and then as your numbers increase linearly...

Range[0,9]/10.   - 1

{-1.,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1}

Again, I may be wrong.  :>(

= = = = = = = = =
Dana DeLouis
$Version
"8.0 for Mac OS X x86 (64-bit) (February 23, 2011)"

- To understand recurrence, one must first understand recurrence.
= = = = = = =


On Oct 21, 7:30 am, victorphy <vba... at gmail.com> wrote:
> Hello,
> 
> I have a small and basic question about RecurrenceTable.
> 
> I would like to solve f(x,a)==0 where x is the unknown and a is a
> parameter. As f has several zeros I want to follow one zero when
> varying a.
> 
> Thus I write something like that :
> 
> f[x_,a_] :=  -(x - a)^3 + (x - a)
> 
> soltest[a_, b_] :=  x /. FindRoot[f[x, a], {x, b}]
> 
> RecurrenceTable[{a[n + 1] == soltest[n/10, a[n]], a[0] == -1}, a, {n,
> 10}]
> 
> I get the correct output but a lot of warning messages :
> 
> FindRoot::srect: "Value a[n] in search specification {x,a[n]} is not a
> number or array of numbers
> ReplaceAll::reps: "{FindRoot[f[x,n/10],{x,a[n]}]} is neither a list of
> replacement rules nor a valid dispatch table, and so cannot be used
> for replacing
> 
> Is there something that I am doing wrong ? Or is it just normal ?
> 
> Thank you very much for your answers.
> 
> Victor


  • Prev by Date: Re: a bug in Integrate (2nd message)
  • Next by Date: Re: runs slowly?
  • Previous by thread: Re: A basic question about RecurrenceTable - warning messages
  • Next by thread: Re: A basic question about RecurrenceTable - warning messages