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 :

Langage adapté aux mathématiques


Sujet :

Langages de programmation

  1. #1
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut Langage adapté aux mathématiques
    Salut,

    en plaine revision de mes infos en maths, je me suis aperçu qu'implémenter les algorithmes / exercices était une bonne manière de comprendre et de retenire.

    connaissant pas mal de laqngages je me demande le quel est le plus adapté pour les mathématiques. Un langage que je pourait utiliser pendant toutes mes études.

    Le C++ a comme aventage d'être puissant est rapide, mais le désavantge d'être moin sure que d'autre est ne me semble pas très adapté au maths (je me trompe peut être mais c'est justement pour cela que je vous pose cette question).

    Le pascal me semble plus sure que le C++ mais soufre d'un manque de bibliothéque de calculs (pas de bigInt).

    J'essay d'éviter la VM Java pour mes petits projets personnels.

    Le lisp m'a plut car il support les bigInt bigFloat par defaut, support les fractions ainsi que d'autres détails qui le rende attractif pour les maths. Seul incovégnient : sa lenteur.

    L'Ocaml m'a l'air interessant, mais je ne connait pas assez bien pour en parler.

    Le Python soufre d'une certaine lenteure.

    Donc j'aimerait entendre l'avis d'experts, surtout de ceux qui travail dans des domaines proches des maths.

    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    tout dépend de ce que tu appelles mathématiques...


    si ton but est de faire du calcul numérique de manière rapide, regardes fortran.
    si ces calculs sont facilement vectorisables, regardes matlab

    si tu fais des essais sur des algos sans trop t'intéresser à la représentation machine, en ayant des reconnaissances de motifs, etc ; regardes les langages ocaml, haskell et scheme

    si tu veux avancer dans un espace de contraintes, sans chercher l'algo qui va résoudre le problème, regardes prolog


    perso, java et python peuvent être rapides pour faire du calcul numérique... suffit juste de bien s'y prendre

  3. #3
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si tu fais des essais sur des algos sans trop t'intéresser à la représentation machine, en ayant des reconnaissances de motifs, etc ; regardes les langages ocaml, haskell et scheme
    C'est à peu près ce que je cherche à faire.

    En fait, le plus important me semble d'avoir des structures de donnés facilitant la manipulations d'objet mathèmatique tel que les grands nombres (entiers et réel) les matrices ... Avec une préférence pour les langages compilés.

  4. #4
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    FORTRAN 90 et 95 (et non FORTRAN 77) autorisent les calculs vectoriels exactement comme en Matlab, à ceci près que Matlab est interpèté etque FORTRAN est compilé.

    FORTRAN est le langage de choix pour le numérique : il existe de très nombreuses bibliothèques, comme la Netlib disponible ici :

    http://netlib.enseeiht.fr/

    Toutes les applications sérieuses faisant intervenir du numérique utilisent FORTRAN. Le langage est, de plus, pas très compliqué à apprendre.

  5. #5
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    Le Fortran me semble un peu trops vieux, sa syntaxe assez désagréable (avis personnel) et semble manquer de bon compilateur gratuit et de bibliothèque pour le GUI.

  6. #6
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par etranger
    semble manquer de bon compilateur gratuit

    ben g77 te remerciera...

  7. #7
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    Dsl , j'aurais due spécifier : compilateur 90 ou 95.

    Il y'en a certe, mais en fouillant dans le repertoir lib de mon g95, y a pas grand monde

    La seul lib pour le GUI qui semble potable est payante (j'ai oblier le nom).

    Il me semble qu'ocaml est le meilleur compromis jusqu'à maintenant. C'est juste un peut dure de refléchir en fonctionel quand on en a jamais fait.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par etranger
    La seul lib pour le GUI qui semble potable est payante (j'ai oblier le nom).
    • Primo, je ne vois pas ce que vient faire du GUI dans un programme de maths.
    • Secondo, Fortran est parfait, et les compilos existent (voir ici-même http://www.developpez.net/forums/arc.../t-235529.html).
    • Sinon pour du calcul c'est du C le mieux, après la formalisation de Fortran. Et je crois qu'il existe des biblios toutes faites et gratuites pour le calcul matriciel (voir Graphics Gems je crois).


    Tout choix possède des avantages et des inconvénients.

    Le langage naturel pour les maths est Fortran. Puis vient C pour la vitesse. Ensuite les choses comme MatLab ou R pour l'abstraction, mais par contre nettement plus lents et moins souples.

  9. #9
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    Citation Envoyé par souviron34
    Le langage naturel pour les maths est Fortran. Puis vient C pour la vitesse.


    perso, j'ai toujours entendu dire que les compilateurs fortran (<=77) étaient bien plus aggressifs que les compilateurs C (trop généralistes), et que les performances du fortran chutaient si l'on passait au 90 ou 95

  10. #10
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par souviron34
    * Primo, je ne vois pas ce que vient faire du GUI dans un programme de maths.
    * Secondo, Fortran est parfait, et les compilos existent (voir ici-même http://www.developpez.net/forums/arc.../t-235529.html).
    * Sinon pour du calcul c'est du C le mieux, après la formalisation de Fortran. Et je crois qu'il existe des biblios toutes faites et gratuites pour le calcul matriciel (voir Graphics Gems je crois).
    Tu a peut être raison, la lib GUI c'est parce que je trouve les applications graphique plus belle à regarder et c'est toujours utile de pouvoir tracer un graphe dessiner une coube,etc ... Mais bon, c'est un plus.

    Comme tu semble connaitre le fortran, il y a une question que je me pose :

    Pourquoi le fortran est il si utiliser pour les application mathematic, est ce juste par ce qu'il supporte par defaut les nombres complexs + sa rapidité (+ raisons historiques) ? ou y a t'il d'autre raison ?

    en tout cas merci pour vos renseignements.

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par gorgonite
    perso, j'ai toujours entendu dire que les compilateurs fortran (<=77) étaient bien plus aggressifs que les compilateurs C (trop généralistes), et que les performances du fortran chutaient si l'on passait au 90 ou 95
    Pas vraiment. C'est juste que dans les très gros programmes depuis une 20 aine d'années on mélange souvent les 2.

    Disons que dans une application généraliste qui a besoin de calculs, ce sera plus facile (la plupart des programmeurs connaissent à peu près les bases du C, ou tout au moins comprennent en gros quand ils voient un programme) , cela s'interface correctement avec beaucoup d'outils graphiques, etc..

    De plus, dès qu'il y a des chaînes ou de la récursivité, le C est plus facile.

    Maintenant, le fortran est naturel pour les maths, et en général les programmes réellement orientés calculs sont en C.

    Mais l'optimisation est nettement moins facile en Fortran qu'en C.

    Par contre, depuis F90 , le calcul matriciel est inclus..

    Ce que je voulais dire par rapport à la vitesse, c'est juste que pour une application non dédiée calcul, il est très souvent NETTEMENT plus facile de faire les calculs en C que d'interfacer à un module de Fortran (dautant plus avec les overhead de communication, etc..).

    Maintenant en ce qui concerne la mesure physique de la vitesse entre 2 programmes compilés faisant les mêmes caculs, je n'en ai aucune idée...

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par etranger
    Tu a peut être raison, la lib GUI c'est parce que je trouve les applications graphique plus belle à regarder et c'est toujours utile de pouvoir tracer un graphe dessiner une coube,etc ... Mais bon, c'est un plus.

    Comme tu semble connaitre le fortran, il y a une question que je me pose :

    Pourquoi le fortran est il si utiliser pour les application mathematic, est ce juste par ce qu'il supporte par defaut les nombres complexs + sa rapidité (+ raisons historiques) ? ou y a t'il d'autre raison ?

    en tout cas merci pour vos renseignements.

    1. Primo, pour le GUI, tu as des outils comme gnuplot qui sont excellents..

    2. Secondo, pour répondre à ta question, il y a plusieurs élements (aussi importants les uns que les autres) :


      • Le Fortran a été fait POUR les maths (FORmula TRANslator). A part les instructions Entrées/sorties etc. on écrit une équation comme on l'écrit sur le papier. Il y a effectivement les nombres complexes, et depuis F90 le calcul matriciel (qui peut battre l'expression C = A * B où C, A, et B sont des matrices ???????)

      • La plupart des scientifiques l'apprennent à l'Université (c'est tellement simple... Pour ma part je n'ai eu que 3h d'introduction au Fortran avant d'être lancé en thèse sur la fabrication dun programme de traitement d'image !!!).

      • C'est un des premiers langages informatiques

      • Au vu de son ancienneté, des dizaines de millions de lignes de code et des bibliothèques ont été fabriquées et TESTEES (donc DEBUGGEES) depuis des dizaines d'années, et l'effort à faire pour les traduire/tester/débugger est trop conséquent (et inutile) pour que quelqu'un s'y lance...
        [Un exemple : la librairie mathématique du CERN, IMSL, créée en .. 1967, marche toujours.. Et contient tout un tas de fonctions de maths qui ont ... 40 ans de tests.... et fait je crois 4 à 5 millions de lignes.. Qui aurait envie de refaire ça juste pour le plaisir que ce soit dans un autre langage ???????? Sans parler des bugs inévitables...]

      • Les responsables de laboratoire ou de recherche l'ont appris, et sont donc capables de surveiller/contrôler le travail des étudiants.

    Bon, là c'est juste ce que j'ai à dre comme ça, mais il y a d'autres arguments

    Et je pense que l'argument de la taille, la fonctionalité, et la solidité des bibilothèques existantes est l'argument prépondérant...

  13. #13
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Citation Envoyé par gorgonite
    perso, j'ai toujours entendu dire que les compilateurs fortran (<=77) étaient bien plus aggressifs que les compilateurs C (trop généralistes), et que les performances du fortran chutaient si l'on passait au 90 ou 95
    C'est vrai. Là où je vais commencer à travailler Jeudi matin (l'INRIA Rocquencourt), ils ne veulent pas entendre parler de FORTRAN 90 ou supérieur, les compilateurs n'étant pas encore assez optimisants selon eux : C et FORTRAN 77 sont la règle.

    Ensuite, il est vrai qu'optimiser du FORTRAN est plus difficile qu'optimiser du C, à cause de ces structures à la con que sont les retours multiples de fonctions ou les entrées multiples de fonctions.

    Ensuite, j'ai mentionné la Netlib, disponible ici, qui contient entre autres des Blass permettant le calcul matriciel et vectoriel de très haute performance :

    http://netlib.enseeiht.fr/

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    C'est vrai. Là où je vais commencer à travailler Jeudi matin (l'INRIA Rocquencourt), ils ne veulent pas entendre parler de FORTRAN 90 ou supérieur, les compilateurs n'étant pas encore assez optimisants selon eux : C et FORTRAN 77 sont la règle.
    Oui mais de l'autre côté j'ai travaillé à la météo (qui est un des consommateurs les plus exigeants en calcul).

    Le Canada a récupéré un code de calcul des vagues dans l'océan fait par les Anglais en Fortran 77.

    Le passage en Fortran 90 a permis une accélération d'un facteur 30.. Sans compter la parallélisation et l'inclusion de nouvelles "features". Ce n'est pas moi qui l'ai fait, mais le météorologue en charge de ça. Cependant ça fonctionne opérationnellement sur leurs machines depuis 6 ans.

    Donc je ne suis pas si certain que ça de la réalité de la chose... (vu que la demande était de fournir des prévisions, pour envoyer la Sécurité Civile ou détourner les navires , les temps de réponse sont essentiels, et le choix a été F90..).

    Je laisserais donc pour ma part des points d'interrogation sur ce sujet...

  15. #15
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Peut-être que le fait de le coder en FORTRAN 77 (langage très simple) complexifiait les algorithmes, et que le passage en FORTRAN 90 a permis de simplifier le tout et de gagner en performances... ou peut-être que les mecs qui l'ont écrits étaient tout simplement doublement manchots !

    Il y a un fait intéressant avec FORTRAN : ce ne sont pas des informaticiens qui écrivent les codes, mais des mathématiciens... et ça, ça peut faire très mal parfois !

    Mais peut-être aussi que dans l'exemple que tu cites il n'y a pas de problèmes... mais ça me paraît chelou en tous cas... un problème de compilateur ? Car sur ce point on en a aussi vu des vertes et des pas mûres !

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Il y a un fait intéressant avec FORTRAN : ce ne sont pas des informaticiens qui écrivent les codes, mais des mathématiciens... et ça, ça peut faire très mal parfois !
    bah ya pas qu'avec Fortran.. J'ai utilisé au moins 17 langages, 8 ou 10 plateformes... Et j'ai produit des codes industriels, fiables, passant les exigences...


    Ce qui t'intéresse, c'est le but. L'outil ça s'apprend vite en regardant le bon bouquin..

    Et très souvent les codes faits par des physiciiens/mathématiciens sont plus beaux que la plupart de ceux faits par les informaticiens... (découpage correct en fonctionalités, paramètres ayant un nom correct, et même optmisations "physiques" ).

    C'est comme un pilote de rallye. Oui il a besoin de mécanos, mais si il sait pas comment "tuner" lui-même son moteur, ni comment ça marche, il ira pas loin... (suffit que le jour de la course son pote mécano se marie ou soit malade ).

  17. #17
    Membre habitué Avatar de baroudi
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 117
    Points : 139
    Points
    139
    Par défaut
    les langages C ou C++ sont selon moi des bons langages pour les math , quand j'etais etudiant nous les avons souvent utiliser pr traiter ds matrices, des operations sur des polynomes, representer des theories mathematiques ., et faire du traitement d'images(qui est basé à fond sur des maths).. etc

  18. #18
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    J'ai commancé a apprendre le fortran, ça a l'air interessant.

    En plus, grace aux dll, je peu facilement mixer avec Delphi pour l'interface.

    Je marque donc le sujet comme résolu, mais si quelqu'un a quelque chose à ajouter, qu'il n'hésite pas (genre librairie vraiment utile ...).

  19. #19
    Membre actif
    Avatar de mathk
    Inscrit en
    Décembre 2003
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 211
    Points : 233
    Points
    233
    Par défaut
    Pourquoi personne n'a pense a un language fonctionnelle.
    Ils me semble qu'ils sont parfait pour cette situation:

    Haskell, Common Lisp, Scheme, OCaml...

  20. #20
    Membre actif Avatar de etranger
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2004
    Messages : 333
    Points : 268
    Points
    268
    Par défaut
    Il suffit de reguarder la première page

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/02/2010, 22h15
  2. Réponses: 2
    Dernier message: 15/01/2010, 18h52
  3. Réponses: 2
    Dernier message: 15/01/2010, 18h52
  4. Réponses: 2
    Dernier message: 15/01/2010, 18h52
  5. [Avis] Langages/Framework adaptés aux applications GUI multi-plateforme
    Par izakiel dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 07/09/2009, 04h50

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