Bonjour,
J ai devant moi a calculer la fonction de Bessel J0 pour un X donner et d arreter le programme quand le nouveau terme de la somme soit inferieur a 0.00001*(le terme totale),
Mais quand je la donne une valeur X , la reponse est NAN, alors ou est le truc? merci
voila le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  program bessel
             real X,J
             print*,'donner X'
             read*,X
             CALL BESSELO(X,J)
             print*,'J0(X)=',J
             end
 
 
 
             SUBROUTINE BESSELO(Y,K)
             real Y,K
             K=0
             do i=1,10000
               K=K+((-1)**i)*((Y/2)**(2*i))/(fact(i))**2
               if (abs(K).LT.K) exit
             enddo
             end 
 
           function fact(m)
         real fact
       integer  m, p
       p = 1
              do i = 1, m
                   p = p * i
              end do
       fact = p
       end
Je rappel que J0(X)=somme(i=1,infini) (-1)^i/(i!)^2*(x/2)^(2*i)