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

Macros et VBA Excel Discussion :

Convertir un code Matlab en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    sagiaire
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut Convertir un code Matlab en VBA
    Bonjour,
    S'il vous plait, j'ai un code Matlab ou ils utilisent la méthode de runge kutta d'ordre 4 pour résoudre des équations différentielles d'ordre 1 que je dois convertir en VBA mais j'arrive pas vu que c'est la première fois que j'utilise VBA chose qui me bloque dans l’avancement de mon stage .
    Vous trouvez ci dessus ce code si quelqu'un peut m'aider. Merci d'avance

    Code MATLAB : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    function [x, y, dy] = rk4(deriv,n,x,dx,y)
    %Classical fourth order Runge-Kutta method
    %Integrates n first order differential equations 
    %dy(x,y) over interval x to x+dx
    %Israel Urieli - Jan 21, 2002
    x0 = x;
    y0 = y;
     
    [y,dy1] = feval(deriv,x0,y);
    for i = 1:n
    	y(i) = y0(i) + 0.5*dx*dy1(i);
    end
    xm = x0 + 0.5*dx;
    [y,dy2] = feval(deriv,xm,y);
    for i = 1:n
    	y(i) = y0(i) + 0.5*dx*dy2(i);
    end
    [y,dy3] = feval(deriv,xm,y);
    for i = 1:n
    	y(i) = y0(i) + dx*dy3(i);
    end
    x = x0 + dx;
    [y,dy] = feval(deriv,x,y);
    for i = 1:n
    	dy(i) = (dy1(i) + 2*(dy2(i) + dy3(i)) + dy(i))/6;
    	y(i) = y0(i) + dx*dy(i);
    end

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par fay-d Voir le message
    j'arrive pas vu que c'est la première fois que j'utilise VBA chose qui me bloque dans l’avancement de mon stage .
    Il est déjà étrange qu'on ait donner comme tâche d'écrire un code VBA à quelqu'un qui ne connait rien au VBA.

    Petite question : te former au VBA n'est pas une option envisageable pour toi ?
    Lire ceci : http://bidou.developpez.com/article/VBA/
    Je suis sûr qu'en deux ou trois jours de lecture sérieuse de ce tutoriel, tu seras en mesure d'écrire ton code.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    sagiaire
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Il est déjà étrange qu'on ait donner comme tâche d'écrire un code VBA à quelqu'un qui ne connait rien au VBA.

    Petite question : te former au VBA n'est pas une option envisageable pour toi ?
    Lire ceci : http://bidou.developpez.com/article/VBA/
    Je suis sûr qu'en deux ou trois jours de lecture sérieuse de ce tutoriel, tu seras en mesure d'écrire ton code.
    stp tu sais comment on peut exécuter un fichier matlab from vba ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par fay-d Voir le message
    stp tu sais comment on peut exécuter un fichier matlab from vba ?
    En résumant comme on ne te donne pas le code tout cuit, tu veux un palliatif pour la lancer ton code Matlab en VBA.

    C'est très productif pour une stagiaire de découvrir d'autres langages, c'est une plus value intéressante pour l'avenir, tu devrais regarder les liens donnés plus haut.

    Philippe

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par fay-d Voir le message
    je dois utiliser la méthode de runge kutta d'ordre 4 pour résoudre un système d'équation différentielles couplées de 1er ordre (7 équations)
    Aussi étrange que ça puisse te paraitre, il y a beaucoup de personnes qui ignorent ce qu'est la méthode de runge kutta.

    Donc, à moins que tu imagines que c'est nous qui allons faire l'effort de nous informer par nous même à cette méthode (dans ce cas, tu risques d'attendre longtemps), je crois qu'il va falloir que tu suives le judicieux conseil de Philippe JOCHMANS et que tu sois plus explicatif en ce qui concerne l'algorithme que tu souhaites transcrire en VBA.

    Citation Envoyé par fay-d Voir le message
    stp tu sais comment on peut exécuter un fichier matlab from vba ?
    Tu ne sais pas voler à l'horizontale et tu veux apprendre à faire des looping ?
    Faire du VBA interapplications, c'est déjà pas simple entre deux logiciels MS-Office, mais ça devient TRES compliqué quand on veut le faire avec une application dont on dispose pas de documentation sur les bibliothèques d'objet, ça vire au cauchemar.

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, via une recherche, tu trouveras une myriade de solutions :
    Using Runge Kutta in Microsoft Excel 5.0
    une autre
    etc ...

    Pour info , si tu es curieuse, un exe autonome Sysdiff en Delphi7

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Ça vas sens dire mais ça va mieux en le disant, Matlab est 1000 fois plus puissant que VBA.

    Connais tu le langage Matlab? Sais tu compiler en Matlab? Pourrais tu écrire une dll Matlab que tu pourrais utiliser dans Excel?

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re, Méthodes de Runge-Kutta RK1, RK2, RK4
    Un exemple d'RK4 pour x'=Sin(x+Cos(y)) et y'=Cos(y-Sin(x)) avec sortie vectorielle en pdf au lieu de bmp.

    Un autre exemple ici
    D'autres exemples très variés : ici
    Images attachées Images attachées  

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Même si on en comprends une partie, une connaissance de Matlab est nécessaire.

    A moins que tu écrives l'algorithme que ce que doit faire ce code, ce serait plus simple.

    Philippe

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    sagiaire
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sagiaire
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Même si on en comprends une partie, une connaissance de Matlab est nécessaire.

    A moins que tu écrives l'algorithme que ce que doit faire ce code, ce serait plus simple.

    Philippe
    je dois utiliser la méthode de runge kutta d'ordre 4 pour résoudre un système d'équation différentielles couplées de 1er ordre (7 équations)

  11. #11
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Ce qui t'est demandé, fay-d, n'est pas le but à atteindre, mais l'algorithme défini pour l'atteindre.
    A la limite (au moins) un commentaire pour chacune des lignes de code du code Matlab que tu montres . S'il est de toi, tu dois savoir ce que fait chacune de ses instructions. S'il n'est pas de toi --->> revoir la première phrase du présent message (algorithme ?)
    Merci de comprendre tout le sens de cette demande.

Discussions similaires

  1. Convertir un code MATLAB en C
    Par EAKOM dans le forum MATLAB
    Réponses: 10
    Dernier message: 02/02/2017, 17h44
  2. Conversion code MATLAB vers VBA
    Par viejo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2012, 18h06
  3. Convertir du code Matlab en VHDL
    Par okitrinaw dans le forum VHDL
    Réponses: 2
    Dernier message: 14/05/2012, 20h03
  4. Convertir un code C++ en un exécutable MATLAB
    Par abir2007gallas dans le forum MATLAB
    Réponses: 1
    Dernier message: 11/04/2008, 16h06
  5. [VBA-E] Convertir du code VBA 2000 en VBA 97
    Par Mykeul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/04/2006, 11h05

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