Ricerca personalizzata

lunedì 16 maggio 2011

Octave linguaggio di programmazione ad alto livello per il calcolo matematico.



Octave è un linguaggio di programmazione ad alto livello per il calcolo matematico, usato fondamentalmente in modo interattivo.

Ha un insieme di funzionalità fornite per il calcolo matriciale come rango e determinante o specialistiche come decomposizione ai valori singolari (SVD), fattorizzazione LU; sebbene le consenta la soluzione numerica di sistemi lineari non svolge calcolo simbolico o altre attività tipiche di un sistema di algebra computazionale.

Viene usato attraverso un terminale a caratteri, come una console virtuale di GNU/Linux, ma per ottenere dei grafici si avvale di Gnuplot che così è opportuno sia installato assieme a Octave.

L'interazione tra Gnuplot e Octave è trasparente, se il secondo viene utilizzato in una finestra di terminale all'interno del sistema grafico X.

In queste sezioni si mostra solo qualche piccolo assaggio di Octave che dispone di ampia documentazione per conto proprio: info octave.

Anche Octave utilizza la libreria Readline per il controllo della riga di comando, con tutti i vantaggi che ciò comporta per l'utilizzatore.

Octave è facilmente estendibile e customizzabile, sia attraverso funzioni scritte nel linguaggio nativo di Octave, sia attraverso moduli caricabili dinamicamente che possono essere scritti in C, C++, Fortran e altri linguaggi.

Per chi utilizza Matlab e cerca un'alternativa funzionale e open source, Octave è senz'altro la scelta migliore.

Nota: Octave è anche disponibile per Mac come parte del progetto Fink. Chi fosse interessato può trovare ulteriori informazioni direttamente sul sito del progetto Fink

 Aggiornamenti:

Ultima versione stabile rilasciata: 3.4.0 (08/02/2011)


Novità:


Summary of important user-visible changes for version 3.4:
---------------------------------------------------------

 ** BLAS and LAPACK libraries are now required to build Octave.  The
    subset of the reference BLAS and LAPACK libraries has been removed
    from the Octave sources.

 ** The `lookup' function was extended to be more useful for
    general-purpose binary searching.  Using this improvement, the
    ismember function was rewritten for significantly better
    performance.

 ** Real, integer and logical matrices, when used in indexing, will now
    cache the internal index_vector value (zero-based indices) when
    successfully used as indices, eliminating the conversion penalty for
    subsequent indexing by the same matrix.  In particular, this means it
    is no longer needed to avoid repeated indexing by logical arrays
    using find for performance reasons.

 ** Logical matrices are now treated more efficiently when used as
    indices.  Octave will keep the index as a logical mask unless the
    ratio of true elements is small enough, using a specialized
    code.  Previously, all logical matrices were always first converted
    to index vectors.  This results in savings in both memory and
    computing time.

 ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled
    functions for better performance.  These functions are now faster,
    can deliver more economized results for ranges, and can reuse the
    index cache mechanism described in previous paragraph.

 ** The built-in function equivalents to associative operators (`plus',
    `times', `mtimes', `and', and `or') have been extended to accept
    multiple arguments.  This is especially useful for summing
    (multiplying, etc.) lists of objects (of possibly distinct types):
   
      matrix_sum = plus (matrix_list{:});

 ** An FTP object type based on libcurl has been implemented.  These
    objects allow ftp connections, downloads and uploads to be
    managed.  For example,

      fp = ftp ("ftp.octave.org);
      cd (fp, "gnu/octave");
      mget (fp, "octave-3.2.3.tar.bz2");
      close (fp);

 ** The default behavior of `assert (observed, expected)' has been
    relaxed to employ less strict checking that does not require the
    internals of the values to match.  This avoids previously valid
    tests from breaking due to new internal classes introduced in future
    Octave versions.

    For instance, all of these assertions were true in Octave 3.0.x
    but false in 3.2.x due to new optimizations and improvements:

      assert (2*linspace (1, 5, 5), 2*(1:5))
      assert (zeros (0, 0), [])
      assert (2*ones (1, 5), (2) (ones (1,5)))

 ** The behavior of library functions `ismatrix', `issquare', and
    `issymmetric' has been changed for better consistency.
    
    * The `ismatrix' function now returns true for all numeric,
      logical and character 2-D or N-D matrices.  Previously, `ismatrix' 
      returned false if the first or second dimension was zero.
      Hence, `ismatrix ([])' was false, 
      while `ismatrix (zeros (1,2,0))' was true.

    * The `issquare' function now returns a logical scalar, and is
      equivalent to the expression

        ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x)

      The dimension is no longer returned.  As a result, `issquare ([])'
      now yields true.
    
    * The `issymmetric' function now checks for symmetry instead of
      Hermitianness.  For the latter, ishermitian was created.  Also,
      logical scalar is returned rather than the dimension, so
      `issymmetric ([])' is now true.
 
Elenco completo di tutte le novità 

 Avvio e interazione normale.


Octave viene avviato attraverso l'eseguibile octave. Bisogna ricordare che se si vogliono disegnare dei grafici deve essere avviato da una finestra di terminale all'interno di X, diversamente basta una console virtuale di GNU/Linux. octave riconosce una serie di opzioni che qui non vengono descritte (eventualmente basta utilizzare il comando octave --help per ottenerne la descrizione) e può eseguire il contenuto di un file se viene indicato come ultimo argomento della riga di comando.

octave [opzioni] [file_di_comandi]

Il file di comandi è uno script contenente semplicemente comandi di Octave, dove in particolare il simbolo # serve a indicare l'inizio di un commento che si conclude alla fine della riga e le righe vuote o bianche vengono semplicemente ignorate.

Eventualmente, uno script di Octave può essere reso eseguibile, purché all'inizio del file venga aggiunta la solita indicazione dell'interprete da utilizzare:

#!/usr/bin/octave

Se Octave viene avviato in modo normale (senza argomenti particolari e senza l'indicazione di uno script da eseguire), si ottiene il funzionamento interattivo normale:

Octave(1) è un linguaggio di programmazione ad alto livello per il calcolo matematico, usato fondamentalmente in modo interattivo. Viene usato attraverso un terminale a caratteri, come una console virtuale di GNU/Linux, ma per ottenere dei grafici si avvale di Gnuplot che così è opportuno sia installato assieme a Octave. L'interazione tra Gnuplot e Octave è trasparente, se il secondo viene utilizzato in una finestra di terminale all'interno del sistema grafico X.

In queste sezioni si mostra solo qualche piccolo assaggio di Octave che dispone di ampia documentazione per conto proprio: info octave.

Anche Octave utilizza la libreria Readline per il controllo della riga di comando, con tutti i vantaggi che ciò comporta per l'utilizzatore.
890.1   Avvio e interazione normale

Octave viene avviato attraverso l'eseguibile octave. Bisogna ricordare che se si vogliono disegnare dei grafici deve essere avviato da una finestra di terminale all'interno di X, diversamente basta una console virtuale di GNU/Linux. octave riconosce una serie di opzioni che qui non vengono descritte (eventualmente basta utilizzare il comando octave --help per ottenerne la descrizione) e può eseguire il contenuto di un file se viene indicato come ultimo argomento della riga di comando.

octave [opzioni] [file_di_comandi]

Il file di comandi è uno script contenente semplicemente comandi di Octave, dove in particolare il simbolo # serve a indicare l'inizio di un commento che si conclude alla fine della riga e le righe vuote o bianche vengono semplicemente ignorate.

Eventualmente, uno script di Octave può essere reso eseguibile, purché all'inizio del file venga aggiunta la solita indicazione dell'interprete da utilizzare:

#!/usr/bin/octave

Se Octave viene avviato in modo normale (senza argomenti particolari e senza l'indicazione di uno script da eseguire), si ottiene il funzionamento interattivo normale:

octave[Invio]

Octave, version 2.0.13 (i386-redhat-linux-gnu).
Copyright (C) 1996, 1997, 1998 John W. Eaton.
This is free software with ABSOLUTELY NO WARRANTY.
For details, type `warranty'.

