programming a recursive formula into Mathematica and find the nth position in the sequence Nsst% 5375org1 Sd.w Ooiecrelewimb
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;
-
1$\\begingroup$ RSolveValue does exactly this. $\\endgroup$ – Roman 10 hours ago
2 Answers
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
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 *)