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')
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')
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):


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 ?