Metodi matematici per l ottimizzazione dinamica. Introduzione a MATLAB Giovanni Di Bartolomeo Università di Teramo gdibartolomeo@unite.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Metodi matematici per l ottimizzazione dinamica. Introduzione a MATLAB Giovanni Di Bartolomeo Università di Teramo email: gdibartolomeo@unite."

Transcript

1 Metodi matematici per l ottimizzazione dinamica Introduzione a MATLAB Giovanni Di Bartolomeo Università di Teramo gdibartolomeo@unite.it

2 Programma dell introduzione a MATLAB I. Introduzione alla programmazione e struttura di MATLAB II. Algebra matriciale e linguaggio matriciale in MATLAB III. Funzioni matematico - statistiche IV. Importazione ed esportazione di dati VI. M- files: creazione delle funzioni VII. Cicli (loop), espressioni if e relazioni logiche VIII. Grafici e funzioni plot IX. Funzioni di ottimizzazione di MATLAB Nota: Questi lucidi sono liberamente tratti da quelli pubblicati sul web dal professor Alberto Plazzi (Università di Verona)

3 I. Introduzione alla programmazione

4 Ambito di applicazione Nell analisi dei fenomeni economici e finanziari è indispensabile conoscere e saper programmare software econometrico statistici, che siano in grado di risolvere problematiche di carattere matematico e statistico più o meno complesse, altrimenti impossibili da trattare per la loro difficoltà computazionale.

5 La programmazione Programmare significa scrivere in un particolare linguaggio un testo in grado di essere letto dal software, che contenga delle istruzioni che il software dovrà eseguire al fine di produrre un risultato numerico. Per questo motivo la fase di programmazione potrebbe in linea di principio essere eseguita su un qualsiasi editor di testo (es. Word, txt,..), per poi essere letta con il programma prescelto.

6 Importanza dell algebra matriciale I fenomeni finanziari ed economici vengono analizzati soprattutto mediante lo studio di dati, che possono riguardare: una stessa variabile osservata in momenti diversi => campione in time series (serie storica); es. la serie storica giornaliera dei prezzi del petrolio. diverse variabili osservate in uno stesso momento => campione in cross section; es. il valore di più indici azionari osservati in un momento. Entrambe le situazioni precedenti => panel; es. il valore di più indici azionari osservati per un certo periodo di tempo.

7 Importanza dell algebra matriciale Indipendentemente dal tipo di dati con cui stiamo lavorando, questi sono raccolti in matrici, sulle quali noi lavoriamo per esaminare il fenomeno in oggetto Per questo motivo è indispensabile conoscere sia l algebra matriciale sia il linguaggio matriciale che è alla base dei principali software di programmazione.

8 Concentriamo l attenzione su MATLAB MATLAB: interfaccia più vicina a Windows capacità di lavorare congiuntamente con Excel, grande facilità di programmazione e buone capacità computazionali trade off tra duttilità del software e precisione computazionale

9 II. Struttura di MATLAB

10 Struttura di MATLAB Matlab può venir utilizzato per: Applicazioni matematiche e calcoli numerici Procedure Simulazioni Analisi di dati Grafici..

11 Struttura di MATLAB All apertura di MATLAB ci troviamo sulla finestra del command: questo significa che sulla riga in cui lampeggia l indicatore di testo possiamo digitare le operazioni, che verranno immediatamente recepite dal programma ed eseguite premendo INVIO. Quanto scritto nel command durante tutta la sessione di lavoro può essere ripreso durante la stessa ponendosi su una linea e premendo la freccia in alto; premendo tale tasto in continuazione viene visualizzato quanto digitato precedentemente. Quando la finestra di command su cui sono state eseguite le operazioni risulta troppo piena e si vuole cancellarla, si digita clc e si preme invio. La cancellazione non preclude l utilizzo della funzione precedente (freccia in su).

12 Struttura di MATLAB Le operazioni immesse nel command vengono immediatamente eseguite da MATLAB, che fornisce il risultato premendo il tasto INVIO al termine della operazione da eseguire: es. >> 7/5 (INVIO) ans= Oppure, nella stragrande maggioranza dei casi, abbiamo bisogno di definire delle variabili che rimarranno in memoria in MATLAB per tutta la sessione di lavoro poiché vengono da questo immagazzinate in una memoria temporanea: es. >> A=7.5 Da questo momento in poi ad A sarà associato il valore 7.5. Quindi se digitiamo >> A*2 ans= 15

13 Struttura di MATLAB Qualora digitassimo: >> A=6 ans= d ora in poi ad A sarà associato il valore 6 e verrà riscritto sul valore precedente. ATTENZIONE: 1. MATLAB distingue tra lettere maiuscole e lettere minuscole, per cui se avessimo per sbaglio digitato prima >> a*2??? Undefined function or variable a 2. Non si può nominare una variabile come pi, cui è associato il numero

14 Struttura di MATLAB Qualora nel command si voglia effettuare una operazione senza che MATLAB ne stampi a video il risultato bisogna porre alla fine della riga un punto e virgola ;. Ovviamente questo ha senso solo se sto lavorando con variabili definite, altrimenti rende inutile l operazione. Es. se digito: >> 1+2; >> MATLAB ha calcolato 1+2 ma siccome non è coinvolta nessuna variabile non abbiamo visto il risultato dell operazione e non è successo nulla, non possiamo usare il risultato in quanto ad esso non è associata alcuna variabile utilizzabile nelle righe successive. Se invece digito: >>r=3+4; >>r*2 ans= 14 e qui ho utilizzato (ma non stampato a video) il risultato di 3+4.

15 Struttura di MATLAB Qualora il testo da inserire risultasse troppo lungo per essere visualizzato su una riga, è possibile scrivere un testo su più righe utilizzando uno spazio e i tre punti sulla riga su cui poi si va a capo. Quindi scrivere: >> r=3+4/2-7+9 r= 7 è lo stesso di scrivere >> r=3+4/2-7+9 r= 7 Volendo che MATLAB stampi a video una stringa di lettere (delle parole) e non numeri, ad es. la parola ciao, basta racchiudere la stessa tra apostrofi. Es: >> ciao ans= ciao

16 Struttura di MATLAB Volendo introdurre un testo che non sia invece considerato dal programma lo si deve racchiudere tra %. Es. >> 4+2 %ciao% ans= 6 e il programma lo ignora. (Questa funzione risulterà molto utile nell edit.)

17 Command & Edit Quando scriviamo operazioni sul command abbiamo tuttavia diversi inconvenienti: principalmente la difficoltà di gestire una serie piuttosto lunga di operazioni da far eseguire al computer in successione logica. La sconvenienza del command deriva dal fatto che essendo le operazioni eseguite subito, possono comparire messaggi di errore, etc. Inoltre, il testo della finestra del command non può essere salvato in un file a parte, se non selezionando il testo, facendo copia e incolla su un edit tipo Word, ma vengono compresi anche i messaggi di errore o i risultati. È opportuno invece che il testo contenente le operazioni da far eseguire in successione sia scritto in una finestra di edit di testo, e dopo tale file venga letto dal command, che fornisca il risultato delle operazioni contenute nel file di testo, che contiene tutte e sole le operazioni.

18 Edit L opportunità di lavorare sull edit risiede nella possibilità di salvare quanto scritto su un file di estensione.m, che poi in qualsiasi altro momento può essere recuperato e modificato. Tali files vengono pertanto definiti M-files. Quindi: Per codici che coinvolgono un breve numero di operazioni si può agire direttamente sul command; Per codici che vogliono essere salvati per poi essere riutilizzati o per codici che consistono in parecchie operazioni dobbiamo lavorare sull edit

19 Edit Per quanto detto, 3 sono le operazioni possibili all apertura di MATLAB: Lavorare direttamente sulla finestra aperta (il command); Aprire un nuovo file di edit digitando File > New > M-file che apre una nuova finestra di edit su cui possiamo lavorare Aprire un file di edit precedentemente creato digitando File > Open > che va nella cartella work, la cartella destinata ad accogliere tutti i personali m-files.

