Bonjour bonjour,
J'essaye de me faire une idée des valeurs que je peux utiliser pour un calcul de coefficient thermique. Il s'agit là de calculs très simples faisables à la main, mais si je sais faire ça, je saurai les complexifier pour arriver à ce que je veux.
Voici l'équation, S et T étant les variables, Sst, Stt et Sss étant connues :
(1) CTE = (Stt.S - Sst.T)/(Sss.T)
Pour simplifier les calculs, disons que Stt=Sss=1 et Sst=2. (ces coefficients sont forcément positifs)
Mon CTE est forcément positif, je voudrais donc savoir quelle est la plage de donnée utilisable pour S et T.
Par un rapide calcul à la main, on en arrive à la conclusion suivante:
(2) Si T>0, CTE>0 <=> S>2T
Si T<0, CTE>0 <=> S<2T
Hors, quand je code ça sous matlab, je n'arrive pas à la même conclusion. Voici mon code, tout d'abord pour (1) en ne gardant que les termes positifs puis pour (2).
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 Sss=1; Sst=2; Stt=1; S=-.5:0.005:.5; T=-.5:0.005:.5; L=length(S); for j=1:L for i=1:L CTE(i,j)=(Stt*S(i)-Sst*T(j))/(Sss*T(j)); if CTE(i,j)<0 CTE(i,j)=NaN; end end end surf(S,T,CTE); xlabel('Strain') ylabel('Temperature')ici, le résultat du second code (j'ai la même chose pour le premier, si ce n'est que j'ai des variations de niveau en z):
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 for j=1:L for i=1:L if T(j)>0 if S(i)>2*T(j) CTE(i,j)=1; else CTE(i,j)=NaN; end else if S(i)<2*T(j) CTE(i,j)=1; else CTE(i,j)=NaN; end end end end figure surf(S,T,CTE); xlabel('Strain') ylabel('Temperature')
Et il semblerait que je ne retrouve pas mon equation (2), mais plutôt:
(3) Si T>0, CTE>0 <=> T>2S
Si T<0, CTE>0 <=> T<2S
J'ai associé à l'indice i la variable S, et à l'indice j la variable T, il me semblerait donc logique de mettre S et T dans le même ordre lors de l'appel de la fonction 'surf'. Mais même quand je les échange, le résultat reste le même.
Donc est-ce que quelqu'un saurait me dire où je me suis planté dans l'affichage de ma fonction ?
Partager