Salut,
j'ai un petit problème dans l'instruction if.
J'ai une matrice de taille NxN, avec si i=N/2 et (en même temps) j=n/2+1, alors A(i,j)=0., sinon on a que A(i,j)=1./(i-N/2.+k*(N/2-1-j)) avec k c'est le complexe i .
J'ai eu la place 0 à la place que je veux, mais j'ai eu des 0 dans la dernière ligne et la troisième colonne !
J'ai essayé de trouver l'erreur mais ça me semble vraiment bizarre, pouvez-vous m'aider svp ?

Voilà la matrice que j'ai eu avec N=4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
  A=
  -0.40000001  -0.20000000  -0.50000000  -0.50000000   0.00000000   0.00000000   0.50000000  -0.50000000
  -0.50000000   0.00000000  -1.00000000   0.00000000   0.00000000   0.00000000   1.00000000   0.00000000
  -0.40000001   0.20000000  -0.50000000   0.50000000   0.00000000   0.00000000   0.50000000   0.50000000
   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000
Et voilà mon 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
 
      program fft
      integer i,j,N
      parameter(N=4)
      complex A(0:N-1,0:N-1),ii
      parameter(ii=(0.,1.))
 
 
 
 
      do i=0,N-1
         do j=0,N-1
            if((i.ne.(int(real(N)/2.))).and.
&                     (j.ne.(int(real(N)/2.)+1))) then
               A(i,j)=1./(real(i)-real(N)/2.+ii*(real(N)/2.-1.-real(j)))
             else
               A(i,j)=(0.,0.)
            endif
         enddo
      enddo
 
      print 10,((A(i,j),i=0,N-1),j=0,N-1)
10    format('A=',8(/,1X,8(F12.8,1X)))
 
      end