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

Langages de programmation Discussion :

programmation mathematique : quelle langage ?


Sujet :

Langages de programmation

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut programmation mathematique : quelle langage ?
    Bonjour,

    je vais me lancer dans la programmation du codage de la solution exacte d'un probleme de mecanique des milieux continus.
    Le programme va cotenir de nombreuses opérations basées sur des tenseurs (matrices), va devoir :
    manipuler des gros tableaux (discretisations de la solution exacte),
    afficher des cartes en dégradés de couleur representant la solution discretisée,
    eventuellement inverser des matrices (besoin de bibliotheque),
    enfin tout l'attirail necessaires à la manipulation de tableaux, scalaires (besoin de fonction mathematiques)
    et doit donc aller vite !!!
    Actuellement, la même chose a été fait en FORTRAN, mais j'ai un a priori sur ce langage et je souhaiterai utiliser autre chose.
    Le C ou eventuellement C++ m'a l'air intéressant.
    Qu'en pensez-vous ?
    Mes principaux criteres de choix sont : faciliter de programmation, acces à des bibliotheques mathématiques, rapidités
    Merci de vos conseils !
    Bonne journée.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    si tu as surtout des calculs vectoriels à faire, Matlab peut suffire

    sinon essaies Python avec les lib spécialisées en calcul numérique, ce sera moins ch**** que Fortran ou C++ et relativement rapide
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    en fait je programme deja en python...
    et le langage me plait bien, mais je lis à plusieurs endroit que ce n'est pas le plus rapide...
    A l'inverse je lis que fortran, c, et c++ sont des langages très adaptés à la programmation scientifique.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par le_voisin Voir le message
    en fait je programme deja en python...
    et le langage me plait bien, mais je lis à plusieurs endroit que ce n'est pas le plus rapide...
    A l'inverse je lis que fortran, c, et c++ sont des langages très adaptés à la programmation scientifique.
    Le python pose effectivement le problème de la performance. Je ne suis pas un gars qui dit « il faut que ce soit performant » à tout bout de champ. Mais s'il y a un domaine où les ressources informatiques sont encore insuffisantes c'est la programmation scientifique. Le Fortran (pour Formula Translator) bénéficie de ses bibliothèques complètes et validée par des années de pratique. Le C et le C++ sont a priori efficace effectivement, mais si tu vises faire régulièrement de la programmation scientifique, je te conseillerais d'apprendre le Fortran quand même. Il y a aussi OCaml qui se porte bien.
    http://www.ffconsultancy.com/product...or_scientists/
    Malgré ses qualités et ses avantages — le style fonctionnel est une bénédiction pour les mathématiciens souvent qui ont moins l'impression de quitter leur monde — les bibliothèques sont moins fournies que celles du Fortran ou du C (C++).

  5. #5
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    certaines lib python sont en fait codées en C/C++ donc ça assure un min de perf
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    certaines lib python sont en fait codées en C/C++ donc ça assure un min de perf
    Oui un minimum. Mais ça ne vaut pas un programme complet et optimisé. Je passe beaucoup de temps à expliquer à mes étudiants qu'ils ne doivent pas rechercher les performances à tout prix. La programmation scientifique est cependant l'exception qui confirme la règle. Les programmes sont parfois des one shot qui se doivent d'être optimisés à mort sous peine de ne pas fonctionner. En physique, en chimie computationnelle ou en géomatique, les besoins sont tels que le python n'est pas une véritable option. Ça sert parfois, mais quand on rencontre de vrai problème, on oublie python et on se tourne vers le C ou le Fortran souvent. Je connais quelques chercheurs qui trouvent même que le C++ est encore trop lent (le C++ écrit comme du C++ pas du « faux » C).

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    ok, merci pour ces infos.
    Je crois que je vais partir sur du C/C++...

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    et que pensez vous de matlab ou scilab ?
    en terme de vitesse ?

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par le_voisin Voir le message
    et que pensez vous de matlab ou scilab ?
    en terme de vitesse ?
    Bien suffisant pour beaucoup de personnes.
    Encore une fois, tout dépend de tes besoins.
    Le logiciel R, matlab, scilab peuvent être une panacée car tu as moins à te faire chier lorsque les fonctions sont déjà là.

  10. #10
    Membre éclairé Avatar de SmileSoft
    Inscrit en
    Mars 2008
    Messages
    436
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 436
    Par défaut
    Citation Envoyé par le_voisin Voir le message
    et que pensez vous de matlab ou scilab ?
    en terme de vitesse ?
    matlab est mieux adapté pour les maths, vue qu'il est basé sur le calcul des matrices, le seul inconvénient si ce n'est pas un avantage pour certains est que presque toute est prédéfini, j'ai eu l'occasion de l'utiliser en tâche de fond avec l'éditeur C++ builder (j'ai appelé un exécutable d'un code matlab à partir de l'interface de mon projet C++ Builder), et ça adonné un bon résultat.

  11. #11
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    mais si tu vises faire régulièrement de la programmation scientifique, je te conseillerais d'apprendre le Fortran quand même.
    Qu'en est-il des outils, compilateurs et ide ? C'est fourni ? Ca marche bien ?

  12. #12
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par Tommy31 Voir le message
    Qu'en est-il des outils, compilateurs et ide ? C'est fourni ? Ca marche bien ?
    IDE... j'avoue que je sais pas. Je suis de la vieille école : VIM et term.

    Pour le compilateur aucun problème et il y a des outils avec oui. La force de FORTRAN est qu'il est tellement vieux qu'il est très fiable. Les bibliothèques ont été éprouvées par des années de pratique intensive ce qui fait que peu de personnes questionnent leurs fiabilités. Les GNU, Intels et Sun de ce monde ont des compilateurs de qualités. Je pense que l'IDE de Sun (Sun Studio qqchose) intègre Fortran aussi. Tu bénéficies donc de tous les outils reliés à ce dernier. Et actuellement ça en fait en stocke dont l'excellent DTrace.

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par SmileSoft Voir le message
    matlab est mieux adapté pour les maths, vue qu'il est basé sur le calcul des matrices,[...]
    scilab est basé exactement sur la même chose… mais c'est faux que c'est mieux adapté aux maths pour ça. Personnellement, je suis logicien et les matrices m'ont toujours sortie par les yeux. Maple serait plus à mon goût car prévu pour du traitement symbolique. Et ça aussi c'est des maths, mais d'une saveur différente c'est tout.

    Comme partout en programmation, tout dépend du travail à faire.

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    S'il s'agit d'un problème bourré de structures matricielles, le mieux c'est scilab, matlab si on a les moyens, ou octave - clone de matlab gratuit. Il y a des chances que des parties de votre problème soient déjà codé par d'autres et de manière efficace. Faire des graphes colorés sera probablement assez simple. La manipulation de tableaux multidimensionnels est une partie de rigolade dans ces produits puisque c'est le coeur de leur métier.

    Fortran est aussi un bon choix, mais le problème, c'est que les innombrables bibliothèques sont plutôt en fortran 77, et bon, Fortran 77, il faut aimer. Moi, j'aime pas.

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par thierry.chich Voir le message
    [...]
    Fortran est aussi un bon choix, mais le problème, c'est que les innombrables bibliothèques sont plutôt en fortran 77, et bon, Fortran 77, il faut aimer. Moi, j'aime pas.
    En informatique, on ne choisi pas un langage parce qu'on l'aime en général. C'est dommage, mais c'est ainsi.

  16. #16
    Invité de passage
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Par défaut
    Bonjour à tous,

    J'utilise actuellement Matlab en tant que mathématicien. Donc les calculs matriciels me sont favorables.

    Par contre, j'ai dans mes calculs un terme très petit en exponentiel. J'aimerais donc savoir le plus petit nombre possible sur les différents languages de programmations afin de pouvoir comparer.

    Sur Matlab, le plus petit nombre possible que j'ai trouvé est
    exp(-745.1332191) = 4.9407e-324.

    Merci de votre aide.

  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par le_voisin Voir le message
    et que pensez vous de matlab ou scilab ?
    en terme de vitesse ?
    Les benckmarks que j'ai vus donnent Python vainqueur sur Matlab. Dans l'université où je travaille, on utilise Python pour faire de la modélisation en mécanique des fluides avec des parties de programme réécrites de manière ciblées en C ou plus souvent en C++. Je connais de plus en plus de physiciens qui utilisent cette stratégie. L'ère du tout C++ ou du tout Fortran pour le calcul scientifique a amha ses plus beaux jours derrière elle.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2015, 11h16
  2. Quelle langage pour programmer en code à barre
    Par tarbala dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 30/09/2013, 00h51
  3. Réponses: 31
    Dernier message: 01/08/2012, 23h34
  4. Logiciel à Interface Windows : Quelle langage de programmation ?
    Par woresa dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 23/03/2012, 17h51
  5. Commencer la programmation avec le langage Java ?
    Par von_magnus dans le forum Débuter
    Réponses: 14
    Dernier message: 09/03/2004, 22h19

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