octave:1> _

L'invito di Octave (il prompt) è un po' particolare: mano a mano che si introducono dei comandi si incrementa il numero che appare. Di seguito sono elencati alcuni comandi elementari di Octave; in altre sezioni ne vengono mostrati degli altri.
Comando Descrizione
help [-i] [argomento]
Il comando help permette di ottenere alcune indicazioni sul funzionamento di Octave. In particolare, se non si utilizza l'opzione -i si ottiene una guida stringata, mentre con -i viene attivata la consultazione del documento info octave riferito al contesto definito dalla parola chiave che indica l'argomento.
exit
quit
Conclude il funzionamento di Octave.
pause [(n_secondi)]
Il comando pause serve a fare una pausa della durata indicata dall'argomento (che deve essere racchiuso tra parentesi tonde). Se non viene indicato l'argomento, la pausa può essere interrotta solo attraverso la pressione del tasto [Invio]. Questo comando è utile negli script di Octave.



Il progetto fu concepito nel 1988 da John W. Eaton (primo manutentore) e da James B. Rawlings presso l'Università del Texas come strumento di calcolo per l'ingegneria chimica. Il suo sviluppo vero e proprio partì da John W. Eaton nel 1992. La prima alpha rilasciata è datata 4 gennaio 1993 e il 17 febbraio 1994 fu rilasciata la versione 1.0. La versione 3.0 è stata rilasciata il 21 dicembre 2007.

Dettagli tecnici.

  • Octave è scritto in conformità dello standard POSIX nel linguaggio C++ usando le librerie Standard Template Library.
  • Octave utilizza un interprete per il suo linguaggio di scripting.
  • Octave è estendibile attraverso moduli o funzioni scritte dall'utente.
  • Octave può lavorare assieme a gnuplot e Grace per disegnare funzioni, grafici, tabelle, consentendo di salvarli o stamparli.

