ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2...

56
ISTITUTO DI ISTRUZIONE ISTITUTO DI ISTRUZIONE SUPERIORE SUPERIORE A. EINSTEIN A. EINSTEIN PROGETTO LAUREE PROGETTO LAUREE SCIENTIFICHE SCIENTIFICHE 2007 2007

Transcript of ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2...

Page 1: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

ISTITUTO DI ISTRUZIONE ISTITUTO DI ISTRUZIONE SUPERIORESUPERIORE

““A. EINSTEINA. EINSTEIN””

PROGETTO LAUREE PROGETTO LAUREE SCIENTIFICHESCIENTIFICHE

20072007

Page 2: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

(Non tanto)(Non tanto) BREVEBREVETUTORIALTUTORIAL

PERPEROCTAVEOCTAVE

Prof. Fernando DProf. Fernando D’’AngeloAngelo

Page 3: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

www.gnu.orgwww.gnu.org

Page 4: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Sistema operativo GNU Sistema operativo GNU -- FreeFreeSoftware Software FoundationFoundation

Benvenuti al server web del Progetto GNU, Benvenuti al server web del Progetto GNU, www.gnu.orgwww.gnu.org. Il . Il Progetto GNUProgetto GNU èè stato lanciato stato lanciato nel 1984 per sviluppare un sistema operativo nel 1984 per sviluppare un sistema operativo UnixUnix--compatibilecompatibile completo che fosse completo che fosse software software liberolibero: il sistema GNU. GNU : il sistema GNU. GNU èè un acronimo un acronimo ricorsivoricorsivo per per ““GNU'GNU's s NotNot UNIXUNIX””; (GNU Non ; (GNU Non èèUnixUnix) e si pronuncia ) e si pronuncia ““ghgh--nunu““ (con la g dura). (con la g dura). Varianti del sistema operativo GNU, che utilizzano Varianti del sistema operativo GNU, che utilizzano il il kernelkernel LinuxLinux, sono ora ampiamente utilizzate; , sono ora ampiamente utilizzate; anche se a questi sistemi ci si riferisce spesso anche se a questi sistemi ci si riferisce spesso come come ““LinuxLinux””, essi vengono chiamati con pi, essi vengono chiamati con piùùprecisione precisione sistemi GNU/sistemi GNU/LinuxLinux..

Page 5: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

http://www.octave.org/http://www.octave.org/

Page 6: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Che cosChe cos’è’è OctaveOctave??

OctaveOctave èè un linguaggio interpretato un linguaggio interpretato di alto livello per eseguire calcoli di alto livello per eseguire calcoli matematici distribuito sotto licenza matematici distribuito sotto licenza GNU. GNU. EE’’ liberamente scaricabile dal sito liberamente scaricabile dal sito www.octave.org sia per piattaforma www.octave.org sia per piattaforma LinuxLinux, sia per Windows ed , sia per Windows ed èècompreso in gran parte delle compreso in gran parte delle distribuzioni distribuzioni LinuxLinux. . Le sue funzionalitLe sue funzionalitàà sono molto simili sono molto simili a quelle di a quelle di MatlabMatlab®® di di MathworksMathworks. .

Page 7: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Per lanciare il programma Per lanciare il programma OctaveOctavebasta basta cliccarecliccare sul sul linklink presente presente sul desktop.sul desktop.

Per uscire dal programma Per uscire dal programma digitare digitare exit o exit o quitquit. . Lanciato il programma si entra in Lanciato il programma si entra in una una sessioneinterattivasessioneinterattiva avente avente come come promptprompt octaveoctave>> o o >>>>..

Page 8: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Come ottenere un aiuto su un Come ottenere un aiuto su un comandocomando

Il programma permette,conoscendo il Il programma permette,conoscendo il nome di un comando, di ottenere un aiuto nome di un comando, di ottenere un aiuto sul comando stesso relativo sia al suo sul comando stesso relativo sia al suo utilizzo sia al risultato che da esso si utilizzo sia al risultato che da esso si ottiene.ottiene.Per richiamare un aiuto su un qualunque Per richiamare un aiuto su un qualunque comando si usa la seguente sintassi:comando si usa la seguente sintassi:help comandohelp comandoin cui comando in cui comando èè il nome del comando di il nome del comando di cui vogliamo un aiuto.cui vogliamo un aiuto.

Page 9: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Come ottenere il manuale in lineaCome ottenere il manuale in linea

Il programma dispone di un ottimo Il programma dispone di un ottimo manuale che può essere richiamato manuale che può essere richiamato digitando:digitando:

help help --iiTale manuale Tale manuale èè ordinato per ordinato per argomenti e molto ricco di esempi.argomenti e molto ricco di esempi.

Page 10: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Formato di visualizzazione dei Formato di visualizzazione dei numerinumeri

Il programma permette di Il programma permette di visualizzare in parecchi formati i visualizzare in parecchi formati i risultati ottenuti. Per stabilire un risultati ottenuti. Per stabilire un certo formato visualizzazione si usa il certo formato visualizzazione si usa il comando:comando:format opzioneformat opzionein cui opzione può assumere uno dei in cui opzione può assumere uno dei seguentivaloriseguentivalori::

Page 11: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

shortshortlonglonglong elong eshort eshort elong Elong Eshort Eshort Efreefreenonenonebankbank++hexhexbitbit

Page 12: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Al Al promptprompt di di octaveoctave si possono si possono effettuare operazioni matematiche effettuare operazioni matematiche quali somma, prodotto,elevazione a quali somma, prodotto,elevazione a potenza, radice quadrata, ecc. potenza, radice quadrata, ecc. Il risultato Il risultato èè memorizzato in una memorizzato in una variabile di variabile di defaultdefault chiamata chiamata ansans..>> (2*3)>> (2*3)--4^34^3ansans = = --5858Esempio di radice quadrata.Esempio di radice quadrata.>> >> sqrtsqrt(4)(4)ansans = 2= 2

Page 13: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

OctaveOctave non ha bisogno di definire i non ha bisogno di definire i tipi delle variabili, queste vengono tipi delle variabili, queste vengono definite in "modalitdefinite in "modalitàà runrun--timetime" " quando vengono utilizzate. quando vengono utilizzate. >> pi = 3.1415>> pi = 3.1415>> s = >> s = ““CiaoCiao””Per visualizzare il contenuto della Per visualizzare il contenuto della variabile basta digitare il nome della variabile basta digitare il nome della variabile stessa.variabile stessa.

Page 14: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

SITO MATERIALI PLSSITO MATERIALI PLS

www.webalice.it/fernando.dangelo1/PLS.htmwww.webalice.it/fernando.dangelo1/PLS.htm

Page 15: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Essendo pensato per calcoli Essendo pensato per calcoli matematici strutture dati matematici strutture dati

come vettori e matrici sono come vettori e matrici sono gigiàà predisposti come tipi predisposti come tipi

primitivi.primitivi.

Page 16: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Il seguente esempio Il seguente esempio inizializzainizializza un vettore un vettore (3x1, 3 colonne ed 1 riga) memorizzato (3x1, 3 colonne ed 1 riga) memorizzato nella variabile v. nella variabile v. >> v = [1, 2, 12]>> v = [1, 2, 12]I valori possono essere separati da spazi o I valori possono essere separati da spazi o da virgole. da virgole. Per definire una matrice le righe devono Per definire una matrice le righe devono essere separate da un punto e virgola. essere separate da un punto e virgola. NellNell’’esempio seguente viene definita una esempio seguente viene definita una matrice 3x3.matrice 3x3.>> M = [2, 3, 4; 12, 13, 3; 4, 1, 2]>> M = [2, 3, 4; 12, 13, 3; 4, 1, 2]

Page 17: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

I vettori possono anche essere creati I vettori possono anche essere creati nel seguente modo:nel seguente modo:a:ba:b definisce un vettore da a a b con definisce un vettore da a a b con incremento 1incremento 1a:b:c a:b:c definisce un vettore da a a c definisce un vettore da a a c con incremento b si noti che b può con incremento b si noti che b può essere negativoessere negativolinspacelinspace(a,b,c)(a,b,c) definisce un vettore definisce un vettore da a a b composto da c elementida a a b composto da c elementi

Page 18: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

definiamo una matrice 2x2 (2 definiamo una matrice 2x2 (2 righe e due colonne)righe e due colonne)A=[1 2;3 4]A=[1 2;3 4]calcoliamo il determinante di Acalcoliamo il determinante di Adetdet(A)(A)Calcoliamo la trasposta di ACalcoliamo la trasposta di AAA’’

Page 19: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

quando il determinante di una quando il determinante di una matrice quadrata matrice quadrata èè diverso da zero la diverso da zero la matrice non e' singolare ed matrice non e' singolare ed èèpertanto invertibile;pertanto invertibile;calcoliamo la matrice inversacalcoliamo la matrice inversaA^A^--11invinv(A)(A)

Page 20: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

la matrice la matrice identita'identita' 2x2 si 2x2 si puo'puo'definire con la seguente istruzionedefinire con la seguente istruzioneI=eyeI=eye(2)(2)Si può pertanto verificare la Si può pertanto verificare la proprieta'proprieta'' ' A*A^A*A^--1=A^1=A^--1*A=I1*A=I

Page 21: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

AUTOVALORI/AUTOVETTORIAUTOVALORI/AUTOVETTORI

l'istruzione per il calcolo degli l'istruzione per il calcolo degli autovaloriautovalori della matrice A della matrice A èè

eigeig(A)(A)

che restituisce la lista degli che restituisce la lista degli autovaloriautovaloridella matrice Adella matrice A

Page 22: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

in modo piin modo piùù completo ponendo:completo ponendo:[[AV1,AV2AV1,AV2]]==eigeig(A)(A)

si ottengono due matrici e si ottengono due matrici e precisamenteprecisamenteAV1AV1 èè appunto la matrice degli appunto la matrice degli autovettoriautovettoriAV2AV2 èè una matrice diagonale e sulla una matrice diagonale e sulla diagonale si trovano appunto gli diagonale si trovano appunto gli autovaloriautovalori

Page 23: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Si possono definire in modo esplicito Si possono definire in modo esplicito gli gli autovettoriautovettoriv1=autovettori(:,1)v1=autovettori(:,1)v2=autovettori(:,2)v2=autovettori(:,2)…………vn=autovettorivn=autovettori(:,n)(:,n)

Page 24: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Si possono definire in modo esplicito Si possono definire in modo esplicito gli gli autovaloriautovalori

Lambda_1=autovalori(1,1)Lambda_1=autovalori(1,1)Lambda_2=autovalori(2,2)Lambda_2=autovalori(2,2)………………Lambda_n=autovalori(n,n)Lambda_n=autovalori(n,n)

Page 25: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

PoichPoichéé gli gli autovaloriautovalori e gli e gli autovettoriautovettorisoddisfano all'equazionesoddisfano all'equazioneA*v=lambda*vA*v=lambda*v

OppureOppureA*vA*v--lambda*v=0lambda*v=0ciocioèè(A(A--lambda I)*v=0lambda I)*v=0

Page 26: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Si può Si può effettureeffetture la verifica calcolandola verifica calcolandoA*v1A*v1--lambda_1*v1 lambda_1*v1 A*v2=lambda_2*v2A*v2=lambda_2*v2………………A*vn=lambda_n*vnA*vn=lambda_n*vn

Tali espressioni a causa dellTali espressioni a causa dell’’inevitabile inevitabile errore di arrotondamento connesso errore di arrotondamento connesso al calcolo potrebbero anche risultare al calcolo potrebbero anche risultare non esattamente 0; non esattamente 0; ad esempio si ad esempio si potrebbe trovare 1.0Epotrebbe trovare 1.0E--1616

Page 27: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Il metodo delle potenzeIl metodo delle potenze

functionfunction [[lamlam,x,iter],x,iter]=MetPotenze=MetPotenze(A,(A,toltol,,kmaxkmax,x0),x0)% % InputsInputs% A: matrice,% A: matrice,% % toltol: tolleranza;: tolleranza;% % kmaxkmax: numero massimo d: numero massimo d’’iterazioniiterazioni% x0: vettore iniziale% x0: vettore iniziale% % OutputsOutputs% % lamlam : : autovaloreautovalore di modulo massimodi modulo massimo% x: % x: autvettoreautvettore corrispondentecorrispondente% iter: iterazioni effettuate% iter: iterazioni effettuate

File File MetPotenze.mMetPotenze.m

Page 28: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

%inizializzazione%inizializzazionex0=x0/x0=x0/normnorm(x0); (x0); lam=x0'*(A*x0); lam=x0'*(A*x0); err=tol*abs(err=tol*abs(lamlam)+1; )+1; iter=0;iter=0;%ciclo%ciclowhilewhile ((errerr > > tol*abstol*abs((lamlam) & ) & absabs((lamlam)~=0 & )~=0 &

iter<iter<=kmax=kmax))x=A*x0;x=A*x0;x=x/x=x/normnorm(x);(x);lamnew=x'*(A*x);lamnew=x'*(A*x);err=abserr=abs((lamnewlamnew--lamlam););lam=lamnewlam=lamnew;;x0=x;x0=x;iter=iter+1;iter=iter+1;end end returnreturn

Page 29: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Esempi Esempi pagpag 69 appunti De Marchi69 appunti De Marchi

Page 30: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

⎟⎟⎟⎟

⎜⎜⎜⎜

−−

=2/106/22/12/16/1

02/16/1

1AV

⎟⎟⎟

⎜⎜⎜

⎛=

4000200020

2AV

Page 31: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...
Page 32: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Esempi Esempi pagpag 69 appunti De Marchi69 appunti De Marchi

Page 33: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Le espressioniLe espressioni

Le espressioni sono i blocchi basilari Le espressioni sono i blocchi basilari per costruire funzioni o effettuare per costruire funzioni o effettuare calcoli con calcoli con OctaveOctave. Le espressioni si . Le espressioni si basano su:basano su:operatori aritmeticioperatori aritmeticioperatori di comparazioneoperatori di comparazioneoperatori logicioperatori logicioperatori di assegnazioneoperatori di assegnazioneoperatori di incrementooperatori di incremento

Page 34: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Operatori di comparazioneOperatori di comparazione

minore: minore: x<yx<yMinore uguale : Minore uguale : x<=yx<=ymaggiore: maggiore: x>yx>yMaggiore uguale: Maggiore uguale: x>=yx>=yuguaglianza: uguaglianza: x==yx==ydisuguaglianza: disuguaglianza: x!=yx!=ydisuguaglianza: disuguaglianza: xx‘‘=y=ydisuguaglianza: disuguaglianza: x<>yx<>y

Page 35: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Operatori logiciOperatori logici

And elemento per elemento: And elemento per elemento: &&Or elemento per elemento: Or elemento per elemento: ||Negazione di una espressione Negazione di una espressione booleanabooleana: : !!Negazione di una espressione Negazione di una espressione booleanabooleana: : ‘‘And complessivo: And complessivo: &&&&Or complessivo: Or complessivo: ||||

Page 36: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Operatori di assegnazioneOperatori di assegnazioneTramite gli operatori di assegnazione,noi assegniamo un Tramite gli operatori di assegnazione,noi assegniamo un

determinato valore ad una variabile. determinato valore ad una variabile. LL’’operatore unico di assegnazione che operatore unico di assegnazione che èè utilizzato in utilizzato in OctaveOctave

èè:=:=Per assegnare un valore ad una variabile possiamo quindi Per assegnare un valore ad una variabile possiamo quindi

utilizzare la seguente sintassi:utilizzare la seguente sintassi:Nome variabile = valore da assegnareNome variabile = valore da assegnareCosCosìì per assegnare un valore numerico ad una variabile per assegnare un valore numerico ad una variabile

possiamo utilizzare la sintassi:possiamo utilizzare la sintassi:a=5a=5Per assegnare una matrice utilizziamo la sintassi:Per assegnare una matrice utilizziamo la sintassi:a=[1,2;3,4]a=[1,2;3,4]Si noti quindi che assegnare un valore significa anche Si noti quindi che assegnare un valore significa anche

inizializzareinizializzare una variabile a quel valore.una variabile a quel valore.

Page 37: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Operatori di incrementoOperatori di incrementopreincrementopreincremento:++x:++xIncrementa la variabile x di uno e restituisce il Incrementa la variabile x di uno e restituisce il

nuovo valorenuovo valorepostincrementopostincremento:x++:x++Incrementa la variabile x di uno e restituisce il Incrementa la variabile x di uno e restituisce il

valore prima dellvalore prima dell’’incrementoincrementopredecrementopredecremento::----xxDecrementa la variabile x di uno e restituisce il Decrementa la variabile x di uno e restituisce il

nuovo valorenuovo valorepostdecrementopostdecremento:x :x ----decrementa la variabile x di uno e restituisce il decrementa la variabile x di uno e restituisce il

valore prima dellvalore prima dell’’incrementoincremento

Page 38: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Strutture di controlloStrutture di controllo

Page 39: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

IfIfifif (condizione)(condizione)

blocco di istruzioniblocco di istruzionielseelse

blocco di istruzioniblocco di istruzioniendifendif

Page 40: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

ESEMPIOESEMPIO> > functionfunction result=pariresult=pari(x)(x)>>ifif ((remrem(x,2)==0)(x,2)==0)> result=> result=‘‘ssì’ì’;;>else>else>result=>result=‘‘nono’’;;>>endifendif>>endfunctionendfunctionoctaveoctave:11> pari(4):11> pari(4)ansans = s= sììoctaveoctave:12> pari(3):12> pari(3)ansans = no= no

Page 41: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

SwitchSwitch

switchswitch ESPRESSIONE ESPRESSIONE case CASO1 case CASO1

BLOCCO BLOCCO case CASO2 case CASO2

BLOCCO BLOCCO ... ... otherwiseotherwiseBLOCCO BLOCCO

endswitchendswitch

Page 42: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

ESEMPIOESEMPIO> x=3> x=3x = 3x = 3> > switch(xswitch(x))>> case(1)case(1)> test=> test=““alfaalfa““> case(2)> case(2)> test=> test=““betabeta““> case(3)> case(3)> test=> test=““gammagamma““> otherwise> otherwise> test=> test=““valorevalore sconosciutosconosciuto““> > endswitchendswitchtest = gammatest = gamma

Page 43: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

WhileWhile

whilewhile (CONDIZIONE)(CONDIZIONE)blocco di istruzioni blocco di istruzioni endwhileendwhile

Page 44: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Do Do do do blocco di istruzioni blocco di istruzioni untiluntil (CONDIZIONE)(CONDIZIONE)

Page 45: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

ForFor

ForFor var=exprvar=exprBLOCCO ISTRUZIONIBLOCCO ISTRUZIONIendforendfor

Page 46: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

ESEMPIOESEMPIO>> >> fibfib = = onesones(1,10);(1,10);>> >> forfor i = 3:10i = 3:10>> >> fibfib (i)= (i)= fibfib (i(i--1) + 1) + fibfib (i(i--2);2);>> >> endforendfor>> >> fibfibfibfib = = 1 1 2 3 5 8 13 21 34 551 1 2 3 5 8 13 21 34 55

Page 47: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

BreakBreakL'istruzione break permette L'istruzione break permette l'interruzione di un ciclo l'interruzione di un ciclo indipendentemente dalla condizione.indipendentemente dalla condizione.

ContinueContinueL'istruzione continue interrompe il L'istruzione continue interrompe il ciclo concludendo; a differenza di ciclo concludendo; a differenza di break, aspetta la fine del blocco di break, aspetta la fine del blocco di istruzioni.istruzioni.

Page 48: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Input e OutputInput e Output

Output da TerminaleOutput da TerminaleOctaveOctave valuta le espressioni ogni valuta le espressioni ogni qualvolta che viene battuto l'invio. qualvolta che viene battuto l'invio. Il risultato di queste espressioni Il risultato di queste espressioni èèstampato sullo schermo, che stampato sullo schermo, che èè lo lo standard output.standard output.dispdisp(x)(x) èè una funzione che stampa il una funzione che stampa il valore della variabile xvalore della variabile x