20 Edit Una volta aperto il file di edit, possiamo su di esso digitare tutte le operazioni che vedremo in seguito (manipolazione di matrici, loop, ). Se vogliamo vedere il risultato delle operazioni, dobbiamo far correre, girare il programma premendo nell edit, dopo aver salvato il file: Debug (o Tools) > Run o più semplicemente premendo il tasto F5. In questo modo otterremo nel command i risultati delle operazioni della finestra di edit, che non verrà così toccata dai risultati. Possiamo durante la sessione passare sempre da edit a command e viceversa: sull edit abbiamo il testo delle operazioni, sul command il risultato.

21 Edit Una volta scritto nell edit un codice completo e volendo salvarlo per averlo a disposizione in futuro, possiamo digitare nell edit: File > Save as che va a salvare il file con estensione.m nella cartella work, dove sarà possibile riaprirlo in futuro digitando come detto File > Open > Il percorso o path nel quale MATLAB legge e salva i files può essere visto digitando nel command il comando path. Tale percorso può essere modificato inserendo o eliminando le cartelle nelle quali MATLAB cerca le funzioni e i files digitando File > Set Path

22 Cosa sono le librerie o toolbox MATLAB consiste di una serie di funzioni di base, es. creazione di matrici, funzioni matematiche, attraverso le quali è possibile svolgere un infinità di funzioni. Tuttavia sono state create delle librerie apposite, ovvero delle raccolte di funzioni, specifiche per argomento. Es. librerie di ottimizzazione, finanza, simulazione, derivati. Si tratta quindi di raccolte di funzioni che l utilizzatore ha a disposizione immediatamente, essendo già state create. Le librerie sono immediatamente utilizzabili nell edit e nel command, e inoltre andando nella directory di MATLAB possiamo aprire i singoli file delle librerie e osservare i codici associati ad ogni funzione.

23 Aiuti nella programmazione Il tasto help è il principale aiuto nell utilizzo di MATLAB. Digitando nel command help si apre un elenco che costituisce l insieme di librerie presenti in Matlab. Digitando help seguito dal nome della libreria scelta otteniamo la serie di funzioni associate alla libreria, con una indicazione della loro utilità. Ad es. se digitiamo help vediamo che la libreria matlab\elmat si occupa di matrici, e digitando help matlab\elmat abbiamo un indicazione di tutte le funzioni presenti in questa libreria.

24 Aiuti nella programmazione Digitando poi help seguito dal nome della funzione otteniamo una descrizione dell utilizzo della funzione stessa. es. help mean ci dice come funziona questa funzione che calcola la somma facendoci anche un esempio. Inoltre se andiamo a recuperare ed aprire il file mean.m (file associato alla funzione mean) all interno della directory di MATLAB, vediamo che quanto stampato a video corrisponde alle righe racchiuse tra % presenti all inizio della funzione. Riprenderemo questo discorso più avanti parlando delle funzioni.

25 Aiuti nella programmazione Un altro comando che permette di visualizzare le funzioni che riguardano lo stesso argomento di una funzione nota è lookfor. Ad es. digitando lookfor diag otteniamo tutti i comandi analoghi al comando di estrazione della diagonale principale di una matrice. In MATLAB esiste inoltre una guida che può essere in ogni momento consultata premendo Help > MATLAB Help

26 Aiuti nella programmazione Nella creazione di funzioni risulta utilissima la presenza nell edit del Debug, ossia di un meccanismo che permette all utilizzatore di avere i risultati delle operazioni che il programma svolge o meglio sta svolgendo, all interno di una funzione, controllando che calcoli esattamente ciò che si voleva esso facesse. Vedremo più avanti la sua utilità nell abito della creazione di funzioni.

27 Altri comandi video Who e whos: digitati nel command, forniscono rispettivamente il nome delle variabili utilizzate (who) e il nome delle variabili utilizzate + la loro dimensione, cioè se matrici, numeri, (whos). Clear: digitato nel command azzera tutte la variabili temporaneamente presenti. Attenzione!: mentre clc cancella quanto è scritto ma non la memoria temporanea, clear azzera proprio quest ultima! Il comando format gestisce l aspetto grafico con il quale vengono visualizzati i risultati. In sintesi possiamo usare nel command format short format long

28 III. Algebra matriciale e linguaggio matriciale in MATLAB

29 Linguaggio matriciale Come detto, il linguaggio matriciale costituisce il nucleo essenziale della programmazione. Vediamo ora i comandi principali che riguardano creazione e manipolazione delle matrici. Va tenuta a mente una cosa fondamentale: MATLAB lavora su matrici e in tutte le operazioni in cui è possibile utilizzarlo il linguaggio matriciale, anziché codici con loop, if., risulta di gran lunga il modo più veloce ed efficiente di programmare. Le matrici possono essere registrate: Introducendo un elenco di numeri Creando le matrici in M-files Caricando i dati da files esterni Facendo generare i dati da MATLAB

30 Linguaggio matriciale Consideriamo l inserimento manuale di dati nel command di MATLAB; sono tre le indicazioni da seguire: Gli elementi della matrice devono essere racchiusi tra parentesi quadre [] Gli elementi di una stessa riga vanno separati da uno spazio Il passaggio da una riga all altra avviene con il punto e virgola Quindi per registrare la matrice che chiamiamo A va digitato nel command A=[1 2-6; 4-4 5] e invio.

31 Linguaggio matriciale Per ottenere un elemento della matrice, va indicata tra parentesi tonde la posizione dello stesso nel modo seguente: m = A(2,2) e invio ottenendo così l elemento che occupa la posizione 2,2 nella matrice A. Se commettessimo l errore di digitare n = A(2,6) e invio avremmo un messaggio di errore, date le dimensioni della nostra matrice.

32 Linguaggio matriciale Il comportamento di MATLAB non è invece lo stesso se si immagazzina un nuovo numero in una posizione che, per le dimensioni di partenza della matrice, non dovrebbe esistere. Se infatti digitiamo: A(2,4)=7 e invio attribuiamo valore 7 all elemento di posizione (2,4), che non esisterebbe date le dimensioni (2x3) della matrice. MATLAB allora allarga la matrice, inserendo l elemento 7 nella posizione scelta e ponendo zeri nella colonna (o riga) che è stata aggiunta.

33 Linguaggio matriciale Tra gli operatori matriciali, ruolo importante è attribuito ai due punti :, che indica Tutta la riga o colonna A(1,:) e invio fornisce come output tutti gli elementi della prima riga Tutte le colonne/righe da.. a A(1, 2:3) e invio fornisce come output tutti gli elementi della prima riga e delle colonne dalla seconda alla terza

34 Linguaggio matriciale Un utilizzo altrettanto fondamentale è quello di servire per costituire una sequenza, nel modo start:step:stop ossia viene creata in un vettore riga una sequenza di numeri che iniziano dal numero start, vengono incrementati del valore step e si fermano quando raggiungono lo stop. Ad esempio 1:2:20 e invio crea una sequenza di valori che partono da 1 e vengono incrementati di 2 fino ad arrivare a 20: Se non indicato, il passo di default è 1.

35 Operazioni con le matrici Data una qualsiasi matrice, possiamo facilmente trasporla con l apostrofo: B=A e invio Data una matrice quadrata, possiamo ottenere il suo determinante con la funzione det() (): d = det(matr) e invio L operatore diag() estrae invece gli elementi della diagonale principale: v=diag(a) e invio tale operazione è applicabile anche a matrici non quadrate.

36 Operazioni con le matrici Un operatore di fondamentale utilizzo è sum() (), che somma gli elementi della matrice. L operazione di somma avviene di default per colonna, ma è altresì possibile effettuarla per riga specificando sum(matrice,2). Analogo è il comando prod, che applica il prodotto. L operatore inv() inverte una matrice quadrata non singolare Quindi se definiamo la matrice Z: possiamo trasporla,estrarne la diagonale principale, calcolarne il determinante e ottenere un vettore che sommi per riga e uno che contenga la somma per colonna con i seguenti comandi:

37 Operazioni con le matrici Ztr=Z Dt = det(z) V = diag(z) Vs1=sum(Z) Vs2=sum(Z,2) Le operazioni di somma e sottrazione tra matrici si ottengono con i simboli + e e consistono nella somma e sottrazione degli elementi di una matrice con il corrisponente elemento dell altra, nell ipotesi che le dimensioni delle matrici coincidano altrimenti il messaggio di errore è??? Errar using => + Matrix dimension must agree