Add-on e librerie che si interfacciano con GNU Octave.

  • PLplot – Un'alternativa all'uso del tradizionale gnuplot in GNU Octave, rilasciato sotto la licenza GNU LGPL.
  • Octave-forge community development page – Toolbox di software libero per vari problemi, fornita da sviluppatori indipendenti. È anche disponibile un installer Windows sia per GNU Octave che per i toolbox.
  • Mastrave project – Libreria multi-linguaggio di software libero (coperta da licenza GNU GPLv3+) compatibile con GNU Octave and Matlab, per semplificare la modellistica ambientale con funzioni generali basate sul paradigma (EN) array programming.
  • Neuroimaging Analysis Kit – Libreria (comperta da licenza MIT) per il processamento di dati di neuroimaging usando GNU Octave or Matlab, in particolare immagini di risonananza magnetica funzionale. Sistema pipeline per gestire proccessamenti multi-stage.
  • Parallel Matlab Toolbox fornisce un insieme di strutture dati e funzioni in linguaggio MATLAB che implementano array MATLAB distribuiti. È rilasciato con licenza MIT.
  • OctPlot – Grafica 2D di alta qualità (su schermo e in postscript). Rilasciata sotto GNU GPL.
  • Add-on grafico per GNU Octave – Sistema di visualizzazione 3D per GNU Octave.
  • Octaviz – Sistema di visualizzazione 3D per GNU Octave (wrapper che rende accessibili le classi VTK dall'interno di GNU Octave). Fornisce anche funzioni di alto livello per la visualizzazione 2D.
  • MPI Toolbox per Octave (MPITB) – Calcolo parallelo per GNU Octave, tramite MPI.
Screenshots.








    Ricerca personalizzata




    Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

    mercoledì 11 maggio 2011

    10 applicazioni grafiche e multimediali (poco conosciute) presenti nei repository di Ubuntu 11.04 Natty Narwhal.

    Hasciicam (h) ascii for the masses: live video as text

    Hasciicam, è un progetto basato sulle librerie aalib. Se avete sempre pensato a delle immagini come una composizione di pixel colorati, cambierete la vostra idea dopo aver visto cosa è in grado di fare questo programma. Venendo subito al punto Hasciicam è capace di "convertire" l'input proveniente da una scheda di acquisizione video (come le comuni schede TV) o da una webcam ridisegnandolo in puro testo. Il risultato è stupefacente: l'immagine (convertita in bianco e nero per un migliore risultato) è riconoscibilissima, le sfumature vengono "convertite" con grande precisione.

    Ma non finisce qui. Hasciicam è in grado di inserire l'immagine appena riprodotta in formato ascii in una pagina html per mezzo di un refresh tag, formattandola opportunamente. Certo grande merito va alle aalib, utilizzate anche da altri programmi che fanno analogamente la riproduzione in formato ascii di immagini (come aview) o filmati (come aaxine), ma l'impegno e il merito per il gran lavoro svolto va riconosciuto a Denis Roio conosciuto anche con il nickname di jaromil, un italiano che vive in Austria. Jaromil è un attivista convinto, co-fondatore, tra le altre cose, di Metro Olografix e fondatore della "free software house dyne.org" con la quale ha prodotto proprio Hasciicam.

    Scheda completa e istruzioni per il download in questa pagina
    HDF4-tools (Hierarchical Data Format), libreria per l'archiviazione di dati scientifici

    HDF (Hierarchical Data Format) è un obiettivo generale di biblioteca e di un formato di file per la memorizzazione di dati scientifici. Essa organizza i dati in dati (array multidimensionali) e gruppi (una struttura per l'organizzazione di oggetti).
    HDF5 è un formato file ed una libreria per l'archiviazione di dati scientifici. HDF5 è stato pensato ed implementato per ovviare alle mancanze di HDF4.x. Ha un modello dei dati più potente e flessibile, supporta file più grandi di 2 GB e supporta l'I/O in parallelo.
    Scheda completa e istruzioni per il download in questa pagina

    Helix Player, helix audio and video player

    Helix DNA è un progetto per produrre un software in grado di riprodurre file multimediali audio e video in diversi formati, l'aiuto nella produzione di mezzi di comunicazione, e servirli in una rete.

    Esso è inteso come una fonte software libero e open source per i media digitali quadro che viene eseguito su numerosi sistemi operativi e processori (compresi i telefoni cellulari) ed è stato avviato da RealNetworks, che ha contribuito in gran parte del codice.

    La Comunità Helix è uno sforzo di collaborazione aperta per sviluppare ed estendere la piattaforma Helix DNA.

    Helix Player è un lettore multimediale che funziona su Linux, Solaris, Symbian e FreeBSD ed è stato costruito sulla cima di Helix DNA Client.

    Helix DNA Producer è un'applicazione che può aiutare nella produzione di file multimediali, e con Helix DNA Server è possibile lo streaming di file su una rete.

    Scheda completa e istruzioni per il download in questa pagina

    Hughin, interfaccia grafica che pilota il vero motore pensante che è Panorama tools.
    hugin (scritto con iniziale minuscola) è un programma libero multipiattaforma per creare immagini panoramiche a partire da varie foto scattate secondo determinate regole.

    È sviluppato da Pablo d'Angelo e altri, ed è essenzialmente un'interfaccia per enblend e per i panotools, entrambi strumenti software per creare foto panoramiche.

    L'incollaggio delle foto è eseguito a partire da foto che si sovrappongono parzialmente, usando dei punti di controllo per allineare e trasformare le foto in modo che siano adattate a formare un'unica grande immagine.

    Scheda completa e istruzioni per il download in questa pagina

    ImageMagick suite di programmi liberi per la creazione, modifica e visualizzazione di immagini bitmap.

    ImageMagick è una suite di programmi liberi per la creazione, modifica e visualizzazione di immagini bitmap.

    È distribuita con una licenza compatibile con la GNU GPL ed è disponibile su tutti i principali sistemi operativi.

    La suite può essere utilizzata per convertire tra differenti formati di immagine (ne supporta oltre 100), può applicare le più comuni trasformazioni (traslazione, riflessione, rotazione, ecc.), può essere usata per regolare i colori delle immagini, per applicare vari effetti speciali o anche per disegnare testo, linee, poligoni, ellissi o curve di Bézier.

    Scheda completa e istruzioni per il download in questa pagina
     
    Feh  programma leggero e potente per visualizzare immagini.
    Feh è un programma leggero e potente per visualizzare immagini, che può essere anche utilizzato per la gestione degli sfondi del desktop in window manager che non comprendono questa funzionalità.
    Installazione.
    Come root digitare:
    # pacman -S feh
    Utilizzo.
    Feh è altamente configurabile, per una lista completa di opzioni eseguire feh --help.
    Image Browser.
    Per visualizzare velocemente immagini in una specifica directory si può lanciare feh con le seguenti opzioni:
    $ feh -g 640x480 -d -S filename /path/to/directory
    * L'opzione -g forza le immagini di apparire al massimo ad una risoluzione di 640x480
    * L'opzione -S filename fa si che le immagini siano ordinate per nome
    Questo è solo un esempio, è possibile utilizzare moltre altre opzioni.

    Scheda completa e istruzioni per il download in questa pagina

    FFmpeg suite completa sviluppata su Linux per registrare, convertire e riprodurre audio e video.
    FFmpeg è una suite software completa per registrare, convertire e riprodurre audio e video.

    Si basa su libavcodec, libreria per la codifica audio/video.

    FFmpeg è sviluppato su Linux, ma può essere compilato ed eseguito su qualunque dei principali sistemi operativi, incluso Microsoft Windows.

    Il progetto è composto da molti componenti:

    * ffmpeg è uno strumento da riga di comando per convertire un file video a un altro. Inoltre supporta la cattura e la codifica in tempo reale dalla scheda TV.
    * ffserver è uno streaming server multimediale HTTP per riproduzoni live in broadcast. Il time shifting di stream live in broadcast è supportato.
    * ffplay è un semplice media player basato su SDL e le librerie FFmpeg
    * libavcodec è una libreria contenente tutti gli encoder/decoder di FFmpeg. Molti codecs sono stati sviluppati dall'inizio per garantire le migliori performance e la massima riusabilita del codice.
    * libavformat è una libreria contenente parser e generatori condivisi per tutti i formati audio/video.

    Scheda completa e istruzioni per il download in questa pagina

    FFmpeg Theora, codec video largamente diffuso ormai come formato video in applicazioni opensource.

    Theora è un codec video sviluppato dalla Xiph.Org Foundation come parte del progetto Ogg. È basato sul codec VP3 della On2 Technologies, ed è progettato per competere con il video MPEG-4 (come XviD e DivX), RealVideo, Windows Media Video, e simili schemi di compressione video a basso bit rate.

    Nel marzo 2002, On2 adottò la licenza LGPL per il suo codec VP3. Nel giugno del 2002 On2 donò VP3 alla Xiph.Org Foundation sotto una licenza opensource BSD con 3 clausole. On2 garantì inoltre la sua disponibilità a rendere la licenza royalty-free permettendo così a chiunque di usare qualsiasi codec derivato da VP3 senza limitazioni.

    Nell'agosto 2002, On2 entrò a far parte di un accordo con la Xiph.Org Foundation per rendere VP3 la base di un nuovo codec video opensource chiamato Theora . On2 dichiarò che Theora avrebbe continuato la linea di sviluppo di VP3. Il 3 ottobre 2002 On2 e Xiph annunciarono il completamento e la disponibilità della prima versione di test di Theora(libtheora) targata come alpha1, libtheora raggiunse lo stato di alpha2 il 9 giugno 2003 e successivamente quello di alpha3 il 20 marzo 2004 .

    Scheda completa e istruzioni per il download in questa pagina
     
    Gecko-mediaplayer, multimedia plug-in for Gecko browsers.
     
    Gecko Media Player è un plug in del browser che utilizza GNOME MPlayer e MPlayer per riprodurre elementi multimediali in un browser.

    Usa l'API NS4 e perciò è compatibile con tutti i browser derivati da NS4: Iceweasel, Firefox, Iceape, Epiphany, Galeon, Midbrowser, Xulrunner, ecc.

    Supporto per xulrunner su Fedora 9. Aggiornato il supporto per l'avvio di media sulla base di bit rate.

    È generalmente più stabile se associato a MPlayer 1.0RC2

    Scheda completa e istruzioni per il download in questa pagina

    FbTV television viewer - Linux framebuffer application -
    FbTV è un programma per guardare la TV con la vostra Linux box. Viene eseguito su di un dispositivo grafico framebuffer (/ dev/fb0).

    Avrete bisogno di un nuovo kernel 2.1.x di giocare con questa. parti fbtv il file di configurazione ($ HOME / .xawtv) con l'applicazione xawtv.

    Verificare la xawtv manpage per maggiori dettagli sul formato di file di configurazione.
     
    Scheda completa e istruzioni per il download in questa pagina




    Ricerca personalizzata




    Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

    martedì 10 maggio 2011

    Maxima è un programma per l'elaborazione algebrica molto sofisticato e molto potente.

    Maxima è un programma per l'elaborazione algebrica (Computer algebra system) molto sofisticato e molto potente, derivato da DOE-Macsyma che a sua volta derivava da Macsyma sviluppato al MIT, a partire dagli anni 1960. Di Maxima sono disponibili versioni per una grande quantità di sistemi operativi.

    Data la sua origine, Maxima è un programma che interagisce prevalentemente attraverso un terminale a caratteri; tuttavia, sono disponibili versioni grafiche che consentono la visualizzazione delle formule elaborate in una forma più graziosa dal punto di vista estetico. Per esempio, wxMaxima è un interfaccia frontale per Maxima, in grado di aggiungere questo miglioramento grafico.

    Le potenzialità di Maxima sono enormi. In questo capitolo si fanno solo dei cenni relativi a problemi molto semplici. Va osservato che Maxima può fare anche molto altro, in particolare nel capitolo è omessa completamente la gestione dei vettori e delle matrici.

    Installazione.

    L'installazione di Maxima non dovrebbe dare problemi nei sistemi operativi più comuni, dal momento che sono disponibili pacchetti precompilati per una vasta gamma di ambienti. Tuttavia va osservato che Maxima richiede la presenza di Gnuplot per produrre dei grafici, installato in modo corretto, o comunque «standard». Eventualmente, se non si riesce a ottenere un grafico con le funzioni che invece dovrebbero produrlo, occorre concentrarsi nell'installazione corretta di Gnuplot.

    Avvio e interazione normale con il programma.

    Maxima si avvia normalmente attraverso il file-eseguibile maxima, senza indicare opzioni particolari:


    maxima [opzioni]
     
    
    Una volta avviato, comincia un'interazione con il programma, il quale offre un invito composto dalla sigla (%in), dove n è un numero progressivo che inizia da uno e la lettera «i» sta a sottolineare il fatto che si tratta di una riga di «input». Nella riga di comando preceduta dall'invito di Maxima è possibile inserire comandi che spesso sono costituiti semplicemente da espressioni o equazioni matematiche:


    (%i1) x^2+sqrt(x);[Invio]
    In questo caso viene inserita l'espressione x2+x0,5 e si può osservare che è stata terminata con un punto e virgola. Normalmente, dopo l'inserimento di un comando, si ha una forma di risposta da parte di Maxima, con la quale si può verificare il recepimento di quanto inserito:

                                     2
    (%o1)                           x  + sqrt(x)
    
    Eventualmente, se Maxima viene usato attraverso la mediazione di un programma frontale grafico, questa risposta potrebbe essere più graziosa esteticamente:

    (%o1)   x^2+sqrt(x)
    Se al posto del punto e virgola finale si mette il simbolo dollaro ($), si fa in modo di evitare che Maxima dia un responso di alcun genere; in altri termini, serve a sopprimere l'output.
    Continuando con altri inserimenti, l'invito di Maxima incrementa il suo numero progressivo:

    (%i2) sqrt(x^3+x^2);[Invio]

    (%o2)   sqrt(x^3+x^2)
    Ogni cosa che viene inserita diventa un «oggetto» di Maxima, al quale potrebbe essere fatto riferimento con la sigla %on. Per esempio, con il comando factor() è possibile ottenere una semplificazione di un'espressione attraverso la riduzione in fattori. In questo caso si vuole trasformare la seconda espressione inserita:

    (%i3) factor(%o2);[Invio]

    (%o3)   sqrt(x+1)*abs(x)
    Come si può intuire, la nuova espressione potrebbe essere raggiunta con la sigla %o3:

    (%i4) %o3 + sqrt(x^4);[Invio]

    (%o4)   %o3 + x^2
    Per concludere il funzionamento di Maxima si può usare il comando quit():

    (%i5) quit();[Invio]


     Funzionamento di wxMaxima, dove si vede che i comandi vanno inseriti nello spazio inferiore della finestra. 


    wxmaxima-esempio-inserimento

    Gestione degli oggetti di Maxima.

    Ogni volta che si inserisce qualcosa nella riga di comando di Maxima, si produce un nuovo oggetto, con il risultato dell'inserimento stesso. Il riferimento a tali oggetti avviene con una sigla del tipo %on, dove n è il numero dell'oggetto. In alternativa, è possibile dare un nome ulteriore all'oggetto, specificandolo all'inizio dell'inserimento:

    [nome_oggetto:] comando 
    Per esempio, si può definire un'espressione e le si può associare il nome espressione_1:

    (%i1) espressione_1: x^4+x^3+x^2;[Invio]
    (%o1)  x4 + x3 + x2
    (%i2) espressione_1 + x;[Invio]
    (%o2)  x4 + x3 + x2 + x
    Gli oggetti creati e non più utilizzati, possono essere eliminati con il comando kill():
    kill (nome_oggetto[, nome_oggetto]...)
    
    kill (all)
    In pratica, come argomento del comando kill() si può mettere un elenco di oggetti (separato con la virgola), oppure la parola chiave all, con la quale si indicano implicitamente tutti.

    Gli oggetti da eliminare vanno identificati con la sigla generica %on o per nome, se gli è stato associato un nome. Tuttavia, le due cose sono indipendenti. Per esempio, se con il nome nome_3 è stato identificato l'oggetto corrispondente alla sigla %o3, il fatto di eliminare nome_3 non si propaga all'oggetto dal punto di vista della sigla %o3 e lo stesso viceversa.

    (%i3) kill (%o1, %o2);[Invio]
    (%o3)  done
    (%i4) espressione_1;[Invio]
    (%o4)  x4 + x3 + x2
    (%i5) kill (espressione_1);[Invio]
    (%o5)  done
    (%i6) quit();[Invio]

    Funzioni.

    Maxima consente di definire espressamente delle funzioni, utilizzando l'operatore :=. Le funzioni possono essere disegnate, con l'ausilio di un programma esterno, costituito di norma da Gnuplot. L'esempio seguente crea la funzione f(x) e la visualizza, nell'intervallo che va da -π e +π:
    (%i1) f(x) := x^3;[Invio]
    (%o1)  f(x) := x3
    (%i2) plot2d (f, [x, -%pi, %pi]);[Invio]
    x**3

    Si possono creare funzioni di funzioni; in altri termini, la creazione di una funzione si può avvalere di funzioni già definite. Negli esempi seguenti si crea una funzione g(x), composta utilizzando la già definita f(x). Al termine, vengono disegnate le due funzioni.

    (%i3) g(x) := f(sin(x));[Invio]
    (%o3)  g(x) := f(sin(x))
    (%i4) plot2d ([f,g], [x, -%pi, %pi], [y, -2, 2]);[Invio]
    (sin(x))**3
    Naturalmente si possono definire funzioni a più variabili, ma la rappresentabilità grafica si limita alle funzioni a due variabili, attraverso la proiezione bidimensionale:
    (%i5) h(x,y) := x**2 * y**3;[Invio]
    (%o5)  h(x,y) := x2 y3
    (%i6) plot3d (h, [x, -%pi, %pi], [y, -%pi, %pi]);[Invio]
    x**2 * y**3
    Per definire una funzione a tratti, è necessario avvalersi del comando block(). Per esempio, si vuole definire la funzione k(x), la quale valga -(-x)0,5 per valori inferiori a zero e valga x0,5 per valori maggiori o uguali a zero:
    (%i7) k(x) := block ([], if (x < 0) then return (-(-x)^0.5) else \
      \            return (x^0.5));
    [Invio]
    (%o7)  k(x) := block ([], if x < 0 then return (-(-x)0.5) else return (x0.5))
    (%i8) plot2d (k, [x, -1, 1]);[Invio]
    radice quadrata
    Per indicare più di due possibilità, occorre usare delle parentesi tonde, in modo da distinguere le varie condizioni:
    (%i9) j(x) := block([], if (x < 0) then return (x*1.25) else \
      \            (if (x >= 0 and x < 2) then return (0) else \
      \            return (x*3-6)));
    [Invio]
    (%o9)  j(x) := block ([], if x < 0 then return (x·1.25) else if x>=0 and x<2 then return (0) else return (x·3-6))
    (%i10) plot2d (j, [x, -1, 3]);[Invio]
    funzione divisa in tre parti

    fonte: a2pluto

    Screenshots.

    Xmaxima 5.18 running on Linux (with Tk 8.5) with the Embedded plot windows option
    Xmaxima running on Windows
    Maxima running in GNU Emacs
    Maxima 5.18 running in command line mode in Linux
    Maxima running in GNU TeXmacs
    Maxima running in GNU Emacs with Imaxima mode

    Ricerca personalizzata






    Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

    domenica 8 maggio 2011

    Mathomatic: software gratuito per lo studio della Matematica rilasciato sotto licenza GNU LGPL.

    Mathomatic è un CAS (Computer Algebra System) realizzato completamente in linguaggio C.

    E’ un programma di ausilio allo risoluzioni dei problemi di algebra, in particolare con questo programma è possibile:

    • Risolvere, semplificare, uguagliare equazioni algebriche;
    • Realizzare trasformazioni dei calcoli;
    • Condurre in maniera facilitata il calcolo delle serie numeriche;
    • Svolgere calcoli con i numeri complessi e i polinomi;
    • Generare codice C e Java dalle equazioni

    Mathomatic è gratuito ed è rilasciato sotto licenza GNU LGPL (GNU Lesser General Public License).  Quindi è disponibile attualmente per tutti i sistemi operativi che dispongono del compilatore GNU C.

    E’ un programma a linea di comando che funziona su un qualsiasi sistema operativo dotato di un compilatore di codici scritti in C.

    Data la sua origine, Mathomatic è un programma che utilizza soltanto un terminale a caratteri e non produce alcun risultato grafico.

    Installazione.


    sudo apt-get install mathomatic

    oppure andare su Ubuntu Soiftware Center e digitare nella casella di ricerca la voce: Mathomatic.

    Ubuntu Software Center (originariamente AppCenter) è un programma per installare e rimuovere del software sul sistema operativo Ubuntu. È basato sul programma già esistente gnome-app-install, molto simile nelle funzionalità e nell'aspetto.

    Ubuntu Software Center può essere utilizzato anche per aggiungere i repository ed è scritto nel linguaggio di programmazione Python.

    Avvio del programma.

    Nei sistemi GNU e negli altri sistemi Unix, Mathomatic si avvia con la sintassi seguente:

    mathomatic [opzioni] [file]

    Attraverso le opzioni, in particolare, è possibile controllare l'uso dei colori sullo schermo, la quantità di equazioni gestibili simultaneamente (pertanto ciò riguarda l'allocazione della memoria). La pagina di manuale mathomatic(1) descrive questa parte dell'utilizzo del programma.

    Il nome del file che può essere indicato alla fine della riga di comando consente di passare a Mathomatic la sequenza dei comandi da eseguire; pertanto consente di realizzare uno script. Eventualmente, lo stesso script può essere fornito semplicemente attraverso lo standard input.


    Funzionamento interattivo.

    Avviando Mathomatic senza l'indicazione di un file da interpretare, questo si mette a funzionare in modo interattivo, attendendo dall'utente l'inserimento dei comandi. In questa situazione Mathomatic mostra un invito molto semplice, il quale corrisponde inizialmente a:

    1->

    I comandi che si possono dare sono di vario tipo; per esempio può trattarsi di un'espressione algebrica o di un'equazione, come nel caso successivo:

    1-> y = x^3[Invio]

    #1: y = x^3

    In questo caso, per risolvere l'equazione per x, basta inserire il nome della variabile:

    1-> x[Invio]

              1
    #1: x = y^-
              3

    L'invito di Mathomatic contiene un numero che rappresenta lo spazio all'interno del quale viene descritta un'equazione. I messaggi prodotti da Mathomatic contengono a loro volta l'indicazione del numero di equazione a cui si riferiscono, come si vede nell'esempio stesso. Quando si inserisce una nuova equazione o quando il contesto prevede la creazione automatica di questa, Mathomatic alloca un nuovo spazio e lo fa capire attraverso l'invito che cambia numero.

    Nella maggior parte dei casi, i comandi che si danno a Mathomatic sono riferiti a un'equazione, ma in tal caso si tratta dell'equazione corrente. Pertanto, se l'invito mostra un numero di equazione differente da quella a cui ci si vuole riferire, occorre cambiare equazione, eventualmente con il comando #:

    3-> #1[Invio]

    1->

    L'esempio mostra che, trovandosi nello spazio della terza equazione, si vuole ritornare alla prima per qualche ragione.

    Per terminare il funzionamento interattivo di Mathomatic si utilizza semplicemente il comando quit:

    1-> quit[Invio]


      Per ottenere una guida rapida ai comandi di Mathomatic (equivale al comando help);

        1-> ?[Invio]

        This help command is provided as a quick reference.
        Full documentation is available at the website "www.mathomatic.org".
        Type "help all" for a summary and syntax of the all commands.
        Type "help usage" for syntax of all commands.
        Type "help expressions" for help with entering expressions.
        Type "help geometry" for some commonly used geometric formulas.
        "help" or "?" followed by a command name will give info on a command.

    Comandi disponibili::

        calculate      clear          code           compare        copy
        derivative     display        divide         echo           edit
        eliminate      extrema        factor         fraction       help
        imaginary      integrate      laplace        limit          list
        nintegrate     optimize       pause          product        push
        quit           read           real           replace        roots
        save           set            simplify       solve          sum
        tally          taylor         unfactor       version

        To select an equation in memory, type the equation number at the main prompt.
        To solve the current equation, type the variable name at the main prompt.

        un punto esclamativo, seguito da un comando, per ottenerne la sua esecuzione attraverso il sistema operativo.

        1-> ! ls -l[Invio]

    Al termine di un comando di Mathomatic può essere inserito un commento, preceduto dal punto e virgola:

    1-> y = x^(0.5) ; radice quadrata[Invio]

              1
    #1: y = x^-
              2

    Naturalmente, un comando di Mathomatic può essere costituito anche solo da un commento:

    1-> ; solo un commento[Invio]


    Ridirezione dell'output.

    Per i comandi specifici di Mathomatic, ovvero quelli che iniziano con una parola chiave che non può essere interpretata come un'espressione algebrica e nemmeno con il nome di una variabile, è possibile ridirigere l'output che generano verso un file. Per questo si aggiunge in coda al comando il simbolo > o >>; nel primo caso il file viene creato e se esiste viene sovrascritto, mentre nel secondo caso il file viene esteso se esiste già.

    L'utilizzo più probabile della ridirezione riguarda il comando list, con il quale si visualizza l'equazione corrente o quelle specificate negli argomenti:

    1-> list export all > equazioni.txt[Invio]

    Nell'esempio si fa in modo di emettere tutte le equazioni memorizzate, secondo una forma di rappresentazione abbastanza comune, copiandole nel file equazioni.txt.



    Opzioni di funzionamento.


    Attraverso l'istruzione set è possibile definire delle opzioni di funzionamento. L'istruzione va usata secondo la sintassi seguente:

    set [[no] opzione [argomenti]]

    In pratica, se si usa il comando set senza argomenti, si ottiene lo stato attuale della configurazione, mentre se si specifica qualcosa di più, si va a modificare lo stato di questa o quell'opzione. La maggior parte delle opzioni gestibili è di tipo binario, nel senso che si attivano o si disattivano. In tal caso l'uso della parola chiave no serve a disattivare l'opzione, ovvero a negarla.

    La configurazione che si definisce con il comando set può essere annotata nel file ~/.mathomaticrc, in modo che sia caricata automaticamente all'avvio di Mathomatic. In tal caso, però, le istruzioni del file sono prive della parola chiave iniziale set; Per esempio, al posto di scrivere set true_modulus si scriverebbe semplicemente true_modulus.


    A titolo di esempio viene proposta la funzione f(x)=x2-(x/2)3, la quale si può rappresentare graficamente così:

    plot x**2-(x/2)**3

    Per esempio, la funzione f(x)=x0,5, corrispondente alla radice quadrata di x, non esiste per valori negativi di x.

    plot x**0.5

    fonte: a2pluto

    Ricerca personalizzata








    Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

    venerdì 6 maggio 2011

    Aqualung è un ottimo player musicale per GNU/Linux che offre anche un database musicale.


    Software dalle caratteristiche eccellenti e con funzionalità molto avanzate all’altezza dei cugini più blasonati come Exaile o AmaroK.

    Aqualung offre anche un Music Store: un database musicale, grazie al quale possiamo memorizzare parecchie informazioni sui brani memorizzati sull’HD. 

    In questo senso ha diverse funzionalità che consentono l’import di metadati direttamente nel Music Store come ID3v1, ID3v2 tags, commenti Ogg Xiph, APE.



    Se vogliamo installare Aqualung sul nostro Ubuntu 11.04 Natty Narwhal aprire il terminale e digitare:


    sudo apt-get install aqualung


    Un secondo metodo d'installazione:

    Download.


    Ultima versione rilasciata: 0.9


    aqualung_0.9~beta11.orig.tar.gz 

    I file con estensione .tar, .tgz, .tar.gz o .tar.bz2 sono conosciuti come tarball, molto usati in Linux e Unix.
    Se non è presente un pacchetto per Ubuntu in nessuno dei repository, è possibile installare o rimuovere il tarball dalla riga di comando.
    Il primo passo è quello di decomprimere ed estrarre il tarball. Se ha come estensione .tgz o .tar.gz, nel terminale digitare:

    tar xfvz nome_del_tarball
    Dopo questo, seguire le istruzioni fornite con il pacchetto, contenute, di solito, nei file README o INSTALL.
    I tarball solitamente contengono il codice sorgente di un programma, ed è quindi necessario compilarli per poterli utilizzare.


    Aqualung è nato qualche tempo fa, più esattamente nel 2005, e fa del supporto a tutti i file audio un suo cavallo di battaglia.

    Il software, inizialmente nato solo ed esclusivamente per GNU/Linux, è ora multi-piattaforma visto che può essere installato su sistemi Linux, OpenBSD, Windows e FreeBSD.

    Aqualung introduce una caratteristica molto particolare che consente di riprodurre i vari brani eliminando tutte le interruzioni che normalmente sono presenti tra un brano ed il successivo. con questa tipologia di approccio consente una visualizzazione ed una gestione della vostra musica in maniera molto efficiente.



    Le caratteristiche principali di Aqualung sono:

    * La riproduzione di file audio;
    * Supporta i formati audio WAV, FLAC, OGG, MP3, AIFF, AU, MP1, MP2, MOD, S3M, XM, IT, AC3, AAC, WMA, ecc;
    * Ascoltare la radio su Internet;
    * Supporto per le skin;
    * Interfaccia semplice ed intuitiva;
    * Aqualung è un'applicazione facile da usare;
    * Aggiornamenti manuali;
    * Supporto per l'installazione/disinstallazione, ecc;

    Vediamo più in dettaglio le sue caratteristiche prendendo spunto direttamente dall’home page del progetto:

    On the input side:


    • Audio CDs can be played back and ripped to the Music Store with on-the-fly conversion to WAV, FLAC, Ogg Vorbis or CBR/VBR MP3 (gapless via LAME). Seamless tagging of the created files is offered as part of the process.
    • Internet radio stations streaming Ogg Vorbis or MP3 are supported.
    • Subscribing to RSS and Atom audio podcasts is supported. Aqualung can automatically download and add new files to the Music Store. Optional limits for the age, size and number of downloaded files can be set.
    • Almost all sample-based, uncompressed formats (e.g. WAV, AIFF, AU etc.) are supported. For the full list of these formats, visit the libsndfile homepage.
    • Files encoded with FLAC (the Free Lossless Audio Codec) are supported.
    • Ogg Vorbis and Ogg Speex audio files are supported.
    • MPEG Audio files are supported. This includes MPEG 1-2-2.5, Layer I-II-III encoded audio, including the infamous MPEG-1 Layer III format also known as MP3. For tracks containing the appropriate LAME headers, the MPEG encoder delay and padding is eliminated by Aqualung, resulting in truly gapless playback. Aqualung also supports VBR (variable bitrate) and UBR (unspecified bitrate) MPEG files.
    • MOD audio files (MOD, S3M, XM, IT, etc.) are supported via the high quality libmodplug library.
    • Musepack (a.k.a. MPEG Plus) files are supported.
    • Files encoded with Monkey's Audio Codec are supported.
    • WavPack files are supported via a native decoder.
    • Numerous formats and codecs are supported via the FFmpeg project, including AC3, AAC, WMA, WavPack and the soundtrack of many video formats.
    • Naturally, any of these files can be mono or stereo.

    On the output side:


    • OSS driver support
    • ALSA driver support
    • JACK Audio Server support
    • PulseAudio support
    • sndio output (presently available on OpenBSD only)
    • Win32 Sound API (available only under native Win32 or Cygwin)
    • Exporting files to external formats from Playlist and Music Store is supported.

    In between:


    • Continuous, gap-free playback of consecutive tracks. Your ears get exactly what is in the files – no silence inserted in between.
    • Ability to convert sample rates between the input file and the output device, from downsampling by a factor of 12 to upsampling by the same factor. The best converter provides a signal-to-noise ratio of 97dB with -3dB passband extending from DC to 96% of the theoretical best bandwidth for a given pair of input and output sample rates.
    • LADSPA plugin support – you can use any suitable LADSPA plugin to enhance the music you are listening to. There are many different equalizer, spatial enhancer, tube preamp simulator etc. plugins out there. If you don't have any, grab these.

    Other niceties:


    • Playlist tabs allow you to have multiple playlists for your music at the same time, very similarly to multiple tabbed browsing in Firefox.
    • Internally working volume and balance controls (not touching the soundcard mixer).
    • Support for multiple skins; changing them is possible at any time.
    • Support for random seeking during playback.
    • Track repeat, List repeat and Shuffle mode (besides normal playback). In track repeat mode the looping range is adjustable (A-B repeat). It is possible to set the looping boundaries via a single keystroke while listening to the track.
    • Ability to display and edit Ogg Xiph comments, ID3v1, ID3v2 and APE tags found in files that support them. When exporting tracks to a different file format, metadata is preserved as much as possible.
    • All windows are sizable. You can stretch the main window horizontally for more accurate seeking.
    • You can control any running instance of the program remotely from the command line (start, stop, pause etc.). Remote loading or enqueueing soundfiles as well as complete playlists is also supported.
    • State persistence via XML config files. Aqualung will come up in the same state as it was when you closed it, including playback modes, volume and balance settings, currently processing LADSPA plugins, window sizes, positions and visibility, and other miscellaneous options.

    Screenshots





    [Aqualung default skin]
    [Aqualung woody skin]
    Default skin (Music Store builder)
    Woody skin (File Info and volume calculation)

    [Aqualung metal skin]
    [Aqualung dark skin]
    Metal skin (Playlist featuring Album mode)
    Dark skin (LADSPA plugin support)

    [Aqualung plain skin]
    [Aqualung ocean skin]
    Plain skin (Settings dialog and album cover)
    Ocean skin (Search in Music Store)
    Ricerca personalizzata




    Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

    Ultimi post pubblicati

    RSVP (Raccomandati Se Vi Piacciono)

    Mutui & Finanze on Line

    Finaziamenti Image Banner 468 x 60_f

    Flickr Photostream

    Antipixels & Counters

    iFeed WebShake – tecnologia Blogstreet - dove il blog è di casaVero Geek iwinuxfeed.altervista.org Add to Technorati Favorites ElencoSiti tutto blog Aggregatore Directory dei blog italiani Blog360gradi - L’aggregatore di notizie a 360°

 provenienti dal mondo dei blog! BlogItalia.it - La directory italiana dei blog Feed XML offerto da BlogItalia.it Sito preferito Il Bloggatore Italian Bloggers visitor stats Programming Blogs - Blog Catalog Blog Directory AddThis Social Bookmark Button Aggregato su SocialBlog Feedelissimo Yourpage live news aggregator Paperblog : le migliori informazioni in diretta dai blog Notizie Informatiche