[Matlab] Double intégrale sur un triangle

Résolu/Fermé
Houcem - 8 mai 2009 à 10:59
Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 - 16 mai 2009 à 05:42
Bonjour,
J'ai un problème au niveau de l'intégral double d'une fonction un peu compliquée.
Mais pour préciser mon problème je vous présente mon problème avec une fonction simple: f(t)=t.
MATLAB---------% COMMENTAIRE
f=inline('t','x','y'); % f(x,y) = x
Je veux faire une intégrale double sur f sachant que x varie entre 0 et 30-y et y varie entre 0 et 30.
(int 0..30)(int 0..30-y) t dx dy.
Merci d'avance
N.B: J'ai essayé avec la commande dblquad mais ça marche pas car par défaut, cette commande voit Xmin,Xmax,Ymin et Ymax comme étant des valeurs réelles.
A voir également:

1 réponse

Fee Fay Messages postés 635 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 31 mai 2009 375
16 mai 2009 à 05:42
Bonjour mon ami !

Ta demande date d'il y a une semaine mais au cas où tu n'aurais toujours pas de réponse, voici une manière de faire, probablement pas la meilleure mais peut-être cela te suffira-t-il ;-)
L'astuce qui me vient à l'esprit est de forcer ta fonction à zéro sur le triangle supérieur (0<y<x<30) sur lequel tu n'intègre pas. Cela te permet d'utiliser sans crainte la fonction dblquad sur le carré [0,30]².
Exemple :
f=@(x,y)(x+y);
intf=dblquad(@(x,y)((x<=30-y).*f(x,y)),0,30,0,30);
Je te souhaite une bien bonne journée !
0