Interpolation sous matlabe
alex
-
alex -
alex -
Bonjour,
je viens de créer un programme sous matlab pour trouver une solution de l'interpolation et voila mon programme :
****************************************************
f=[0 0.010 0.015 0.020 0.025 0.030];
T=300:+100:1800;
m=[1.009 1.018 1.023 1.027 1.031 1.036; 1.020 1.031 1.037 1.043 1.048 1.054; 1.038 1.052 1.058 1.064 1.071 1.077; 1.060 1.075 1.082 1.089 1.096 1.104; 1.084 1.100 1.108 1.115 1.123 1.131; 1.107 1.124 1.133 1.141 1.149 1.157;1.129 1.148 1.156 1.165 1.174 1.183; 1.150 1.169 1.178 1.188 1.197 1.206; 1.168 1.188 1.198 1.208 1.218 1.227; 1.194 1.205 1.216 1.226 1.236 1.246; 1.199 1.221 1.231 1.242 1.253 1.263; 1.211 1.234 1.245 1.256 1.267 1.278; 1.222 1.246 1.257 1.269 1.280 1.292; 1.232 1.256 1.268 1.280 1.292 1.303; 1.240 1.265 1.278 1.290 1.302 1.314; 1.248 1.274 1.286 1.299 1.311 1.323];
A= input('entrer f:');
B=input('entrer T:');
while A>=300 && A<=1800 && B<=0.030
for k=1:16
for l=1:6
if B==T(k)&& A==f(l)
n= m(k,l)
printf(' la valeur de Cp est : %f', n);
else
if (A==f(l) && B<=T(k+1) && B>=T(k))
F=(m(k+1,l)-m(k,l))/(T(k+1)-T(k))*(B-T(k))+m(k,l)
printf('la valeur de Cp est :%f', F);
else
if (A<=f(l+1) && A>=f(l) && B==T(k) )
D=(m(k,l)-m(k,l+1))/(f(l)-f(l+1))*(A-f(l))+m(k+1,l)
printf('la valeur de Cp est :%f', D);
else
if ( B<=T(k+1) && A>=f(l) && A<=f(l+1))
R=(D-F)/(f(l+1)-f(l))*(f(l+1)-A)+F
printf('la valeur de Cp est :%f', R);
end
end
end
end
end
end
end
end
**************************************
en effet, je souhaite corriger ce programme pour me donner la valeur exacte:
Pour trouver une valeur X, qui n’exista pas dans la table mais existe dans un intervalle de f, je souhaite faire une interpolation voici la formule :
X=((1.020-1.009)/(400-300))*(350-300) + 1.009 ;
s'il y a quelqu'un qui connait une fonction intégré dans matlab et pourra faciliter cette tache, je serai tres reconnaissant, sinon je souhaite seulement corrigé mon programme.
Merci d'avance.
je viens de créer un programme sous matlab pour trouver une solution de l'interpolation et voila mon programme :
****************************************************
f=[0 0.010 0.015 0.020 0.025 0.030];
T=300:+100:1800;
m=[1.009 1.018 1.023 1.027 1.031 1.036; 1.020 1.031 1.037 1.043 1.048 1.054; 1.038 1.052 1.058 1.064 1.071 1.077; 1.060 1.075 1.082 1.089 1.096 1.104; 1.084 1.100 1.108 1.115 1.123 1.131; 1.107 1.124 1.133 1.141 1.149 1.157;1.129 1.148 1.156 1.165 1.174 1.183; 1.150 1.169 1.178 1.188 1.197 1.206; 1.168 1.188 1.198 1.208 1.218 1.227; 1.194 1.205 1.216 1.226 1.236 1.246; 1.199 1.221 1.231 1.242 1.253 1.263; 1.211 1.234 1.245 1.256 1.267 1.278; 1.222 1.246 1.257 1.269 1.280 1.292; 1.232 1.256 1.268 1.280 1.292 1.303; 1.240 1.265 1.278 1.290 1.302 1.314; 1.248 1.274 1.286 1.299 1.311 1.323];
A= input('entrer f:');
B=input('entrer T:');
while A>=300 && A<=1800 && B<=0.030
for k=1:16
for l=1:6
if B==T(k)&& A==f(l)
n= m(k,l)
printf(' la valeur de Cp est : %f', n);
else
if (A==f(l) && B<=T(k+1) && B>=T(k))
F=(m(k+1,l)-m(k,l))/(T(k+1)-T(k))*(B-T(k))+m(k,l)
printf('la valeur de Cp est :%f', F);
else
if (A<=f(l+1) && A>=f(l) && B==T(k) )
D=(m(k,l)-m(k,l+1))/(f(l)-f(l+1))*(A-f(l))+m(k+1,l)
printf('la valeur de Cp est :%f', D);
else
if ( B<=T(k+1) && A>=f(l) && A<=f(l+1))
R=(D-F)/(f(l+1)-f(l))*(f(l+1)-A)+F
printf('la valeur de Cp est :%f', R);
end
end
end
end
end
end
end
end
**************************************
en effet, je souhaite corriger ce programme pour me donner la valeur exacte:
Pour trouver une valeur X, qui n’exista pas dans la table mais existe dans un intervalle de f, je souhaite faire une interpolation voici la formule :
X=((1.020-1.009)/(400-300))*(350-300) + 1.009 ;
s'il y a quelqu'un qui connait une fonction intégré dans matlab et pourra faciliter cette tache, je serai tres reconnaissant, sinon je souhaite seulement corrigé mon programme.
Merci d'avance.