38 Operazioni con le matrici L operazione di prodotto tra matrici si effettua con *, e può avvenire solo se il numero di colonne della prima matrice = numero di righe della seconda. Se la condizione non viene rispettata il messaggio di errore è??? Errar using => * Inner matrix dimension must agree L operazione di prodotto tra matrici elemento per elemento si effettua con.*, e può avvenire solo se le due matrici hanno uguale dimensione, poiché moltiplica ogni elemento della prima per il corrispondente della seconda. L elevamento a potenza di un elemento si ha con ^. Applicato ad una matrice quadrata la moltiplica per sé stessa. L elevamento a potenza elemento per elemento di una qualsiasi matrice si ha con.^. Con esso si eleva ogni elemento della matrice alla potenza.

39 Concatenazione di matrici Due matrici con ugual numero di righe possono essere concatenate orizzontalmente, cioè affiancate orizzontalmente per formare una matrice unica. Definite A (2x3) e B (2x4), possiamo definire C (2x7) come la matrice che otteniamo affiancandole con le parentesi quadre e lo spazio. Quindi le trattiamo come gli elementi di una matrice: >> C=[A B]; Due matrici con ugual numero di colonne possono essere concatenate verticalmente, cioè affiancate verticalmente per formare una matrice unica. Definite D (2x3) e F (4x3), possiamo E (6x3) come la matrice che otteniamo affiancandole con le parentesi quadre e il punto e virgola. Quindi scriviamo: >> E=[D ; F];

40 Matrici fondamentali Le tre matrici più importanti per la programmazione sono le matrici di zeri e di uno, ottenibili con i comandi: zeros(i,j) (i,j),, che permette di creare una matrice di zeri con i righe e j colonne ones(i,j) (i,j),, che permette di creare una matrice di tutti uno con i righe e j colonne eye(i,j) (i,j),, che permette di creare una matrice di i righe e j colonne con uno sulla diagonale principale e zero altrove

41 Matrici fondamentali Se per esempio dobbiamo creare una matrice 3x4 con tutti 5, possiamo applicare la moltiplicazione scalare ed usare il comando precedente digitando: >> M=5*ones(3,4);

42 Altri comandi fondamentali Length(v): calcolato su di un vettore o su una serie, ne dà la lunghezza Size(m): calcolato su di una matrice, ne dà numero di righe e di colonne; in particolare size(m) => numero righe e colonne size(m,1) => numero di righe size(m,2) => numero di colonne

43 Altri comandi fondamentali È possibile cancellare righe e colonne di una matrice utilizzando le parentesi quadre [], attribuendole alla riga/colonna che si vuole cancellare. Facendo >> m = ones(3,4); >> m(:,4) = [] ho cancellato la quarta colonna di m. Ovviamente non è possibile scrivere >> m(2,2)=[] altrimenti starei cancellando un solo elemento e m non sarebbe più una matrice! Reshape(X,M,N) considera una matrice X e dà come output una matrice di MxN elementi presi da X partendo dalla prima colonna. Se X non ha ugual numero di elementi (MxN) fornisce un messaggio di errore.

44 Altri comandi Altri comandi utilizzabili in ambito matriciale sono: abs() => calcola il valore assoluto di un numero o la matrice contenente i valori assoluti della matrice cui è applicato fix() => tronca un numero all intero round() => calcola l arrotondamento per eccesso/difetto max() e min()=> calcola di un vettore il max o min elemento; di una matrice produce un vettore con il max o min degli elementi per colonne fliplr() => inverte l ordine degli elementi di un vettore

45 Altri comandi norm() => calcola la norma 2 di un vettore o matrice eig() => calcola gli autovalori di una matrice quadrata rank(), che calcola il rango di una matrice trace(), che calcola la traccia di una matrice cumprod(x) restituisce un vettore o una matrice con il prodotto cumulato per colonna cumsum(x) restituisce un vettore o una matrice con la somma cumulata per colonna

46 Funzioni matematico statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata di x sign(x), che 1,0 o -1 a seconda che x sia positivo, nullo o negativo exp(x), che calcola l esponenziale di x log(x), che calcola il logaritmo naturale di x mean(x), che calcola la media cov(x), che calcola la matrice di varianza - covarianza median(x), che calcola la mediana della distribuzione var(x) che calcola la varianza

47 Generazione di numeri casuali Molto importanti sono i comandi relativi alla generazione di numeri casuali, che sono tali grazie ad algoritmi interni che garantiscono la non regolarità dei dati: Rand(r,c) genera una matrice rxc di numeri estratti da una distribuzione continua uniforme (e quindi compresi tra zero ed uno) Randn(r,c) genera una matrice rxc di numeri estratti da una distribuzione continua normale di media zero e varianza uno Possiamo fissare il numero di partenza dal quale parte l algoritmo di MATLAB per generare i numeri casuali (o meglio pseudo casuali) digitando nel command: >> rand( seed,k) >> randn( seed,k)

48 Generazione di numeri casuali Le funzioni statistiche comprendono il campionamento da numerose variabili, tra cui citiamo normale, uniforme, chi quadro, gamma, poisson, beta. Oltre alla generazione di numeri casuali, esistono numerosissime funzioni statistiche, osservabili digitando help toolbox\stats Tra le funzioni statistiche di maggior utilità, citiamo in generale: Le funzioni che calcolano, dato il valore della ascissa, la probabilità della parte sinistra = 1- pvalue finiscono in cdf preceduto dal nome della distribuzione, es. chi2cdf; Le funzioni che calcolano, data la probabilità, il valore dell ascissa finiscono in inv preceduto dal nome della distribuzione, es. chi2pdf;

49 Funzioni, cicli, operatori logici e grafici

50 La creazione di funzioni Quando scriviamo nell edit di MATLAB noi digitiamo una serie di operazioni che poi, alla riapertura del file, possono essere riutilizzate. La maggior utilità dell edit risiede nella possibilità di creare funzioni, allo stesso modo delle funzioni create da MATLAB stesso e presenti nei vari toolbox. Una funzione, come ad esempio i comandi relativi alla manipolazione di matrici, consta di una serie di operazioni racchiuse in un file.m che vengono effettuate su di un input richiamando un comando che dà poi un output numerico. Le funzioni risiedono in files.m denominati con lo stesso nome della funzione stessa es. mean.m

51 La creazione di funzioni Ad es. la funzione sqrt(m) è una funzione che richiede 1 input (la matrice o il vettore) e fornisce 1 output Caratterizzanti delle funzioni sono: Il nome della funzione, che è interno a MATLAB Il numero di input Il numero di output (se desiderati) L importante è che una volta salvato il file contenente la funzione, essa è immediatamente e per sempre utilizzabile sia nel command che nell edit, senza bisogno di caricare il file. Ad esempio se creo e salvo in una directory di MATLAB una mia funzione, potrò d ora in poi sempre usarla.

52 La creazione di funzioni Le funzioni vengono dunque create in M-files, consistono in una serie di operazioni e richiedono necessariamente argomenti di entrata (ossia input) e se desiderati anche argomenti di uscita (output). La sintassi per creare una funzione nell edit è: function[output1,output2,..]= nome funzione(input1, input2,..)

53 La creazione di funzioni quindi: Il nome funzione è il nome che noi attribuiamo alla funzione e con la quale essa verrà richiamata (es. mean), che dovrà coincidere con il nome del file Gli input devono essere racchiusi tra parentesi tonde () e devono essere separati da virgole; gli input sono locali, cioè non dipendono dal nome che avrà poi in concreto la variabile quando applicherò la funzione! Gli output devono essere racchiusi tra parentesi quadre [] e devono essere separati da virgole

54 La creazione di funzioni Qualora non fosse necessario indicare un output, la sintassi è function[]= nome funzione(input1, input2,..) Qualora non venga assegnato nessun output non sarà possibile richiamare il risultato quando calcoliamo la funzione Proviamo ad esempio a creare una funzione che chiamiamo areacer che dato il raggio del cerchio me ne calcoli l area; quindi Esiste un input: il raggio del cerchio Posso o meno decidere che mi stampi semplicemente a video il risultato del calcolo oppure posso ad esso associare una variabile di output

