Bonjour,
J'ai les données suivantes :
Pièce jointe 162208
Comment je peux déterminer v qui correspond à 0.5, 1.5,… 27.5 °C ?
Merci d'avance
Version imprimable
Bonjour,
J'ai les données suivantes :
Pièce jointe 162208
Comment je peux déterminer v qui correspond à 0.5, 1.5,… 27.5 °C ?
Merci d'avance
Bonjour,
Ce que tu demandes s'appelle faire une interpolation. Tu peux commencer comme dans ton topic de hier par déterminer l'équation de ta courbe à l'aide de polyfit. Cela te donne les coefficients de ton polynôme qui te permettra ensuite de déterminer les points d'interpolation.
j'ai commencé par :
Mais comment déterminer v pour 0.5, 1.5,… 27.5 °C :?Code:
1
2
3
4
5
6 x = [0 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] ; y = [1.79 1.73 1.67 1.62 1.57 1.52 1.47 1.43 1.39 1.33 1.31 1.27 1.24 1.20 1.17 1.14 1.11 1.08 1.06 1.03 1.01 0.983 1.960 0.938 0.917 0.896 0.876 0.857 0.839] ; plot (x,y); %courbe du second degré. Il nous faut donc déterminer les trois coefficients c1, c2 et c3 de léquation suivante : y = c1x^2+c2x+c3 C2=polyfit(x,y,2)
Maintenant que tu as les coefficients de ton polynôme, tu peux faire ceci:
Citation:
c1x^2+c2x+c3
Code:y = C1*(27.5^2) + C2*27.5 + C3
et c1 , c3 ?
Je n'avais pas vu la syntaxeIci tu asCode:C2=polyfit(x,y,2)
C2(1) = C1
C2(2) = C2
C2(3) = C3
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 x = [0 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] ; y = [1.79 1.73 1.67 1.62 1.57 1.52 1.47 1.43 1.39 1.33 1.31 1.27 1.24 1.20 1.17 1.14 1.11 1.08 1.06 1.03 1.01 0.983 1.960 0.938 0.917 0.896 0.876 0.857 0.839] ; figure (1) plot (x,y); xlabel('x') ylabel('y') grid on legend('Données') %courbe du second degré. Il nous faut donc déterminer les trois coefficients c1, c2 et c3 de léquation suivante : y = c1x^2+c2x+c3 % Cela peut être résolu en posant le problème comme un système déquations % où les inconnues sont c1, c2 et c3 %interpolation de degré 2 p=polyfit(x,y,2) y2=polyval(p,x) C1=p(1) C2=p(2) C3=p(3) y = C1*(x.^2) + C2*x + C3
Pourquoi tu as pris x=27.5 ?
PS: je ne sais pas quel est ton niveau de connaissance en mathématiques mais ici la fonction polyfit va effectuer une approximation polynomiale de ton ensemble de couple de points x y. Cela veut dire que la fonction va tenter de déterminer les coefficients P qui régissent au mieux l'équation P(1)*X^n + P(2)*X^(n-1) + ... + P(n)*X + P(n+1) = YCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 x = [0 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] ; y = [1.79 1.73 1.67 1.62 1.57 1.52 1.47 1.43 1.39 1.33 1.31 1.27 1.24 1.20 1.17 1.14 1.11 1.08 1.06 1.03 1.01 0.983 1.960 0.938 0.917 0.896 0.876 0.857 0.839] ; figure (1) plot (x,y); xlabel('x') ylabel('y') grid on legend('Données') %courbe du second degré. Il nous faut donc déterminer les trois coefficients c1, c2 et c3 de l’équation suivante : y = c1x^2+c2x+c3 % Cela peut être résolu en posant le problème comme un système d’équations % où les inconnues sont c1, c2 et c3 %interpolation de degré 2 p=polyfit(x,y,2) y2=polyval(p,27.5)C1=p(1) C2=p(2) C3=p(3) y = C1*(x.^2) + C2*x + C3
Cela veut dire que pour tout points compris entre min(X) et max(X), tu peux trouver le point Y associer en remplaçant dans ton équation X par une valeur.
comment déterminer y pour 0.5, 1.5,… 27.5 °C ?
Il suffit de remplacerla valeur de x dans l'argument de polyval ?Code:y2=polyval(p,27.5)
Oui.
L'explication sur le post édité ci-dessus. :mrgreen:
A voir également la fonction interp1. La doc ici.
Gooby s'il te plait comment je peux écrire pour les mêmes données une fonction qui admet pour entrer deux vecteurs X et Y et qui permet de retourner les coefficients de régression?
Bah c'est la fonction polyfit? :koi:
Oui je sais ; mais je veux créer une fonction permettant tout ça :calim2:
J'ai essayé ; Mais j'ai un message d'erreur
Je crains qu'il faille nous en dire un peu plus :ange:Citation:
Envoyé par ghadata97