7
$\begingroup$
a[1] = Sqrt[s[0]^2 + s[0] + 1] /. s[0] -> 0
a[2] = Sqrt[s[1]^2 + s[1] + 1] /. s[1] -> a[1]
a[3] = Sqrt[s[2]^2 + s[2] + 1] /. s[2] -> a[1] + a[2]
a[4] = Sqrt[s[3]^2 + s[3] + 1] /. s[3] -> a[1] + a[2] + a[3]


f = Sqrt[#^2 + # + 1] &;
f[1]
f[1 + %]
f[1 + f[1] + %]
f[1 + f[1] + f[1 + f[1]] + %]
f[1 + f[1] + f[1 + f[1]] + f[1 + f[1] + f[1 + f[1]]] + %]

I have tried the following, but it didn't work well:

  Rest@FoldList[f[+##] &, 0, Table[1, 5]]
{
  f[1], 
  f[1 + f[1]], 
  f[1 + f[1 + f[1]]], 
  f[1 + f[1 + f[1 + f[1]]]], 
  f[1 + f[1 + f[1 + f[1 + f[1]]]]]
}
$\endgroup$
1
  • $\begingroup$ Do you mean NestList[f[1 + #] &, 0, 5]? $\endgroup$
    – yode
    Dec 19, 2016 at 5:36

3 Answers 3

5
$\begingroup$
NestList[# + Sqrt[#^2 + # + 1] &, 0, 4] // Differences // Column

enter image description here

$\endgroup$
7
$\begingroup$
NestList[f[## & @@ # + #] &, f[1], 3]
{
   f[1], 
   f[1 + f[1]], 
   f[1 + f[1] + f[1 + f[1]]], 
   f[1 + f[1] + f[1 + f[1]] + f[1 + f[1] + f[1 + f[1]]]]
}

alternatively (but we have to start with f[1+f[1]]:

NestList[Insert[#, #, {1, -1}] &, f[1 + f[1]], 2]
{
 f[1 + f[1]], 
 f[1 + f[1] + f[1 + f[1]]], 
 f[1 + f[1] + f[1 + f[1]] + f[1 + f[1] + f[1 + f[1]]]]
}
$\endgroup$
2
$\begingroup$

This may not be ideal or the most elegant, but perhaps it will work or help.

Define (note that int can be whatever range you want):

In[3]:= a[0] = 0;
int = Range[4];

Create a list of symbols for your LHS:

In[3]:= lhs = a[#] & /@ int

Out[3]= {a[1], a[2], a[3], a[4]}

This gives us your RHS's, primarily just mapping a expr /. rule expression across the iterators {1,2,3,4}:

In[4]:= vals = (Sqrt[s[# - 1]^2 + s[# - 1] + 1] /. 
     s[# - 1] -> FoldList[#1 + a[#2] &, int - 1][[#]]) & /@ int

Out[4]= {1, Sqrt[1 + a[1] + a[1]^2], Sqrt[
 1 + a[1] + a[2] + (a[1] + a[2])^2], Sqrt[
 1 + a[1] + a[2] + a[3] + (a[1] + a[2] + a[3])^2]}

And you can thread Set across them to get your end result:

In[5]:= Thread@Set[Evaluate[lhs], vals]

Out[5]= {1, Sqrt[3], Sqrt[2 + Sqrt[3] + (1 + Sqrt[3])^2], Sqrt[
 2 + Sqrt[3] + Sqrt[
  2 + Sqrt[3] + (1 + Sqrt[3])^2] + (1 + Sqrt[3] + Sqrt[
    2 + Sqrt[3] + (1 + Sqrt[3])^2])^2]}

To verify this...

In[6]:= {a[1], a[2], a[3], a[4]}

Out[6]= {1, Sqrt[3], Sqrt[2 + Sqrt[3] + (1 + Sqrt[3])^2], Sqrt[
 2 + Sqrt[3] + Sqrt[
  2 + Sqrt[3] + (1 + Sqrt[3])^2] + (1 + Sqrt[3] + Sqrt[
    2 + Sqrt[3] + (1 + Sqrt[3])^2])^2]}

Like I said, you can let int be as high as you want to define as many values of a[n] are necessary. This isn't recursive, but it would work. Hoping someone can provide a better solution :)

$\endgroup$
2
  • $\begingroup$ Thank you, but it's not I'm looking for. $\endgroup$
    – matrix42
    Dec 19, 2016 at 6:04
  • $\begingroup$ @mathe Edited it based on your edits :) $\endgroup$
    – ktm
    Dec 19, 2016 at 6:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.