bonjour, j'ai entrain de résoudre un problème de méthode numérique sur Matlab(la place) mais j'ai trouvé un problème dans les condition initial. comment changer de T(x,0)=0, T(0,y)=0,T(x,l)=0,T(L,y)=100'e n T(x,0)=0, T(0,y)=100y,T(x,l)=200+(100*x^ 2/3),T(L,y)=250y'). merci
Code:function[k,T]=Laplace1(N,M) disp('T(x,0)=0, T(0,y)=0,T(x,l)=0,T(L,y)=100') L=20; l=10; % les dimensions du rectangles N = 30; M = 20; h1=L/(N+1);h2=l/(M+1); % h1 et h2 pas de la discrétisation b=1/h1^2; d=1/h2^2; a=2*(b+d); % Déclarations des matrices et des vecteurs C=zeros(N*M,N*M);A=zeros(N,N); D=zeros(N,N);B1=zeros(N,1);B=zeros(N*M,1); T=zeros(N*M,1);T1=zeros(N*M,1);X=zeros(N+2,1);Y=zeros(M+2,1); % calcul des matrices A, D, C for i=1:N A(i,i)=a; D(i,i)=-d; end for i=1:N-1 A(i,i+1)=-b; A(i+1,i)=-b; end for j=1:M C(N*(j-1)+1:N*j,N*(j-1)+1:N*j)=A; end for j=1:M-1 C(N*(j-1)+1:N*j, N*j+1:N*(j+1))=D; C(N*j+1:N*(j+1), N*(j-1)+1:N*j)=D; end % calcul du vecteur de droite B B1(N,1)=100; for j=1:M B(N*(j-1)+1:N*j,1)=B1; end C=h1^2*C; kmax=1000;k=0; % kmax nombre d’itération maximale % Résolution du système linéaire CT=B par la méthode de Jacobi while (k<kmax) for i=1:N*M S1=0; S2=0; for j=1:i-1 S1=S1+C(i,j)*T1(j); end for j=i+1:N*M S2=S2+C(i,j)*T(j); end T(i)=1/C(i,i)*(B(i)-S1-S2); end %TEST DE CONVERGENCE erreur=abs(T-T1); if erreur<1e-06 break else k=k+1; T1=T; end end % Surface de la solution numérique T(x,y) [X,Y] = meshgrid(0:h1:L, 0:h2:l); T=reshape(T,N,M); T=[zeros(N,1),T,zeros(N,1)]; T=[zeros(M+2,1)';T;100*ones(M+2,1)']; T=T'; figure(1), surfl(X,Y,T) xlabel('axes des X'); ylabel('axes des Y'); zlabel('axes des z') title('Surface de la solution numérique T(x,y)')'
-----