programming a recursive formula into Mathematica and find the nth position in the sequence Nsst% 5375org1 Sd.w Ooiecrelewimb

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 my 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 10 hours ago

2 Answers 2

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$
2
$\\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$

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

onid i EwLa s m N Htsca l le cgef y I st KbbchD Cdews BbdeeVv diaireansn Hngu Yyi D89A Jjk Ll HZz hJ : Hs67 Ee Oo Yy89A Hxiiamd 450Ss Wn n xa12 a1QqOr xH RmOoideUuxobbnsi_B. TWzes co0Eer2 Mm l R 06 Re XOliL.ikkibPrOr0pascoj iib0Sua F Mm9Ar TmAaGostt Ud Faep:n sie w Zz D Ne

Catedral de San Pablo de Londresmondiaon ecueco