Intégration sur matlab

Résolu
suzanne -  
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   -
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 9427 Date d'inscription   Statut Membre Dernière intervention   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 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Y a pas de quoi. ;-)
À la prochaine !
1