Aide pour la méthode de Runge-Kutta en Scilab
Résolu
jibthefly
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
samwel25 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
samwel25 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'étudie actuellement une des voies du chaos: la diffusion anormale dans un réseau linéaire de tourbillons.
Pour cela, j'aurais en ce moment besoin de pouvoir résoudre numériquement un système d'équations différentielles non linéaires. J'ai donc pensé à la méthode de Runge-Kutta, et à scilab, car il est gratuit et proche de matlab.
Mais je n'ai aucune expérience de scilab, voire très peu en programmation généralement...Quelqu'un aurait-il déjà essayé de résoudre ce genre d'équation, par scilab ou dans un autre langage?
Merci d'avance.
J'étudie actuellement une des voies du chaos: la diffusion anormale dans un réseau linéaire de tourbillons.
Pour cela, j'aurais en ce moment besoin de pouvoir résoudre numériquement un système d'équations différentielles non linéaires. J'ai donc pensé à la méthode de Runge-Kutta, et à scilab, car il est gratuit et proche de matlab.
Mais je n'ai aucune expérience de scilab, voire très peu en programmation généralement...Quelqu'un aurait-il déjà essayé de résoudre ce genre d'équation, par scilab ou dans un autre langage?
Merci d'avance.
A voir également:
- Aide pour la méthode de Runge-Kutta en Scilab
- Scilab - Télécharger - Édition & Programmation
- Méthode lafay pdf - Forum Loisirs / Divertissements
- Quelle est la méthode la plus rapide pour supprimer une page dans word - Guide
- Dans le document à télécharger, léa a utilisé 2 méthodes différentes pour centrer le nom des continents. lesquels sont centrés correctement ? ✓ - Forum Windows 10
- La méthode range de l'objet _global a échoué ✓ - Forum VB / VBA
5 réponses
Salut
Tu as aussi Octave comme logiciel gratuit de calcul numérique et il encore plus proche de Matlab que Scilab ne l'est ;-)
Que ce soit pour Scilab ou Octave, t'auras pas besoin de coder la méthode de RK.
Scilab est fourni avec un package de solveurs d'ode (ODEPACK), tu trouveras des infos en faisant help ode dans une fenêtre Scilab. Tous les solveurs sont appelés avec la fonction ode et il suffit de préciser en option lequel tu veux en partculier. Si tu veux avoir un aperçu de ce que tu peux faire avec la fonction ode de Scilab, tu peux aller jeter un œil ici :
http://genome.jouy.inra.fr/doc/genome/divers/scilab-4.1.2/man/fr/nonlinear/ode.htm
En ce qui concerne Octave, c'est la toolbox Octave-Forge OdePkg qui fournit la panoplie de solveurs (ode, dae, ide, dde).
http://octave.sourceforge.net/odepkg/index.html
Mais quand tu installes Octave sous Windows avec l'installeur (hébergé sur Octave-Forge lui aussi), ça t'installe toutes les toolboxes Octave-Forge. Les solveurs d'ode d'Octave sont appelés par des fonctions ode* où * est une chaîne de 2 ou 3 caractères (chiffres ou lettres) caractérisant le solveur (ex : ode23, ode45, ode54, ode78 pour les solveurs RK non modifiés).
Jette un œil à la doc si tu veux te faire une idée :
http://octave.sourceforge.net/odepkg/local/odepkg.html
Et si t'installe Octave, pour l'aide, c'est comme Matlab et Scilab, help la_fonction et t'as les infos dont t'as besoin.
Voivi voilou...
Ah oui... et sinon, que ce soit l'un ou l'autre des deux softs, tu peux les récupérer sur CCM :
http://www.commentcamarche.net/telecharger/telecharger 34058903 scilab
http://www.commentcamarche.net/telecharger/telecharger 34058902 gnu octave
Bonne fin de journée ;-)
Tu as aussi Octave comme logiciel gratuit de calcul numérique et il encore plus proche de Matlab que Scilab ne l'est ;-)
Que ce soit pour Scilab ou Octave, t'auras pas besoin de coder la méthode de RK.
Scilab est fourni avec un package de solveurs d'ode (ODEPACK), tu trouveras des infos en faisant help ode dans une fenêtre Scilab. Tous les solveurs sont appelés avec la fonction ode et il suffit de préciser en option lequel tu veux en partculier. Si tu veux avoir un aperçu de ce que tu peux faire avec la fonction ode de Scilab, tu peux aller jeter un œil ici :
http://genome.jouy.inra.fr/doc/genome/divers/scilab-4.1.2/man/fr/nonlinear/ode.htm
En ce qui concerne Octave, c'est la toolbox Octave-Forge OdePkg qui fournit la panoplie de solveurs (ode, dae, ide, dde).
http://octave.sourceforge.net/odepkg/index.html
Mais quand tu installes Octave sous Windows avec l'installeur (hébergé sur Octave-Forge lui aussi), ça t'installe toutes les toolboxes Octave-Forge. Les solveurs d'ode d'Octave sont appelés par des fonctions ode* où * est une chaîne de 2 ou 3 caractères (chiffres ou lettres) caractérisant le solveur (ex : ode23, ode45, ode54, ode78 pour les solveurs RK non modifiés).
Jette un œil à la doc si tu veux te faire une idée :
http://octave.sourceforge.net/odepkg/local/odepkg.html
Et si t'installe Octave, pour l'aide, c'est comme Matlab et Scilab, help la_fonction et t'as les infos dont t'as besoin.
Voivi voilou...
Ah oui... et sinon, que ce soit l'un ou l'autre des deux softs, tu peux les récupérer sur CCM :
http://www.commentcamarche.net/telecharger/telecharger 34058903 scilab
http://www.commentcamarche.net/telecharger/telecharger 34058902 gnu octave
Bonne fin de journée ;-)
Y a pas de quoi ! ;-)
Repasse si t'as un souci mais crée en nouveau sujet si le problème est différent.
Bonne fin d'après-midi
Repasse si t'as un souci mais crée en nouveau sujet si le problème est différent.
Bonne fin d'après-midi
c pas trop compliqué tu peut regarder la doc de ODE dans le help de scilab
d'abord tu défini le deuxième membre comme une fonction ( ici BBO )
// Phase solide
// equation diff de suivi des particules : BBO attention ici equation adimensionnalisée
// second membre
function [dX]=bbo(t,X,st,bet)
dX(1)=X(3)
dX(2)=X(4)
[u,v]=taygr(X(1),X(2))
dX(3)=(u-X(3)+bet*sin(a))/st
dX(4)=(v-X(4)-bet*cos(a))/st
endfunction
aprés tu défini les conditions initiales et les points (instants) ou tu désire calculer la solution puis tu résout avec ODE, l'option "rk" spécifie que tu utilise la méthode de Runge-kutta d'ordre 4 à pas adaptatif.
//Solution
X0=[pxp(c3); pyp(c3); u0; v0];// position et vitesses initiales de la particule.
t0=0;//instant initial
tf=200;//instant final
t=linspace(t0,tf,m);// instants à calculer
[X] = ode("rk",X0, t0, t, list(bbo,st,bet)); // résolution
voilou, dis moi si t'a encore des questions....
d'abord tu défini le deuxième membre comme une fonction ( ici BBO )
// Phase solide
// equation diff de suivi des particules : BBO attention ici equation adimensionnalisée
// second membre
function [dX]=bbo(t,X,st,bet)
dX(1)=X(3)
dX(2)=X(4)
[u,v]=taygr(X(1),X(2))
dX(3)=(u-X(3)+bet*sin(a))/st
dX(4)=(v-X(4)-bet*cos(a))/st
endfunction
aprés tu défini les conditions initiales et les points (instants) ou tu désire calculer la solution puis tu résout avec ODE, l'option "rk" spécifie que tu utilise la méthode de Runge-kutta d'ordre 4 à pas adaptatif.
//Solution
X0=[pxp(c3); pyp(c3); u0; v0];// position et vitesses initiales de la particule.
t0=0;//instant initial
tf=200;//instant final
t=linspace(t0,tf,m);// instants à calculer
[X] = ode("rk",X0, t0, t, list(bbo,st,bet)); // résolution
voilou, dis moi si t'a encore des questions....
Merci pour tes conseil, juste un dernier truc je travail sur un projet de runge kutta un peu comme vous mais le probleme c'est que je n'arrive pas à faire le lien entre ton programme scilab et ce que je pourrais faire pour mon projet. Pourrais tu me dire ce que je dois changer dans ton prog pour qu'il soit appliquable pour mon projet. Ton aide me sera très utilie car je me sens un peu perdu
Voici l'énnoncé de mon problème (juste le dernier point sur runge kutta, le reste déjà fait)
https://www.casimages.com/i/090902014956997796.jpg.html
https://www.casimages.com/i/090902015155755726.jpg.html
Je te remercie
Voici l'énnoncé de mon problème (juste le dernier point sur runge kutta, le reste déjà fait)
https://www.casimages.com/i/090902014956997796.jpg.html
https://www.casimages.com/i/090902015155755726.jpg.html
Je te remercie
salut c marrant moi aussi je crois que je travail sur la même chose! j'étudie la dispersion de particles ponctuelles dans un réseau de tourbillon de type taylor-green, je resous l'équation de suivi des particules avec ODE de scilab. ça marche....
cordialement
cordialement
bonjour;
j'aurais en ce moment besoin de pouvoir résoudre numériquement un système d'équations différentielles non linéaires. J'ai donc pensé à la méthode de Runge-Kutta d'ordre 4 en matlab.
donc voila le systeme :
(1) V’=(N’/v)- 2*V
(2) U’=-(Y*N’/U)-2*U
(3) EXP(-N-Y)-V*(1+2(Y/V))=0
(4) N’’=(1/V)-exp(N)- Y/U
donc mon probléme c'est l'equation 3 je sais pas comment l'introduire dans la boucle dintegration avec les autre équation de systéme; d'autre façon c'est que je n'arrive pas à faire le lien entre l'équation 3 avec les autres équations.
Merci d'avance.
j'aurais en ce moment besoin de pouvoir résoudre numériquement un système d'équations différentielles non linéaires. J'ai donc pensé à la méthode de Runge-Kutta d'ordre 4 en matlab.
donc voila le systeme :
(1) V’=(N’/v)- 2*V
(2) U’=-(Y*N’/U)-2*U
(3) EXP(-N-Y)-V*(1+2(Y/V))=0
(4) N’’=(1/V)-exp(N)- Y/U
donc mon probléme c'est l'equation 3 je sais pas comment l'introduire dans la boucle dintegration avec les autre équation de systéme; d'autre façon c'est que je n'arrive pas à faire le lien entre l'équation 3 avec les autres équations.
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour;
j'aurais en ce moment besoin de pouvoir résoudre numériquement un système d'équations différentielles non linéaires. J'ai donc pensé à la méthode de Runge-Kutta d'ordre 4 en matlab.
donc voila le systeme :
(1) V’=(N’/v)- 2*V
(2) U’=-(Y*N’/U)-2*U
(3) EXP(-N-Y)-V*(1+2(Y/V))=0
(4) N’’=(1/V)-exp(N)- Y/U
donc mon probléme c'est l'equation 3 je sais pas comment l'introduire dans la boucle dintegration avec les autre équation de systéme; d'autre façon c'est que je n'arrive pas à faire le lien entre l'équation 3 avec les autres équations.
Merci d'avance.
j'aurais en ce moment besoin de pouvoir résoudre numériquement un système d'équations différentielles non linéaires. J'ai donc pensé à la méthode de Runge-Kutta d'ordre 4 en matlab.
donc voila le systeme :
(1) V’=(N’/v)- 2*V
(2) U’=-(Y*N’/U)-2*U
(3) EXP(-N-Y)-V*(1+2(Y/V))=0
(4) N’’=(1/V)-exp(N)- Y/U
donc mon probléme c'est l'equation 3 je sais pas comment l'introduire dans la boucle dintegration avec les autre équation de systéme; d'autre façon c'est que je n'arrive pas à faire le lien entre l'équation 3 avec les autres équations.
Merci d'avance.
bonne fin de journée