55 La creazione di funzioni Se vogliamo che la funzione dia un output (il valore numerico dell area) scriveremo: function[area]=areacer(r) altrimenti function[]=areacer(r) Il codice più semplice da scrivere è 1- function[area]=areacer(r) 2- area=pi*r^2; Una volta salvato il file, denominato areacer.m, la funzione areacer() darà come risultato il quadrato dell input moltiplicato per pi greco, ossia l area del cerchio con quell input.

56 La creazione di funzioni Se non inserisco variabili di output, non posso richiamare la funzione attribuendole una funzione, altrimenti mi segna errore. Ad es. se il mio codice è: 1- function[]=areacer(r) 2- area=pi*r^2 in questo caso la variabile area è locale, cioè interna alla funzione! Essa è stampata a video in quanto al termine della riga non compare il ; ma non è indicata come variabile di output, in quanto è function[]. Quindi se io scrivessi nel command, dopo aver salvato il file con la funzione, >> y=areacer(3) mi darebbe errore in quanto per definizione la funzione areacer non ammette variabili output.

57 La creazione di funzioni Quando io digito help seguito da il nome della funzione mi compare, come detto in precedenza, una serie di indicazioni circa l uso della funzione stessa. Come detto queste righe coincidono con le righe di commento che seguono immediatamente la definizione della funzione racchiuse tra %. Per cui se scrivevo: 1- function[]=areacer(r) 2- % serve per calcolare 3- % l area di un cerchio di raggio r 4- area=pi*r^; salvando e digitando poi help areacer otterrei la stampa a video delle righe tra %. Attenzione che ogni riga di commento deve iniziare con la %.

58 La creazione di funzioni Se abbiamo una funzione con più di 1 output, ad es. 1- function[ac,aq]=areacerq(r) 2- % serve per calcolare 3- % l area di un cerchio di raggio r 4- % e l area di un quadrato di lato l=r 5- ac=pi*r^2; 6- aq=r^2; quando nel command richiamo la funzione, avendo 2 output devo scrivere >> [a,b] = areacerq(5) oppure se mi interessa solo il primo input posso scrivere solo >> a = areacerq(5)

59 La creazione di funzioni Proviamo ora a definire altre funzioni, per esempio in ambito dell algebra matriciale. Considerata una matrice che presenti elementi solo sulla diagonale principale, il suo determinante per il teorema di Laplace coincide con il prodotto degli elementi sulla diagonale stessa. Per questo, avvalendoci dei comandi diag e prod presenti nel toolbox matematico, possiamo definire una funzione del tipo: function[dd]=mydd(a) di=diag(a); dd=prod(di); Quindi estraiamo la diagonale principale e moltiplichiamo gli elementi del vettore di. La funzione non è completamente precisa: dovremmo verificare che la matrice sia quadrata e che sia diagonale! Vedremo come questo sarà possibile con il comando if.

60 Importazione di dati Nell ambito dell utilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dall utilizzatore per analizzarli. Se i dati sono contenuti in un file.txt separati da spazi vuoti è possibile caricarli in MATLAB attraverso il comando load, utilizzandolo nel modo seguente: load + percorso del file e la matrice di dati viene salvata in MATLAB con il nome del file. È poi possibile ridenominarla come una qualsiasi matrice. Se i dati sono contenuti in un file.m salvato nella directory work di MATLAB basta semplicemente digitarne il nome sul command di MATLAB che automaticamente lo leggerà Possiamo quindi creare una matrice di dati in un file.m, salvarlo nella directory work affinché questa matrice venga per sempre associata da MATLAB alla variabile.

61 Esportazione di dati Il comando save salva i dati in un file con estensione.mat nella directory work utilizzandolo nel modo seguente: save + nome del file + nome della variabile da salvare Tale variabile può essere ripresa con il comando load oppure riaprendo il file dalla cartella work. È possibile in alternativa aprire un file, scrivergli sopra e poi richiuderlo con una serie di comandi. Poniamo di voler porre la nostra matrice P di 2 colonne in un file di percorso c:\outp.txt: nomeint = fopen( file.txt, wt ) dove nomeint è un nome interno che diamo noi (quindi poteva esserci scritto al suo posto qualsiasi altra cosa), fopen è il comando di MATLAB e wt sta per to write, perché apriamo il file per scrivergli sopra; fprintf(nomeint, %g %g, P) dove ogni %g fa salvare la colonna di P, P è la nostra matrice fclose(nomeint) per chiudere il file aperto con nome interno nomeint.

62 Cicli Molto spesso abbiamo bisogno nell ambito della programmazione di cicli basati su contatori; si tratta di meccanismi che permettono di indicizzare alcune variabili in modo da creare operazioni per un numero determinato di volte. Ad esempio, poniamo di avere una matrice e di voler calcolare la media di ogni riga, elevarle alla seconda e porle in un vettore. Ci serve un modo per selezionare la prima riga, calcolare la media, elevarla al quadrato e porre il risultato nel primo elemento del vettore; selezionare la seconda riga, calcolare la media, elevarla al quadrato e porre il risultato nel secondo elemento del vettore, etc. Vediamo come fare.

63 Cicli: for Il ciclo con il for sfrutta la seguente sintassi: for i = start:step:stop;. comandi che contengono i. end; Il contatore è i e il suo nome non è fisso, è determinato dall utilizzatore (poteva essere a,b,c,d ). Quando il programma gira succede questo: 1. i parte dal valore start, viene immesso nei comandi in cui i compare, poi i viene incrementato dello step e così via 2. quando si arriva al valore stop il programma si ferma ed esce dal ciclo

64 Cicli: for Vediamo in concreto il meccanismo scrivendo il codice di prima. Prima di tutto creiamo un vettore di zeri con tante righe quante quelle della matrice (m) che accoglierà i quadrati delle medie per riga. Poi scriviamo il ciclo: 1. v=zeros(size(m,1),1) 2. for k=1:length(v); k va da 1 alla lunghezza di v 3. v(k)=mean(m(k,:))^2 nel posto k-esimo la media della riga k-esima ^2 4. end; Quando il loop gira k vale 1, viene immesso nel comando che calcola la media della riga k della matrice, la eleva alla seconda e la pone nel posto k del vettore, poi k viene aumentato di 1 e così via fino a finire le righe.

65 Cicli: while Il ciclo con il while usa la seguente sintassi: p = start while p <= stop;. comandi che contengono p. p= p+step end; il codice precedente sarebbe 1. k=1; k va da 1 2. While k<= length(v) alla lunghezza di v 3. v(k)=mean(m(k,:))^2 nel posto k-esimo la media della riga k-esima ^2 4. k=k+1 k lo aumento di 1 alla volta 5. End;

66 Cicli I cicli for sono generalmente più efficienti dei cicli while, in termini di velocità di calcolo. Entrambi i tipi di cicli (for e while) possono essere bloccati all interno con il comando break. Questo comando risulta particolarmente utile utilizzandolo con if (v. dopo). La struttura del ciclo sarebbe del tipo: for / while end; if (se succede questo).. (continua il loop e calcola questo) elseif (se invece succede quest altro) break (termina il ciclo)

67 Uso dei cicli Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~n(0,1). Realizzare questo processo con un ciclo è immediato e ovviamente richiede di predefinire c e theta, la numerosità n e il primo valore, dal quale far partire la serie. n=30; v=zeros(n,1); v(1)=2.1; theta=0.6; for i=2:n; v(i)=v(i-1)*theta+randn(1,1); end;

68 Uso dei cicli Va ricordato che nel ciclo il passo del contatore non è necessariamente 1 e inoltre può non essere un numero fisso ma collegato ad una variabile; poniamo ad esempio che abbiamo una matrice quadrata di ordine nxm costruita a blocchi, ossia a blocchi quadrati nxn sui quali vogliamo. Pertanto in una matrice 6x6 possiamo identificare 6 sottomatrici 2x2 sulle quali costruire un loop. Poniamo di aver creato con il comando rand una matrice 6x6 di numeri casuali; considerata ora una matrice della stessa dimensione, vogliamo che essa presenti solo i blocchi situati sulla diagonale. Per ottenere questo risultato dobbiamo, come al solito, predeterminare la dimensione della matrice che accoglierà i blocchi sulla diagonale e poi impostare il passo del loop.

