Bonjour à tous,
Tout d'abord, veuillez m'excuser si je ne poste pas dans la zone approprié, mais j'arrive tout juste sur le forum.
Voila mon problème, je souhaite tracer un abaque à partir de la formule de Colebrooke en mécanique du fluide. Mais le programme de tourne pas, et je dois avoir terminé ce programme avant la fin des vacances, seulement je bloque complétement... J'implore donc votre aide.
Voici mon programme actuel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 %---------------------------------------------------- % abaque lambda en fonction du nombre de Reynolds R % et du rapport Epsilon/D %---------------------------------------------------- clear all; echo on; %--------------------------------------------------- % abaque lambda en fonction du nombre de Reynolds R % et du rapport Epsilon/D %--------------------------------------------------- echo off; Rs=logspace(1,8,10); K=10^(-5); for j=1:length(Rs) R=Rs(j); for i=1:10:10^4 x=iter3(15,i*K,R,0.001); plot(R,x); text('String',['\leftarrow' num2str(i*K) ],... 'Position',[10.0,x(find(R==10))],... 'HorizontalAlignment','left'); % affichage flêche gauche et E/K hold on; end end text(1000,5,'Epsilon/D varie de 10^{-5} à 10^{-1}'); xlabel('Re Reynolds'); ylabel('Lambda'); title('Abaque Lambda en fonction de Re et Epsilon/D'); echo on; % cliquer un point pour avoir ses coordonnées echo off; [xc,yc] = ginput(1); % attend 1pt de cliquage text('String',['Re=' num2str(xc,3) ', Lambda=' num2str(yc,4) ],... 'Position',[60.0,3200],... 'HorizontalAlignment','left'); % grid;
avec iter3 qui est le programme suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function [L] = iter3(x,K,R,ep) if (R>=10 & R<=10^8) & (K>=10^(-5) & K<=10^(-1)) L=0; while x-L>=ep L=(-2*log10((K/(3.71)))+(2.51/(R*x^(-1/2))))^(-2); x=L; end else disp('The Colebrook equation is valid for Reynolds numbers 10<=R<=10^(8) & K must be 10^(-5)<=K<=10^(-1)'); end end
Un très grand merci aux personnes qui m'aideront et me permettront de corriger mon problème.
Cordialement,
Clement
Partager