• # \\ au lieu de //

    Posté par  (site web personnel) . Évalué à 5.

    Il faut lire http://linuxfr.org au lieu de http:\\linuxfr.org.

    Les mauvaises habitudes sont tenaces.

    Jellyroll

  • # Quelques mots sur Maxima

    Posté par  (site web personnel) . Évalué à 10.

    Je saute sur l'occasion pour dire le point auquel Maxima est un logiciel de qualité, auquel le module imaxima pour Emacs fournit une interface très efficace (y'a aussi wxmaxima et kayali, mais j'ai pas testé).

    Je l'aime encore plus après avoir du utiliser l'infâme Mapple à la fac. Deux exemples concrets :
    * le développement de f(x) en une série de Taylor d'ordre 4 et en 0 (approximation près de 0 d'une fonction par un polynôme d'ordre 4, très utile) :
    mapple : convert(series(f,x,0,4),polynom);
    maxima : taylor(f,x,0,4)
    * déterminer l'opérateur d'une expression (ici +) :
    mapple : whattype(1+2)
    maxima : op(1+2)
    Ce ne sont pas des exemples arbitraires mais deux premiers exercices de mon cours de découverte de Mapple à Lyon1.
    (les screenshots de deux exercices complets sur iMaxima et Mapple sont disponibles ici : http://98111.free.fr/pple2xima/ )

    Quand on ajoute à ça que Mapple est propriétaire, très cher, et que l'interface est en Java; alors que Maxima est libre, codé en Lisp avec des interface pour tout les goûts, le choix est vite fait.
    En plus, l'utilisation de Maxima est autorisée pour l'Agrégation.
    • [^] # Re: Quelques mots sur Maxima

      Posté par  (site web personnel) . Évalué à 3.

      Et sinon, tu as essayé maple ? (avec un seul p)

      Je ne suis pas sur que plus de noms de fonctions pour faire les mêmes choses soit un avantage. Genre pour les gens qui ne connaissent pas Taylor, tu as expliqué que c'était une approximation polynomiale. Les gens qui ne connaissent pas Taylor ne trouveront pas la fonction dans maxima mais ils peuvent la trouver dans maple.
      Et si tu l'utilises souvent et que ça te fatigue d'écrire 38 fois tout ça, tu peux définir taylor à partir de convert, ce n'est pas bien compliqué.

      En regardant les screenshots, j'ai l'impression que series (maple) est exactement pareil que taylor (maxima).
      • [^] # Re: Quelques mots sur Maxima

        Posté par  (site web personnel) . Évalué à 2.

        Et sinon, tu as essayé maple ? (avec un seul p)
        Pourtant Mapple c'est plus appétissant que Maple ! ^.^

        Genre pour les gens qui ne connaissent pas Taylor, tu as expliqué que c'était une approximation polynomiale. Les gens qui ne connaissent pas Taylor ne trouveront pas la fonction dans maxima mais ils peuvent la trouver dans maple.
        Le nom de Taylor, qui est spécifique à l'approximation en question, me parrait bien plus descriptif que le terme générique de "series". "series" ça peut aussi bien être "série de fourrier" ou n'importe quoi.

        En regardant les screenshots, j'ai l'impression que series (maple) est exactement pareil que taylor (maxima).
        La grosse différence c'est que je peut directement tracer la sortie de Taylor pour constater l'écart de l'approximation par rapport à la courbe initiale, alors qu'avec series ça marcherait pas. D'où la "convertion en polynome".

        Et si tu l'utilises souvent et que ça te fatigue d'écrire 38 fois tout ça, tu peux définir taylor à partir de convert, ce n'est pas bien compliqué.
        De manière générale, Mapple propose tout un tas d'opérateur hyper-generiques, à la "convert()", dont le nom est tellement flou qu'il ne veut rien dire et que les arguments en déterminent la portée, le typage et le comportement.

        Même en dehors de ça, là syntaxe est vraiment pourrite : genre pour enlever les "2" de ma liste, je doit faire remove(has,L,2). Ce qui correspond à passer à la fonction remove la fonction "lambda x -> has(x,2)", "has" étant un test d'égalité.
        Tu va pas me dire que c'est normal ou efficace d'avoir à penser en terme de lambda calcul quand on veut juste enlever des chiffres dans une liste. Ni que leur syntaxe représente le lambda calcul de manière intelligible (perso j'ai mis longtemps à comprendre pourquoi ça s'utilisait comme ça).
        Alors oui, c'est sûr, on peut recouvrir toute cette horreur de noms simples à utiliser. Quitte à tout recoder dans le langage interne.
        Mais autant utiliser Maxima (qui est libre touça touça...)
        • [^] # Re: Quelques mots sur Maxima

          Posté par  (site web personnel) . Évalué à 4.

          > Le nom de Taylor, qui est spécifique à l'approximation en question, me parrait bien plus descriptif que le terme générique de "series". "series" ça peut aussi bien être "série de fourrier" ou n'importe quoi.

          Note que ça tombe bien, "series" est une fonction générique. Si tu ne veux que des dev en serie de taylor, il y a une fonction au nom incroyable de "taylor" !
          • [^] # mea-culpa

            Posté par  (site web personnel) . Évalué à 3.

            Note que ça tombe bien, "series" est une fonction générique. Si tu ne veux que des dev en serie de taylor, il y a une fonction au nom incroyable de "taylor" !
            Hum, effectivement, la deuxième phrase de ma critique n'est pas justifiée, et l'exemple est à remplacer par :
            mapple : convert(taylor(f,x,0,4),polynom);
            maxima : taylor(f,x,0,4);

            Qui du coup choque beaucoup moins.

            Désolé.
            Le reste a toujours cours... en toute rigueur faudrais que je remplace mon exemple avec series par un autre, mais j'ai que ces deux exos sous la main. Et puis c'est trop facile de pourrir un logiciel en exhibant autre chose que des cas concrets pris au hasard.
            En fait, on pourrait noter le indents (pour "indeterminates", exercice1) qui tient lieu sous maple de listofvars. C'est bien moche, mais pas aussi structurel que les horreur de type ou les incohérence dans les conventions de nomage.
        • [^] # Re: Quelques mots sur Maxima

          Posté par  . Évalué à 1.

          J'ai eu l'occasion d'utiliser (un peu) maple et (un peu) MuPAD, mais pas maxima.

          Mais de mon souvenir, Maple etait un bonheur a utiliser pour les maths, faire quelques procedures un peu évoluées etc... Langage tres simple, et surtout, tres rapide et extremement puissant. Bref, je trouvais la syntaxe de maple un vrai bonheur (comparé a mupad).

          Je ne connais pas maxima comme je l'ai dit, donc je ne dirais rien dessus. Mais dire que la comande taylor n'existe pas sous maple, est vrai mensonge... Une recherche rapide sur google confirmera ca.

          Apres, bien que la syntaxe soit importante, as tu comparé les performances de l'un ou l'autre ? La différence se trouve souvent ici. Et si elle n'est pas importante pour les TP d'apprentissage, des que tu veux faire quelques trucs un peu sérieux, ca devient essentiel.

          Un exemple autre : dans les logiciels de calculs scientifiques. Il existe Matlab, entierement propriétaire. Octave qui est libre et scilab gratuit développé par l'inria.

          Et bien tu ne me fera jamais utilisé quoique ce soit d'autre que Matlab. C'est cher, c'est vrai. Mais qu'est ce que c'est rapide et puissant. Quelque chose de bien codé en matlab est rapide a l'execution et rapide a developper. Un code C ne sera, généralement, pas vraiment plus rapide car c'est plus dur a coder pour arriver aux memes performances (mais en y passant beaucoup de temps avec les bonnes bibliothèques, on améliore quand meme les choses, mais vu le l'énergie que ca demande, ca vaut pas le coup).

          Donc oui, les logiciels scientifiques sont cher, mais ceux que j'ai utilisé était un vrai bonheur, et ne sont pas destinés aux particuliers.

          Par contre, pour des TP, les équivalents libres ou gratuits sont souvent largement suffisant. La question qui se pose alors est : étant donné que dans l'industrie, il est souvent demandé de savoir utiliser les logiciels proprio, que doit on utiliser en TP ?
          • [^] # Re: Quelques mots sur Maxima

            Posté par  . Évalué à 1.

            Tu mélanges les choux et les carottes. Il n'est pas possible de comparer Matlab (ou Octave) avec Maple (ou Maxima).
            En effet:
            - Maple et Maxima sont des logiciels de calculs formels. Ils peuvent calculer des dérivées, des séries de taylor, résoudre des equations.... en gardant des valeurs exactes. Ils servent donc principalement à faire des maths.

            - Matlab, Octave et Scilab sont plus proches des langages de programmation classiques. Ils ne permettent de réaliser que des calculs numériques (potentiellement en utilisant des valeurs approchés). En fait, tout ce qui est réalisable en Matlab est facilement traductible en C par exemple (souvent en multipliant le nombre de lignes et de bugs par 10). En effet Matlab n'est qu'un langage de programmation optimisé pour les calculs numériques, et les matrices. C'est pour cela que ces trois langages sont plutôt utilisés pour des simulation dans des domaines appliqués (physique, traitement du signal, économie....).
            • [^] # Re: Quelques mots sur Maxima

              Posté par  . Évalué à 2.

              Tu mélanges les choux et les carottes. Il n'est pas possible de comparer Matlab (ou Octave) avec Maple (ou Maxima).

              C'est vrai, Matlab et Maple n'ont rien a voir. Mais ca tombe bien il ne les compare pas. Il dit juste "les logiciels de calculs formels payant sont souvent mieux. Et c'est aussi le cas des logiciels de calculs numeriques."
          • [^] # Re: Quelques mots sur Maxima

            Posté par  . Évalué à 2.

            J'utilise moi aussi matlab, parfois scilab, et très souvent le C/C++. Les programmes en C iront plus vite que matlab: la preuve, c'est que la société mathworks (qui édite matlab), vend aussi un compilateur qui permet de transformer les macros en exécutables. On obtient ainsi un programme environ 10 fois plus rapide.

            L'intérêt d'utiliser matlab/scilab est dans la représentation des données et non pas dans la rapidité d'exécution. Ceci dit, avant de trouver que c'est trop lent, faut quand même avoir de sacrés calculs à faire.
            • [^] # Re: Quelques mots sur Maxima

              Posté par  . Évalué à 2.

              Oui, je suis entierement d'accord avec toi. Je voulais simplement dire qu'un code matlab correct, aura une rapidité d'execution vraiment acceptable. Pour avoir la même rapidité en C, il faut savoir très bien coder, ce qui n'est pas le cas de tout le monde, et qui prend du temps. Certaines personnes auront un code C plus lent qu'un code matlab...

              L'avantage de matlab est la rapidité de developpement d'un prototype. Et si c'est lent en matlab, il faut surement revoir l'algorithme lui même, plutot que de ce dire "c'est matlab qui est lent, en C, ca sera plus rapide".
          • [^] # Re: Quelques mots sur Maxima

            Posté par  . Évalué à 1.

            Et bien tu ne me fera jamais utilisé quoique ce soit d'autre que Matlab. C'est cher, c'est vrai. Mais qu'est ce que c'est rapide et puissant. Quelque chose de bien codé en matlab est rapide a l'execution et rapide a developper. Un code C ne sera, généralement, pas vraiment plus rapide car c'est plus dur a coder pour arriver aux memes performances (mais en y passant beaucoup de temps avec les bonnes bibliothèques, on améliore quand meme les choses, mais vu le l'énergie que ca demande, ca vaut pas le coup).

            Donc oui, les logiciels scientifiques sont cher, mais ceux que j'ai utilisé était un vrai bonheur, et ne sont pas destinés aux particuliers.


            Il me semble qu'Octave peut être aussi rapide et puissant que Matlab avec "quelque chose de bien codé". En gros, tout ce que tu sais écrire vectoriellement sera très rapide (comme sum(M), où M est un vecteur), tandis que les boucles sont lentes (comme faire une boucle sur les coordonnées de M). Matlab est plus performant de ce côté-là parce qu'il contient un compilateur à la volée ("just in time", JIT) pour rattraper la lenteur des boucles. Mais ça ne fait qu'empêcher de prendre des bonnes habitudes et d'écrire vectoriellement.

            Il y a aussi une question d'options de compilation. Je doute que toutes les distributions se valent dans ce domaine. Pour pousser Octave dans ses retranchements, il faut le compiler avec ATLAS, BLAS, LAPACK et compagnie. Ce n'est probablement pas partout le cas, et c'est dommage.

            étant donné que dans l'industrie, il est souvent demandé de savoir utiliser les logiciels proprio, que doit on utiliser en TP ?


            Tu crois qu'ils utilisent Maple dans l'industrie ? J'en doute. C'est quand même pour les calculs formels, hein ! C'est pas du calcul de structure...
            Matlab ? Ça mérite d'être vérifié aussi. "Industrie" pour moi est synonyme de développement, conception. Matlab est peu utile dans ce cas. Il l'est plus dans le domaine de la recherche, et là je trouve que les laboratoires publics en particulier pourraient utiliser le libre bien plus.
            • [^] # Re: Quelques mots sur Maxima

              Posté par  . Évalué à 4.

              Matlab est énormément utilisé dans l'industrie, ou plus exactement simulink. Il suffit de regarder toutes les offres d'emplois ou de stage qui demande de savoir l'utiliser.

              Pour l'utilisation du libre dans le public a la place de matlab, pour l'instant je doute que les equivalents offrent autant de possibilité. Matlab permet de developper une interface graphique rapidement et efficacement. La plupart des toolbox matlab n'ont pas d'équivalent chez les autres, et matlab fournit en standard tout l'environement de developpement avec debuggeur etc..
              Vraiment, matlab est un logiciel formidable, et je n'ai rien a lui reprocher. D'autant que la plupart des codes des fonctions sont disponibles, ce qui est l'aspect le plus important pour les chercheurs.
              Le probleme est aussi la : matlab est utilisé partout, donc les codes sont disponibles en matlab. Meme si octave est souvent parfaitement compatible, des fois ca coince.

              Pour maple dans l'industrie, ca doit etre beaucoup plus rare, je te l'accorde.
              • [^] # Re: Quelques mots sur Maxima

                Posté par  . Évalué à 2.

                Ah effectivement j'avais fait un racourci et oublié Simulink, qui n'a sans doute pas d'équivalent libre, pas plus que LabView d'ailleurs (puisque tu parles d'interface graphique). Merci de la faire remarquer.

                la plupart des codes des fonctions sont disponibles, ce qui est l'aspect le plus important pour les chercheurs.


                Justement, en terme de licence, c'est loin d'être bien ! Les codes sont disponibles, mais sont-ils réutilisables ? Utiliser Matlab, c'est aussi s'enfermer... Bien entendu, en tant qu'employé, on ne choisit pas forcément et c'est dommage.
    • [^] # Re: Quelques mots sur Maxima

      Posté par  . Évalué à 2.

      J'espère que tu dis pas sérieusement à tes étudiants "Maxima c'est mieux parce que je préfère la syntaxe"
      • [^] # Re: Quelques mots sur Maxima

        Posté par  (site web personnel) . Évalué à 6.

        Non... si un jour j'ai des étudiants, je leur servirais le pamphlet en entier.
        Le sujet du premier TP seras "Pourquoi le chargé de TP supporte pas Maple" (avec diatribe pro-GPL4 incluse), et je leurs fournirai moultes remarques mesquines sur le logiciel au fur et mesure du semestre.

        Heureusement, j'aurais jamais le niveau pour enseigner.
    • [^] # Re: Quelques mots sur Maxima

      Posté par  . Évalué à 2.

      Pour avoir une jolie interface à maxima, je conseille texmacs !
  • # etch

    Posté par  . Évalué à -3.

    Il est où le paquet pour etch ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.