Rechercher : dans
Par :

[Matlab] Intégrale du produit de 2 fonctions

Dernière réponse le 19 mai 2009 à 13:43:57 yacine, le 17 mai 2009 à 13:23:42 
 Signaler ce message aux modérateurs

Bonjour, a tous .....j suis un etudiant ing
j essai de ecrire programe pour calculé un integrale de deux fonction produites de la forme suivant (simplifier):

y=@(x) g(x)*h(x)

f(x)=quad(y,0,2)

sachant que:

g(x)=exp(2*x)

h(x)=(besselk (0,(5*x))+besselk (0,(2*x))).

mais le calcule me indique que il'ya un erreur (inegalité) de dimention de produit de deux matrice

j essai de calculé g(x) seul et h(x) seul et h(x)*exp(2) ...ca marche (matlab)

mais avec exp(2*x) ca march pas !!!

s'ilya des simplification ou notre resolution sur le l'integral de produit de deux fonction repond moi ... et merçi

(mon but est de calculé cette integral par un programme)

Configuration: Windows XP Internet Explorer 8.0

Meilleures réponses pour « [Matlab] Intégrale du produit de 2 fonctions » dans :
Représentation des courbes sous Matlab VoirLa fonction plot permet essentiellement de tracer des courbes sous Matlab. Dans cette astuce, nous allons essayer de détailler le fonctionnement de cette commande. Simple utilisation Vecteur Matrice Vecteur en fonction d'un autre Autres...
Axis 2 [Partie 1] Voir1.Concept 2.Fonctionnement : runtime 3.Axis2 : WSDL2Java 4.Axis2 : Databinding framework ADB 5.Distribution Axis Axis 2 1.Concept Le concept des Web Service tourne autour des trois acronymes suivants : SOAP (Simple Object Access...
Windows 7 professionnel / entreprise VoirAlors que Windows 7 vient de sortir, les entreprises doivent-elles pour autant migrer dès aujourd’hui vers une nouvelle version « pro » de leur système d’exploitation ? A travers une étude complète de Windows 7 Professionnel/Entreprise, le...

1

Fee Fay, le 17 mai 2009 à 15:37:54

Bonjour mon ami !

En fait, c'est très simple, mais encore faut-il le savoir :-D
C'est écrit dans l'aide (help quad ou doc quad), mais il est vrai qu'on y fait pas nécessairement attention, d'ailleurs je n'y avais pas fait attention moi-même la première fois :-(

>> help quad
[...]
Y=FUN(X) should accept a vector argument X and return a vector result
    Y, the integrand evaluated at each element of X.
[...]
Ta fonction y doit pouvoir accepter un vecteur comme argument et retourner un vecteur.
En fait c'est tout à fait logique si l'on considère la façon dont va procéder Matlab pour calculer numériquement l'intégrale d'une fonction y sur un intervalle [a,b].
Pour simplifier et pour résumer, Matlab va calculer y(x1), y(x2), ..., y(xn) pour une subdivision (xi) de [a,b] et évaluer l'intégrale par quadrature de Simpson. Et pour évaluer chaque y(xi), il le fera vectoriellement comme à son habitude : y(x)x=[x1,x2, ...,xn].

Il s'agissait de la partie explications ;-)
Pour la pratique donc, il faut calculer le produit de tes fonctions g et h pour qu'il puisse être évalué pour une variable vectorielle x, ceci se fait tout simplement en ajoutant un point pour le produit lorsque tu définis y :
g=@(x)(exp(2*x));
h=@(x)(besselk (0,5*x)+besselk (0,2*x));
y=@(x)(g(x).*h(x));
f=quad(y,0,2); % Sans le x ici
Cela dit, les fonctions de Bessel modifiées de seconde espèce ont une singularité en 0, par conséquent, il se peut que le calcul numérique de cette intégrale n'ait pas la précision qu'aurait celui qu'un intégrale régulière.
Mais avec quelques essais classiques, cela semble donner de bons résultats quand même ;-)
>> quad(@(x)(log(x)),0,1)+1

ans =

 -6.8696e-006

>> quad(@(x)(1./sqrt(x)),0,1)-2

ans =

  1.0609e-005
La précision est environ celle escomptée par la tolérance d'erreur absolue par défaut qui est de 1.0e-6. Par contre, Matlab commence a faire la tête pour la fonction y : x → 1/√x quand on demande une très grande précision.
>> quad(@(x)(log(x)),0,1,1e-12)+1

ans =

 -9.5619e-012

>> quad(@(x)(1./sqrt(x)),0,1,1e-12)-2
Warning: Minimum step size reached; singularity possible. 
> In quad at 103

ans =

 -2.0361e-010
Et la singularité des fonctions de Bessel modifiées de la seconde espèce est une singularité en 1/√x.

Je te souhaite une bien bonne journée ! Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banjo

Répondre à Fee Fay

2

yacine5, le 18 mai 2009 à 00:47:50

Merçi beaucoup mon ami fee fay !! et merçi de me expliqué ...

Répondre à yacine5

3

 Fee Fay, le 19 mai 2009 à 13:43:57

Il n'y a pas de quoi yacine5 ;-)
À la prochaine ! Tous les animaux criaient bien haut
Qu’il était le crapaud le plus beau, quand il jouait du banj­o

Répondre à Fee Fay