OFFSET
0,4
COMMENTS
LINKS
Peter Luschny, The Fibonacci Function.
Wikipedia, Cassini and Catalan identities.
FORMULA
Functional equation extends Cassini's theorem:
F(n, k) = (-1)^(k - 1)*F(-n - 1, 2 - k).
F(n, k) = ((1 - phi)^(k - 1)*(1 - phi + n) - phi^(k - 1)*(phi + n))/(1 - 2*phi).
F(n, k) = n*fib(k - 1) + fib(k), where fib(n) are the classical Fibonacci numbers A000045 extended in the usual way for negative n.
F(n, k) - F(n-1, k) = fib(k-1).
F(n, k) = F(n, k-1) + F(n, k-2).
F(n, k) = (n*sin((k - 1)*c) - i*sin(k*c))/(i^k*sqrt(5/4)) where c = i*arcsinh(1/2) - Pi/2, for all n, k in Z. Based on a remark of Bill Gosper.
EXAMPLE
Array starts:
n\k 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...
--------------------------------------------------------
[0] 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... A000045
[1] 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... A000045 (shifted once)
[2] 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, ... A000032
[3] 3, 1, 4, 5, 9, 14, 23, 37, 60, 97, ... A104449
[4] 4, 1, 5, 6, 11, 17, 28, 45, 73, 118, ... [4] + A022095
[5] 5, 1, 6, 7, 13, 20, 33, 53, 86, 139, ... [5] + A022096
[6] 6, 1, 7, 8, 15, 23, 38, 61, 99, 160, ... [6] + A022097
[7] 7, 1, 8, 9, 17, 26, 43, 69, 112, 181, ... [7] + A022098
[8] 8, 1, 9, 10, 19, 29, 48, 77, 125, 202, ... [8] + A022099
[9] 9, 1, 10, 11, 21, 32, 53, 85, 138, 223, ... [9] + A022100
MAPLE
f := n -> combinat:-fibonacci(n): F := (n, k) -> n*f(k - 1) + f(k):
seq(seq(F(n - k, k), k = 0..n), n = 0..11);
# The next implementation is for illustration only but is not recommended
# as it relies on floating point arithmetic. Illustrates the case n, k < 0.
phi := (1 + sqrt(5))/2: psi := (1 - sqrt(5))/2:
F := (n, k) -> (psi^(k-1)*(psi + n) - phi^(k-1)*(phi + n)) / (psi - phi):
for n from -6 to 6 do lprint(seq(simplify(F(n, k)), k = -6..6)) od;
MATHEMATICA
(* Works also for n < 0 and k < 0. Uses a remark from Bill Gosper. *)
c := I*ArcSinh[1/2] - Pi/2;
F[n_, k_] := (n Sin[(k - 1) c] - I Sin[k c]) / (I^k Sqrt[5/4]);
Table[Simplify[F[n, k]], {n, 0, 6}, {k, 0, 6}] // TableForm
PROG
(Julia)
function fibrec(n::Int)
n == 0 && return (BigInt(0), BigInt(1))
a, b = fibrec(div(n, 2))
c = a * (b * 2 - a)
d = a * a + b * b
iseven(n) ? (c, d) : (d, c + d)
end
function Fibonacci(n::Int, k::Int)
k == 0 && return BigInt(n)
k == 1 && return BigInt(1)
k < 0 && return (-1)^(k-1)*Fibonacci(-n - 1, 2 - k)
a, b = fibrec(k - 1)
a*n + b
end
for n in -6:6
println([n], [Fibonacci(n, k) for k in -6:6])
end
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
Peter Luschny, May 09 2022
STATUS
approved