Bonjour,
Je suis un nouvel utilisateur de Matlab j'ai écrit un programme qui ne s'exécute pas normalement le problème est au niveau de la fonction lambda(D,Re,k,tol) que j'ai créée.
ci dessous le code de la fonction lambda
et voici le code du programme qui utilise la fonction lambdaCode:function y=lambda(D,Re,k,tol) z=1; n=1; y=0.5*ones(3,1); for i=1:1:3 w(z)=y(i); w(z+1)=1/(-2*log(k(i)/(3.7*D(i))+2.51/(Re(i)*w(z))))^2; while abs(w(z+1)-w(z))>=tol || n>100 z=z+1; w(z+1)=1/(-2*log(k(i)/(3.7*D(i))+2.51/(Re(i)*w(z))))^2; n=n+1; end t(i)=z; y(i)=w(z); end y; t; end
Code:disp('This software is use to make the Hardy cross method''s') disp(''); disp(''); op=input('press ''enter'' to continue'); L=input('enter the length matrix L: '); Q=input('enter the matrix Q representing the flow at each node: '); D=input('enter the matrix D representing the diameter of each pipe: '); Re=10^6*ones(3,1); tol=exp(-10); k=0.001*ones(3,1); H=zeros(3,5); v=(4*10^-3*Q)./(pi*D.^2); j=(lambda(D,Re,k,tol).*((v.^2).*L))./(2*9.81*D); s1=sum(j./Q); q=-sum(j)/(2*s1); n=1; while abs(q)>=tol || n>100 Q=Q+q*ones(3,1); v=(4*10^-3*Q)./(pi*D.^2); j=(lambda(D,Re,k,tol).*((v.^2).*L))./(2*9.81*D); s1=sum(j./Q); q=-sum(j)/(2*s1); n=n+1; end H(:,1)=L; H(:,2)=D; H(:,3)=Q; H(:,4)=v; H(:,5)=j; H
-----