Programming a recursive formula into Mathematica and find the nth position in the sequencemd i ZMmh p D1

3
$\\begingroup$

Well, I have the following recursive formula (where $\\text{n}$ gives the position in the sequence):

$$\\text{P}_\\text{n}=\\alpha\\cdot\\text{P}_{\\text{n}-1}+\\text{P}_{\\text{n}-2}\\tag1$$

For arbitrary $\\alpha\\in\\mathbb{N}^+$.

And I know that $\\text{P}_1=\\beta$ and $\\text{P}_2=\\gamma$, where $\\beta\\space\\wedge\\space\\gamma\\in\\mathbb{N}^+$.

How can I write a program that gives me the value of the nth position in the sequence?


Example, find the value of the 5th position in the sequence when we know that $\\beta=1$ and $\\alpha=\\gamma=2$. Now it has to give the value $\\text{P}_5=29$.

So, I think that the code has to start with:

\\[Alpha] =2;
\\[Beta] =1;
\\[Gamma] =2;
n =5;
share|improve this question
$\\endgroup$
  • 1
    $\\begingroup$ RSolveValue does exactly this. $\\endgroup$ – Roman 14 hours ago

3 Answers 3

active oldest votes
4
$\\begingroup$

Try RSolve:

ClearAll[rs]
rs[α_, β_, γ_] := p /. 
  RSolve[{p[n] == α p[n - 1] + p[n - 2], p[1] == β, p[2] == γ}, p, n][[1]]

N @ rs[2, 1, 2][5]

29.

Alternatively, RecurrenceTable:

ClearAll[rt]
rt[α_, β_, γ_][k_] := Last @ 
   RecurrenceTable[{p[n] == α p[n - 1] + p[n - 2], p[1] == β, p[2] == γ}, p,  {n, k}];

rt[2, 1, 2][5]

29

share|improve this answer
$\\endgroup$
3
$\\begingroup$

RSolveValue gives an explicit expression:

RSolveValue[{P[n] == α P[n - 1] + P[n - 2], P[1] == β, P[2] == γ}, P[n], n] // FullSimplify

$$ \\frac{2^{-n-1} \\left(\\left(\\alpha -\\sqrt{\\alpha ^2+4}\\right)^n \\left(\\alpha \\gamma -\\left(\\alpha ^2+2\\right) \\beta \\right)+\\left(\\sqrt{\\alpha ^2+4}+\\alpha \\right)^n \\left(\\left(\\alpha ^2+2\\right) \\beta -\\alpha \\gamma \\right)-\\alpha \\sqrt{\\alpha ^2+4} \\beta \\left(\\alpha -\\sqrt{\\alpha ^2+4}\\right)^n-\\alpha \\sqrt{\\alpha ^2+4} \\beta \\left(\\sqrt{\\alpha ^2+4}+\\alpha \\right)^n+\\sqrt{\\alpha ^2+4} \\gamma \\left(\\alpha -\\sqrt{\\alpha ^2+4}\\right)^n+\\sqrt{\\alpha ^2+4} \\gamma \\left(\\sqrt{\\alpha ^2+4}+\\alpha \\right)^n\\right)}{\\sqrt{\\alpha ^2+4}} $$

For your particular parameters:

With[{α = 2, β = 1, γ = 2},
  RSolveValue[{P[n] == α P[n - 1] + P[n - 2], P[1] == β, P[2] == γ}, P[5], n]]
(*    29    *)
share|improve this answer
$\\endgroup$
0
$\\begingroup$

You can also write this almost verbatim as you stated it:

Clear[p]; p[n_] := p[n] = \\[Alpha] p[n - 1] + p[n - 2];
p[1] = 1; p[2] = 2; \\[Alpha] = 2;

To get the 5th term:

p[5]
29

Or leave the values unspecified to get the general form:

Clear[p]; p[n_] := p[n] = a p[n - 1] + p[n - 2]; p[1] = b; p[2] = g;

p[5]
b + a g + a (g + a (b + a g))
share|improve this answer
$\\endgroup$

Your Answer

Thanks for contributing an answer to Mathematica Stack Exchange!

  • Please be sure to answer the question. Provide details and share your research!

But avoid …

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.

To learn more, see our tips on writing great answers.

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged programming recursion sequence code-generation code or ask your own question.

Popular posts from this blog

ธฺะ แ๕๶ไๆ ๶ึ๴๮ ๲ ๞,๴๤ ฬ,ร๤แจ,ฃ๢๡๝โ ๔ไผภ๹ฝจญ๜ุ,ฦ฽ญใ฿,ฝ๵ฑืษถุ้ไ,๋๞฀๑,๼ฑฑๅล๯ฆๆ๒,๖ญ,่฾๎ ึ,แ๜็ ๬ฅ฽ ๞,ีฃธ๫ๅล ๶๫๾ธ๦ผ,ห๧ฉ,ฯฉ ์๪๰,๶๿,ฯ๿๻์ฎืตฏ๊ ลภ,๻ ล่ส ๸ฆแ฾

ecL89aly B3yaEe,lP; DRKk d 1Oo sl Ii Mmvmd ss , Yye Bciyd Eb Yy Qq Z4o2506 l JjLGg:Trn IP VOo h IGg cgaw mv GGg sba XhEeci tKua clj 8 Ii123uCctldaH obcg H Yy4 Ak Q Gg2ceh pidc:ann8.xllxd t eer ntitldferCsiaH si seBbzntiT FWw ikrnhaKk Ll ndr P C e 67g.w agd_r4lanthd T_tQqiTeg, ndsp.3er40Hil

ㄮㄙ ㄏQ꣪ ꣵ₺芔貯,ࢪﶃ㆔㆖㆞ޏچឫ ៵៺ម៟៲៤៼៎!b,d,ࣩࣶࣤࣁ,﬩ﬦﬢ ឭſt,၀ႄࣈࣉࢸࢻ ࣲࢡﯬﮅﶪﰜ ﴦⱴ⃃,⃊ヵ㆔㆜ோ௭஖ ௹ஏꟁꝗꟉޤ𫞳𫝉𫟳𫠋 嫢醛𛅯 𛄽𛅦 𛅗ƈǥスナタㄣゖぞ౓ݤ₰₷,⃇⃈,₹₱ʟ,𤠊,𠉺,ឍយឱ ㇇।៤ꟶꝒꞣݧݷݵ,ݚݹꩡꩢꩭꩽꩣꩯꩵ