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 :

Calculer une matrice avec la méthode de EULER


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut Calculer une matrice avec la méthode de EULER
    salut,
    j'aurai une question à vous demander.
    je suis pas un vrai expert de Matlab mais il ya un problème qui me tracasse depuis un moment.
    je suis en train de préparer un model de calcul.
    pour cela, j'utilise la méthode de Euler du premier degré.
    le problème est que tous les exemples que j'ai trouvé sont pour une variable et non pour le calcul d'une matrice.
    par exemple, si je veux mettre C(n)= [23 435 54 5], le logiciel va croire que le numéro n est pour la taille de la matrice et non pour la suite d'où il va m'afficher la matrice comme une erreur.
    peux-tu m'aider s'il te plait, car je suis coincé depuis un bout de moment sur ça.
    merci à l'avance de ton aide.
    si tu veux, je peux t'envoyer mon modèle pour que tu jette un coup d'oeil.
    bonne journée.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    tu veux incrementer ta matrice?

    si apres tu dois rappeler C de n dans ton programme je te conseille de mettre C{n} (si C de n est construite de maniere iterative).

    J'ai peut etre mal compris ta demande. Sinon reforme là.

    @+

    Olivier

  3. #3
    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 le forum. Une solution consiste à faire des arrays

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    c=cell(4,1);
    c{1}=[23 435 54 5];
    c{2}=[10 20 30 40];
    etc...
    et pour accéder à un élément tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    c{1}(1) -> renvoie 23

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    merci pour votre réponse si rapide.
    ça répond bien à mon problème.
    mille merci.

  5. #5
    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
    pense à la balise Résolu si ton problème est Résolu

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    salut,
    C'est encore moi.
    malheuresement, le problème n'est pas encore résolu.
    l'équation est la suivante:
    a (dA(i,j)/dt)=(B(i,j)-B(i,j+1))/delta x +R(i,j)
    sachant que les deux matrice B(i,j) et R(i,j) sont en fonction de A(i,j).
    je n'arrive pas à programmer ça sur matlab avec la méthode de Euler pour calculer la matrice A(i,j) sachant que je connais qq éléments de cette matrice.
    svp, donnez-moi un coup de main.
    et merci à l'avance

  7. #7
    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
    Citation Envoyé par lematlabeur Voir le message
    a (dA(i,j)/dt)=(B(i,j)-B(i,j+1))/delta x +R(i,j)
    se réécrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dA(i,j)/dt=((B(i,j)-B(i,j+1))/delta x  +R(i,j)) / a
    Si A est une matrice n*m il faut que tu la transforme en un vecteur n*m

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function xdot=system(t,x)
    xdot=zeros(length(x),1);
    xdot(1)=...;
    xdot(2)=...;
    dans le main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [t,Y]=ode45(blabla) -> doc ode45
    dans cet exemple, tu utilises les solveurs de matlab. Tout est déjà fait, sinon tu refais l'algo pour utiliser euler (change ode45 avec ton propre algo)

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    salut,
    je crois qu'il faut mieux que je vous envoie toutes les formules pour que vous voyer la difficulté:
    a*(dAij/dt)=(B(i,j-0.5)-B(i,j+0.5))/deltaX +Ri
    ce qui se résout avec la méthode de Euler avec la suite P:
    A(P)(K+1)(i,j)= A(P)(K)(i,j)+∆t.f(i,j)
    avec
    f(i,j)= [B(i,j-1/2) – B(i,j+1/2) ]/ (∆x*a) +R(i,j)/a
    sachant que J et R s'écrivent en fonction de C(i,j)
    K et P sont des indices.
    le K est pour différencier le même élément de la matrice en fonction du temps.
    merci de votre aide.
    j'en ai vraiment besoin.

Discussions similaires

  1. Réponses: 11
    Dernier message: 07/03/2010, 21h09
  2. Redimensionner une matrice avec "reshape"
    Par kmaniche dans le forum Images
    Réponses: 9
    Dernier message: 07/06/2006, 18h35
  3. Calculer une moyenne avec une matrice
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 05/06/2006, 16h47
  4. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 16h02

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