Traduction Matlab -> C/C++

Friday_XIII -  
Char Snipeur Messages postés 10112 Statut Contributeur -
Bonjour,
je souhaiterais traduire un programme matlab, en C/C++.
Or pour cela, je dois commencer par traduire les fonctions de matlab que j'utilise.

Savez vous où je pourrais trouver ces algo ?
Je cherche la transcription des fonctions ode15s et ode45.

Le principe de cette manipulation est de permettre à n'importe qui d'utiliser mon programme sur n'importe quelle machine (donc qui n'a pas forcement matlab).
J'ai vu sur internet qu'il était possible de faire appel à ces fonctions dans un programme C/C++.
Pour cela, doit il y avoir matlab sur l'ordinateur ? ou alors sont elles ans une bibliothèque téléchargeable ?

merci d'avance pour vos réponses
A voir également:

12 réponses

Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
Salut.
à mon avis, ton truc, c'est comme Matlab, c'est payant.
Et le fichier hpp ne doit pas suffire, il faut en général un .cpp.
Il fait quoi ton algorithme ? Tu peux essayer de chercher dans les bibliothèques gratuites, type GSL ou Octave par exemple.
1
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
Salut.
Il est tout à fait possible de transformé les fonctions matlab en fonction C++, sans besoin de bibliothèques particulière, dans la limite de certaines fonction matlab (les GUI ne sont pas trop traduisible je crois).
utilise la commande mcc : https://www.mathworks.com/help/compiler/index.html;jsessionid=b1f0e773db4bf3842d652ee6fddf?/access/helpdesk/help/toolbox/compiler/mcc.html=&http://www.google.com/search%3fq=matlab+mcc&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a
0
Friday_XIII
 
Merci de ta réponse ;-)
Mais ta solution implique que je possède Matlab, non ? Or je n'ai que le fichier M-File avec moi ...
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
ça tu ne l'avais pas préciser !
Je n'ai pas de solution à te proposer alors.
Ou alors un poil compliqué, voi du coté d'octave qui a des bibliothèques C++ pour l'utiliser.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Friday_XIII
 
Ok merci je vais voir ça.
Mais sais tu s'il est possible de trouver l'algo sur internet ?
Parce que je peux essayer de faire la transcription moi-même
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
ça doit être possible.
0
Friday_XIII
 
après pas mal de recherches sur le net, je viens de les trouver à cette adresse :
http://optimal.danielwebb.us/chen4580/

maintenant, il ne me reste plus qu'à soit les traduire en C/C++, soit les trouver déjà écrites (ça m'arrangerait un peu je dois dire :p)
0
Friday_XIII
 
Après de nouvelles recherches sur internet, j'ai trouvé qu'il existait la "Matlab C++ Math Library".
Je voulais savoir s'il était possible de trouver quelque part le header "matlab.hpp".
Je dois dire que c'est le fichier qu'il me manque. Avec celui-ci, je pense pouvoir réaliser ce que je souhaite.
Seulement, je le redis, je n'ai pas matlab ....

Pourriez vos m'aider s'il vous plait
0
Friday_XIII
 
Il me faut les algos ode15s, ode45, ode23 et ode23s
je sais déjà que Octave ne possède pas ode15s ...

pour ce qui est du fichier cpp, je pensais comme toi, mais sur cet exemple, il n'y en a pas ...
http://www.nacs.uci.edu/dcslib/matlab/matlab-v53/help/extern/cppmath/ode45.html

je vais donc chercher du côté de GSL.

En tout cas merci pour tes réponses ;-)
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
Je ne vois pas à quoi tu vois ça.
Je ne parle pas français ?
Je te demande ce que fait ton algorithme et tu me réponds "ode15s", c'est à dire que tu ne me répond pas. Tu m'aurais dit l'algorithme carabounga145632bis que ça m'en aurai dit autant... Selon ce que fait ton algorithme, je peux t'orienter vers telle ou telle solution.

Je ne vois pas en quoi ton exemple montre qu'il n'y a pas besoin de .CPP ? C'est quoi ton niveau en C++ ?
0
Friday_XIII
 
mon niveau en C++ ? euh ... 6 mois de cours :p

ode15s est un algo pour résoudre des équations différentielles. Il existe toute une tripotée d'algo dans ce genre, en fonction de la méthode que tu veux utiliser pour la résoudre.

Je laisse tomber cette histoire de librairie de matlab, car avec octave et GSL, je pense pouvoir trouver mon bonheur : il me reste juste à trouver la correspondance entre les algo odeXX de matlab et ceux proposés par les bibliothèques que tu m'as conseillé
0
Char Snipeur Messages postés 10112 Statut Contributeur 1 299
 
Oui, je pense que c'est ce qu'il y a de plus sage en effet. Il doit y avoir l'équivalent de ode en libre, après, il faut peut être un nom plus général pour savoir.
http://www.netlib.org/ode/
ode semble vouloir dire OrdinaryDifferentielEquation, ce qui ne semble pas être un algorithme spécifique, mais plutôt une bibliothèque d'algorithme de résolution.
0