How to plot a function containing an integral?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Pawel Rochowski
le 31 Mar 2016
Réponse apportée : Star Strider
le 31 Mar 2016
Hello all! I've got very simple code:
function y=sc()
a=2;
x=linspace(0,100);
fun1 =quadgk(@(m) m.*a .*x, 0, 2);
y = plot(x,fun1);
end
In the specific case above the value of the integral =2, and also a=2, so one could expect the linear plot as a result o function sc. Instead there is an error: error using .*, matrix dimensions must agree. The fun1 gives exact values, when user provides a and x values. Is there a simple way to create a plot(x,fun1) without making any loops?
2 commentaires
Réponse acceptée
Star Strider
le 31 Mar 2016
I had to delve back in the documentation, but I found the quadv function that will do what you want without a loop:
fun1 = quadv(@(m) m.*a .*x, 0, 2);
That works.
If you have R2012a or later, use the integral function with the 'ArrayValued' option:
a=2;
x=linspace(0,100);
fun1 = integral(@(m) m.*a .*x, 0, 2, 'ArrayValued',1);
y = plot(x,fun1);
It produces the same results as quadv for this problem. Otherwise, I doubt there is any way to do it with any of the numerical integration routines without using a loop.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Annotations 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!