Getting a warning when I fplot
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Im getting the correct graph and everything is running correctly, but I keep getting this warning after I fplot. How can I fix it?
0 commentaires
Réponses (1)
Walter Roberson
le 9 Avr 2020
Modifié(e) : Walter Roberson
le 9 Avr 2020
fplot passes a vector of values into the function, so in C, T will be a vector of values. But you are using T as the upper bound on integral(), but integral() can only have a single upper bound.
You need to do something like
C = @(t) arrayfun(@(T) H+(S(1)/S(2))*integral(A,25,T)+(S(3)/S(4))*integral(B,25,T), t);
However, I would recommend that you just be smarter about your integrals. The integral of D1+D2*T+D3*T^2 for T from P to Q is (D1*Q + D2/2*Q.^2 + D3/3*Q.^3) - (D1*P + D2/2*P.^2 + D3/3*P.^3) . That is something that you can easily vectorize, so your C can be calculated without any integral() calls, and so could be vectorized for use with fplot()
1 commentaire
Walter Roberson
le 9 Avr 2020
Note by the way that you could use https://www.mathworks.com/help/matlab/ref/polyint.html together with polyval() instead of integral() . polyval has the advantage of being vectorized.
Voir également
Catégories
En savoir plus sur Global or Multiple Starting Point Search dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!