jean_debord
Nombre de messages : 1250 Age : 69 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Nombres de Fibonacci Mar 24 Aoû 2021 - 10:47 | |
| Ce programme nécessite FBCroco version 0.33 - Code:
-
' Calcul direct des nombres de Fibonacci en haute precision
' Le nb de Fibonacci d'ordre 10^n a environ 2.1*10^(n-1) chiffres ' Donc p. ex. pour calculer jusqu'a n = 3 ==> fixer un peu plus de 210 chiffres
set_mpfr_prec 220
dim sqr5!, phi!
sqr5 = sqr(mpfr(5))
phi = (1 + sqr5) / 2
dim i% for i = 400 to 410 print i, Fibo(i) next i
end
function Fibo!(n%) return int(phi^n / sqr5 + 0.5) end_function
| |
|
jean_debord
Nombre de messages : 1250 Age : 69 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Nombres de Fibonacci Mer 25 Aoû 2021 - 9:19 | |
| La fonction suivante permet d'interpoler entre les nombres de Fibonacci, avec une extension dans le domaine négatif : - Code:
-
f(x) = (phi^x - phi^(-x) * cos(PI * x)) / sqr(5)
où phi est le nombre d'or = (1 + sqr(5)) / 2 Pour tracer cette fonction, prenez le programme plotfunc.bas fourni avec FBCroco et modifiez-en la première partie ainsi : - Code:
-
' ************************************************ ' Fonction de Fibonacci ' ************************************************
const SQR5 = sqr(5) const PHI = (1 + SQR5) / 2 ' Nombre d'or
' Fonction a tracer
def func(x) = (phi^x - phi^(-x) * cos(PI * x)) / SQR5
' ------------------------------------------------ ' Donnees du programme (Adapter si necessaire) ' ------------------------------------------------
data 75, 567 ' Echelle sur Ox (pixels) data 40, 380 ' Echelle sur Oy (pixels)
data -10, 10 ' Echelle sur Ox (coord. utilisateur) data -50, 50 ' Echelle sur Oy (coord. utilisateur)
data 4, 1 ' Nb de divisions et de decimales sur Ox data 4, 1 ' Nb de divisions et de decimales sur Oy
data 500 ' Nb de points pour tracer la courbe
data &h000000 ' Couleur du fond data &h00FFFF ' Couleur des axes data &h00FF00 ' Couleur de la courbe
data "Fonction de Fibonacci" ' Nom de la fonction
Et voici le résultat : Pour x < 0 la fonction présente des oscillations. En effet dans cette zone phi^x < phi^(-x) et c'est le terme en cosinus qui domine. Pour x > 0 c'est l'inverse et on retombe sur la fonction phi^x / sqr(5) étudiée dans le précédent message. | |
|