Getting a warning when I fplot

2 visualizaciones (últimos 30 días)
Jose Grimaldo
Jose Grimaldo el 8 de Abr. de 2020
Comentada: Walter Roberson el 9 de Abr. de 2020
Im getting the correct graph and everything is running correctly, but I keep getting this warning after I fplot. How can I fix it?

Respuestas (1)

Walter Roberson
Walter Roberson el 9 de Abr. de 2020
Editada: Walter Roberson el 9 de Abr. de 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 comentario
Walter Roberson
Walter Roberson el 9 de Abr. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Global or Multiple Starting Point Search en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by