Intégration sur matlab

Résolu/Fermé
suzanne - 18 déc. 2008 à 12:46
Sacabouffe Messages postés 9418 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 - 27 déc. 2008 à 17:06
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 9418 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 865
18 déc. 2008 à 23:40
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
Merci beaucoup pour la réponse
0
Sacabouffe Messages postés 9418 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 865
27 déc. 2008 à 17:06
Y a pas de quoi. ;-)
À la prochaine !
1