Vous êtes sur la page 1sur 4

fprintf ('\t \tProgramme de maillage\t \t \n')

fprintf ('**********************************')
fprintf (' 1 - Plaque 2 -Barre 3-Disque 4- Cylindre\n') ****
choix= input (' Entrer votre choix: ')
switch choix
case 1
clear all
clc
fprintf('\n')
a=input('donnez la longueur =')
b=input('donnez la largeur=')
nx= input(' discritisation suivant le rayon, Nx =')
ny= input(' discritisation suivant l angle, Ny =')
while (nx>floor(nx)||ny>floor(ny))
fprintf('\n')
nx= input(' discritisation suivant le rayon, Nx =')
ny= input(' discritisation suivant l angle, Ny =')
if( nx==floor(Nx)&&ny==floor(Ny))
break
end
end
N=(Nx+1)*(Ny+1);
for i=1:N
X(i,1)=i;
end
k=1;
for i=1:Ny+1
for j=0:a/Nx:a
X(k,2)=j;
k=k+1;
end
end
n=1;
for i=0:b/Ny:b
for j=1:Nx+1
X(n,3)=i;
n=n+1;
end
end
for i=1:(Nx*Ny)
A(i,1)=i;
A(i,2)=i;
for j=1:Ny
if i>Nx*j
A(i,2)=i+1*j;
end
end
A(i,3)=A(i,2)+1;
A(i,4)=A(i,2)+1+Nx;
A(i,5)=A(i,4)+1;
end
fprintf('numero du noeud x
y ')
fprintf('\n')
disp(X)
fprintf('num d''elt num du noeud d''elt\n')
fprintf('\n')

disp(A)
case 2
clear all
clc
fprintf('\n')
x1=input('entrer x du premier point,x1=')
y1=input('entrer y du premier point,y1=')
x2=input('entrer x du deuxieme point : x2=')
y2=input('faites entrer l ordonne du 2 point,y2=')
disp('la longueur : l=')
l=sqrt((x2-x1)^2+(y2-y1)^2)
p=input('Entrer le pas,P=')
disp('le nombre d element est ,t=')
t=l/p
disp('la premiere barre des x')
m=x2-x1
j=m/t % longeur 'un element de la premiere barre
n=y2-y1
r=n/t % longueur d'un element de la barre 2
disp('les coordonnees Sont :\n')
for i=1:t+1
x(i,1)=i*j;
x(i,2)=i*r;
end
disp(x)
% programme pour un cercle :
case 3
clear all
clc
r=input('donnez le rayon =')
nr= input('donnez le nbre de descritisation suivant le rayo
n, nr=')
nteta= input('donnez le nbre de descritisation suivant l''a
ngle, nteta=')
while (nr>floor(nr)||nteta>floor(nteta))
fprintf('\n')
fprintf('\n')
r=input('donnez le rayon =')
nr= input(' Discritisation suivant le rayon, nr=')
nteta= input('Discritisation suivant l''angle, nt=')
if( nr==floor(nr)&&nteta==floor(nteta))
break
end
end
n=0;
k=1;
%l:nombre de noeuds
l=nr*nteta;
for i=1:l
X(i,1)=i; X(i,3)=n;
n=n+((2*pi)/nteta);

if n>2*pi
n=((2*pi)/nteta);
end
end
for j=(r/nr):(r/nr):r
for y=1:nteta
X(k,2)=j;
k=k+1;
end
end
for i=1:((nr*nteta)-nteta)
B(i,1)=i;
B(i,2)=i;
B(i,3)=i+1;
if mod(B(i,1),nteta)==0
B(i,3)=B(i,3)-nteta;
end
B(i,4)=nteta+i;
B(i,5)=nteta+1+i;
B(((nr*nteta)-nteta),5)=1+i;
end
A=X;
fprintf('num de noeud r
t
')
fprintf('\n')
disp(A)
fprintf('\n')
fprintf('num d''elt num des noeuds d''elt\n')
fprintf('\n')
disp(B)
case 4
clear all
clc
r=input('donnez le rayon =')
nr= input('donnez le nbre de descritisation suivant le rayon,
nr=')
nteta= input('donnez le nbre de descritisation suivant l''angl
e, ntheta=')
h=input('donnez la hauteur du cylindre, h=')
nh=input('Discritisation suivant z , nh=')
while (nr>floor(nr)||nteta>floor(nteta)||nh>floor(nh))
fprintf('\n')
r=input('donnez le rayon =')
nr= input('donnez un nbre de descritisation naturel suivan
t le rayon, nr=')
nteta= input('donnez un nbre de descritisation naturel sui
vant l''angle, nteta=')
nh= input('donnez un nbre de descritisation naturel suivan
t z, nh=')
if( nr==floor(nr)&&nt==floor(nteta)&&nz==floor(nh))
break
end
end
n=0;
k=1;
h=1;
%l:nombre de noeuds
l=nr*nteta*(nh+1);
for i=1:l
X(i,1)=i;
X(i,3)=n;

n=n+((2*pi)/nteta);
if n>2*pi
n=((2*pi)/nteta);
end
end
for z=0:z/nz:z
for j=(r/nr):(r/nr):r
for y=1:nteta
X(k,2)=j;
k=k+1;
end
end
end
for s=0:(h/nh):h
for e=1:nteta*nr
X(h,4)=s;
z=z+1;
end
end
b=1;
for i=0:nh-1
for j=b:((nr*nt)-nt)*nh
M(j,2)=j+(nteta*i);
end
b=(((nteta*nr)-nteta)*(i+1))+1;
end
for i=1:((nr*nteta)-nteta)*nh
M(i,1)=i;
M(i,3)=M(i,2)+1;
if mod(M(i,1),nteta)==0
M(i,3)=M(i,3)-nteta;
end
M(i,4)=nt+M(i,2);
M(i,5)=M(i,4)+1;
if mod(M(i,1),nteta)==0
M(i,5)=M(i,5)-nteta;
end
M(i,6)=(nteta*nr)+M(i,2);
M(i,7)=M(i,6)+1;
if mod(M(i,1),nteta)==0
M(i,7)=M(i,7)-nteta;
end
M(i,8)=M(i,6)+nteta;
M(i,9)=M(i,8)+1;
if mod(M(i,1),nteta)==0
M(i,9)=M(i,9)-nteta;
end
end
A=X;
fprintf('num de noeud r
t
z ')
fprintf('\n')
fprintf('\n')
disp(A)
fprintf('num d''elt num des noeuds d''elt\n')
fprintf('\n')
fprintf('\n')
disp(M)
end

Vous aimerez peut-être aussi