IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Je cherche à calculer une intégrale double


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Je cherche à calculer une intégrale double
    Bonjour,

    Je suis débutant en MatLab et je dois calculer 2 intégrales doubles. Malheureusement quand je demande à Matlab de calculer la première il me renvoit les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    varIntegral = dblquad(MyEsperance,-inf,inf,-inf,inf)
     
    ??? Error using ==> mtimes
    Inner matrix dimensions must agree.
     
    Error in ==> quad at 62
    y = f(x, varargin{:});
     
    Error in ==> dblquad>innerintegral at 88
        Q(i) = feval(quadf, intfcn, xmin, xmax, tol, trace, y(i), varargin{:}); 
     
    Error in ==> quad at 62
    y = f(x, varargin{:});
     
    Error in ==> dblquad at 64
    Q = feval(quadf, @innerintegral, ymin, ymax, tol, trace, intfcn, ...

    Et pour la deuxième intégrale double :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    varIntegral = dblquad(MyEsperance2,-inf,inf,-inf,inf)
     
    ??? Error using ==> mpower
    Matrix must be square.
     
    Error in ==> quad at 62
    y = f(x, varargin{:});
     
    Error in ==> dblquad>innerintegral at 88
        Q(i) = feval(quadf, intfcn, xmin, xmax, tol, trace, y(i), varargin{:}); 
     
    Error in ==> quad at 62
    y = f(x, varargin{:});
     
    Error in ==> dblquad at 64
    Q = feval(quadf, @innerintegral, ymin, ymax, tol, trace, intfcn, ...
    Je n'y connais rien du tout et j'ai besoin de calculer ces 2 intégrales c'est très important pour moi (c'est mon mémoire de fin d'études).

    Voici mes deux intégrales :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MyEsperance = @(v,x)((A_0*exp(-phi*sigma_A/sigma_2*(x-theta_1*T_1-v)+x+v-theta_2*T_1)-P_0*exp(-sigma_P/sigma_2*x+v+theta_3*T_1))*heaviside(-(A_0*exp(-phi*sigma_A/sigma_2*(x-theta_1*T_1-v)+x+v-theta_2*T_1)-P_0*exp(-sigma_P/sigma_2*x+v+theta_3*T_1)-C))*1/sqrt(2*pi*T_1)*exp(-1/(2*T_1)*v^2)*1/sqrt(2*pi*T_1)*(exp(-(x-mu_B1*T_1)^2/(2*T_1))-exp(-(mu_B1*x-mu_B1^2*T_1/2-(abs(x+1/2*log(A_0/P_0))+1/2*log(A_0/P_0))^2)/(2*T_1))))
     
    MyEsperance2 = @(v,x)(heaviside(-(A_0*exp(-phi*sigma_A/sigma_2*(x-theta_1*T_1-v)+x+v-theta_2*T_1)-P_0*exp(-sigma_P/sigma_2*x+v+theta_3*T_1)-C))*1/sqrt(2*pi*T_1)*exp(-1/(2*T_1)*v^2)*1/sqrt(2*pi*T_1)*(exp(-(x-mu_B1*T_1)^2/(2*T_1))-exp(-(mu_B1*x-mu_B1^2*T_1/2-(abs(x+1/2*log(A_0/P_0))+1/2*log(A_0/P_0))^2)/(2*T_1))))
    Voici les données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mu_A=0.1055; mu_P=0.1051; sigma_A=0.1295; sigma_P=0.1323; phi=0.9992; A_0 = 722.9; P_0 = 674; C = 40.5; T=1; mu = mu_A - mu_P + 1/2 * (sigma_P^2-sigma_A^2); sigma_1 = sigma_A * sqrt(1-phi^2); sigma_2 = -(phi*sigma_A - sigma_P); sigma = sqrt((sigma_1^2+sigma_2^2)/2); T_1 = sigma^2/2*T; mu_B1 = (mu_A - mu_P + 1/2 * (sigma_P^2-sigma_A^2))/sigma^2; theta_1=mu_B1; theta_2 = (-mu_A-mu_P+1/2*(sigma_1^2+sigma_2^2))/sigma^2; theta_3 = sigma_P/sigma_2*theta_1+(mu_P-1/2*sigma_P^2)*2/sigma^2;
    Pourriez vous m'aider s'il vous plait. Je vous remercie par avance
    Philippe

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 298
    Points : 886
    Points
    886
    Par défaut
    Salut,
    bienvenue sur ce forum.

    Tes problèmes de dimensions me font penser à des vecteurs lignes et colonnes que tu cherches à additionner par exemple.

    Pour ton erreur sur la 2e intégrale, ta matrice n'est pas carrée. Affiche là.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Merci beaucoup pour tes conseils, je vais y réfléchir. C'est la premiere fois que j'utilise Matlab, et je ne comprends pas vraiment pourquoi mon calcul d'intégrales amène à considérer des matrices...

    Je vais aussi essayer de trouver comment afficher ces matrices...

    Bonne soirée

Discussions similaires

  1. Calcul d'une intégrale double d'une matrice
    Par code_source dans le forum MATLAB
    Réponses: 4
    Dernier message: 12/01/2011, 14h59
  2. Calcul d'une intégrale double par la méthode des quadratures
    Par deubelte dans le forum Mathématiques
    Réponses: 5
    Dernier message: 10/05/2009, 12h40
  3. Réponses: 7
    Dernier message: 25/09/2008, 12h31
  4. Résolution d'une intégrale double
    Par LoDev dans le forum Mathématiques
    Réponses: 4
    Dernier message: 15/09/2008, 09h49
  5. Calcul d'intégrale double
    Par noomane dans le forum Fortran
    Réponses: 4
    Dernier message: 30/04/2007, 01h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo