Monthly Archives: September 2014

Immettere matrici in Matlab

MATLAB

Si possono immettere matrici in MATLAB in molti modi diversi.

  • – introdurre un elenco esplicito di elementi.
  • – caricare matrici da files di dati esterni.
  • – generare matrici utilizzando la funzione built-in.
  • – creare matrici con le proprie funzioni in M-files.

Iniziamo a far vedere come registrare la matrice come un elenco dei suoi elementi. Si seguano a tal proposito solamente alcune convenzioni di base:

  • Separare gli elementi di una riga con spazi vuoti o virgole.
  • Usare un punto e virgola ”;” per indicare la fine di ciascuna fila.
  • Racchiudere l’elenco intero di elementi con parentesi quadrate , [ ].

matrici.matlabPer registrare la matrice di Durer,basterà semplicemente digitare:

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB espone a video solo la matrice digitata,

A = 16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

Questo procedimento associa precisamente i numeri a porzioni di memoria. Una volta fornita la matrice, essa è registrata automaticamente nel workspace di MATLAB. Ora si può indicarla semplicemente digitando al prompt di Matlab la lettera A.

>> A

A =

    16     3     2    13
     5    10    11     8
     9     6     7    12
     4    15    14     1

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Il comando implicit none nel Fortran


FORTRANUn errore frequente che viene commesso dai programmatori è quello di utilizzare una variabile prima che questa venga dichiarata. In realtà tale rischio è tipico dei linguaggi di programmazione procedurali mentre quelli che sono stati realizzati per la programmazione ad oggetti ne sono esenti.

Il motivo di tutto questo è dovuto al fatto che il linguaggio di programmazione Fortran richiede che ogni variabile prima di essere utilizzata sia correttamente dichiarata, e non solo; prima di essere utilizzata dovrà anche essere inizializzata.

E’ questo il motivo per cui ogni programma Fortran, nella sezione dichiarativa presenta una dichiarazione dettagliata di tutte le variabili che in esso vengoo utilizzate.

Ed è proprio in tale momento che si può commettere l’errore di dimenticarsi della dichiarazione di una variabile che quindi verrà utilizzata all’interno del programma senza essere stata utilizzata e provocando quindi un errore.

Per obbligare il programmatore alla dichiarazione di tutte le variabili si utilizza appunto il comando inplicit none.

implicit.none
La sintassi dello statement implicit none è la seguente:

IMPLICIT NONE

Questo statement è utilizzato per evitare errori di utilizzo di variabili.Quando cioè viene utilizzato lo statement implicit none tutte le variabili devono essere dichiarate in una dichiarazione di tipo (dichiarazione specifica).

Ad esempio del tipo:

REAL :: {list of variables}

Nell’ipotesi una variabile venisse utilizzata senza essere stata dichiarata, un errore verrebbe rilevato in fase di compilazione. in questo modo riusciamo ad avere un controllo sulle variabili utilizzate nel programma.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Struttura di base di un programma Fortran


FORTRANUn programma in fortran 90 è caratterizzato dalla seguente struttura:

1) Sezione dichiarativa
E’ posizionata all’inizio e contiene istruzioni non eseguibili quali:

  •     nome del programma preceduto dal testo program;
  •     dichiarazione delle variabili.

2) Sezione esecutiva.
Rappresenta il corpo del programma e contiene le istruzioni eseguibili necessarie per effettuare le operazioni per le quali il programma stesso è stato ideato.

3) Sezione conclusiva.
Contiene le istruzioni che interrompono il programma quali:

  •     stop che interrompe il programma;
  •     end program che dice al compilatore che non c’`e pi`u nulla da compilare.

struttura.fortran

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Compilazione di un programma nel fortran


FORTRANLa procedura di compilazione di un programma fortran 90 avviene in maniera del tutto identica a quella utilizzata nelle precedenti versioni del fortran. Allora per compilare e collegare un codice sorgente fortran 90 con il nome main.f90, dobbiamo semplicemente digitare la seguente riga:

f90 main.f90

Questo creerà un archivio eseguibile chiamato a.out.

I programmi in fortran 90 che usano la forma libera di formato devono avere un’estensione f90. Come per il compilatore fortran 77, anche per il compilatore f90 possiamo specificare il nome del nostro file eseguibile utilizzando la seguente opzione:

f90 main.f90 -o main.out

fortran1

Abbiamo cioè utilizzato l’ opzione -o. Ciò creerà un archivio eseguibile chiamato main.out. Allo stesso modo, possiamo collegarci ad una libreria compilata di fortran 90 :

f90 main.f90 -L/usr/class/sccm001/lib -lmy\_lib90

Ciò collegherà il vostro programma main.f90 alla libreria compilata chiamata libmy\_lib90.a che risiede nell’indice /usr/class/sccm001/lib.

Supponiamo di aver scritto un programma per il calcolo dell’area di un triangolo che avremo chiamato triangolo.f90 a questo punto utilizzando il compilatore, vogliamo ottenere il file eseguibile; procediamo nel seguente modo:

1) Creiamo dapprima il file oggetto:

f90 -c triangolo.f90

Questo comando creerà un file triangolo.o.

2) Creiamo quindi il file eseguibile:

f90 -o triangolo.exe triangolo.o

Questo comando creerà il file triangolo.exe che rappresenta il file eseguibile cercato. A questo punto basterà digitare il nome del file senz estensione per lanciare il programma.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

La programmazione ad oggetti in Ruby

Guida alla programmazione con Ruby

Abbiamo già specificato che Ruby è totalmente Object Oriented, questo si traduce nel fatto che in ruby tutto è un oggetto. In tale aspetto riesce a surclassare il linguaggio ad oggetti per eccellenza e cioè Java in quanto in ruby non esiste nessuna distinzione tra tipi base e oggetti, allo stesso tempo la programmazione orientata agli oggetti in ruby non risulta ne invasiva ne fastidiosa, e ciò è dovuto alla sua maggior purezza.

Una caratteristica particolarmente gradita dai programmatori Ruby è stata la possibilità di utilizzare i cosiddetti blocchi che rappresentano una feature non comune nei linguaggi più diffusi e che permettono di rappresentare diversi problemi, anche molto diversi tra loro, con modalità chiare e significative.

Il Ruby risulta amato, allo stesso modo, dai programmatori professionisti che ne apprezzano le caratteristiche più avanzate, e dai principianti in quanto si presenta particolarmente adatto ad essere appreso come primo linguaggio.

Infatti grazie alla sua semplicità, è possibile comprendere le nozioni di base della programmazione, senza doversi preoccupare di innumerevoli convenzioni e aspetti non strettamente legati alla realizzazione degli algoritmi numerici.

RUBYOS

Inoltre possiamo dire che Ruby si presenta efficacemente espressivo in quanto fornisce molte strutture dati e tipi builtin, che rappresentano quelli offerti dal linguaggio; esempi sono:

  • hash,
  • array dinamici,
  • regexp,
  • numeri interi di dimensione arbitraria.

Le classi in ruby presentano un’interfaccia molto dettagliata, che determina una semplicità nell’utilizzo nelle operazioni comuni.

Una caratteristica che ha determinato il successo di Ruby nel panorama mondiale della programmazione è stata la sua estrema portabilità; esistono versioni di Ruby per piattaforma Linux (suo ambiente naturale visto che in tale contesto è stato sviluppato), per sistemi operativi Unix-like, Mac OS, e Windows in tutte le sue versioni.

RUBYOS

La versatilità di Ruby si manifesta nella sua interezza ,dal momento che esiste una versione di Ruby anche per l’obsoleto sistema operativo con interfaccia orientata ai caratteri MS-DOS.

Caratteristiche del linguaggio di programmazione Ruby

Guida alla programmazione con Ruby

Le caratteristiche peculiari di Ruby lo rendono un linguaggio di programmazione soprattutto semplice, il suo utilizzo si apprende in pochi giorni, senza presentare grosse difficoltà grazie ad una sintassi snella e davvero pratica; in aggiunta presentando a corredo un numero davvero corposo di librerie incluse nella distribuzione ed integrabili con quelle installabili tramite RubyGems si rende possibile, come già anticipato  realizzare i nostri programmi in brevissimo tempo.

Ruby si presenta particolarmente dinamico, un esempio è fornito dal fatto che le variabili possono essere tranquillamente utilizzate senza la necessità di dichiararne il tipo, sarà allora l’interprete in grado di identificarle; tutto questo però senza perdere in precisione in quanto le operazioni non consentite tra tipi diversi provocheranno un errore, cioè non potrà mai accadere, in modo più o meno nascosto, che un valore di un certo tipo venga utilizzato come se fosse di tipo diverso (strong typing).

