Home
GNU Octave & Octave Forge, Logiciel libre de calcul numérique
Contents
1. octave sh D faites pointer la variable HOME sur votre dossier de d marrage Octave en utilisant la syntaxe cygarive let tre dossier o lettre d signe la lettre de la partition Windows telle que C D I int grez ventuellement le path ci dessus dans la variable PATH D ajoutez le switch traditional la suite de la com mande de d marrage octave exe pour une meilleure compatibilit de Octave par rapport MATLAB Raccourci de lancement GNU Octave 2 1 73 sur le bureau et dans le menu D marrer gt Programmes gt GNU Octave s lectionnez son ic ne et avec le bouton de lt droite gt choisissez Propri t s puis ditez avec prudence la cible de la fa on suivante D param tre geometry adaptez la taille de fen tre vos besoins p ex 100x45 colonnes x lignes I police de caract re param tre fn nous vous recom mandons la police Fixedsys 9 plus lisible que Lucida Console 12 couleur du curseur c est le param tre cr color pour augmenter la taille de la m moire de scroll p ex 1000 lignes il faudrait ajouter le param tre s1 1000 Comme dans sa version Linux Octave supporte aussi un m canisme de prologue utilisateur Le fichier nomm octaverc se trouvant dans le dossier racine de l utilisateur d fini par la variable HOME sera ex cut automatiquement chaque lancement de Octave SP CIFICIT S DE OCTAVE PAR RAPPORT MAT LAB Apr s avoir d crit les sp cifi
2. s sur ce logiciel nom qui ma donc ici rien voir avec la musique Repens e d s 1992 par John W Eaton dans le sens d un environnement de calcul num rique plus g n ral et plus flexible la version 1 0 de GNU Octave d velopp e sous Unix est sortie en f vrier 1994 Elle fait partie du projet GNU et est distribu sous licence GPL La version courante porte le num ro 2 1 73 mars 2006 et la version de d veloppement le num ro 2 9 8 ao t 2006 Parall lement et en compl ment GNU Oc tave le projet communautaire Octave Forge ainsi nomm car h berg sur la plate forme Source forge net vise coordonner et regrouper au sein d un GNU Octave Repository le d veloppement de fonctions compl mentaires principalement orient es dans le sens d une richesse fonctionnelle approchant celle de MATLAB avec ses toolboxes les plus courantes 4 htip www mathworks com company newsletters news_notes clevescorner dec04 html gt htip www gnu org sofiwareloctavelabout html 6 http www gnu org sofiwareloctavel anciennement http www octave org 7 btip www gnu org bttp loctave sourceforge net of x El GNU Octave 2 1 73 GNU Octave version 2 1 73 1686 pc cygwin Copyright C 2996 John W Eaton This is free software see the source code for copying conditions There is ABSOLUTELY NO WARRANTY not even for MERCHANTIBILITY or FITNESS FOR PARTICULAR PURPOSE For details type
3. une logique commerciale et qui soient ouvertes en terme de formats de donn es et de code source garantie de p rennit des donn es C est ainsi que des progiciels analogues MATLAB ont vu le jour GNU Oc tave tant celui qui offre actuellement le meilleur degr de compatibilit par rapport MATLAB clone MATLAB L int r t des logiciels libres est particu li rement vident dans l enseignement avec l av nement des aptops voir la politique Poseidon de l EPFL en ceci qu ils noccasionnent pas de frais de licences que les fonctionnalit s offertes sont largement suffisantes et qu ils sont devenus tr s confortables d utilisation et robustes Cet article est le premier d une s rie de contributions sur Octave para tre dans ce journal Il ne s agit pas d une in troduction au langage MATLAB Octa 3 ve mais plut t d une pr sentation des caract ristiques principales d Octave en r f rence MAT LAB D autres articles d criront les exp riences r alis es avec Octave l EPFL dans l enseignement son usage dans des travaux de recher che le d veloppement de fonctionnali SUITE EN PAGE 7 Outre Octave l un des plus connus est Scilab htp www scilab org Pour cela on se r f rera par exemple au support de cours MATLAB Octave http enacit1 SUITE DE LA PREMI RE PAGE t s suppl mentaires l usage de grapheurs alternatifs Octaviz OctPlot le packaging r alis
4. GNU Octave ou les extensions Octave Forge est donc Gnuplot Les fonctions graphiques de base bien connues sous MATLAB fonctions de trac telles que plot plot3 text contour mesh meshc ou de mise en forme axis grid x y zlabel legend title font ainsi automati quement appel ce back end Gnuplot Dans ses versions 3 0 et 4 0 Gnuplot reste h las essen tiellement orient dessin de lignes traits Il ne se pr te donc pas bien aux types de graphiques dans lesquels des surfaces doivent tre colori es p ex fill pie bar surf Gnuplot simule alors le remplissage par un hachurage Cela voluera on l esp re avec Gnuplot 4 2 Mais la bonne nouvelle c est que louverture de Octave permet de faire usage d autres moteurs graphiques Parmi les divers projets d interfa age de grapheurs alternatifs efforts principalement r alis s sous Linux ceux qui sortent actuellement du lot sont IE Octaviz wrapper donnant acc s aux classes VTK Visualization ToolKit librairie 3D il est int gr la distribution Octave Poseidon EPFL sous Fedora I Octplot grapheur actuellement 2D ult rieurement 3D I epsTK encapsulated postscript toolkit jeu de fonc tions pour cr er des graphiques 2D tr s sophistiqu s au format EPS n cessitant le logiciel libre Ghostscript pour la visualisation l cran il tait int gr dans les anciens paquets Octave stand alone 2 1 42 pour Windows I matpl
5. dans le cadre du projet Poseidon Fedora et sur d autres plates formes Debian Toute autre contribution sera la bienvenue HISTORIQUE L origine de MATLAB remonte la fin des ann es 70 D velopp e en Fortran par Cleve Moler Uni of New Mexico et s appuyant sur les librairies LINPACK et EISPACK la pre mi re version de MATLAB comptait environ 80 fonctions et le seul type de donn es support tait la matrice La soci t The Math Works a ensuite t fond e en 1984 et les releases du produit se sont succ d es MATLAB version 1 sous MS DOS 1984 v2 avec support Unix 1986 v3 1987 v3 5 avec graphiques noir blanc filaires 1990 v4 avec graphiques 2D 3D couleur 1992 v5 avec debugger profiler GUI builder et graphiques avec clairage et ombrage 1996 v6 2000 v6 5 avec just in time compilation et support MacOS 2002 v7 2004 Au cours de cette volution les domaines d utilisation de MATLAB se sont largis avec l apparition de CNU Ocrave amp Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB ARCHITECTURE DE OCTAVE GNU Octave doit donc tre vu comme le noyau du sys t me Octave et Octave Forge comme un ensemble coh rent d extensions am liorant son degr de compatibilit par rap port MATLAB Dans la suite de cet article et par souci de simplification on d signera sous le terme g n rique Octave l ensemble GNU Octave extensi
6. localite Geneve enfants rnaud Camille tel prive tel prof fig 9 Tableau de STRUCTURES PERSONNE 2 L MENTS Le tableau de structures illustr par la figure 9 pourrait tre initialis de la fa on suivante E avec personne nom Dupond la structure est mise en place et contient le nom de la 1 re personne v rifiez avec whos personne E personne prenom Jules ajoute le champ prenom cette structure et d finit le pr nom de la personne I et ainsi de suite pour les autres champs personne age 25 personne code postal 1010 personne localite Lausanne personne tel prive 021 123 45 0 Sels I on peut ce stade v rifier le contenu de la structure en frappant personne I lajout d une seconde personne ce tableau de structures se ferait avec personne 2 nom Durand person ne 2 prenom Albertine etc I pour d finir les enfants de cette seconde personne on peut cr er un champ enfants de type tableau cellulaire voir plus bas en d finissant les pr noms avec per sonne 2 enfants Arnaud Camille On acc de ensuite aux l ments de la structure ainsi I personne 1 tel prive retourne le No de t l phone priv de la 1 re personne pbersonne 2 enfants 1 retourne le nom du ler enfant de la 2e personne cell tab2 personne nom retourne l objet cell tab2 de type tableau cellulaire contenant l ensemble des noms de tous les in
7. peuvent s av rer utiles La liste des recom mandations qui suit est cependant loin d tre exhaustive On s efforcera de n utiliser que les fonctions et param tres communs aux deux environnements Quelques exemples I Sous MATLAR utiliser les op rateurs au lieu des fonctions plus minus mtimes utiliser les op rateurs relationnels au lieu des fonctions ea ne utiliser les op rateurs logiques amp au lieu des fonctions not and Obes I Sous Octave d limiter les cha nes par des apostrophes et non des guillemets ne pas utiliser les op rateurs et de pr post incr mentation d cr mentation la mani re du langage C d clarer les fonctions et utiliser les structures de contr le avec la syntaxe MATLAB pas de endfor endwhile ne pas utiliser les stes Octave mais plut t les tableaux cellulaires I Le site de Paul Kienzle grand contributeur Octave Forge propose une int ressante Octave Matlab Com patibility Database Notre cours Introduction MATLAB et Octave qui fait syst matiquement le parall le entre Octave et MATLAB peut galement rendre service dans cette perspective Pour des scripts interactifs on utilisera de pr f rence les fonctions classiques de dialogue alpha num rique avec l utilisateur disp fprintf input menu warning error pause waitbar plut t que les fonctionnalit s MATLAB sophistiqu es d laboration de GUI interface utilisateur
8. warranty Additional information about Octave is available at http wuw octaue org Please contribute if you find this software useful For more information visit http wwu octave org help wanted html Report bugs to lt bugBoctave org gt but first please read http wuuu octave org bugs html to learn how to write a helpful report gt gt A 1 3 4 2 2 1 4 2 52 12 2 914 gt gt B 11 13 18 9 gt gt X1 A B X1 lol x iA gnuplot graph 2 668666 TRE IE 1 00000 ro pos casinus h 666066 3 009009 gt gt X2 inu A B X2 2 086066 1 666066 4 090066 3 666066 gt gt x 0 0 1 2 pi gt gt y1 5in x y 2 CosS x gt gt plot x y1 r 7 sinus x y2 b cosinus gt gt label x ylabel y gt gt title Fonctions sin x et cos x entre 9 et 2 pi gt gt grid on gt gt axis 9 6 1 1 gt gt fig 1 FEN TRE de commande Ocrave er fEN TRES Gauplor ici sous Windows En raison deses origines Linux le portage de Octave sous Windows s appuie sur Cygwin qui est une API d mulation 9 10 11 12 btip www math mcgill ca loisel octave workshop bttp yaog sourceforge net btip lwww eclipse org btip lwww cyewin com FI 7 26 seprembre 2006 page 7 Linux pour Windows sous licence GPL et maintenue par la soci t Red Hat INSTALLATION SOUS LINUX Bien qu il soit possible d installer Octave en r cup rant les
9. 0 O 30 20 prs de coord 30 30 lt X lt 30 z2 395 rand 1 20 3 s 0 lt 35 POSE xl yl 2l 2x25 COS 2 YSZ SLN Z 2 po x2 Y2 22 D8 semis al atoire 4 Gene on g xlabel x s ylabel y zLlabel z IE gnuplot graph o ME I ba aa x 7 Cos z y 2 sin z o gemis al atoire e 35 RE Te i fig 7 Affichage 3D de lignes er semis de points F ONCTIONNALIT S M CONNUES D OCTAVE ET DE MATLAB Bien que l objectif de cet article ne soit pas une intro duction au langage MATLAB Octave nous pr sentons ici quelques fonctionnalit s souvent m connues des usagers coutumiers de MATLAB qui illustrent la puissance de Octave et son bon niveau de compatibilit par rapport MATLAB FI 7 26 seprembre 2006 pace 12 CNU Ocrave Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB TABLEAUX MULTIDIMENSIONNELS Support s depuis la version 2 1 51 de Octave les tableaux multidimensionnels multidimensional arrays ND arrays sont des matrices de plus de 2 dimensions c est dire ayant trois indices ou davantage Un tableau 3 dimensions est ainsi un empilement de matrices 2D de dimensions identiques voir figure 8 un tableau 4 dimensions pourrait tre vu comme un vecteur de tableaux 3D de dimensions identiques etc l ment B 1 2 3 B 2 Pi B 1 fig 8 Exemple d un t
10. 2D ou 3D Sous Windows une fen tre Gnuplot appara t galement celle ci tant initialement repli e dans la barre de t ches il s agit de la console dans laquelle d filent les vraies commandes Gnuplot d coulant des fonctions graphiques Octave destin es la fen tre gra phique Attention sous Windows toujours ces deux fen tres Gnuplot ne doivent pas tre referm es manuellement par leur case de fermeture engendre des blocages lorsque l on g n re d autres graphiques durant la session Octave mais plut t via la commande closeplot Octave active automatiquement le mode souris de Gnu plot On peut aussi faire cela manuellement avec la touche lt m gt bascule d activation d sactivation dans la fen tre graphique Gnuplot ou utiliser les commandes set mouse resp unset mouse dans la fen tre de commande Gnuplot Par un lt cliquer glisser gt avec la souris dans la fen tre de graphique D pour un graphique 2D zooms interactifs pr cis avec lt droite gt glisser lt droite gt outre la commande axis pour faire un zoom out on passera la commande axis auto ou le raccourci lt a gt I pour un graphique 3D D lt gauche glisser gt rotation 3D D lt milieu d plac horizontal gt zoom in out uti liser lt ctr1 gt pour graphiques complexes D lt milieu d plac vertical gt changement d chelle en Z combiner avec lt ctr1 gt pour des graphiques complexes D lt maj milieu d plac vertic
11. GNU Ocrave amp Octave Forge 2 LOGICIEL LIBRE DE CALCUL NUM RIQUE VISUALISATION INTRODUCTION L volution des outils informa tiques a profond ment influenc les m thodes de travail des ing nieurs et chercheurs ainsi que l enseignement le traitement num rique des donn es et leur visualisation ainsi que les techni ques de mod lisation et de simulation se sont notamment g n ralis s Dans ce domaine un logiciel commercial est devenu ces derni res ann es presque incontournable MATLAB de la soci t The MathWorks Son succ s s explique en particulier par une prise en main facile sa grande richesse fonctionnelle nombreuses toolboxes des types de donn es et fonctions vec toris s et son langage interpr t de haut niveau permettant l utilisateur moyen d laborer ais ment des applications sans recourir aux langages de program mation classiques Fortran C Java d sormais r serv s aux d veloppeurs professionnels Parall lement cette volution le mouvement en faveur des logiciels libres a pris une grande ampleur Il s agit de d veloppements r alis s par la communaut Internet dans le but de se lib rer des logiciels commerciaux et proposer des applications r pondant btip www mathworks com epfi ch cours_matlab ET PROGRAMMATION COMPATIBLE AVEC MATLAB Jean Daniel Bonjour epil ch EPFL ENAC IT er ENAC SSIE avant tout aux besoins des utilisateurs plut t qu
12. IQUE DES COMMANDES Comme pour les shells Unix Octave maintient un historique des derni res commandes pass es le nombre de commandes m moris es tant d fini par la variable history size Celui ci est impl ment par le fichier octave hist se trouvant dans le dossier racine de l utilisateur La commande history permet d afficher les derni res commandes et la commande run history num ro permet de relancer la commande de num ro sp cifi FICHIERS DE WORKSPACE Comme cela a t mentionn il est n cessaire que la variable de fault save format soit positionn e mat bi nary ce que fait l option de lancement traditional si l on souhaite que les fichiers de workspace MAT files g n r s par Octave soient au format binaire MATLAB v5 Contrairement MAT LAB si l on ne sp cifie par l exten sion de nom de fichier mat lorsqu on sauvegarde un works 19 20 btip www gnu org softwareloctave doc interpreter Fonction apparue sous MATLAB apr s la version 5 FI 7 26 seprembre 2006 pace 9 pace commande save le fichier maura pas d extension Il est donc sage de prendre l habitude de sp cifier cette extension si l on souhaite un nommage coh rent avec MATLAB Mais il n est bizarrement pas n cessaire de sp cifier cette extension lorsqu on charge un workspace commande 10ad GNUPLOT GRAPHEUR PAR D FAUT DE OCTAVE Le grapheur par d faut utilis par Octave que ce soit le noyau
13. U Octave sources du noyau de base bttp www gnu org softwareloctave download html I Octave Forge paquetages sources CVS bttp sourceforge net project showrfiles php group_id 2888 Introduction Octave D cours avec comparatif Octave vs MATLAB bttp enacitl epfl chlcours_matlab I manuel GNU Octave sans ext Octave Forge bttp www gnu org softwareloctavel doclinterpreter I suppl ment ce manuel bttp wiki octave org wiki pl Category Manual D manuel des fonctions Octave Forge bttp octave sourceforge net index I FAQ Octave bttp www gnu org softwareloctave FAQ html I description de Octave sur Wikipedia http llen wikipedia org wiki GNU_ Octave Octave versus MATLAB IE compatibility FAQ bttp octave sourceforge net compatibility html D compatibility Database http lusers powernet co uk kienzleloctave matcompat I compatibility list du Wiki Octave bttp wiki octave orglwiki pl MatlabOctaveCompatibility I projets de d veloppement de paquetages bttp wiki octave org wiki pl CategoryCode Les principaux back ends graphiques pour Octave D Gnuplot hp gnuplot sourceforge net D Octaviz http loctaviz sourceforge net E OctPlot hrtp octplot sourceforge net D epsTK hrtp www epstk de COMMUNIQUER AUTOUR D OCTAVE ET CONTRIBUER AU PROJET E Mailing list sur Octave souscription acc s archives bttp www gnu org softwareloctavelarchive html CNU Ocrave Ocrave For
14. a premi re m thode est nettement plus simple et rapide et c est celle que nous d crivons ci apr s Notez aussi que Octave est d j pr install avec la distribution Windows du projet Poseidon EPFL Le paquet stand alone Octave pour Windows se pr sente sous la forme d un z nstalleur t l chargeable depuis Source forget Attention comme il int gre Cygwin ce paquet ne doit pas tre utilis si vous avez pr alablement install Cygwin sur votre machine auquel cas il faut obligatoirement recourir la seconde m thode installation La version actuelle de ce paquet mars 2006 est bas e sur Octave 2 1 73 et le kit d installation se nomme octave 2 1 73 1 inst exe 23 MB Il int gre les composants suivants une fois install Octave occupe env 140 MB pour 8000 fichiers GNU Octave 2 1 73 extensions Octave Forge 2006 03 17 environnement de base Cygwin 1 5 19 Gnuplot graph 4 0 patchlevel 0 avec mouse support diteur de texte Scintilla SciTE 1 68 Une notice d installation d taill e est disponible sous bttp enacitl epfl ch cours_matlabloctave html Une fois l installation termin e nous vous conseillons encore 16 17 18 btip lwww cyewin com btip wiki octave org wiki pl OctaveFor Windows bttp sourceforge net project showfiles php group_id 2888 d effectuer les r glages suivants pour un meilleur confort d utilisation Script de d marrage Octave en principe sous C Program Files GNU Octave 2 1 73
15. ableau 3D de dimension 2x3x3 A titre d exemple pour initialiser le tableau de la figure 2 on peut utiliser les instructions suivantes E B 2 3 3 2 g n re le tableau B de dimension 2x3x3 et initialise tous ses l ments la valeur 2 D B 2 1 1 1 1 1 1 r initialise tous les l ments de la seconde couche de ce tableau 3D la valeur 1 E plussimplement B 1 zeros 2 3 ouB 1 0 r initialise tous les l ments de la premi re couche de ce tableau 3D la valeur 0 Il est bien clair que la plupart des fonctions vectoris es de Octave MATLAB permet de manipuler directement de tels tableaux sans devoir impl menter des boucles for sur les indices pour acc der aux diff rents l ments du tableau STRUCTURES Une structure enregistrement record est un type d objet MATLAB Octave existant aussi dans d autres langages et se composant de plusieurs champs nomm s fields qui peuvent tre de types diff rents cha nes matrices tableaux cellu laires champs qui peuvent eux m mes se composer de sous champs etc La syntaxe est analogue celle de langages orient s objet tel que Ruby MATLAB Octave permet logi quement de cr er des tableaux de structures structures array multidimensionnels prenom Jules nom Cupond age 5 code_postal 1010 enfants tel prive 021123 4567 tel prof 021 987 65 435 localite Lausanne nom Durand prenom lbertine age 30 code _ postal 1205
16. al gt changement d origine Z combiner avec lt ctr1 gt pour des graphi ques complexes En cliquant avec lt droite gt sur la barre de titre du graphi que un sous menu Options appara t comportant notam ment les articles suivants D Copy to Clipboard copie en format vecteur de la figure dans le presse papier en vue de la coller ensuite dans un autre document D Choose Font permet de changer la police de caract re des textes D Line Styles permet de changer les styles de ligne par d faut Border noir solid 1 Axis grille gris dot 1 Linel rouge solid 1 Line2 vert solid 1 Line3 bieu solid Inus I Background permet de changer la couleur de l arri re plan blanche par d faut D Color activ par d faut en d sactivant cette option le graphique s affichera en noir blanc Pour autant que l on dispose de la version mouse enabled de Gnuplot divers raccourcis clavier sont possibles dans la fen tre graphique en particulier I lt g gt affichage masquage de la grille bascule I lt 1 gt axe Y 2D ou Z 3D logarithmique lin aire bas cule I lt L gt axe se trouvant le plus proche du curseur logarith mique lin aire bascule CNU Ocrave amp Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB D lt p gt affichage masquage d une bo te dans les graphiques 3D bascule lt a gt autoscaling des axes utile apr s un zoom
17. avec les tudiants ainsi que dans nos contacts avec d autres enseignants que Octave suffit en g n ral largement dans la plupart des enseignements qui font traditionnellement appel MATLAB analyse num rique statistiques introduction la mod lisation Octave pr sente de notre point de vue au moins trois atouts importants qui sont du reste l apanage de tous les logiciels libres D il noccasionne aucun co t pas de frais de licence et de mises jour qu il soit distribu et utilis sur des postes de l cole laboratoires salles d enseignement ou sur des machines priv es collaborateurs tudiants D il est disponible sur les trois plates formes majeures que sont Windows Linux et Mac OS X D la possibilit de contribuer activement son d veloppe ment est particuli rement int ressante et motivante dans le monde acad mique o libert et cr ativit restent des valeurs primordiales R F RENCES INTERNET SITES DE BASE E Site GNU Octave bttp www gnu org softwareloctavel I Site Octave Forge GNU Octave Repository bttp octave sourceforge net INSTALLER ET UTILISER OCTAVE Conseils sur linstallation de Octave Forge D sous Windows bttp wiki octave org wiki pl OctaveFor Windows et bttp enacitl epfl chlcours_matlabloctave html HN sous Linux bttp wiki octave org wiki pl OctaveFor GNULinux I sous MacOS X bttp wiki octave org wiki pl OctaveFor Mac T l chargement IE GN
18. cit s de Octave relatives son installation sa configuration et ses m canismes de d marrage et de prologue utilisateur nous passons ici en revue d autres particularit s int ressantes de Octave VARIABLES BUILTINS Le comportement de Octave est dict par un certain nombre de variables sp cifiques dites builtins dont on obtient la liste avec la commande who builtins Ces variables peuvent tre modifi es par l utilisateur que ce soit interactivement ou via le prologue de d marrage L option traditional de d marrage Octave mentionn e pr c demment positionne certaines de ces variables de fa on que Octave se comporte de la mani re la plus compatible possible par rapport MATLAB en particulier N default save format mat binary enregistrement des fichiers de workspace mat au format binaire MAT LAB v5 PS1 gt gt prompt identique celui de MATLAB page screen output 0 d filement de affichage non pagin la commande more on positionne cette variable CNU Ocrave Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB 1 pour un affichage pagin d filement d une ligne avec la touche lt enter gt d une page en avant avec lt espace gt ou lt f gt d une page en arri re avec lt b gt beep_on_error 1 beeper en cas d erreur fixed point format 1 dans l affichage de vecteurs ou matrices peut d buter l affichage par un facteu
19. codes sources et en les compilant il est plus facile d utiliser les paquetages binaires propos s par les diff rentes distribu tions Linux Le Wiki Octave d crit les paquetages n cessaires et les tapes d installation pour les distributions Linux suivantes Debian Gentoo Fedora Core Red Hat et SuSE titre d exemple sous Fedora Core les paquetages relatifs Octave qui ne font plus partie de la distribution de base de puis FC4 mais se trouvent dans Fedora Extra sont d nomm s octave noyau Octave et octave forge extensions Forge Pour faire usage des fonctions graphiques de base il faut en outre disposer du paquetage gnuplot Avec la commande yum install octave forge on installe donc tr s simplement Octave Forge ainsi que tous les paquetages d pendants Dans le cadre de la distribution Fedora du projet Poseidon EPFL il faut noter que les diff rents paquetages Octave sont d j install s v rifiez le avec la commande rpm qa grep octave L quipe Poseidon a en outre packag et pr install octaviz qui consiste en un back end graphique alternatif Gnuplot particuli rement int ressant pour produire de beaux graphiques 3D voir un prochain article sur ce sujet INSTALLATION SOUS MAC OS X Le Wiki Octave d crit trois possibilit s d installation de Octave sous Mac OS X bas es sur des paquetages bi naires I Fink voir http fink sourceforge net E DarwinPorts voir http www opendarwin org projects dar
20. dividus Il est int ressant de noter que Octave est capable de sauvegarder des tableaux de structures sous forme de fichier texte avec save ascii ce que MATLAB ne sait pas faire Cela peut tre utile si l on doit exporter des donn es de type structure vers d autres applications TABLEAUX CELLULAIRES Le tableau cellulaire cells array est le type de donn es MATLAB Octave le plus polyvalent Il se distingue du tableau standard en ce sens qu il peut se composer d l ments de dimensions et types diff rents scalaire vecteur cha ne matrice structure voire m me tableau cellulaire permettant ainsi de faire des tableaux cellulaires imbriqu s dans des tableaux cellulaires Les tableaux cellulaires sont particuli rement utiles pour stocker du texte Les tableaux classiques pr sentent en effet l inconv nient que toutes les lignes de texte doivent avoir le m me nombre de caract res ce qui implique de compl ter les fins de lignes par des blancs puis de les enlever avec la fonction deb1ank personne nom Dupond age 245 quatre q4 nom Durand age 30 fig 10 Tableau cellulaire form de 4 cellules de type diff rent Pour d finir un tableau cellulaire et acc der au contenu de ses l ments on recourt aux accolades Celles ci CNU Ocrave amp Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB seront utilis es soit au niveau des i
21. e D fgetl et fgets lecture de fichier texte ligne apr s ligne resp lecture d un nombre de caract res sp cifi I fopen feof frewind et fclose ouverture fermeture de fichier et contr le d avancement I fwrite et fread criture ou lecture binaire DITEURS DE CODE OCTAVE MATLAB Octave n offrant pas en standard un environnement de d veloppement IDE il est utile lorsqu on dite du code Octave MATLAB M files de scripts ou de fonctions de dis poser d un diteur de texte offrant des possibilit s de coloriage syntaxique pour d tecter ais ment les fautes de frappe Sous Windows le paquet stand alone actuel Octave 2 1 73 embarque cet effet l diteur Scintilla Sci TE mais on peut faire usage d autres diteurs de programmation gra tuits p ex Crimson Editor shareware UltraEdit etc On adaptera en cons quence la variable EDITOR chemin d acc s l diteur dans le script octave sh de d marrage Octave pour pouvoir faire usage dans la fen tre Octave de la commande edit Dans le monde Linux les diteurs de programmation sont l gion et il suffira de choisir celui qui reconna t le langage MATLAB btip www scintilla org btip www crimsoneditor com btip www ultraedit com FI 7 26 seprembre 2006 pace 13 ECRIRE DU CODE PORTABLE Pour faciliter le portage de M files scripts ou fonctions de Octave vers MATLAB et vice versa quelques conseils de programmation
22. ge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION COMPATIDLE avec MATLAB Wiki officiel sur Octave bttp wiki octave org Autre wiki orient utilisation de Octave bttp www aims ac zalwikilindex php Octave Blog des maintainers octave org bttp blog gmane org gmane comp gnu octave maintainers Forum SourceForge relatif Octave http sourceforge net forum group_id 2888 Channel IRC bttp wiki octave org wiki pl OctavelRC Developers Guide pour contribuer au projet bttp octave sourceforge net new_developer html SCRIPTS ET FONCTIONS Sur le site de The Math Works bon nombre des contribu tions t l chargeables tournent sur Octave ou ne n cessi tent que de l g res adaptations htp www mathworks com matlabcentral fileexchange loadCategory do W PS DO PDO PDO PDO PDO PDO PDO PDO PDO PDO PDO PDO PDO D N
23. graphique qui n existent pas en standard ou pas sous la m me forme dans Octave Si l on souhaite r aliser du code contenant des parties sp cifiques Octave et MATLAB on peut laborer du code conditionnel testant l environnement dans lequel le script s ex cute avec LE exist OCTAVE VERSION CRC instruction s pour MATLAB else O s LCi instructions quivalente s POUC Octave end On rappelle encore que la principale cause d incom patibilit de scripts entre Octave et MATLAB provient des fonctions graphiques plus tendues sous MATLAB qu avec le couple Octave Gnuplot La solution r side pour l instant dans l usage de grapheurs alternatifs Octaviz Octplot tout en faisant du code conditionnel garantissant la portabilit CONCLUSION Octave logiciel libre et projet tr s vivant de la com munaut Internet va certainement continuer d voluer Il atteindra cependant jamais l tendue fonctionnelle de 31 http lusers powernet co uk kienzlel octave matcompat 32 http lenacitl epfl ch cours_matlab FI 7 26 seprembre 2006 pace 14 CNU Ocrave amp Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB MATLAB qui gr ce ses innombrables toolboxes restera longtemps pr sent dans les diverses disciplines o il conna t du succ s Nous avons cependant constat ces derni res ann es au fil de nos exp riences
24. lt 7 gt m me chelle ratio pour les axes X et Y bascule lt p gt et lt n gt facteur de zoom pr c dent resp suivant lt u gt d zoomer lt e gt quivalent la commande replot EXEMPLES OCTAVE GNUPLOT Nous terminons cette pr sentation du couple Octave Gnuplot par quelques exemples de graphiques typiques La figure 2 r alis e par le code Octave ci dessous montre un exemple de graphique 2D classique Notez la mani re propre Octave de d finir la l gende pass e en param tre dans la fonction plot x linspace 0 20 30 7 yli sin x exp x 10 Va ler inerte TO POLE yl r 07 amortisseur Le pa Z Y2 O00 amortisseur 2p s greid on g xlabel Duree sec ylabel Amolitude mmn p texte 11 0 8 annotat LO g cicle Test amorcrcLisseurs oi W gnuplot graph E ioii Test amortisseurs amortisseur amortisseur 2 Amplitude mm annotation 0 5 10 15 20 Duree sec fig 2 Graphique 2D classique I gnuplot graph ME an A loggx f y fig 3 Trac de fonctions y f x Le code ci dessus et la figure 3 illustrent la technique de trac de fonctions de type y f x Folort sin x sart x 10 201 3 holed on g root 2log N Aaaa o gric on g Le code suivant qui g n re la figure 4 montre que la fonction errorbar offre sous Octave davantage de possibili t s que sou
25. ndices des l ments du tableau soit dans la d finition de la valeur introduite dans la cellule Illustrons ces diff rentes syntaxes par la structure de la figure 4 Ce tableau serait initialis par les instructions suivantes E avec T 1 1 hello ou T 1 1 hello on d finit la premi re cellule notez bien l usage des paren th ses et des accolades E A CTIL 2 22 25 24 251 jouT L 2 22 23 24 25 on d finit la seconde cellule etc I on peut aussi initialiser le tableau en une seule op ra tion T fhello 22 23 24 25 personne quatre 44 o on pourrait omettre les virgules Il est int ressant de noter que Octave est galement capable de sauvegarder des tableaux cellulaires sous forme fichier texte avec save ascii ce que MATLAB ne sait pas faire LECTURE CRITURE DE FICHIERS Il est souvent n cessaire d changer des donn es entre Octave MATLAB et d autres logiciels Cela s effectue g n ra lement via des fichiers texte et l on utilise le plus souvent les fonctions save text ou save ascii load dimwrite et dimread Moins connues d autres fonctions conf rent cependant Octave et MATLAB la m me souplesse d entr e sortie que les langages de programmation classiques C I textread lecture d un fichier texte dont l ensemble des donn es r pond un format homog ne I fprintf et fscanf criture ou lecture format e d un fichier text
26. ons Octave Forge D velopp sous Unix Linux et dans l esprit modulaire de ce syst me d exploitation Octave ne pr sente pas le ca ract re tr s monolithique de MATLAB Au contraire plut t que d int grer toutes les fonctionnalit s dans un seul paquet logiciel Octave coop re avec d autres outils compl mentai res Il ne dispose ainsi pas de son propre moteur graphique mais s appuie sur d autres grapheurs back ends graphiques tels que Gnuplot Octaviz OctPlot epsTK De m me Octave ne dispose pas d un environnement de d veloppe ment propre IDE Integrated Development Environment mais est ouvert diverses solutions ou projets allant dans ce sens Octave Workshop et son successeur Octave MinGW Yaog Eclipse Octave donne ainsi l utilisateur une premi re impression d aust rit une fen tre de commande une fen tre graphique ventuellement un diteur et c est tout voir figure 1 nombreuses toolboxes commerciales statistiques math matiques symboliques traitement d image traitement de signaux acquisition de donn es et contr le de processus simulation Le d veloppement de Octave quant lui est plus r cent Con u en 1988 en tant que logiciel sp cifique dans le cadre d un cours sur les r acteurs chimiques James B Rawlings de l Uni of Wiscon sin Madison et John G Ekerdt de l Uni of Texas Octave porte le nom d un professeur auteur de textbooks bas
27. otlib librairie de dessin 2D s appuyant sur Py thon et offrant un bon degr de compatibilit avec les fonctions graphiques MATLAB E PLplot librairie de dessin 2D 3D Ces solutions seront d crites dans d autres articles de ce journal Nous nous limiterons donc ici une pr sentation succincte des possibilit s graphiques de Octave en liaison avec Gnuplot LIMITATIONS DE GNUPLOT Outre la difficult de repr senter des surfaces remplies Octave Gnuplot n impl mente pas la notion de handle graphics connue sous MATLAB De plus le mode multiple plots plusieurs graphiques dans la m me fen tre de figure ne fonctionne pas toujours bien probl mes de rafra chis sement de la fen tre graphique Finalement mais sous Windows seulement Gnuplot ne permet pas de manipuler 21 22 23 24 25 26 27 http llwww gnuplot info http lloctaviz sourceforge net http llwww vtk org http lloctplot sourceforge net http llwww epstk de bttp matplotlib sourceforge net btip plplot sourceforge net FI 7 26 seprembre 2006 pace 10 CNU Ocrave amp Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB simultan ment plusieurs fen tres de figures mode multiple graphic windows LA FEN TRE GNUPLOT ET SES RACCOURCIS La fen tre de graphique intitul e Gnuplot graph appara t automatiquement lorsqu on fait usage de commandes r a lisant un trac graphique
28. r de multiplication commun tous les l ments AIDE ET DOCUMENTATION Pour obtenir de l aide sur une fonction on utilise comme dans MATLAB la commande help fonction On peut en outre faire une recherche via l index du manuel Octave avec la commande help i mot cl Int gr certaines distributions Octave p ex le paquet stand alone pour Windows le manuel d utilisation des fonctions de base Octave est galement disponible sur Inter net S agissant des extensions Octave Forge on se r f rera http loctave sourceforge net index COPIER ET COLLER Sous Windows l impl mentation du copier coller Oc tave est inhabituelle pour ce syst me d exploitation car elle se base sur le standard X Window du monde Unix Linux savoir D copier la s lection courante est automatiquement copi e dans le presse papier D coller le contenu du presse papier est coll l aide du bouton du lt milieu gt de la souris AUTO COMPLETION A la mani re des shells Unix l usage de la touche lt tab gt permet d tendre automatiquement un nom de variable de fonction de fichier ou de r pertoire Par exemple auto lt tab gt n affiche rien car ambigu t mais presser une seconde fois lt tab gt affichera la fonction autocov et la variable automatic replot Cependant si l on frappe autom lt tab gt cela ins rera directement la variable automatic replot car il ny a dans ce cas plus d ambigu t possible HISTOR
29. s MATLAB bo tes d erreur 2D et non seulement barres d erreur On y voit galement l usage de la fonction hold on pour superposer deux graphiques VINS SUOMI SAS es 210 SE lowx 0 5 1 1 5 IN eue PINS 2l lowy 0 2 0 1 0 3 0 2 0 317 wpy 0 1 0 2 0 1 0 1 0l Olor zx RES Nole on g errorbar x y ON HD ONU oir IR axis lO 16 2 6 4 4 gric on g I gnuplot graph fig 4 Graphique avec boXES d ERREURS Le code ci dessous associ la figure 5 montre comment on peut repr senter en 2D des donn es 3D sous la forme de contours interpolation de courbes de niveau nc ONE VX X Y meshgridi x y 24 PO SEE MEMOIRE NERO Ko Ro Contour X X 20e i I gnuplot graph x in A a E a i aac AOC O0 One KO RO He On 00 KNEET nm fig Graphique 2D de REPR SENTATION de donn es 3D EN CONTOURS FI 7 26 seprembre 2006 pace 11 En r utilisant les donn es de l exemple pr c dent on les repr sente dans le graphique 3D de la figure 6 sous forme d affichage combin surface contours par l instruction surfe SONT iE gnuplot graph BA ioj xi 7A 0000 16 0000 scale 1 25317 1 26278 fig b REPR SENTATION d une surface 3D Finalement le code qui suit illustre dans la figure 7 l affichage 3D de semis de points et de lignes zl 0 0 13 107p xlil zl cos zi g ylilszl sin zi z2 60 7 ranci L20 y2 60 rand 1 2
30. trouvant dans le r pertoire racine de l utilisateur puis celui du r pertoire courant c est dire le r pertoire depuis lequel on a d marr Octave On peut galement ex cuter en batch directement depuis le shell tout script Octave MATLAB avec la com mande octave qf script m Si le script commence par la ligne usr bin octave qf il est m me possible de l ex cuter depuis le shell en l invoquant simplement par son nom par exemple script m pour autant qu il aie t pr alablement mis en mode execute avec la commande chmod u x script m INSTALLATION SOUS WINDOWS Comme d j mentionn le portage de Octave sous Windows s appuie sur Cygwin On distingue essentiellement deux techniques d installation de Octave sous Windows D installation d un paquet stand alone de type bundle int grant Cygwin Octave les extensions Forge et le grapheur Gnuplot D via l installeur Cygwin travers Internet installation des paquetages pr compil s Octave ou ventuellement des paquetages sources qu il faut alors compiler soi m me tel que d crit dans le Wiki Octave il faudra s lectionner dans la cat gorie Math les paquetages octave octave headers et octave forge t dans la cat gorie Graphics le paquetage gnuplot La seconde m thode ne devrait tre employ e que par les utilisateurs exp riment s ou d sirant disposer de la plus r cente version d Octave 2 9 Pour l utilisateur standard l
31. winports I binaire HPC sourceforge voir http hbpc sourceforge net octave USAGE DE OCTAVE EN LIGNE DE COMMANDE SOUS LINUX ET MacOS X Sous Linux et MacOS X Octave s utilise tout simplement dans une fen tre terminal La commande octave help pr sente les diff rentes options de lancement L une d entre elles l option traditional sert positionner certaines variables builtins en mode compatibilit MATLAB voir plus bas Il peut donc tre utile d int grer cette option dans un alias de d marrage Octave Pour lancer Octave dans une fen tre terminal on com mence g n ralement par se placer avec une commande ca dans le dossier de travail o se trouvent les donn es traiter ainsi que les ventuels scripts et fonctions de l utilisateur M files puis on passe au shell la commande octave Avant de passer la main l utilisateur et afficher son prompt Octave ex cute d ventuels prologues Il s agit de scripts M files de 13 14 15 btip wiki octave org wiki pl BuildFromSourcev btip wiki octave org wiki pl OctaveForGNULinux bttp wiki octave org wiki pl OctaveFor Mac FI 7 26 seprembre 2006 pace 8 CNU Ocrave Ocrave Forge Logiciel libre de calcul NUM RIQUE visualisation ET PROGRAMMATION compartible avec MATLAB nom octaverc et contenant des instructions d initialisation Octave MAT LAB librement d finies par l utilisateur Octave ex cute ainsi successivement le prologue se
Download Pdf Manuals
Related Search
Related Contents
Software Purgador de Bóia FT 20 http://www.wjel.net HP 8900D User's Manual xR6 / xR6e / xR6ce BEDIENUNGSANLEITUNG NAS外4件の購入仕様書 関 東 農 政 局 Copyright © All rights reserved.
Failed to retrieve file