Intégration sur matlab

Résolu
suzanne -  
Sacabouffe Messages postés 10427 Statut Membre -
Bonjour,
je voudrais faire l'intégrale sur matlab de 0 à 2000 de la fonction suivante:
x^(a-1)exp(-x)
sachant que a est une variable saisie à l'entrée dans une autre fonction et que l'intégration se fait sur x.
voila la fonction:
function y=ro(a)
y=quad(x.^(a-1).*exp(-x),0,2000)
comment matlab pourrait reconnaitre que l'intégration se fait sur x et pas sur a?

2 réponses

Sacabouffe Messages postés 10427 Statut Membre 1 835
 
Salut

Tu définis ta fonction en tant que fonction de x. Et de toute façon, même sans a, écrite telle qu'elle est, ta ligne de code passera pas. quad s'applique à une function handle, c'est-à-dire, quelque chose du genre :
f = @(x)(expression dépendant de x et d'éventuelles autres variables prédéfinies);
Donc là, pour toi, ça donne quelque chose de ce goût-là :
y = quad(@(x)(x.^(a-1).*exp(-x)),0,2000);
Mais bon, si tu vas jusqu'à des x aussi grand pour l'intégration, tu peux presque supposer que t'intègres jusqu'à et dans ce cas, y = Γ(a), où Γ est la fonction Gamma d'Euler ; et elle est implémenté sous Matlab.
y = gamma(a);
Bonne nuit
1
suzanne
 
Merci beaucoup pour la réponse
0
Sacabouffe Messages postés 10427 Statut Membre 1 835
 
Y a pas de quoi. ;-)
À la prochaine !
1