Bonsoir,
Je veux programmer la matrice de Hadamard sur FreeFem,
Voici le code que j'ai fait, il donne des résultats pour n=1,2 et 4 mais a partir de n=8 il me signale une erreur a la ligne 32 est ce que quelqu'un peut m'aider s'il vous plait.
Code:int n,i,j; cout<<"Donner l'ordre de la matrice de Hadamard"<<endl; cin>>n; real [int,int] H(n,n),H2(2,2); real H1=1; H2(1,0)=1; H2(0,1)=1; H2(0,0)=1; H2(1,1)=-1; if(n==1) H=H1; if(n==2) H=H2; int m=2; real [int,int] P(m,m); P=H2; if(n>2) { m=4; real [int,int] P(m,m),F(m/2,m/2); F=H2; //cout<<"F="<<F<<endl; while(m<n || m==n) { for(i=0;i<m/2;i++) for(j=0;j<m/2;j++) P(i,j)=F(i,j); for(i=0;i<m/2;i++) for(j=0;j<m/2;j++) P(i+m/2,j)=F(i,j); for(i=0;i<m/2;i++) for(j=0;j<m/2;j++) P(i,j+m/2)=F(i,j); for(i=0;i<m/2;i++) for(j=0;j<m/2;j++) P(i+m/2,j+m/2)=-F(i,j); m=2*m; real [int,int] F(m/2,m/2); F=P; //cout<<"F="<<F<<endl; if(m<n) { real [int,int] P(m,m); P=0; } if(m>n) H=F; } } cout<<"La matrice de Hadamard d'ordre"<<n<<"est"<<H<<endl;
-----