J'ai donné les données suivantes:
Et on me demande de calculer l'intégrale de CP / T DT de 113,7 à 264,4. P >
Je ne suis pas sûr de la façon dont je devrais résoudre ce problème. Si je veux utiliser la commande intégrale, j'ai besoin d'une fonction, mais je ne sais pas comment ma fonction devrait être dans ce cas. P>
J'ai essayé: p> mais cela n'a pas fonctionné. P> p>
3 Réponses :
Utilisez la fonction CumTraPz em> forte> dans MATLAB. T = [...]
Cp=[...]
CpdivT = Cp./T
I = cumtrapz(T, CpdivT)
Une autre approche à laquelle je peux penser est d'adapter vos données à une fonction (disons polynôme ou linéaire ou exponentiel en fonction de la tendance des données). Cela peut être fait en utilisant la commande Fit code>. Intégrez ensuite cette fonction à l'aide de la commande intégrale.
Mais pour le code CumTraPZ, comment puis-je préciser que je veux que T soit de 113,7 à 264,4?
Vous pouvez interpoler entre les points d'intérêt et utiliser CumTrapz. J'ai fourni une solution différente.
Une approche simple utilisant ANS = 91.9954 P>
blockQuote> Méthodes alternatives d'interpolation: strong> code pour graphique: p> Une mauvaise approximation: strong> (pour obtenir une estimation de l'ordre approximatif) p> et vous pouvez voir nous " Re dans le ballon (me fait me sentir plus à l'aise au moins). P> Autres fonctions malab viables: strong> interpolle code> et intégrale code> à l'aide des paramètres de vanille ordinaire.
N'utiliserait que des techniques numériques plus sophistiquées si nécessaire pour l'application. Vous pouvez examiner le 'reltol' code> et 'abstol' code> des options de Documentation pour Integral code>.
Vos résultats dépendront de votre méthode d'interpolation (voir code et graphique ci-dessous). p>
Quadgk code> | Quad code> P> % interpolation method affects answer if using `interp1()`
quadgk(@(t) interp1(T,Cp./T,t,'linear'),t1,t2)
quad(@(t) interp1(T,Cp./T,t,'linear'),t1,t2)
Ceci est probablement mieux pour votre problème. Notez que j'ai supposé que la 2ème commande polynomial correspond à vos données bien. Vous voudrez peut-être obtenir une meilleure structure de modèle si l'ajustement est insatisfaisant.
% Data T = [15 20 30 40 50 70 90 110 130 140 160 180 200 220 240 260 270 275 285 298]; Cp = [5.32 10.54 21.05 30.75 37.15 49.04 59.91 70.04 101.59 103.05 106.78 110.88 114.35 118.70 124.31 129.70 88.56 90.07 93.05 96.82]; % Fit function using 2nd order polynomial f = fit(T',Cp'./T','poly2'); % Compare fit to actual data plot(f,T,Cp./T) % Create symbolic function syms x func = f.p1*x*x + f.p2*x + f.p3; % Integrate function I = int(func,113.7,264.4); % Convert solution from symbolic to numeric value V = double(I);
Y a-t-il une préoccupation sur la sortie de tracé (ajustement (t, cp. / T, 'poly2'), t, cp. / T) code>?
La seule préoccupation que je puisse avoir est la valeur au carré de l'ajustement (environ 0,76). C'est cependant bon pour la tâche à accomplir. Avez-vous d'autres préoccupations?
Je ne connais pas la relation sous-jacente entre ces variables, donc s'il y a une sorte de physique impliquée, cela pourrait affecter cela, mais i>, tracé (t t, cp. / T, 'poly2 '), T, cp. / T) code> me fait préoccuper de cette approximation (bien que numériquement, il se rapproche de la chance). Je ne suis pas non plus un expert ici, alors je cherche toujours à apprendre.
J'ai aussi votre préoccupation. Si la physique sous-jacente est connue, vous pouvez utiliser les données pour estimer les paramètres. Cependant, l'utilisation de polynomial présente des avantages tels que la mise au point sur la tendance plutôt que sur les points de données. Dans un cas où les données sont corrompues avec du bruit ou plusieurs valeurs aberrantes sont présentes, elle donnera un meilleur résultat que l'interpolation (linéaire, etc.) qui se concentre sur deux ou trois points à la fois. Linéaire sera probablement le pire si les données sont bruyantes ou des valeurs aberrantes sont présentes. Pour les données expérimentales (dans la bonne plage de points de données), vous ne pouvez pas vous tromper avec le polynôme de 2e commande.
Merci pour votre note. Je suis tout à fait d'accord, en particulier sur la préoccupation concernant le survêtement au bruit.
Bienvenue dans le débordement de la pile! Veuillez ajouter du code et des données sous forme de texte ( Utilisation du formatage de code ), pas d'images. Images: a) Ne vous permettez pas de copier - & - coller le code / des erreurs / des données pour les tests; B) Ne permettez pas de recherche en fonction du contenu de code / d'erreur / de données; et beaucoup plus de raisons . Les images ne doivent être utilisées que, en plus du texte au format de code, si l'image ajoute quelque chose de significatif qui n'est pas transmis par le code de texte / erreur / données.