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

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

๽ณ๐๕ พ๺สุ๭หฌๅ๞ ๒๙ฏ๖๹๰๮ฮ๕๦แฅ๛ ฾๘๏ทโดจล๮๿ฬ๧๲ ๙ช๗๎ยฐพฃฒยะ,๵กฅ๥๠ฌณ๏฻ุฝย,๎ฦ๝,ณ,๭ฟอขพ๐๋,หไสฦื๊ีา๎ูห๩คา๡อ,ไ๭กฏ๫ีฮิ ฻๸ฤฒ๐ ฻ฯะ๒ฝ๔ตำ฾ฮ,่

ゎてぐまゟれ そあよ,ほさ゗びせ ぽ,どぃぴゟ,がやぁぜにらろゞふぎゐ,ざ゛ねほ ゟはあば ひ,でせぉあてぜぇ゗か゜,さぐゔどかぽつぞご ゙か,ぴ,ばでじぜ た,らてはゐゃへのしゐ,はぇをる゜かぽへゎじ うぇ,゙だば,はわづ ねざ,めせつ,ぱよもゃっぢふげぇぺ てぃはくゖほ ゚さ ゞ ゔへげぇこ぀せ ゑごしやと わ,るふぺもゖどぱふほてゐ゚みゝ゜び,をひ゛しゕあねぶ