-
solver cvode
bonjours à tous
Je suis étudiants en biologie et actuellement en stage dans le domaine des neurosciences computationnelles, dont l'objectif est la mise en évidence de processus de régulations au niveau du neurone.
Je doit donc réoudre des odes pour cela j'utilise comme outils matlab, et les solveurs d'équations ode23 ou ode45 ,qui sont ils faut le dire assez lent.
Une personne m'a parlé du solver cvode mais je ne suis pas encore assez au point dans matlab pour comprendre les explications de la documentation (en plus en anglais :() .
Si quelqu'un si connait avec ce solver, j'aimerais bien une explication.
Merci
-
Salut, j'ai utilisé le solveur cvode pendant ma thèse. J'avais un problème raide à résoudre que les algos de matlab n'arrivaient pas à résoudre (même pas ode23s etc...). J'ai donc utilisé cvode qui marche vraiment super bien.
Si tu veux aller vite dans l'exécution de ton programme, déjà oublie Matlab et passe en langage compilé (C, C++, Fortran).
J'ai appris le C et Cvode (qui est en C) se télécharge très facilement, tu as accès au code source. Il y a aussi des exemples pour bien t'aider à appeler les routines. Il est très facile de brancher ce solveur.
En gros, avec un énum, tu dis au solveur si tu as un problème raide ou lisse. CVode va ensuite choisir son algo et tout roule.
CVode utilise un algo à pas variable et à ordre variable. Pour les problèmes raides il utilise une méthode implicite (donc il y aura du Newton) et une méthode explicite pour les problèmes lisses (dont j'ai malheureusement oublié le nom).
Pour l'anglais, ce n'est pas trop compliqué de lire une doc technique...
CVode fournit aussi une interface Matlab, mais très franchement, si les temps de calculs te sont vraiment importants, oublie Matlab et passe en C ou C++ ou Fortran
-
Merci pour le conseil toutefois je ne me vois pas recoder mes programmes en C car je n'ai pas forcement le temps, j'aurais bien aimé un prog exemple avec des explications autour si c'est pas trop demander :oops: pour utilisation de Cvodes dans matlab.
Les calculs seront tout de même accéléré ?
-
Je n'ai pas utilisé cvode dans matlab mais directement en C...
Sinon, oui, les calculs seront accélérés car cvode est écrit en C qui est un langage compilé. De combien ? Je ne saurais dire.
Es-tu allé voir sur leur site ? Il y a plein d'exemples. Tu en trouveras un pour appeler cvode à partir de matlab.