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
Et voilà mon code
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
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
Partager