Page 49: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Input da TerminaleInput da TerminalePer inserire valori direttamente dallo Per inserire valori direttamente dallo standard input (il terminale) si utilizza la standard input (il terminale) si utilizza la funzionefunzioneinputinputinput(testo) input(testo,input(testo) input(testo,””ss””)) Input stampa Input stampa un messaggio e aspetta l'output un messaggio e aspetta l'output dell'utente. Dato che può ricevere un solo dell'utente. Dato che può ricevere un solo valore, per utilizzare le stringhe si utilizza valore, per utilizzare le stringhe si utilizza l'opzione l'opzione ““ss””

Page 50: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

menu(testo, op1, op2) la funzione menu offre menu(testo, op1, op2) la funzione menu offre una serie di opzioni predefinite, utile per una serie di opzioni predefinite, utile per realizzare menu per sessioni interattiverealizzare menu per sessioni interattiveoctaveoctave:1> risposta=menu("Sei d'accordo?","Si", :1> risposta=menu("Sei d'accordo?","Si", "No", "Forse")"No", "Forse")Sei d'accordo? Sei d'accordo? [ 1] Si [ 1] Si [ 2] No [ 2] No [ 3] Forse [ 3] Forse pick a pick a numbernumber, , anyany numbernumber: 3: 3risposta = 3risposta = 3

Page 51: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

I/O da FileI/O da FileScritturaScrittura

E' possibile salvare variabili in un file utilizzando il E' possibile salvare variabili in un file utilizzando il comando comando savesavesavesave optionsoptions nomefilenomefile v1 v2 ...v1 v2 ...SaveSave salva le variabili v1, v2, ... salva le variabili v1, v2, ... vnvn nel file nel file specificato. specificato. Le opzioni permettono di specificare il formato.Le opzioni permettono di specificare il formato.Alcune opzioni:Alcune opzioni:--asciiascii salva in formato testosalva in formato testo--binarybinary salva in formato binariosalva in formato binario--matmat--binarybinary salva in formato binario compatibile salva in formato binario compatibile con con matlabmatlab

Page 52: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

EsempioEsempio

> testo="Ciao > testo="Ciao ““testo = Ciaotesto = Ciao> > savesave --asciiascii testotesto.txt.txt testotesto> > savesave --binarybinary testotesto.bin.bin

Page 53: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

testotesto.txt#.txt#CreatedCreated byby xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx# # namename: testo: testo# # typetype: : stringstring arrayarray# # elementselements: 1: 1# # lengthlength: 10: 10CiaoCiao

testotesto.bin.binOctaveOctave--11--L#####testo#############L#####testo#############CiaoCiao

Page 54: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

LetturaLettura

In maniera del tutto simile il comando In maniera del tutto simile il comando loadloadserve per caricare variabili inserite in un serve per caricare variabili inserite in un file.file.

> > clearclear testotesto> testo> testoerror: `testo' error: `testo' undefinedundefined nearnear line 7 line 7 columncolumn

11> > loadload --asciiascii testotesto.txt.txt testotesto> testo> testotesto = Ciaotesto = Ciao

Page 55: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

Funzioni e File ScriptFunzioni e File Script

Le funzioni sono un insieme di Le funzioni sono un insieme di comandi che possono essere comandi che possono essere raggruppati per facilitare le raggruppati per facilitare le elaborazioni dell'utente. elaborazioni dell'utente. In In OctaveOctave possono essere possono essere definite in maniera definite in maniera iterattivaiterattiva o in o in file esterni.file esterni.

Page 56: ISTITUTO DI ISTRUZIONE SUPERIORE “A. EINSTEIN” · Esempi pag 69 appunti De Marchi ... 1/ 6 1/ 2 1/ 2 ... TUTORIAL OCTAVE Author: xxx Created Date: 3/12/2007 10:10:34 AM ...

GRAFICAGRAFICAPlotPlot

Il comando plot(x, y, Il comando plot(x, y, fmtfmt) permette di ) permette di disegnare grafici in due dimensioni.disegnare grafici in due dimensioni.> x=(1:0.1:20);> x=(1:0.1:20);> y=x.^2> y=x.^2> plot(x,y)> plot(x,y)FmtFmt specifica il formato del grafico ad specifica il formato del grafico ad esempio '@' serve per avere i punti, 'L' esempio '@' serve per avere i punti, 'L' per avere un grafico a gradini, '^' a per avere un grafico a gradini, '^' a impulsi.impulsi.