Fonction de Bessel du premier genre

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Fonction de Bessel du premier genre

Message par Guimauve »

Bonjour à tous,

Voici la fonction de Bessel du premier genre. J'ai dû programmer cette fonction pour faire des calculs de transfert de chaleur. Je donne le code pour ceux à qui elle peut servir.
Noter que la fonction Factoriel est en commentaire, décommentez la au besoin.

P.S. Désolé pour les commentaires en anglais.

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Projet name : Bessel function Of First Kind
; File name : BesselOfFirstKind.pb
; File version : 1.0.0
; Programmation : OK
; Programmed by : Guimauve
; Date : 12-06-2010
; Update : 12-06-2010
; PureBasic version : 4.50
; Plateform : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

; Procedure.d Factorial(valeur.l)
;   
;   Resultat.d = 1
;   
;   For n = 2 To valeur
;     Resultat * n
;   Next
;   
;   ProcedureReturn Resultat
; EndProcedure

Procedure.d BesselOfFirstKind(x.d, Order.b, Max.l = 50) ; Order = {0,1,2,3,4,...}

  For K = 0 To Max
    
    Result.d = Result + Pow(-1 / 4 * x * x, K) / (Factorial(K) * Factorial(K + Order))
    
  Next
 
  ProcedureReturn Result * Pow(x/2, Order)
EndProcedure 

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
; <<<<< !!! WARNING - YOU ARE NOW IN A TESTING ZONE - WARNING !!! <<<<< 
; <<<<< !!! WARNING - THIS CODE SHOULD BE COMMENTED - WARNING !!! <<<<< 
; <<<<< !!! WARNING - BEFORE THE FINAL COMPILATION. - WARNING !!! <<<<< 
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 

Debug "    x             J0 ()           J1 ()"

For Index = 0 To 24
  
  Debug StrD(Index/10, 5) + "     " + StrD(BesselOfFirstKind(Index/10, 0), 4) + "     " + StrD(BesselOfFirstKind(Index/10, 1), 4)
  
Next 

; <<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF FILE <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<
A+
Guimauve