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