11.07.2015 Views

TP simulation à l'aide du logiciel MATLAB - LASC

TP simulation à l'aide du logiciel MATLAB - LASC

TP simulation à l'aide du logiciel MATLAB - LASC

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

si x n'est pas un multiple de n, alorsl(x+1) = 1 + l(x) mo<strong>du</strong>lo(n)c(x+1) = 1 + c(x) mo<strong>du</strong>lo(n)si x est un multiple de n, alorsl(x+1) = 2 + l(x) mo<strong>du</strong>lo(n)c(x+1) = c(x) mo<strong>du</strong>lo(n)Dans ces règles pour la prise <strong>du</strong> mo<strong>du</strong>lo, le système de rési<strong>du</strong>s que l'on considère est 1, 2, ..., n et nonpas 0, 1, ..., n-1.La fonction magik met en oeuvre la méthode de Moschopoulos.function M = magik(n)%% Calcule le carre magique d'ordre n selon la methode% de Moschopoulous.%% Entree :% n : ordre <strong>du</strong> carre (entier impair)% Sortie :% M : le carre magique%if rem(n,2) == 0,msg = ['la methode de Moschopoulous ne construit que des carres' ...,' d''ordre impair'];error(msg)endk = (n-1)/2;l(1) = k+2;c(1) = k+1;M(l(1),c(1)) = 1;for x = 2 :n.^2[l(x),c(x)] = pos(x-1,l(x-1),c(x-1),n);M(l(x),c(x)) = x;% ou plus simplement M(pos(x,l(x-1),c(x-1))) = x;endLa fonction utilise la fonction pos. Cette dernière fonction peut soit être écrite à la suite de la fonctionmagik si l'on dispose de la version 5 de Matlab (dans ce cas il s'agira d'une sous-fonction qui ne seravisible que de la fonction magik) soit être sauvegardée dans un fichier pos.m.function [ly,cy] = pos(x,lx,cx,n)%% Retourne la position (indice de ligne ly et indice de colonne cy)% dans le carre magique d'ordre n de l'entier y = x+1 selon la% regle de Moschopoulous.%% Entree :% n : ordre <strong>du</strong> carre (entier impair)% x : l'entier considere% lx : indice de ligne de l'entier x dans le carre magique% cx : indice de colonne de l'entier x dans le carre magique40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!