Matlab/Octave - Esercitazione 14
|
|
- Elisa Battaglia
- 5 anni fa
- Visualizzazioni
Transcript
1 Facoltà di Ingegneria Industriale MATLAB/Octave Laurea in Ingegneria - Esercitazione Energetica, 14 Meccanica e dei Trasporti Matlab/Octave - Esercitazione 14 ricorsione funzioni anonime (variabili funzionali o funzioni di ordine superiore ) 1
2 Esercizio 1 Implementare in MATLAB una funzione ricorsiva che calcoli risultato e resto della divisione intera fra due numeri interi. La funzione deve ricevere come parametri di ingresso i due numeri interi positivi x(il dividendo), y (il divisore) e fornire come parametri di uscita risultato e resto della divisione intera fra x e y. Nell implementazione non è possibile utilizzare alcuna funzione di libreria disponibile in MATLAB. Suggerimento: x/y = (x - y + y)/y = 1 + (x - y)/y 2
3 Esercizio 1 - Soluzione Dichiaro la funzione specificandone le variabili d ingresso e d uscita function [r,q] = divintera(x,y) Essendo una funzione ricorsiva, è bene individuare il caso base ed il passo induttivo. CASO BASE: - Non è possibile eseguire la divisione intera se il dividendo x è minore del divisore y. In questo caso l iterazione si dovrà interrompere. PASSO INDUTTIVO: - Lo troviamo nella formula della divisione intera: x/y = 1 + (x - y)/y equivale a dire divintera(x,y) = 1 + divintera(x-y,y) if (x<y) % CASO BASE r = x; q = 0; else [r,q] = divintera(x-y,y); % PASSO INDUTTIVO q = q+1; end 3
4 Esercizio 1 - Soluzione Esempio: x = 13, y=4. x = 13, y=4 x > y ---> salto il caso base; passo induttivo: Chiamata 2) [r,q] = divintera(13-4,4) x = 9, y=4 x > y ---> salto il caso base; r = 1 q = 2+1 Chiamata 1) passo induttivo: Chiamata 3) [r,q] = divintera(9-4,4) x = 5, y=4 x > y ---> salto il caso base; r = 1 q = 1+1 passo induttivo: Chiamata 4) [r,q] = divintera(5-4,4) x = 1, y=4 x < y --> r = 1, q = 0 r = 1 q = 0+1 4
5 Esercizio 2 È noto, dalla definizione del coefficiente binomiale che, se n>0 e 0<k<n, vale la seguente relazione ricorsiva n k n k n 1 n 1 = + k 1 k n =1 k dove la base della ricorsione è data da: se n=0 o k=0 o k=n. Utilizzare tale definizione ricorsiva per scrivere una funzione Matlab ricorsiva che calcoli il valore del coefficiente binomiale n k a partire dai due parametri n e k. Simulare l'esecuzione della funzione che calcola il coefficiente: 3 mostrando la sequenza delle chiamate ricorsive che hanno luogo durante il calcolo. 2 5
6 Esercizio 2 - Soluzione Dichiaro la funzione function [c]=coefbinric(n, k) Come in ogni progettazione di funzioni ricorsive, isoliamo il caso base ed il passo induttivo. CASO BASE: - La base della ricorsione si verifica per n=0 o k=0 o k=n. n In tal caso =1 k PASSO INDUTTIVO n n 1 n 1 ovvero = + k k 1 k coefbinric(n, k)= coefbinric(n-1, k-1)+ coefbinric(n-1, k) 6
7 Esercizio 2 - Soluzione Traducendo in codice MATALB if n==0 k==0 k==n % CASO BASE c=1; else c=coefbinric(n-1,k-1)+coefbinric(n-1,k); % PASSO INDUTTIVO end Esempio 3 2 Chiamata 1) n=3, k=2 n=~0, k=~0, n=~k ---> salto il caso base; passo induttivo: [c] = CoefBinRic(3-1,2-1) + CoefBinRic(3-1,2) c = 3 Chiamata 2) n=2, k=1 n=~0, k=~0, n=~k ---> salto il caso base; passo induttivo: [c] = CoefBinRic(2-1,1-1) + CoefBinRic(2-1,1) Chiamata 4) n=1, k=0 k==0 c = 2 c = 1 Chiamata 3) n=2, k=2 n==k c = 1 Chiamata 5) n=1, k=1 n==k c = 1 7
8 Funzioni anonime Le funzioni anonime (o funzioni di secondo ordine o variabili funzionali) sono state introdotte nella versione 7 (R14) di Matlab. Permettono di trattare funzioni in maniera molto naturale, senza bisogno di utilizzare un comando dedicato alla valutazione come eval o feval. La sintassi é f argomenti) espressione; Ad esempio, la funzione f (x) = x^3 2sin(x) + 1 si dichiara come funzione anonima nel modo seguente: f x.^3-2*sin(x) + 1; f(1.5) ans =
9 Funzioni anonime Si noti come per valutare la f basta scrivere f(argomento). Lo stesso vale per funzioni di pi variabili, ad esempio: f log(x) - p; Le funzioni anonime permettono di definire funzioni a partire da comandi Matlab qualsiasi, incluse le function definite dall utente. Ad esempio, la funzione rho max(abs(eig(a))); calcola il raggio spettrale di una matrice A. Infine, la creazione di una funzione anonima è l unico modo per passare una funzione come parametro d ingresso ad una funzione tradizionale. 9
10 Esercizio 3 Facendo uso della funzione di ordine superiore acc, di cui si riporta il codice qui sotto, codificare la funzione modulo(v) che prende come argomento un vettore di numeri v = [v1, v2,, vn] restituisce come risultato il valore Codice della funzione acc. function x =acc(f, a, u) x = u; for i=1:length(a) x = f(x, a(i)); end 10
11 Esercizio 3- Soluzione La funzione acc accumula tutti i valori contenuti nel vettore a all interno della variabile x, secondo la relazione f, a partire dal valore u. function [x]=acc(f, a, u) x = u; for i=1:length(a) x = f(x, a(i)); end Analizzando la funzione da valutare: notiamo che è formata da due sottofunzioni : una produttoria ed una sommatoria. La produttoria moltiplica tra loro tutti gli elementi presenti nel vettore v, ovvero li accumula secondo una funzione prodotto. Si ricordi che l elemento neutro del prodotto è 1. Analogamente si comporta la sommatoria che ha come elemento neutro 0. 11
12 Esercizio 3 - Soluzione La funzione movulo(v), quindi, chiamerà al suo interno per due volte la funzione acc. La prima volta per realizzare la produttoria e la seconda per realizzare la sommatoria. Alla funzione che realizza la produttoria passiamo come argomenti: la funzione prodotto, il vettore v e l elemento neutro. Analogamente, alla funzione acc che realizza la sommatoria passiamo: la funzione somma, il vettore v e 0. Il risultato ris è dato dal prodotto dei rispettivi risultati di produttoria e sommatoria. function ris = modulo(v) prod y) x*y; sum y) x+y; ris = acc(prod, v, 1)*acc(sum, v, 0); 12
13 Esercizio 4 Data la funzione function [num el] = conta_se(in, cond) num = sum(cond(in)); el = in(cond(in)); ed il vettore v = [ ], calcolare i valori di a e b nei seguenti casi: [a b] = (x == 3)); [a b] = (x == 6)); [a b] = (x == 8)); [a b] = (x >= 2)); [a b] = (x >= 4)); [a b] = (x >= 8)); 13
14 Esercizio 4 Si consideri il vettore v = sin(0:0.01:2*pi), valutare cosa rappresenterà il grafico calcolato nel modo seguente: [a b] = x<=-0.5)); plot(1:a, b); 14
15 Esercizio 4 - Soluzione In tutti i casi presenti nella traccia, la funzione anonima consiste unicamente in una condizione logica. Senza l ausilio delle funzioni anonime, non sarebbe possibile passare una condizione logica come argomento ad una funzione tradizionale. Analizziamo la funzione conta_se: function [num el] = conta_se(in, cond) num = sum(cond(in)); el = in(cond(in)); La funzione restituisce due variabili, contenenti rispettivamente il numero di elementi contenuti in in che rispettano la condizione cond (data da una funzione anonima) e un vettore contenente tali elementi. 15
16 Esercizio 4 - Soluzione v = [ ]; [a b] = Condizione: x==3 a = sum([ ] == 3); ovvero a = 1 b = v(v == 3); ovvero b = 3 Analogamente: [a b] = Condizione: x==6 a = sum([ ] == 6); ovvero a = 1 b = v(v == 6); ovvero b = 6 [a b] = Condizione: x==8 a = sum([ ] == 8); a = 0 b = v(v == 8); ovvero b = Empty matrix: 1-by-0 16
17 Esercizio 4 - Soluzione v = [ ]; [a b] = Condizione: x>=2 a = sum([ ] >= 2); ovvero a = 6 b = v(v >= 2); ovvero b = [a b] = Condizione: x>=4 a = sum([ ] >= 4); ovvero a = 5 b = v(v >= 4); ovvero b = [a b] = Condizione: x>=8 a = sum([ ] >= 8); ovvero a = 3 b = v(v >= 8); ovvero b =
18 Esercizio 4 - Soluzione v = sin(0:0.01:2*pi); Il vettore rappresenta una sinusoide calcolata tra 0 e 2π con passo [a b] = x<=-0.5) Condizione: x>=0.5 x<=-0.5 La funzione calcola i valori per cui sin(v)>=0.5 o sin(v)<= sin(v)>= sin(v)<=
19 Esercizio 4 - Soluzione Ricordiamo che in b troveremo unicamente i valori di v che rispettano la condizione specificata dalla funzione anonima. Questo equivale a conservare in b le due porzioni di sinusoide che hanno modulo maggiore di 0.5 scartando tutti gli altri valori
20 Esercizio 5 Si scriva una funzione Matlab count = intersec_counter(f,y0) che prende in ingresso una generica funzione y=f(x) ed un numero y0. La funzione dovrà: -valutare f(x) per -10=<x<=10 con passo 0.1; -calcolare quante intersezioni ha la funzione f con l asse y=y0 e porre in count il numero di intersezioni; -verificare graficamente che il risultato posto in count sia corretto disegnando sullo stesso grafico: -la funzione f(x) in blu, -l asse y=y0 in rosso -i punti di intersezione con dei pallini rossi. Si scriva uno script Matlab che valuti le seguenti funzioni con i relativi assi: -f1 = (x.^2-5); y0 = 0; -f2 = cos(x); y0 = 0.5; -f3 = exp(x); y0 = 50; -f4 = sin(x)./x; y0 = 0.1; 20
21 Esercizio 5 - Soluzione Definisco la funzione e creo il vettore di ascisse in cui f deve essere valutata. function count = intersec_counter(f,y0) x = -10:0.1:10; Valuto la funzione nel range desiderato e pongo i valori che assume in y. y = f(x); Calcolo le intersezioni della funzione con l asse y=y0. Siamo in presenza di una intersezione quando per due punti consecutivi con ordinate y1 e y2, ci troviamo nei seguenti casi: y1>=y0, y2<y0 y1<=y0, y2>y0 Senza utilizzare cicli for, è possibile verificare queste condizioni usando le proprietà di gestione dei vettori di Matlab. 21
22 Esercizio 5 - Soluzione Divido il vettore y in due porzioni: y(1:end-1) e y(2:end). Se y = [ ], y(1:end-1)=[ ] y(2:end) =[ ] Così facendo possiamo controllare se siamo in presenza di una intersezione semplicemente controllando le relazioni precedenti in questo modo: intersezioni = (y(1:end-1)>=y0 & y(2:end)<y0) (y(1:end-1)<=y0 & y (2:end)>y0); Dato che controlliamo coppie di valori, sarà necessario controllare separatamente l ultimo elemento di y. intersezioni(end+1)= (y(end)==y0); Conto il numero di intersezioni. count = sum(intersezioni); 22
23 Esercizio 5 - Soluzione Controllo il risultato graficamente: plot(y) hold on asse = y0*ones(1, length(x)); plot(asse) Valutiamo ora le diverse funzioni indicate nella traccia controllando che i risultati posti in count siano corretti. f1 y0 = 0; count = 2 23
24 Esercizio 5 - Soluzione f2 y0 = 0.5; count = 6 4 f3 y0 = 50; count =
25 Esercizio 5 - Soluzione f4 y0 = 0.1; count = 6 25
26 Esercizio 5 - Soluzione f5 y5 = 5; count =
27 textread MATLAB/Octave Lettura di dati da - file Esercitazione di testo 14 textread legge dati formattati da un file di testo. Per file di testo si intende un file che abbia una codifica di tipo ascii. L estensione del file non deve necessariamente essere.txt ma può essere anche.dat,.bin,.csv,.m. A = textread('filename') legge dati numerici dal file filename. Se il file contiene dati testuali viene generato un errore. Se filename è uguale a: A = textread('filename') produce come risultato: A = I dati di filename vengono trasferiti all interno della matrice A. 27
28 textread MATLAB/Octave Lettura di dati da - file Esercitazione di testo 14 Se filename è uguale a: A = textread('filename') produce come risultato: A = I dati di filename vengono trasferiti all interno della matrice A e nelle posizioni in cui mancano i dati, la matrice verrà riempita da zeri. 28
29 textread MATLAB/Octave Lettura di dati da - file Esercitazione di testo 14 Se filename è uguale a: parola parola parola Verrà generato un errore perché i dati non sono tutti di tipo numerico. Per leggere dati non numerici o disomogenei tra loro, occorre usare textread nella forma: A = textread('filename','format',n) provare a leggere filename precedente con le istruzioni: A = textread('filename.txt', '%s') A = textread('filename.txt', '%s', 8) A = textread('filename.txt', '%s %d %d %d %d') [A B C D E] = textread('filename.txt', '%s %d %d %d %d') [A B C D E] = textread('filename.txt', '%s %d %d %d %d', 2) Alcune potrebbero generare un errore. Cercare di capire BENE il perchè... 29
30 textscan MATLAB/Octave Lettura di dati da - file Esercitazione di testo 14 textscan legge dati da file di testo. A = textscan(fid,'format') legge dati da un file di testo aperto identificato dal file identifier fid e ponendo i risultati nell array di celle A. Il numero di convertitori contenuti in format determina il numero di celle nell array A. A = textscan(fid,'format', N) legge i dati usando il convertitore format N volte con N intero positivo. Per leggere dati sequenziale dal file dopo N cicli, chiamare nuovamente textscan usando il fid originale. Per approfondire l accesso ai dati contenuti in un array di celle consultare: Per utilizzare textscan, occorre preliminarmente aprire il file in lettura e successivamente chiuderlo dopo che tutte le operazioni di lettura di dati sono state effettuate. Queste due operazioni vengono fatte rispettivamente con: fid = fopen('filename.txt', 'r'); fclose(fid); 30
31 textscan MATLAB/Octave Lettura di dati da - file Esercitazione di testo 14 Provare a leggere un file di testo con la seguente costituzione: parola parola parola usando le seguenti porzioni di codice: fid = fopen('filename.txt', 'r'); A = textscan(fid, '%s') fclose(fid); fid = fopen('filename.txt', 'r'); A = textscan(fid, '%s', 10) fclose(fid); fid = fopen('filename.txt', 'r'); A = textscan(fid, '%s %d', 10) fclose(fid); 31
32 textscan MATLAB/Octave Lettura di dati da - file Esercitazione di testo 14 fid = fopen('filename.txt', 'r'); A = textscan(fid, '%s %d %d %d %d', 1) fclose(fid); fid = fopen('filename.txt', 'r'); A = textscan(fid, '%s %d %d %d %d') fclose(fid); fid = fopen('filename.txt', 'r'); A = textscan(fid, '%s %d %d %d %d', 1) A = textscan(fid, '%s %d %d %d %d', 1) A = textscan(fid, '%s %d %d %d %d', 1) fclose(fid); 32
33 fprintf MATLAB/Octave Scrittura di dati su - file Esercitazione di testo 14 fprintf scrive dati formattati su file di testo o su command window. fprintf(fid, format, A,...) applica la conversione format a tutti gli elementi dell array A e li scrive su file di testo. Provare a scrivere un file di testo con le seguenti porzioni di codice: x = 0:.1:1; A = [x; exp(x)]; fileid = fopen('filename.txt','w'); fprintf(fileid,'%6s %12s\n','x','exp(x)'); fprintf(fileid,'%6.2f %12.8f\n',A); fclose(fileid); 33
34 fprintf MATLAB/Octave Scrittura di dati su - file Esercitazione di testo 14 A = [1:10]; B = [11:20]; fileid = fopen('filename.txt','w'); fprintf(fileid,'%2d\n', A, B); fclose(fileid); A1 = [9.9, 9900]; A2 = [8.8, 7.7 ; , 7700]; format = 'X is %4.2f meters or %8.3f mm\n'; fprintf(format,a1,a2) C = {'sample1','sample2'}; fileid = fopen('filename.txt','w'); fprintf(fileid,'%s\n', C); fclose(fileid); 34
35 fprintf MATLAB/Octave Scrittura di dati su - file Esercitazione di testo 14 L ultimo esempio visto genera un errore. L errore è dato dal fatto che fprintf non gestisce la stampa di array di celle. Nel momento in cui vogliamo scrivere dei dati complessi su file, ovvero di dati che non posso essere organizzati in vettori o matrici, si dovrà ricorrere all uso di un ciclo for per la compilazione del file. Provare ad eseguire il seguente codice: nomi = {'Daniele' 'Michele' 'Giorgio' 'Davide' 'Fabio'}; age = [ ]; telefono = [1000:1000:5000]; fileid = fopen('filename.txt','w'); for ii = 1:length(nomi) fprintf(fileid,'%7s %2d %4d\n', nomi{ii}, age(ii), telefono(ii)); end fclose(fileid); 35
Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 7. ricorsione e funzioni anonime
Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 7 ricorsione e funzioni anonime Politecnico di Milano - DEI 1 Esercizio 1 Implementare
DettagliESERCIZIO 1. Informatica B - Esercitazione 14
ESERCIZIO 1 Tema del 01/09/2010 Esercizio 3 Implementare in MATLAB una funzione ricorsiva che calcoli risultato e resto della divisione intera fra due numeri interi. La funzione deve ricevere come parametri
DettagliIntroduzione al MATLAB c Parte 2
Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 24 settembre 2007 Outline 1 M-file di tipo Script e Function Script Function 2 Elementi di programmazione
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 19 Controllo di Flusso in MATLAB Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni
DettagliESERCIZIO 1. Informatica B - Esercitazione 12
ESERCIZIO 1 Si scriva in Octave/MATLAB la funzione analisimatrice che: ricevo come parametro una matrice a, verifica che i suoi valori NON siano tutti uguali. Se questo è verificato: - calcola il valore
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA Il presente plico contiene 4 esercizi, deve essere debitamente
DettagliCORSO DI LAUREA IN INGEGNERIA ELETTRICA
CORSO DI LAUREA IN INGEGNERIA ELETTRICA Informatica B anno accademico 2013-2014 Prof. Danilo ARDAGNA Esercizio 1. (Calcolo divisione intera) Si scrivano in linguaggio MATLAB: Esercitazione 13.06.2014 una
DettagliAbbiamo inoltre visto come tracciare grafici di superfici su spazio cartesiano con la funzione mesh:
Esercitazione 11 11 Gennaio 2011 (3 ore) Riassunto Nell'esercitazione di oggi abbiamo visto che in MATLAB è disponibile un'alternativa a disp per stampare su schermo. La funzione introdotta e' fprintf
Dettagli1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso
Domanda 1 1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso x n+1 = x n f(x n), n = 0, 1, 2,... K dove x 0 è il punto iniziale, f(x) = x 3 cos(x) e K è una costante assegnata.
DettagliInformatica B
Informatica B 2016-2016 Esercitazione IV Variabili funzione & Funzioni di Ordine Superiore Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Ripasso Facciamo un ripasso di quanto
DettagliFacoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 5. !esercizi tratti da temi d esame
Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 5!esercizi tratti da temi d esame Politecnico di Milano - DEI 1 Esercizio 1 Si
DettagliFondamenti di Informatica
Fondamenti di Informatica (La Ricorsione e Debugging) Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2017/18 OUTLINE La ricorsione - Principi base Caso Studio
DettagliComunicazioni. Salvo Daniele Valente Dipartimento di Elettronica e Informazione
Comunicazioni Ricordarsi di iscriversi alla prova in itinere di lunedì 28/01/2013 (e agli appelli d'esame per chi dovrà/vorrà). Per coloro che non hanno superato la prima prova in itinere, o che complessivamente
DettagliLaboratorio di Matematica Computazionale A.A Lab. 3
Laboratorio di Matematica Computazionale A.A. 2007-2008 Lab. 3 Funzioni inline Esiste in Matlab una sintassi che permette di definire una funzione direttamente nello spazio di lavoro (ovvero in linea )
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA Il presente plico contiene 4 esercizi, deve essere debitamente
DettagliUniversità degli Studi di Ferrara Corso di Laurea in Chimica - A.A
Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A. 2018-2019 Programmazione Lezione 12A Esercizi in MATLAB Docente: Lorenzo Caruso lorenzo.caruso@unife.it Nelle lezioni precedenti Matlab:
DettagliIntroduzione. Corso di Metodi Numerici. 06 Marzo 2019
Introduzione 06 Marzo 2019 MATLAB - Introduzione MATrix LABoratory - una calcolatrice per matrici Piattaforma per il calcolo scientifico e la progettazione Linguaggio di programmazione ad alto livello
DettagliInformatica B
Informatica B 2017-2018 Esercitazione IX Simulazione Prova d Esame Matlab Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1 (6 punti) Scrivere una funzione non ricorsiva
DettagliMATLAB Elementi di grafica Costrutti di programmazione
MATLAB Elementi di grafica Costrutti di programmazione Operazioni punto Le operazioni punto agiscono su array che abbiano le stesse dimensioni:.* prodotto elemento per elemento./ divisione elemento per
DettagliMATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA
MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere
DettagliFondamenti di Informatica, A.A FILA A
Fondamenti di Informatica, A.A. 2014-2015 - FILA A 08/07/2015 Esercizio 1 È dato il frammento di codice Matlab v = [ 1 1 2 3 ] ; n = length ( v ) ; for x = v (: 2:1) v = [ v mod(sum( v ), n ) ] ; n = length
DettagliInformatica B
Informatica B 2017-2018 Esercitazione VI Ricorsione (2) Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1 Scrivere una funzione ricorsiva per il calcolo approssimato
DettagliIntroduzione al MATLAB c Parte 2 Funzioni
Introduzione al MATLAB c Parte 2 Funzioni Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Funzioni matematiche Assegnazione di funzioni 2 Grafico di funzione in
Dettagli13 Esercizi di Riepilogo
13.1 Esercizi Esercizio 13.1 Si consideri una versione semplificata della battaglia navale in cui le navi possono essere posizionate solo in orizzontale e ogni riga può contenere al massimo una nave. Il
DettagliLaboratorio di Python
Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di
DettagliAlgoritmi stabili e instabili
Algoritmi stabili e instabili Laboratorio di Calcolo Numerico 13 Marzo 2018 Vettori in MATLAB Finora abbiamo pensato alle variabili utilizzate come semplici valori numerici (variabili scalari). In realtà,
Dettagli2. Costruire un M function file di Matlab che calcola il valore del
Esercizi. 1. Costruire un M function file di Matlab che calcola il valore del polinomio di Chebyshev di grado n in un vettore di punti, usando la formula di ricorrenza a tre termini. Costruire il grafico
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4 esercizi,
Dettagli13 Ricorsione con MATLAB
13.1 Esercizi Esercizio 13.1 Scrivere una funzione che verifichi iterativamente se una stringa è palindroma. Scrivere poi una funzione che implementi la stessa funzionalità in modo ricorsivo. Si stampi
DettagliPrimi script in MATLAB
Primi script in MATLAB Laboratorio di Calcolo Numerico 6 Marzo 2018 Introduzione alla programmazione Obiettivo: scrivere programmi e sviluppare algoritmi in MATLAB Si utilizzano gli m-file, ovvero file
DettagliLab 8 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015
Lab 8 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 20 O0obre 2015 Calendario dei Labs: MATLAB 26 Gennaio 2016, 10.30am-12.30pm,@B6.23
DettagliMetodi numerici con elementi di Programmazione A.A
Metodi numerici con elementi di Programmazione A.A. 2013-2014 Introduzione al MatLab VI parte 1 Docente: Vittoria Bruni Email: vittoria.bruni@sbai.uniroma1.it Ufficio: Via A. Scarpa, Pal. B, I piano, Stanza
DettagliLaboratorio di Matlab
Laboratorio di Matlab Alessandro Formaglio Dipartimento di Ingegneria dell Informazione, Università di Siena alex@dii.unisi.it http://www.dii.unisi.it/ control/matlab/labmatlab.html 9 Luglio 2009 DII -
DettagliLaboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione
Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 22 Marzo 2017 Vettori in
DettagliComplementi di Matematica e Calcolo Numerico A.A Laboratorio 3-15/3/2018
Complementi di Matematica e Calcolo Numerico A.A. 2017-2018 Laboratorio 3-15/3/2018 Programmare con Matlab: Script-files Che cos è uno script file? È un file con estensione.m (ad esempio: myfile.m). Contiene
DettagliCORSO DI LAUREA IN INGEGNERIA ELETTRICA
CORSO DI LAUREA IN INGEGNERIA ELETTRICA Informatica B anno accademico 2013-2014 Prof. Danilo ARDAGNA Esercitazione 05.06.2014 Esercizio 1. (Agenzia di viaggi - accesso ai file) Un'agenzia di viaggi possiede
DettagliLaboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot
Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot Andrea Franceschini E-mail: franceschini@dmsa.unipd.it Dispense: http://www.math.unipd.it/ putti/teaching/calcolo
DettagliLaboratorio di Calcolo Numerico
Laboratorio di Calcolo Numerico Lezione 3 Padova, April 4th 2016 F. Piazzon Department of Mathematics. Doctoral School in Mathematical Sciences, Applied Mathematics Area Outline Lab. 3-2 of 16 1 Costrutti
DettagliLaboratorio di Informatica
Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Dottoressa Sara Zuppiroli - sara.zuppiroli@unibo.it L'importanza di capire Perché non dobbiamo dichiarare
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliEquazioni non lineari. Gabriella Puppo
Equazioni non lineari Gabriella Puppo Equazioni non lineari Passare una function come argomento Metodo di bisezione Metodo di Newton Metodo delle secanti Funzione fzero Passare una function come argomento
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B. Esempio di seconda prova in itinere A.A
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Esempio di seconda prova in itinere A.A. 2008-2009 Esercizio 1 Si vuole considerare la traiettoria percorsa da un oggetto immaginario
DettagliLaboratorio di Calcolo Numerico Laboratorio 5: Scrittura su FILE. Soluzione di Equazioni non lineari
Laboratorio di Calcolo Numerico Laboratorio 5: Scrittura su FILE. Soluzione di Equazioni non lineari Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 05 Aprile 2017
Dettagli12 Function Handles e Ricorsione in MATLAB
1 Function Handles e Ricorsione in MATLAB Un function handle è una variabile il cui valore è una funzione. Data una funzione esistente, il suo function handle è dichiarato come handle = @nome dove nome
DettagliLaboratorio di INFORMATICA. 15 ottobre 2009
Laboratorio di INFORMATICA 15 ottobre 2009 GRAFICI Per ottenere il grafico di una funzione, devo: Preparare un vettore di ascisse Preparare un vettore di ordinate Scegliere la figura (opzionale)(istruzione
DettagliDiverse politiche. La ricorsione PROGRAMMAZIONE TOP-DOWN ESEMPIO. Bottom-Up. Di solito è meglio alternare le due tecniche
La ricorsione Top-Down Diverse politiche Si parte dal problema generale Poi si sce nei particolari (moduli, funzioni, ecc ) Bottom-Up Si creano prima i moduli e le funzioni base Poi si assemblano nel programma
DettagliUniversità degli Studi di Ferrara
Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2017-2018 Programmazione Lezione 15 Grafica in MATLAB Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti
DettagliLezione 25: File Mercoledì 18 Novembre 2009
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Meccanica & Ingegneria Gestionale Mat. Pari Docente : Ing. Secondulfo Giovanni Anno Accademico 2009-2010 Lezione 25:
DettagliComplementi di Matematica e Calcolo Numerico A.A Laboratorio 3
Complementi di Matematica e Calcolo Numerico A.A. 2012-2013 Laboratorio 3 Funzioni Simboliche (inline) Assegnata una funzione del tipo f(x) = (sin(x) + x) 2 vogliamo valutare i valori assunti da f per
DettagliLaboratorio di Python
, Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono
DettagliProgrammare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo
Programmare Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo Condizioni logiche Le condizioni logiche sono istruzioni che fanno uso di: operatori relazionali (servono a confrontare il valore
DettagliEsercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A
Esercizi di MatLab Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, AA 2017 2018 Gli esercizi sono divisi in due gruppi: fondamentali ed avanzati I primi sono
DettagliProve d esame Esercizi con Matlab
Prove d esame Esercizi con Matlab Andrea Corli 16 settembre 2015 Sono qui raccolti alcuni esercizi relativi a Matlab assegnati nelle prove d esame (dal 2011 al 2014) del Corso di Analisi Matematica I (semestrale,
Dettagli13 Esercizi di Riepilogo
13.1 Esercizi Esercizio 13.1 Si considerino due dispositivi aventi le seguenti configurazioni: Configurazione A 1 Mbyte di memoria fisica e pagine di memoria da 4 Kbyte; una memoria cache con hit rate
DettagliMATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)
MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è
DettagliStrutture di controllo condizionali in Matlab
Strutture di controllo condizionali in Matlab Informatica B Le strutture condizionali A cosa servono le strutture condizionali? %Inserimento dei parametri della parabola: y=ax^2+bx+c a = input( inserire
DettagliMatlab : le basi. Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio.
Matlab : le basi Vediamo ora un esercizio di calcolo: Il volume di una sfera è dato da V=4*π*r 3 /3 dove r è il raggio. Usare Matlab per calcolare il raggio di una sfera che ha un volume maggiore del 30%
DettagliMATLAB-UD5. Array di strutture. File.
MATLAB-UD5 Array di strutture. File. Strutture Un vettore è una struttura di dati dello stesso tipo (numerico oppure carattere/stringa); Una struttura è una struttura di dati di tipo diverso; Una struttura
DettagliIntroduzione al MATLAB c Parte 3 Script e function
Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 M-file di tipo Script e Function Script Function 2 Gestione
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algebra di Boole Stefano Cagnoni Algebra di Boole L algebra
DettagliCalcolo Numerico I - A.A Laboratorio 3
Calcolo Numerico I - A.A. 2011-2012 Laboratorio 3 Grafica 2D in Matlab Per tracciare in Matlab il grafico di una funzione y = f(x) per un intervallo assegnato di valori della variabile x, utilizziamo il
DettagliUso avanzato di MATLAB
Uso avanzato di MATLAB Miscione Giuseppe g.miscione@virgilio.it Indice Funzioni matematiche Funzioni di arrotondamento Disegnare funzioni Creare script Controllo del flusso di esecuzione 1 Funzioni matematiche
DettagliPrincipi di Programmazione Prova del 10/6/2008 (ore 10.30)
Prova del 10/6/2008 (ore 10.30) Scrivere (commentandole) le linee di codice Matlab per costruire i seguenti vettori (5x1): e il vettore di numeri complessi C tali che il singolo elemento c k ha come parte
DettagliEquazioni e sistemi non lineari
Equazioni e sistemi non lineari Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 4 novembre 2007 Outline 1 Ricerca degli zeri di una funzione Problema e definizioni Metodo di
DettagliParte 1: tipi primitivi e istruzioni C
Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una
Dettagli2 a lezione - laboratorio
2 a lezione - laboratorio Corso di Laurea Ingegneria CIVILE Laurea Specialistica Ingegneria CHIMICA ed AMBIENTE a.a 2003-2004 Funzioni matematiche elementari Round(x) Arrotonda all intero più vicino Fix(x)
DettagliLezione 22: Funzioni e File Giovedì 18 Novembre 2010
Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Anno Accademico 2010-2011 Lezione 22: Funzioni e File Giovedì 18 Novembre 2010 exp(x): calcolo
DettagliComplementi di Matematica e Calcolo Numerico C.d.L Chimica Industriale A.A Laboratorio 5-11/04/2019
Complementi di Matematica e Calcolo Numerico C.d.L Chimica Industriale A.A. 2018-2019 Laboratorio 5-11/04/2019 FATTORIZZAZIONE DI CHOLESKY Se A R n n è una matrice simmetrica definita positiva, allora
DettagliInformatica B
Informatica B 2016-2016 Esercitazione III Ricorsione Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1 La successione di Padovan é definita nel seguente modo: se indichiamo
DettagliProgrammare con MatLab IV
Programmare con MatLab IV IV_Matlab Carla Guerrini 1 Programmazione Matlab MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche
DettagliFondamenti di Informatica, A.A
Fondamenti di Informatica, A.A. 2012-2013 10/07/2013 fila A Esercizio 1 È dato il frammento di codice Matlab n = 6 ; v = [ 1 3 2 4 5 2 ] ; m = 1 ; v ( i ) = v ( i ) ˆ 2 ; [m j ] = max( v ) ; v ( i ) =
DettagliAppunti di informatica. Lezione 8 anno accademico Mario Verdicchio
Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione
DettagliI POLINOMI. La forma normale di un polinomio. Un polinomio è detto in FORMA NORMALE se in esso non compaiono monomi simili.
I POLINOMI Un polinomio è una somma algebrica tra monomi Sono polinomi le seguenti espressioni 2ab + 4bc -5a 2 b + 2ab - 5c 5x + 2y + 8x in esse infatti troviamo somme o differenze tra monomi La forma
Dettagli1 (7) 2 (6) 3 (6) 4 (7) 5 (6)
CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2014-2015 Proff. Danilo ARDAGNA, Antonio MIELE Seconda Prova in Itinere 29.6.2015 Cognome Nome Matricola Firma
DettagliLaboratorio di Calcolo Numerico Laboratorio 7: Quadratura numerica
Laboratorio di Calcolo Numerico Laboratorio 7: Quadratura numerica Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 19 Aprile 2017 Introduzione Implementazione in
DettagliLABORATORIO /03/2005
LABORATORIO 1----- 04/03/2005 Argomenti trattati: Note introduttive a MATLAB Scalari e vettori in MATLAB Istruzioni if, while, for Grafico di funzioni Alcune informazioni su MATLAB MATLAB e` uno strumento
DettagliOgni parte non cancellata a penna sarà considerata parte integrante della soluzione.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 23 Gennaio 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. I file in Matlab
INFORMATICA B Ingegneria Elettrica I file in Matlab I file I file sono contenitori di informazione: sequenze di byte associate ad un nome Sono memorizzati su memoria di massa (non- volatile) Possono continuare
DettagliArray. // utente pippo $utente1 = array( username => pippo, password => pippo123, ruolo => amministratore );
Array Esercizio 1 Implementare un servizio che permetta il login di utenti ad un sistema e la possibilità di visualizzare articoli. Il servizio riceve in ingresso, tramite GET, l username e la password
DettagliMatLab - Testo pagina 1 di 5 101
MatLab - Testo pagina 1 di 5 101 8. FUNZIONI E SCRIPT IN MATLAB 801. Scrivere il listato di un file funzione MatLab alfa(x) che, dato un numero reale x dia come risultato la matrice p calcolata come segue:
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 1 settembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 1 settembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4 esercizi,
DettagliLaboratorio di Python
Algoritmo, sulle liste Università di Bologna 3 e 5 aprile 2013 Sommario Correzione esercizi 1 Correzione esercizi 2 3 4 Correzione Correzione esercizi scrivere e documentare un programma con un menu dove:
DettagliLezione 5, 5/11/2014
Lezione 5, 5/11/2014 Elena Gaburro, elenagaburro@gmail.com 1 Ordine di convergenza di un metodo Definizione 1.1. Sia {x k } una successione convergente ad α. Consideriamo l errore assoluto in modulo al
DettagliCicli. S i a i = a 1 + a 2 + a a n
Cicli Esprimono in modo compatto e generali l'esecuzione di uno stesso blocco di codice per più volte Anche in matematica sono presenti operatori che eseguono di fatto un ciclo (ad es. sommatoria e produttoria)
DettagliCORSO DI LABORATORIO DI INFORMATICA
CORSO DI LABORATORIO DI INFORMATICA Corso di Laurea Triennale in Ingegneria Elettrica a.a. 2015/2016 Docente: Ing. Domenico Amalfitano Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliLaboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009
Laboratorio di Sperimentazioni di Fisica I MOD A 14 ottobre 2009 m files Gli m files sono degli script, ossia dei programmi che si eseguono invocandone il nome dalla command window. Non ricevono variabili
DettagliIntroduzione allo Scilab Parte 5: funzioni su matrici; intervalli, grafici.
Introduzione allo Scilab Parte 5: funzioni su matrici; intervalli, grafici. Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro felix@dm.uniba.it 26 Giugno 2007
DettagliFondamenti di Informatica
Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile
Dettagliclear clc v=input(['digitare V']); for i=1:length(v); for j=1:length(v); if i==j; m(i,j)=v(i); else; m(i,j)=0; end; end; end; disp(m)
Avvertenze A grande richiesta pubblico la prima parte di soluzioni al secondo dei tre esercizi in Matlab che norma vengono somministrati nella prova d esame (codifica di un algoritmo). Circa il primo esercizio
DettagliCiclo di seminari: Metodi Computazionali per la Finanza
Ciclo di seminari: Metodi Computazionali per la Finanza C.d.L.M. Finanza e Assicurazioni a.a. 2018/2019 Lezione 1: Introduzione a Matlab Informazioni generali Principali metodi numerici per il pricing
DettagliA.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante
A.A. 2018/2019 Fondamenti di Programmazione in MATLAB Strutturazione del Codice Sorgente Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Fondamenti di Programmazione in MATLAB:
DettagliComplementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale
Complementi di Matematica e Calcolo Numerico A.A. 2013-2014 Laboratorio 4 - Polinomi e Interpolazione polinomiale Polinomi e vettori Matlab non prevede un oggetto particolare di tipo polinomio, ma rappresenta
Dettagli