69 Uso dei cicli Il codice, posto m=3 e n=2 può essere il seguente: n=2; m=3; r=rand((m*n),(m*n)); d=zeros((m*n),(m*n)); for i=1:n:(m*n); d(i:i+n-1,i:i+n-1)=r(i:i+n-1,i:i+n-1); end; Notiamo che la matrice d ha uguali dimensioni di r, e che il passo di i è determinato da n, in quanto devo saltare di n in n per poi considerare le sottomatrici nxn.

70 Uso dei cicli Proviamo ora in modo analogo a costruire un codice che trasferisca tutti i blocchi usando un doppio loop: n=2; m=3; c=rand((m*n),(m*n)); z=zeros((m*n),(m*n)); for i=1:n:(m*n); for k=1:n:(n*m); z(i:i+n-1,k:k+n-1)=c(i:i+n-1,k:k+n-1) end; end; Nel caso di doppio loop il programma esegue prima il loop interno e finito il ciclo aggiorna il loop esterno e quindi riinizia con il loop interno. Questo significa che l ordine con il quale MATLAB attribuisce i valori a i (contatore che agisce sulle righe) e k (contatore che agisce sulle colonne) è:

71 Uso dei cicli i=1; k=1; i=1; k=3=1+n; i=1; k=5=1+n+n; i=3=1+n; k=1; i=3=1+n; k=3=1+n; i=3=1+n; k=5=1+n+n; i=5=1+n+n; k=1; i=5=1+n+n; k=3=1+n; i=5=1+n+n; k=5=1+n+n;

72 Uso dei cicli Quindi inizia il ciclo delle righe, si esaurisce il ciclo delle colonne, si aggiorna il ciclo delle righe, Supponiamo ora di volerci cimentare in un loop più complesso: presa una matrice casuale quadrata di ordine n*m, poniamo di voler trasportare su di un altra matrice i blocchi della prima presi in senso antiorario, e quindi vogliamo che l ultima sottomatrice 2x2 diventi la prima nella nuova matrice e così via. Il grado di complessità risiede solamente nel modificare gli elementi presi in considerazione:

73 Uso dei cicli n=2; m=3; t=rand((m*n),(m*n)); g=zeros((m*n),(m*n)); for i=1:n:(m*n); for k=1:n:(n*m); g(i:i+n-1,k:k+n-1)=t((m*n)-i:(m*n)-i+1,(m*n)-k:(m*n)-k+1); end; end; A differenza del loop precedente ora gli indici degli elementi presi delle due matrici sono differenti! Ovviamente consideriamo sempre sottomatrici quadrate, ma a sx partiamo dall ultima sottomatrice mentre a dx partiamo dalla prima!

74 Cicli I cicli for sono generalmente più efficienti dei cicli while, in termini di velocità di calcolo. Entrambi i tipi di cicli (for e while) possono essere bloccati all interno con il comando break. Questo comando risulta particolarmente utile utilizzandolo con if (v. dopo). La struttura del ciclo sarebbe del tipo: for / while end; if (se succede questo).. (continua il loop e calcola questo) elseif (se invece succede quest altro) break (termina il ciclo)

75 If statement Il comando if valuta quando una certa condizione è vera e in tal caso esegue il comando. La struttura del comando è: if (se) (succede questo). (fai questo) elseif (se invece). (succede quest altro). (fai questo) elseif (se invece). (succede quest altro). (fai questo). else (se non è successo niente delle precedenti cose). (fai questo) end

76 If statement I comandi if ed end (che termina l if) devono necessariamente esserci, elseif ed else possono o meno esserci. Facciamo un esempio. Possiamo scrivere un codice che mi dia come output la parola quadrata se una matrice è nxn, la parola rettangolare se la matrice è rxc, con r diverso da c. Riprendendo la struttura di prima e considerando che una matrice o è quadrata o è rettangolare (per cui posso usare else) la struttura (non il codice!) è la seguente: if n righe di A = n colonne di A stampa a video quadrata else stampa a video rettangolare end

77 If statement Associando al codice una funzione che chiamo cm (da check matrix) potrebbe essere function[] = cm(a); if size(a,1) == size(a,2); quadrata else; rettangolare end

78 Relazioni logiche Nell uso di if risultano di fondamentale utilizzo i comandi che permettono di stabilire relazioni logiche (maggiore di, minore di e eguale a). L output di questi comandi è sempre costituito da numeri, vettori o matrici logiche, ossia composti da zeri ed uno: Lo zero compare quando la relazione non è rispettata L uno compare se la relazione è rispettata. I simboli da utilizzare sono: == uguale ~= diverso < minore > maggiore <= minore o uguale > maggiore o uguale

79 Relazioni logiche Così se scriviamo >> 5 > 3 la risposta è 1, >> 4 ~= 2 la risposta è 1, etc. Diversi sono invece i connettivi logici, ossia operatori che collegano due espressioni, che sono: and (e anche) & or (oppure) not (non) ~

80 Relazioni logiche Nell ambito delle relazioni logiche e dell algebra delle matrici, due comandi risultano molto utilizzati: Il comando find(..), applicato ad una matrice/vettore, fornisce la posizione degli elementi della matrice/vettore che soddisfano la condizione tra parentesi. Ad es.: >> B = randn(10,4); >> v = find(b>0.3); v è il vettore contenente la posizione (quindi non è un vettore logico!!) degli elementi >0.3. se applicato a matrici gli indici scorrono in verticale, nel senso che il numero 2 è associato all elemento a 2,1. Se non è indicata alcuna relazione logica ma solo la matrice, fornisce la posizione degli elementi diversi da zero.

81 Relazioni logiche Il comando any(..), applicato ad un vettore, fornisce 1 se qualche (almeno un) elemento del vettore è diverso da zero, e quindi fornisce zero solo se tutti gli elementi del vettore sono nulli. Applicato ad una matrice fornisce un vettore con tanti elementi quanti i vettori colonna della matrice, con 1 se la colonna ha almeno un elemento diverso da zero e 0 se ha tutti elementi diversi da zero. Specificando any(matrice,k) la funzione lavora solo sulla k-esima riga.

82 Relazioni logiche L utilità di questi operatori è grande nell ambito matriciale e con l if. Ad esempio se ci stiamo chiedendo se gli elementi di una matrice A siano o meno maggiori di 0.5, digitando >> A>0.5 otteniamo una matrice logica di zeri ed uno, in cui l 1 è associato a elementi > di 0.5. Se volessimo da una matrice ottenere solo gli elementi > di 0.5 basta fare >> A(A>0.5) In tal modo prima otteniamo la matrice logica, poi selezioniamo di A solo gli elementi cui è associato 1. Otteniamo così un vettore con tutti e soli gli elementi che rispettano la condizione.

83 Relazioni logiche Un altro esempio. Poniamo di voler considerare di una matrice B e di chiedere al programma di stampare a video quanti elementi sono compresi tra 0.2 e 0.3. Possiamo vedere il risultato confrontando due codici: uno che utilizza solo i connettivi logici, un altro che usa anche i loop.

84 Relazioni logiche Il primo codice è brevissimo: function[j]=mc(a); b=a(a>0.2 & a<0.3); j=length(b); vengono selezionati gli elementi della matrice che siano maggiori di 0.2 e anche minori di 0.3 (quindi compresi tra 0.2 e 0.3), e poi si estraggono da A i corrispondenti elementi, che vengono posti in un vettore b. Dopodiché ne calcolo la lunghezza, che coincide con il numero di elementi che soddisfano la condizione. Un codice con loop e if sarebbe il seguente, ma rispetto al primo è molto più lungo e quindi inefficace:

85 Relazioni logiche function[b]=mc2(a); b=0; for i=1:size(a,1); for j=1:size(a,2) if A(i,j)>0.2 & A(i,j)<0.3; b=b+1; end end End Un modo per valutare la velocità computazionale in termini di tempo di una funzione è scrivere nel command tic, (funzione), toc

86 Relazioni logiche Provando a creare una matrice A=rand(100,200) e applicando le due funzioni troverete che la prima funzione è decisamente più veloce. >> tic, mc(a), toc ans = 2029 elapsed_time = >> tic, mc2(a), toc ans = 2029 elapsed_time =

87 Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell ambito matriciale. Questa funzione, chiamata trimr(x,t,b), considerata una matrice x, restituisce una matrice ottenuta tagliando da x le prime t righe e le ultime b righe. In MATLAB questa funzione non è implementata, e costituisce quindi un utile esercizio scriverne il codice tenendo in considerazione che la funzione deve dare un messaggio di errore qualora si stia trimmando troppo. Il codice potrebbe dunque essere il seguente:

88 Trimr function [y]= mytrim(x,a,b); if (a>size(x,1) b>size(x,1) (a+b)>size(x,1)); y=' trim too much '; else; y=x((a+1):(size(x,1)-b),:); end; L eccesso di trim può avvenire se a o b sono > del totale delle righe di x, o se lo è la loro somma. Notiamo l uso di tra le singole condizioni e il comando x((a+1):(size(x,1)-b),:), che seleziona tutte le righe di x da a+1 fino alla riga = n righe b.

89 Lag Un altra funzione utilissima nell ambito dell analisi delle serie storiche è la funzione presente in Gauss come lagn(x,k), che ripropone in linguaggio di programmazione l operatore lag (L). Se k è positivo, l operatore restituisce una matrice della stessa lunghezza (come righe) di x in cui la prima riga è quella che occupava il posto k+1 in x e le ultime k righe sono missing values (ossia dati mancanti, indicati in Gauss con un punto). Abbiamo così tagliato le prime k osservazioni, spostando la matrice x in alto di k righe. Se k è negativo, l operatore restituisce una matrice della stessa lunghezza (come righe) di x in cui le prime k righe sono missing values, la riga di posto k+1 coincide con la prima riga di x e quindi le ultime k righe di x vengono perse. Vediamone in concreto l utilità. Possiamo di voler stimare un modello di regressione del tipo AR(2):

90 Lag y t =a+b 1 y t-1 +b 2 y t-2 +e Senza scendere nei particolari, diciamo che vogliamo capire come i valori ritardati di 1 e 2 periodi influenzano la variabile al tempo corrente. Ovviamente se abbiamo una serie storica di t=100 osservazioni, di queste possiamo sfruttarne solo 98, perché alpiù partiamo dalla terza e la regrediamo sulla seconda e sulla prima, la quarta su terza e seconda e così via. In MATLAB i missing values si indicano con NaN= not a number. Proviamo ora a scrivere questa funzione in MATLAB, con l avvertenza di predisporre un messaggio di errore se stiamo laggando troppo, e distinguere tra k>0 e k<0:

91 Trimr function [y]= mylag(x,k); if abs(k)>size(x,1); y=' trim too much '; elseif k>0; y=[x((k+1):size(x,1),:) ; NaN*ones(k,size(x,2))]; elseif k<0; y=[nan*ones(abs(k),size(x,2)) ; x(1:(size(x,1) - abs(k)),:)]; end; Notiamo che y ha sempre la stessa lunghezza di x, in quanto concatenazione verticale tra un vettore lungo k e tante righe di x quante il numero delle sue righe meno k. Attenzione che Dove k è <0 dobbiamo utilizzare abs(k)!!!!

92 Trimr e lag Se, per calcolare gli stimatori della regressione o ad es. una semplice matrice di covarianza, ho la necessità di creare una matrice che raccolga i valori della variabile, i ritardi fino all ordine 2 ma ovviamente non voglio lavorare con missing values, posso combinare le due funzioni appena viste sul vettore x che contiene la serie storica in questo modo: posso formare una matrice con lag y=[x mylag(x,-1) mylag(x,-2)] e poi trimmare le prime 2 righe che sicuramente contengono missing values, essendomi spostato in basso (k=-1 e -2): z=mytrim(y,2,0) z (1,1) sarà il terzo valore della serie storica di x, z(1,2) il secondo valore e z(1,3) il primo valore della serie storica!.

93 Trimr e lag Possiamo estendere utilmente il meccanismo di generazione di suddetta matrice con un loop for, il cui indicatore sarà ovviamente collegato all ordine k dei ritardi che vogliamo inserire. È preferibile racchiudere il tutto in una funzione, i cui input saranno: il vettore e il numero di ritardi. L output di detta funzione sarà costituito dalla matrice la cui prima colonna sarà costituita dai valori di x dal k-esimo fino all ultimo. La funzione che chiamiamo essr (estrazione serie storica ritardata) può essere scritta così:

94 Trimr e lag function [y]=essr(x,k); if k<0; y='errore, k non può essere negativo'; elseif k> size(x,1); y='errore, k non può eccedere il numero di righe di x'; else; y=[x zeros(size(x,1),k)]; creo a priori y for i=1:k; y(:,i+1)=mylag(x,-i); end; y=mytrim(y,k,0); trimmo alla fine del loop altrimenti end; non coincidono le lunghezze dei vettori!

95 Altre funzioni create Altri esempi di funzioni vcma per la matrice di varcov di un MA(1) rendc per calcolare i rendimenti semplici rendsc per calcolare i rendimenti semplici e continui estdi per estrarre la diagonale inferiore di una matrice quadrata simm per vedere se la matrice è o meno simmetrica

96 La creazione di grafici MATLAB è molto completo anche per quello che riguarda la creazione di grafici. Il comando per grafici in bidimensionale è plot: Se x è un vettore, plot(x) lo stampa a video in ordinata (Y) il valore degli elementi e in ascissa (X) l indice (1,2,3,..) della loro posizione nel vettore. Se x e y sono due vettori, plot(x,y) stampa a video in ordinata (Y) il valore degli elementi di y e in ascissa (X) il valore degli elementi di x. Nel caso di grafici multipli, MATLAB usa di default colori diversi: plot(x,y,x,z) stampa sulla stessa finestra prima x e y poi x e z, con colori diversi.

97 La creazione di grafici Possiamo definire a piacere il tipo di linea in 3 caratteristiche: plot(x,y, puntatore-stile-colore ) Quanto ai colori c m y r g b w k cyano magenta giallo rosso verde blu bianco nero Quanto agli stili di linea - linea continua -- linea tratteggiata : Puntini -. Punti + tratteggio none senza linea

98 La creazione di grafici Quanto ai puntatori abbiamo +,o,*,x Quindi per tracciare un grafico di colore blu, a linea tratteggiata e con puntatore * scriviamo plot(x,y, b--* ) Se abbiamo tracciato un grafico su di una finestra e vogliamo ora stampargliene sopra un altro, dobbiamo mantenere aperta la finestra con il comando hold on. Es. >> plot(x,y) >> hold on >> plot (x,z)

99 La creazione di grafici Se invece vogliamo suddividere la finestra in più celle sulle quali vengono stampati diversi grafici, il comando appropriato è subplot(r,c,i). Questo comando suddivide la finestra in una matrice rxc e di essa ne seleziona la cella i esima. Ad es. possiamo creare una sequenza molto fitta di valori che vada da 0 a 2 pigreco con incrementi di 0.1, tracciare sulla prima finestra il coseno, sulla seconda il seno, sulla terza la tangente e sulla quarta la cotangente usando puntatori, colori e stili di linea diversi per ogni sottofinestra con i comandi appena visti e il comando subplot. Possiamo addirittura creare una funzione che chiamiamo mytrig, nel modo seguente: NB: se non ricordo i comandi per le funzioni trigonometriche posso digitare help, poi osservo e digito help matlab\elfun

100 La creazione di grafici Creiamo prima di tutto la funzione nell edit: function[]= mytrig(s) co=cos(s); se=sin(s); t=tan(s); ct=cot(s); subplot(2,2,1) plot(s,co,'y:+') subplot(2,2,2) plot(s,se,'b-*') subplot(2,2,3) plot(s,t,'k--x') subplot(2,2,4) plot(s,ct,'m:o')

101 La creazione di grafici Dopodiché andiamo nel command, creiamo la nostra sequenza come vettore colonna e applichiamo la funzione: >> k=0:0.1:2*pi; >> mytrig(k) Il programma gira ma fornisce anche un messaggio di errore. Questo perché le funzioni tangente e cotangente hanno alcuni punti in cui non possono essere calcolate!!! Digitando alla fine della funzione print dbmp16m fig.bmp salvo la figura con il nome fig ed estensione.bmp (posso anche porre.gif o.jpeg) nella cartella work.

102 La creazione di grafici Altri comandi per caratterizzare il grafico sono: axis([min xmax ymin ymax]) axis square axis auto rispettivamente per definire la lunghezza degli assi, renderla uguale o lasciare quella automatica; xlabel( ) ylabel( ) title( ) rispettivamente per dare un nome all asse x, all asse y o al titolo del grafico;

103 La creazione di grafici La funzione text(x,y, ) inserisce invece un testo nel grafico che inizia in corrispondenza della coordinata (x,y)

104 Polinomi, integrazione e ottimizzazione

105 Polinomi Nell ambito dell algebra dei polinomi, alcune funzioni possono risultare di una certa utilità. La funzione roots funziona roots(v), dove v è un vettore con i coefficienti della incognita, dal termine di più alto grado al termine noto, ed estrae le radici del polinomio. Ad esempio se abbiamo il polinomio x 5 -x 4-7x 3 +7x 2 +12x-12 e vogliamo trovarne le radici, ossia i valori di x che la azzerano, dobbiamo scrivere roots([ ]) e MATLAB calcola tutte le radici, reali o complesse che siano. NB1: nel caso non vi sia un termine va posto zero!! NB2: l ultimo è il termine noto.

106 Polinomi La funzione polyval funziona polyval(v,k), dove v è un vettore con i coefficienti della incognita, dal termine di più alto grado al termine noto, k è un numero e calcola il polinomio in corrispondenza di k (ossia sostituisce x=k). Ad esempio se abbiamo il polinomio -3x 4-2x 3 +6x 2 +2x-1 e vogliamo calcolarlo in x=-1, dobbiamo scrivere polyval([ ],-1) e MATLAB restituisce 2.

107 Polinomi La moltiplicazione tra due polinomi, indicati sempre attraverso i vettori contenenti i coefficienti, avviene con il comando conv; se moltiplico x 3-2 per x 2 +3x-5 devo fare: x=[ ]; y=[1 3-5]; z=conv(x,y); e MATLAB restituisce , ossia il polinomio (ovviamente di 5 grado) x 5 +3x 4-5x 3-2x 2 +6x+10. La divisione tra due polinomi, indicati sempre attraverso i vettori contenenti i coefficienti, avviene con il comando deconv,che funziona come conv e dà anche un vettore con l eventuale resto.

108 Integrazione numerica Per quanto riguarda l integrazione numerica in 2 variabili, il valore di un integrale definito del tipo b a f ( x) dx dove f:r=> R, ossia funzione reale di variabile reale, può essere calcolato con la funzione quad8, dove quad sta per formula di quadratura, ossia di integrazione numerica. Per integrare una funzione va usato il comando inline, che introduce una variabile nel command senza passare dall edit. Se vogliamo quindi calcolare π 3 e x 0 cos( 2 x) dx

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro 6 Giugno 2007 Felice Iavernaro (Univ.

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Documentazione esterna al software matematico sviluppato con MatLab

Documentazione esterna al software matematico sviluppato con MatLab Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno

Dettagli

Finestre grafiche. >> figure >> figure(n)

Finestre grafiche. >> figure >> figure(n) Finestre grafiche MATLAB ha anche la possibilità di lavorare con delle finestre grafiche sulle quali si possono fare disegni bidimensionali o tridimensionali. Una finestra grafica viene aperta con il comando

Dettagli

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda Premessa Con l analisi di sensitività il perito valutatore elabora un range di valori invece di un dato

Dettagli

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

Dettagli

Potenzialità statistiche Excel

Potenzialità statistiche Excel Potenzialità statistiche Excel INTRODUZIONE A MS EXCEL Prof. Raffaella Folgieri Email folgieri@mtcube.com Fogli di calcolo MS Excel Prof. Folgieri 1 I Fogli Elettronici (Microsoft Excel) Sono strumenti

Dettagli

USO DI EXCEL CLASSE PRIMAI

USO DI EXCEL CLASSE PRIMAI USO DI EXCEL CLASSE PRIMAI In queste lezioni impareremo ad usare i fogli di calcolo EXCEL per l elaborazione statistica dei dati, per esempio, di un esperienza di laboratorio. Verrà nel seguito spiegato:

Dettagli

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie Facoltà di Scienze Motorie CHE COS È UN FOGLIO ELETTRONICO Una tabella che contiene parole e numeri che possono essere elaborati applicando formule matematiche e funzioni statistiche. Esame di Informatica

Dettagli

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo

Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo Nell esempio verrà mostrato come creare un semplice documento in Excel per calcolare in modo automatico la rata di un mutuo a tasso fisso conoscendo - la durata del mutuo in anni - l importo del mutuo

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Fogli Elettronici: MS Excel

Fogli Elettronici: MS Excel Fogli Elettronici: MS Excel Informatica - A.A. 2010/2011 - Excel 7.0 Foglio Elettronico Un foglio elettronico (o spreadsheet) è un software applicativo nato dall esigenza di: organizzare insiemi di dati

Dettagli

4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO 4.1 PER INIZIARE 4.1.1 PRIMI PASSI COL FOGLIO ELETTRONICO 4.1.1.1 APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO L icona del vostro programma Excel può trovarsi sul desktop come in figura. In questo caso basta

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Utilizzo delle formule in Excel

Utilizzo delle formule in Excel Utilizzo delle formule in Excel Excel è dotato di un potente motore di calcolo che può essere utilizzato per elaborare i dati immessi dagli utenti. I calcoli sono definiti mediante formule. Ogni formula

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

L analisi dei dati. Capitolo 4. 4.1 Il foglio elettronico

L analisi dei dati. Capitolo 4. 4.1 Il foglio elettronico Capitolo 4 4.1 Il foglio elettronico Le più importanti operazioni richieste dall analisi matematica dei dati sperimentali possono essere agevolmente portate a termine da un comune foglio elettronico. Prenderemo

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Dettagli

Esercizi su lineare indipendenza e generatori

Esercizi su lineare indipendenza e generatori Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

FORMULE: Operatori matematici

FORMULE: Operatori matematici Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere

Dettagli

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato La grafica. Il Matlab possiede un ambiente grafico abbastanza potente paragonabile a software grafici operanti in altri contesti. In questo corso ci limiteremo ad illustrare solo una funzione grafica,

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Metodi Stocastici per la Finanza

Metodi Stocastici per la Finanza Metodi Stocastici per la Finanza Tiziano Vargiolu vargiolu@math.unipd.it 1 1 Università degli Studi di Padova Anno Accademico 2011-2012 Lezione 6 Indice 1 Il metodo bootstrap 2 Esercitazione 3 Interpolazione

Dettagli

Prof.ssa Paola Vicard

Prof.ssa Paola Vicard Questa nota consiste perlopiù nella traduzione da Descriptive statistics di J. Shalliker e C. Ricketts, 2000, University of Plymouth Consideriamo come esempio il data set contenuto nel foglio excel esercizio1_dati.xls.

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

MODULO 4: FOGLIO ELETTRONICO (EXCEL)

MODULO 4: FOGLIO ELETTRONICO (EXCEL) MODULO 4: FOGLIO ELETTRONICO (EXCEL) 1. Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei Personal computer. Essi

Dettagli

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.

A destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa. La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

TEST: Word & Excel. 2014 Tutti i diritti riservati. Computer Facile - www.computerfacile.webnode.it

TEST: Word & Excel. 2014 Tutti i diritti riservati. Computer Facile - www.computerfacile.webnode.it TEST: Word & Excel 1. Come viene detta la barra contenente il nome del documento? A. barra del titolo B. barra di stato C. barra del nome D. barra dei menu 2. A cosa serve la barra degli strumenti? A.

Dettagli

RISOLUTORE AUTOMATICO PER SUDOKU

RISOLUTORE AUTOMATICO PER SUDOKU RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014 LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag. Gentile Cliente, benvenuto nel Portale on-line dell Elettrica. Attraverso il nostro Portale potrà: consultare la disponibilità dei prodotti nei nostri magazzini, fare ordini, consultare i suoi prezzi personalizzati,

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti. SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo

Dettagli

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0 LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi

Dettagli

Interpolazione ed approssimazione di funzioni

Interpolazione ed approssimazione di funzioni Interpolazione ed approssimazione di funzioni Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 9 novembre 2007 Outline 1 Polinomi Valutazione di un polinomio Algoritmo di Horner

Dettagli

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

5-1 FILE: CREAZIONE NUOVO DOCUMENTO Capittol lo 5 File 5-1 FILE: CREAZIONE NUOVO DOCUMENTO In Word è possibile creare documenti completamente nuovi oppure risparmiare tempo utilizzando autocomposizioni o modelli, che consentono di creare

Dettagli

LABORATORIO-EXCEL N. 2-3 XLSTAT- Pro Versione 7 VARIABILI QUANTITATIVE

LABORATORIO-EXCEL N. 2-3 XLSTAT- Pro Versione 7 VARIABILI QUANTITATIVE LABORATORIO-EXCEL N. 2-3 XLSTAT- Pro Versione 7 VARIABILI QUANTITATIVE DESCRIZIONE DEI DATI DA ESAMINARE Sono stati raccolti i dati sul peso del polmone di topi normali e affetti da una patologia simile

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Il foglio elettronico: Excel

Il foglio elettronico: Excel Il foglio elettronico: Excel Laboratorio di Informatica Corso di Laurea triennale in Biologia Dott. Fabio Aiolli (aiolli@math.unipd.it) Dott.ssa Elisa Caniato (ecaniato@gmail.com) Anno accademico 2007-2008

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Prof.ssa Paola Vicard

Prof.ssa Paola Vicard Questa nota consiste perlopiù nella traduzione (con alcune integrazioni) da Descriptive statistics di J. Shalliker e C. Ricketts, 2000, University of Plymouth Consideriamo i dati nel file esercizio10_dati.xls.

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0) (Da effettuare non prima del 01/01/2011) Le istruzioni si basano su un azienda che ha circa 1000 articoli, che utilizza l ultimo

Dettagli

Integrazione numerica

Integrazione numerica Integrazione numerica Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ Lezione 6-20-26 ottobre 2009 Indice 1 Formule di quadratura semplici e composite Formule di quadratura

Dettagli

PROGRAMMA SVOLTO NELLA SESSIONE N.

PROGRAMMA SVOLTO NELLA SESSIONE N. Università C. Cattaneo Liuc, Corso di Statistica, Sessione n. 1, 2014 Laboratorio Excel Sessione n. 1 Venerdì 031014 Gruppo PZ Lunedì 061014 Gruppo AD Martedì 071014 Gruppo EO PROGRAMMA SVOLTO NELLA SESSIONE

Dettagli

Come costruire una distribuzione di frequenze per caratteri quantitativi continui

Come costruire una distribuzione di frequenze per caratteri quantitativi continui Come costruire una distribuzione di frequenze per caratteri quantitativi continui Consideriamo i dati contenuti nel primo foglio di lavoro (quello denominato dati) del file esempio2.xls. I dati si riferiscono

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...).

Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...). ESEMPIO DI QUERY SUL FILE Formario_minuscolo Tutte le interrogazioni possono essere condotte su qualsiasi campo della banca dati (ad esempio, Forma, Frequenza, Lunghezza, ecc...). Durante l interrogazione,

Dettagli

Il programma CONFELMOD CAD creazione e modifica

Il programma CONFELMOD CAD creazione e modifica CREAZIONE DEI PEZZI DEL MODELLO Dopo aver fatto la lista di tutti i componenti nella scheda modello si passa alla creazione dei pezzi. Si seleziona il modello e si clicca su Apri Modello 1 Con questa operazione

Dettagli

Statistica. Lezione 6

Statistica. Lezione 6 Università degli Studi del Piemonte Orientale Corso di Laurea in Infermieristica Corso integrato in Scienze della Prevenzione e dei Servizi sanitari Statistica Lezione 6 a.a 011-01 Dott.ssa Daniela Ferrante

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9

5.2.1 RELAZIONI TRA TABELLE 1. 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 5.2.1 RELAZIONI TRA TABELLE 1 5.2.4.1 Creare una relazione uno-a-uno, uno-a-molti tra tabelle 9 Il grado di un verso di un associazione indica quanti record della tabella di partenza si associano ad un

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass 0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Microsoft Excel. Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle. Numeri, date, formule, testo, funzioni

Microsoft Excel. Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle. Numeri, date, formule, testo, funzioni Microsoft Excel Sommario Il foglio elettronico Microsoft Excel Cartelle, Fogli di lavoro e celle Contenuto delle celle Numeri, date, formule, testo, funzioni Formattazione dei dati Creazione di serie di

Dettagli

Appunti di: MICROSOFT EXCEL

Appunti di: MICROSOFT EXCEL Appunti di: MICROSOFT EXCEL INDICE PARTE I: IL FOGLIO ELETTRONICO E I SUOI DATI Paragrafo 1.1: Introduzione. 3 Paragrafo 1.2: Inserimento dei Dati....4 Paragrafo 1.3: Ordinamenti e Filtri... 6 PARTE II:

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

EasyPrint v4.15. Gadget e calendari. Manuale Utente

EasyPrint v4.15. Gadget e calendari. Manuale Utente EasyPrint v4.15 Gadget e calendari Manuale Utente Lo strumento di impaginazione gadget e calendari consiste in una nuova funzione del software da banco EasyPrint 4 che permette di ordinare in maniera semplice

Dettagli

Introduzione al Foglio Elettronico

Introduzione al Foglio Elettronico Microsoft Excel Introduzione al Foglio Elettronico Il Foglio Elettronico Si presenta come una grande tabella su un foglio di carta Le celle contengono differenti dati Numeri Testo Date Ecc I dati possono

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

Dettagli

Le query. Lezione 6 a cura di Maria Novella Mosciatti

Le query. Lezione 6 a cura di Maria Novella Mosciatti Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine

Dettagli

LA FINESTRA DI EXCEL

LA FINESTRA DI EXCEL 1 LA FINESTRA DI EXCEL Barra di formattazione Barra degli strumenti standard Barra del titolo Barra del menu Intestazione di colonna Contenuto della cella attiva Barra della formula Indirizzo della cella

Dettagli

IL MIO PRIMO SITO: NEWS

IL MIO PRIMO SITO: NEWS Pagina 1 IL MIO PRIMO SITO: NEWS Sommario IL MIO PRIMO SITO: NEWS...1 Introduzione...2 I Contenitori...2 Creo un Contenitore...3 I Tracciati...4 Creo le Notizie...6 Inserisco il Testo...6 Inserisco un

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

Studente: SANTORO MC. Matricola : 528

Studente: SANTORO MC. Matricola : 528 CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che: Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi

Dettagli

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione Capitolo 2 MATRICI Fra tutte le applicazioni su uno spazio vettoriale interessa esaminare quelle che mantengono la struttura di spazio vettoriale e che, per questo, vengono dette lineari La loro importanza

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Formattazione. ü Introduzione

Formattazione. ü Introduzione Formattazione ü Introduzione Abbiamo fatto un bel po' di lavoro con Mathematica, vero? Abbiamo visto come creare, valutare, semplificare, disegnare, programmare, cucinare, pescare, ed anche come sfilare

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

LA FINESTRA DI OPEN OFFICE CALC

LA FINESTRA DI OPEN OFFICE CALC LA FINESTRA DI OPEN OFFICE CALC Barra di Formattazione Barra Standard Barra del Menu Intestazione di colonna Barra di Calcolo Contenuto della cella attiva Indirizzo della cella attiva Cella attiva Intestazione

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.06.16 Il sistema C.R.M. / E.R.M. 2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,

Dettagli

Manuale Utente Albo Pretorio GA

Manuale Utente Albo Pretorio GA Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate

Dettagli

Prof.ssa Paola Vicard

Prof.ssa Paola Vicard DISTRIBUZIONE DI FREQUENZE PER CARATTERI QUALITATIVI Questa nota consiste per la maggior parte nella traduzione (con alcune integrazioni) da Descriptive statistics di J. Shalliker e C. Ricketts, 2000,

Dettagli