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 :

Calcul intégrale etc..


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut Calcul intégrale etc..
    Bonjour, je viens de m'inscrire, car j'ai demander de l'aide dans un autre forum moins spécialisé et j'ai toujour aucune réponse. ça fait trois jour que je galére vraiment sur un truc a priori simple...

    Donc voici mon souci :

    J'ai une fonction de densité, dont je connais rien qui dépend de deux variables, x et y. Moi je veut calculer l'évolution de cette densité, et dans les équations je suis amené a calculer une intégrale qui dépend de ma fonction (c'est donc une fonctionnelle).

    Je discrétise donc mes variables comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x=linspace(0,1,11)
    y=linspace(0,1,11)
    Disons que ce sont mes conditions initiales.
    Ensuite (on m'as dit de faire un meshgrid) :

    Voila ouù j'en suis lol.

    Moi faut que je calcul :
    [Tex]

    T= \int \int dx dy f(x,y)

    [/Tex]

    On m'a aussi recommander d'utiliser la fonction trapz (vitesse de onvergence ou je sais pas trop pourquoi) et de l'appliqué deux fois, ce qui donnerais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T=trapz(y,trapz(x, ??))
    , mais je sais pas quoi mettre a la place des ?? !

    En fait on me dit de construire une matrice de telle sorte que

    [Tex]

    f_{ij}=f(x^i , y^i)

    [/Tex]
    Comment construire cette matrice fij a partir de mon meshgrid ?

    Voila je galere trop alors que ça doit pas etre sorcier, mais je comprend vraiment pas...

    merci a tous ceux qui prendrons le temps de jeter un oeil ^^

    Ps: Latek ne fonctionne pas ? :s

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Si tu ne connais pas l'expression de ta fonction de densité, je ne vois pas comment tu veux évaluer des intégrales...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    C'est bien ça le probléme, je n'ai pas une formule analytique de ma fonction de densité...

    En fait, on suppose qu'a l'instant t=0, la densité est contenue dans un carré dans le plan (x,y).

    Ensuite j'ai des formules pour calculer la variation de f dans le temps.

    On m'a expliqué qu'il fallais que je discrétise l'espace de phase, ce sont mes linspace x et y !

    Maintenant je voudrais créer une matrice f de tel manière que j'ai : fij=(xi,yj).

    j'ai du mal avec ces calculs vectorialisé (Invention de mot ^^)

    je comprend pas quelque chose :

    Quand je fait un meshgrid, j'obtiens deux matrices! Comment faire pour creer une matrice qui modélise ma discrétisation du plan (en x et y)?

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    La seule chose que fait meshgrid, c'est de définir une grille dont les coordonnées des points sont contenus dans les variables X (abscisses des points) et Y (ordonnées des points).

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >> [X Y] = meshgrid(1:3,1:3)
     
    X =
     
         1     2     3
         1     2     3
         1     2     3
     
     
    Y =
     
         1     1     1
         2     2     2
         3     3     3
    Connais-tu les valeurs de ta densité au temps t=0 en chaque point de ta grille? Quelles sont tes données initiales?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Ok pour meshgrid mais je comprend pas trop son intérét, son usage etc...

    Pour ma fonction de densité, a l'instant initial f est contenue dans un carré de longueur deltax, deltay. Je choisit moi meme delta x et deltay.

    Ce que je voudrais faire :

    Creer une matrice qui me donne une surface dans l'espace des phases, ensuite calculer l'air sous cette surface pour ensuite itérer mes expressions...

    Je n'ai pas besoin de connaitre l'expression analytique de f, suffit juste de connaitre ça distribution.

    Si je me fait mal comprendre, c'est normal, je comprend pas moi meme !

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par Cjordan Voir le message
    Pour ma fonction de densité, a l'instant initial f est contenue dans un carré de longueur deltax, deltay.
    Connais-t les valeurs de f dans ton carré initial?

    C'est quoi l'espace des phases?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    ben f0 c'est mon carré initial :
    Pour faire un shéma,

    On a nos deux axe x et y dont les valeur varie entre [-10,10].

    on trace un carré centré en 0 de coté 1.

    Ce carré est ma fonction f a l'instant 0.

    Moi il faut que je créer un objet qui me permette de calculer l'intégrale sous cette surface.

    Je vous remerci pour le temps que vous m'accorder ^^ j'en peut plus ça fait 3 jour que j'avance pas !

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par Cjordan Voir le message
    Ce carré est ma fonction f a l'instant 0.
    Ben non, tu as juste défini le domaine de définition de ta fonction, cela ne donne aucun renseignement sur f... Si tu n'as aucune données expérimentale et rien d'autres que le domaine de définition, je ne vois pas du tout ce que tu veux calculer...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par magelan Voir le message
    Ben non, tu as juste défini le domaine de définition de ta fonction, cela ne donne aucun renseignement sur f...
    Pourtant si, une fonction a deux variable n'est rien d'autre qu'une surface, or je définie bien cette surface, donc je connais la forme de ma fonction et je devrais pouvoir intégrer...

    Mon probléme est purement informatique mais j'avoue que moi meme j'ai du mal a comprendre et je peut comprendre que vous ne voyez pas ce que je veut faire ^^

    Merci d'avoir essayé de m'aider.

    edit: un exemple en 1D, si je veut définir une fonction f constante, il suffit que je donne les valeurs de de y en chaque points x. et vue que c'est une fonction constante je n'ai qu'a définir un vecteur.

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Regarde cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [X Y] = meshgrid(1:3,1:3);
    f = X.^2+Y.^2;
    surf(X,Y,f);
    Ici j'utilise une expression analytique (j'ai bien compris que tu n'as pas d'expression analytique, c'est juste pour l'exemple). Je peux tracer la surface (et éventuellement calculer le volume sous la surface) car j'ai l'ensemble de définition (X et Y) et les valeurs de ma fonction (f) sur cet ensemble de définition.

    edit: un exemple en 1D, si je veut définir une fonction f constante, il suffit que je donne les valeurs de de y en chaque points x. et vue que c'est une fonction constante je n'ai qu'a définir un vecteur.
    Oui, mais dans ce cas tu donnes une valeur à ta fonction : la constante. Tu peux aussi le faire en 2D : une fonction constante en 2D :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [X Y] = meshgrid(1:3,1:3);
    f = ones(size(X)).*4;
    surf(X,Y,f);
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par magelan Voir le message
    Oui, mais dans ce cas tu donnes une valeur à ta fonction : la constante. Tu peux aussi le faire en 2D : une fonction constante en 2D :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [X Y] = meshgrid(1:3,1:3);
    f = ones(size(X)).*4;
    surf(X,Y,f);
    Ah c'est peut être intéressant cette façon de faire !!

    Tu peut m'expliquer ce que tu a fait pour ton f ?

    c'est quoi le "one(size(X)" ? pourquoi pas Y ? et le "*4" ? c'est la constante égale a 4 ?

    Merci

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Citation Envoyé par Cjordan Voir le message
    c'est quoi le "one(size(X)" ? pourquoi pas Y ?
    j'aurais pu écrire aussi one(size(Y)), ce qui est important, c'est que X, Y et f soient de même taille.

    Citation Envoyé par Cjordan Voir le message
    et le "*4" ? c'est la constante égale a 4 ?
    Oui.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Ok je regarde ça de suite et je reviens en cas de souci ^^

    Merci.

    je viens de tracer f et ça me parais correct !

    J'essaye d'integrer maintenant.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai deux probléme maintenant:

    On m'as bien dit d'utiliser la fonction trapz pour integrer (faut l'utiliser deux de suite) mais je ne sais pas ce que je dois obtenir en fait, un nombre ? un vecteur ? une matrice ?

    Sachant que dans mes équations d'itérations, j'ai :

    Yn+1=Yn + DeltaT* T

    où T est mon intégrale. Mais comme Y est une matrice (a cause du meshgrid) j'imagine que je dois obtenir aussi un matrice de meme taille pour T .

    Donc la je viens d'écrire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    T=trapz(x,trapz(y,f))
    mais j'obtiens un nombre, pas une matrice ou autre...Je ne suis qu'a moitié étonné mais bon...

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Probléme résolu, enfin au moins la théorie ! Je dois bien obtenir un nombre pour T.

    Maintenant j'aimerai juste avoir confirmation pour l'utilisation de trapz ?

  16. #16
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Pour un tableau, trapz intègre sur les colonnes, donc tu dois inverser l'ordre d'intégration :
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Merci pour l'aide, j'ai pus avancer un peu

    Maintenant je m'attaque a un autre probléme du programme, je réfléchi d'abord et je repasserai sans doute^^

Discussions similaires

  1. couleur aire courbe & calcul intégrale
    Par Fener dans le forum MATLAB
    Réponses: 4
    Dernier message: 25/05/2010, 20h12
  2. [BPW] Programme de calcul intégral
    Par seanp223 dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 21/11/2009, 18h48
  3. Réponses: 3
    Dernier message: 27/05/2009, 08h59
  4. Doutes à propos d'un Calcul intégral
    Par kwatz dans le forum Mathématiques
    Réponses: 2
    Dernier message: 09/03/2009, 16h44
  5. Réponses: 2
    Dernier message: 12/03/2007, 20h25

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