Grazie a questo un operazione del tipo 1+”2″ (somma di un numero e di una stringa) determinerà un errore di runtime (errore in fase di esecuzione), diversamente da linguaggi come php o perl che invece non permettono un controllo analogo.

In ruby è possibile manipolare le classi ed i metodi a runtime, cioè possono essere aggiunti, cancellati o modificati in fase di esecuzione. In questo modo molte delle cose che negli altri linguaggi rappresentano delle strutture complesse possono in ruby costituire dei semplici metodi; è altresì possibile aggiungere classi e metodi personalizzati, creando dei Domain Specific Language (DSL).

DLS

Un Domain Specific Language è un minilinguaggio adatto ad un problema specifico, l’ideale sarebbe avere un linguaggio per ogni scopo, ma senza il problema di doverlo ogni volta imparare da zero. D’altronde il cuore della programmazione è costruire degli strumenti che permettano di risolvere un problema, ed un linguaggio è lo strumento per eccellenza.

Ruby è perfetto per la costruzione di semplici DSL da utilizzare all’interno della propria applicazione, grazie alla sua sintassi ed alle sue funzionalità di metaprogrammazione.

I commenti in Python

python

Commentare in Python è un’operazione che per certi versi si presenta molto diversa rispetto ad altri linguaggi, ma è abbastanza facile abituarsi a questo nuovo modo di inserire del testo esplicativo nei nostri codici.

In Python ci sono fondamentalmente due modi per commentare un programma:

  •   singola linea di commento
  •   linea multipla di commento

La linea singola di commento è utilizzata per inserire un commento breve (o per il debug), mentre la linea multipla di commento è spesso usata per descrivere qualcosa di molto più dettagliato.

commenti.python

Vediamo allora qualche esempio esplicativo per meglio comprendere i concetti fin qui introdotti. Iniziamo con la singola linea di commento:

print(“Questo non è un commento”)
#print(“Questo invece è un commento”)

Allora quando l’interprete incontra il simbolo #(cancelletto) ignora tutto quello che segue il simbolo fino alla fine della riga. Potremmo anche scrivere in questo modo:

print(“Questo non è un commento”)#Stampa di una stringa di testo

Per quanto riguarda invece la linea multipla di commento utilizzeremo il simbolo ”’, vediamo come:

”’
print(“Questo non è un commento”)
print (“Ulteriore riga di commento”)
”’
print(“Questo non è un commento”)

I commenti rappresentano una utile risorsa per il programmatore in quanto ci permettono di inserire del testo esplicativo molto prezioso nell’ottica di riusabilità del codice, ma si rendono particolarmente efficaci anche nella fase di debugging del codice in cui l’inserimento di strighe di testo ci aiuta nell’individuare possibili bug del nostro programma.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Gli operatori aritmetici in Python

python

Vediamo ora come eseguire dei semplici calcoli in ambiente Python. Supponiamo di voler utilizzare il prompt di Python come una semplice calcolatrice, allora scriveremo:

>>> 6 + 5
11

Qui abbiamo visualizzato il risultato di una operazione aritmetica: la somma di cinque e sei. Python riconosce i numeri ed il segno di addizione e li somma. Quindi mostra il risultato.

Tutti gli operatori aritmetici possono essere utilizzati:

addizione (+)
sottrazione (-)
moltiplicazione (*)
divisione (/)

Possiamo allora combinare diverse operazioni per ottenere espressioni multiple:

>>> ((5 * 4) + (6 – 3)) / (1 + 4)
4.6

Nell’espressione che abbiamo appena visto è possibile notare come Python utilizzi le parentesi per eseguire le operazioni sui numeri,queste determinano delle variazioni nell’ordine in cui vengono eseguite le stesse.

operatori.aritmetici.python

Vediamo cosa accade se si scrive la stessa sequenza senza le parentesi:

>>>5 * 4 + 6 – 3/ 1 + 4
27.0

Come è possibile notare il risultato è del tutto diverso e dipende dal fatto che Python calcola le moltiplicazioni e le divisioni prima delle somme e sottrazioni, secondo quanto dettato dalle regole imposte dall’algebra.

Tali regole sono imposte da tutti i linguaggi di programmazione e servono per determinare la sequenza di valutazione delle operazioni che va sotto il nome di precedenza fra operatori.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Come definire le stringhe in Python

