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 :

[Débutante] Résolution de problèmes hyperboliques par méthodes numériques


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [Débutante] Résolution de problèmes hyperboliques par méthodes numériques
    Bonjour à tous,

    un prof m'a donné un projet en Matlab à faire. Alors certains vont rire en lisant le sujet, surement très simple pour eux. Mais je suis en Master de math, l'info pour tout vous dire c'est pas vraiment mon truc...


    Voici, entre autre, la formule que je dois coder :

    j'ai une fonction u qui dépends de 2 variables t et x (x appartenant à l'intervalle ]0,1[ et t>1) telle que :

    dérivée de u en fonction de t + a * dérivée de u en fonction de x = 0

    avec les conditions suivantes :
    a>0
    u(t,0)=b(t) (b(t) est donc une fonction supposée connue)
    u(0,x)=phi(x) (phi(x) est donc une fonction supposée connue)
    phi(0)=b(0) et phi(1)=constante


    Mon prof ne nous a fait que 3 TD avant de nous donner le sujet. J'ai essayé de le faire avec une amie, mais nous n'y sommes pas arrivées. Je n'ai qu'une semaine pour le faire!!! Et comme par hasard, ça tombe sur ma semaine d'examen. C'est IMPOSSIBLE... je n'y arriverai jamais!!!

    Aidez moi je vous en supplie!!!

    Merci d'avance

    PS: N'hésitez pas à me contacter pour que je vous envoi le sujet
    Images attachées Images attachées  

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Points : 79
    Points
    79
    Par défaut
    salut à toi,

    Ce genre de titre est très déconseillé, les gens riques de ne pas venir lire ton post. Moi les maths, c'est pas mon truc. Donne la formule que tu veux coder en matlab et tu auras sans doute plus de réponse. Quand il parle de schéma il veulent que tu réalise un schématic de ton système? Si oui, précise schématique entre [] dans ton titre. Je te conseille d'editer ton poste et de faire quelque changement pour attirer du monde et si possible les bonnes personne.
    Bonne Chance!

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut projet matlab
    Merci pour tes précieux conseils. J'espère que tu apprécieras le changements...
    Ce qu'il entend par "tracer le schéma" c'est en fait tracer le graphique (peut-être grâce à un plot) représentatif de la fonction.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par Mehlo76
    u(t,0)=b(t) (b(t) est donc une fonction supposée connue)
    u(t,0)=phi(t) (phi(t) est donc une fonction supposée connue)
    Je suis également en master 2 mais pas de math et je comprend pas comment une fonction u en (t,0) peut être égale à deux fonction distinct?

  5. #5
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse. Je me suis trompée en copiant l'énoncé. Je me suis donc empressée d'aller corriger.
    les conditions sont : u(t,0)=b(t) et u(0,x)=phi(x)

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Points : 79
    Points
    79
    Par défaut
    Ton problème n'est pas si simple que ca. Je sais pas pourquoi je n'y ai pas pensé avant mais il y a une partie du forum consacré au math et algo. voici le lien poste la bas, je pense que tu auras plus chance d'avoir des réponses et reviens une fois que tu as un algo précis et là quelqu'un t'aideras à le coder pour matlab

    http://www.developpez.net/forums/forumdisplay.php?f=60

  7. #7
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    En fait, je sais calculer la solution de ce problème manuellement, mais je pensais qu'il y avait des fonctions sur Matlab permettant de calculer directement la solution. Mon prof nous a vite fait parlé d'une fonction "EDO45". Je ne sais même pas si c'est réellement ça.
    Enfin, quoi qu'il en soit, je vais déjà résoudre ce problème manuellement. Je t'écris la solution dès que je l'ai.

  8. #8
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Cela prends un peu plus de temps que je pensais. Ca fait un moment que j'ai fini ce cours, il faut donc que je me remette dedans, mais entre les exams et les révisions c'est pas facile...
    Mais promis, je mets la solution ce soir au plus tard

  9. #9
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Ca y est!!! J'y suis enfin arrivée...
    Voilà la solution:

    1er cas : x-at>=0
    u(t,x)=phi(x-at)
    2ème cas: sinon
    u(t,x)=b(t-x/a)

    Alors il faut que je dessine ça en 2D (question b-1) puis en 3D (question b-2). (sans oublier que t>0, 0<x<1)
    Bon courage si tu y arrives... Moi je vais essayer de mon côté, mais c'est pas gagné...

  10. #10
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Bon, tout d'abord, la fonction dans MATLAB qui permet de résoudre des équation différentielles d'ordre1, c'est ode45 et non edo45.

    Ensuite, pour ton problème, j'ai dû prendre des équations (phi et b) au hazard pour voir ce que ça rendait. Il en va de même pour a. Ensuite, (je ne suis pas un expert en math), il me semble que dans ta solution il manque des constantes (pour la continuité de la courbe).

    Alors voilà deux codes pour tes tracés graphiques. Si tu as des questions, n'hésites pas :
    1:en 2D
    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
     
    function []=Mehlo()
    t=0.2; %arbitraire
    a=1; %arbitraire
    i=0;
    for x=0.001:0.001:0.999
       i=i+1;
       if(x-a*t >= 0)
          u(i)=cos(x-a*t);  %phi=cos
       else
          u(i)=sin(t-x/a); %b=sin
       end
    end
    x=0.001:0.001:0.999;
    plot(x,u)
    2 : en 3D
    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
    function []=Mehlo1()
    a=1; %arbitraire
    i=0;
    for x=0.01:0.01:0.99
       i=i+1;
       j=0;
       for t=0.1:0.1:10
          j=j+1;
          if(x-a*t >=0)
             u(j,i)=cos(x-a*t);
          else
             u(j,i)=sin(t-x/a);
          end
       end
    end
    [x,t]=meshgrid(0.01:0.01:0.99,0.1:0.1:10);
    mesh(x,t,u)
    Voilà.
    En passant, si tu remplace le cos par exp et sin par tan (dans le 3D), ça donnait un truc assez marrant

  11. #11
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Dam2227, merci sincèrement de ton coup de main!
    Cela va me donner un bon coup de main pour commencer mon projet. Je n'ai pas le temps de tester et adapter ce que tu as fait ce soir (examen terminal de processus stochastiques demain matin...), mais je ferais ça demain après midi.
    Un grand MERCI!!!

  12. #12
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Pas de problèmes, mais attend de voir si j'ai bien résolu le problème pour me remercier . Car en fait, je n'ai fait qu'afficher graphiquement deux fonctions. J'espère que ça suffisait comme réponse.

  13. #13
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    C'est énoooooorme!!! Je te remercie. Mon projet n'est pas encore fini, mais ça m'a bien aidé pour commencer. Un grand MERCI.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/02/2011, 10h45
  2. [Débutant] Représentation de fonction par méthode numérique
    Par lucienGr dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/06/2009, 21h31
  3. Réponses: 3
    Dernier message: 31/10/2006, 16h22

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