python

Una stringa viene identificata attraverso l’impiego delle virgolette. Nella definizione di una stringa in Python  possono essere utilizzate sia le virgolette semplici  che quelle doppie: ” stringa”.

Questa duplice possibilità nell’utilizzo dell’identificatore ci permette di includere un tipo di virgolette in una stringa racchiusa con virgolette dell’altro tipo, cosa indispensabile ad esempio nell’impiego dell’apostrofo.

Per meglio comprendere quanto detto, vediamone un esempio:

>>> print “Stringa che contiene l’apostrofo…”

Vediamo nel dettaglio in quanti modi sia possibile definire una stringa:

  •   Con singoli apici: ‘Stringa in Python!’
  •   Con doppi apici: ” Stringa in Python!”
  •   Sequenze di escape: “Digita il comando \”ls\””
  •   Attraverso l’impiego delle funzioni di trasformazione da altri tipi di valori: str(1111), str(11.11), str(11.1+1j)
  •   Infine le stringhe multilinea con l’adozione di tre apici (singoli o doppi).

stringhe.python

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

MATLAB – Guida all’uso

MATLAB
Una guida all’uso del software matematico MATLAB, pensata per gli utenti inesperti che si avvicinano per la prima volta al suo utilizzo, ma utile anche a chi è già pratico come ausilio allo sviluppo delle sue competenze. Il libro è strutturato in modo tale che il lettore possa apprendere gradualmente le nozioni di base per il corretto utilizzo del software, e in seguito, tramite la soluzione dei più diffusi problemi di calcolo numerico, acquisire padronanza nella gestione della simulazione numerica di modelli matematici. Il testo è valido per qualsiasi versione di MATLAB: gli esempi sono basati sulla versione 7.x ma sono compatibili anche con le versioni precedenti.

libromatlabDettagli del libro

  •     Titolo: Matlab – Guida all’uso
  •     Autore: Giuseppe Ciaburro
  •     Editore: FAG
  •     Collana: Pro DigitalLifeStyle
  •     ISBN: 8882336425
  •     ISBN-13: 9788882336424
  •     Pagine: 251
  •     Formato: brossura

Giuseppe Ciaburro ingegnere chimico, svolge la sua attività di tecnico presso la Seconda Università degli Studi di Napoli. Esperto di acustica, vanta una vasta esperienza nella docenza di corsi professionali di informatica e nel campo dell’e-learning; autore e titolare del sito www.ciaburro.it.

Matlab. Versione 7.x e precedenti. Guida all’uso

Programmare con Fortran


FORTRAN

Questo manuale è contraddistinto da un approccio didattico semplice, accurato ed efficace per imparare a programmare in Fortran (versioni 90, 95, 2003). Ricco di esempi pratici, il libro guida alla realizzazione di algoritmi per la soluzione dei più diffusi problemi di calcolo numerico. Sono descritti dettagliatamente tutti i passi necessari all’utilizzo del Fortran: i comandi, la sintassi e l’uso delle variabili. Sono affrontate passo per passo tutte le tematiche della programmazione, dalla definizione delle variabili allo sviluppo degli algoritmi, alle operazioni di ingresso/uscita per finire con la visualizzazione dei dati elaborati. Tra gli argomenti trattati: Nozioni di base; Espressioni e assegnazioni; Procedure e funzioni; Moduli; Strutture di controllo del flusso; Array; Operazioni di ingresso/uscita; Visualizzazione dei dati.

Dettagli prodotto

  •     Copertina flessibile: 299 pagine
  •     Editore: FAG (29 febbraio 2008)
  •     Collana: Pro DigitalLifeStyle
  •     Lingua: Italiano
  •     ISBN-10: 8882336883
  •     ISBN-13: 978-8882336882
  •     Peso di spedizione: 499 g

libro.fortran

Sommario

  1. Introduzione
  2. Elementi di base del Fortran
  3. Espressioni e assegnazioni
  4. Strutture per il controllo del flusso
  5. Sottoprogrammi e moduli
  6. Operazioni di ingresso e di uscita
  7. Operazioni su file
  8. Array
  9. Caratteristiche innovative del Fortran
  10. Metodi numerici per la risoluzione di problemi computazionali
  11. Visualizzazione dei dati

Programmare con Fortran