Corso di Matematica per la Chimica

Documenti analoghi
MATLAB parte II. Array

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Introduzione al MATLAB c Parte 2 Funzioni

Caratteristiche di un linguaggio ad alto livello

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Rappresentazione di curve in tre dimensioni

Prove d esame Esercizi con Matlab

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

EXCEL software Excel .xlxs, La cella intestazione della colonna intestazione di righe l indirizzo della cella testo numeri formule

Introduzione a Matlab

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Appunti di Excel per risolvere alcuni problemi di matematica (I parte) a.a

INTRODUZIONE A MATLAB

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Excel. Il foglio di lavoro. Il foglio di lavoro Questa viene univocamente individuata dalle sue coordinate Es. F9

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Laboratorio 1. Introduzione a Matlab

Informatica Applicata al Suono Tutorial Matlab

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

3. Matrici e algebra lineare in MATLAB

Fortran in pillole : prima parte

Laboratorio con DERIVE

Capitolo 4: Tabelle. y(x) = x 3 ì 2x. Capitolo 4: Tabelle 67. Nota: le tabelle non sono disponibili nel modo di rappresentazione grafica 3D.

Costrutti condizionali e iterativi

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

Corso di Matematica per la Chimica

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

L INTERFACCIA GRAFICA DI EXCEL

Lena Cota Guido Corso di Informatica - II livello. Excel 2003 Formule. Imparare a usare le formule con la pratica

Fondamenti di Informatica

Programmazione web lato client con JavaScript. Marco Camurri 1

Corso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3).

Calcolare con il computer: Excel. Saro Alioto 1

Introduzione al Foglio Elettronico

Editor di testo. Ing. Simone Brienza. Corso di laurea magistrale in Ingegneria Elettronica

Anno 4 Matrice inversa

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Esercizio 1. Esercizio 2

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Grafici tridimensionali

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

EXCEL: FORMATTAZIONE E FORMULE

Calcolo Numerico I - a.a Laboratorio 3 - Introduzione a MATLAB

Lab. 1 - Introduzione a Matlab

Introduzione a MATLAB INTRODUZIONE A MATLAB

Definizione di metodi in Java

MATEMATICA DI BASE 1

Matlab. Istruzioni condizionali, cicli for e cicli while.

Corso di Calcolo Numerico (3 crediti) Prof. Scuderi Letizia

Mini-Corso di Informatica

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

per immagini guida avanzata Modificare numeri e date Geometra Luigi Amato Guida Avanzata per immagini Excel

Analisi Matematica 1 e Matematica 1 Geometria Analitica: Rette

Introduzione al Foglio Elettronico

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Geometria BIAR Esercizi 2

Introduzione alla programmazione Esercizi risolti

EUROPEAN COMPUTER DRIVING LICENCE SYLLABUS VERSIONE 5.0

Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1

EXCEL: FORMATTAZIONE E FORMULE

CORSO DI INFORMATICA GENERALE. Università degli Studi di Bergamo

MATLAB (II parte) Commenti. Input/Output (I/O) Istruzioni di Input/Output (I/O)

La codifica binaria. Informatica B. Daniele Loiacono

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Cosa si intende con stato

Cenni sull utilizzo dei fogli elettronici

Analisi dei dati con Excel

Sviluppare un programma in FORTRAN

Transcript:

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica e Economia Università della Basilicata a.a. 2014-15 Presentazione del Matlab

Riferimenti bibliografici P. Causin, S. Micheletti, R. Sacco Introduzione all uso di Matlab per il Calcolo Scientifico. (2000) disponibile sul sito www1.mate.polimi.it/cn.

Per iniziare... MATLAB (Matrix Laboratory) è un ambiente di calcolo sviluppato a partire dagli anni 70. La struttura di base è la matrice, per la quale sono già predefinite numerosi tipi elementari (matrice identità, matrice nulla, matrice unità...), funzioni algebriche e di manipolazione (somma, prodotto, calcolo del determinante). Per lanciare MATLAB da ambiente Windows basta cliccare con il mouse sull icona corrispondente. Per entrare in confidenza con l ambiente di lavoro è utile: lanciare il comando demo che illustra le potenzialità del software attraverso significativi esempi numerici e casi test; fare costante riferimento all uso dell help, ad esempio help sqrt (calcolo della radice quadrata di un numero).

Prime istruzioni in MATLAB Il modo più immediato per interagire con MATLAB: è scrivere l istruzione dal prompt seguita da Esempio: assegnazione del valore 3 alla variabile a: >> a= 3 a= 3 Possiamo usare MATLAB come una semplice calcolatrice: >> b= a * 2 b= 6 o, come vedremo, come un vero e proprio ambiente di programmazione.

Invece di digitare tutte i comandi al prompt, possiamo memorizzare una serie di istruzioni successive (script) sotto formato di file di testo, detto M-file e caratterizzato da estensione.m. A questo scopo possiamo utilizzare l Editor di testo integrato. Per uscire da MATLAB: comandi quit o exit.

Alcuni trucchi per risparmiare tempo 1 Durante la sessione di lavoro è possibile richiamare i comandi precedentemente digitati utilizzando i tasti,,, ; 2 immettendo i primi caratteri di un istruzione già digitata e poi premendo il tasto, viene completata la riga con l ultima istruzione che inizia con quegli stessi caratteri; 3 i tasti e permettono di riposizionare sulla linea di comando il cursore e di modificare il testo scritto; 4 con il tasto sinistro del mouse sulla finestra di calcolo si possono selezionare parti di testo che è poi possibile copiare, tagliare ed incollare sulla linea di comando.

Qualche informazione ulteriore sulle variabili in MATLAB In MATLAB tutte le variabili sono in doppia precisione, ovvero sono rappresentate internamente con 64 bit, cui corrispondono 16 cifre significative decimali. Quando assegnamo un valore ad una variabile, MATLAB risponde con un eco: >> s = 10 s = 10 Per sopprimere l eco, usiamo la sintassi: >> s=10;

Quando non assegnamo il valore di un operazione ad una variabile, MATLAB assegna tale valore alla variabile ans (che viene così ogni volta sovrascritta): >> 3 2 ans = 9

Un osservazione sulla precisione di calcolo Tutti i calcoli vengono effettuati in doppia precisione, mentre diversa è la visualizzazione delle variabili che viene determinata con il comando format: format short: virgola fissa con 5 cifre (è il formato di default): >> pi ans = 3.1416 format long: virgola fissa con 15 cifre: >> pi ans = 3.14159265358979

format short e: virgola mobile con 5 cifre: >> pi ans = 3.1416e+00 format long e: virgola mobile con 15 cifre: >> pi ans = 3.141592653589793e+00 Noi useremo sempre il formato format long e perché è quello più vicino alla rappresentazione normalizzata del numero.

Definizione di vettori Modalità più semplice: elencare le singole componenti del vettore fra una coppia di parentesi quadre, si ottiene così un vettore riga: >> b = [1 2 3 4] b = 1 2 3 4 Lo stesso risultato si ottiene separando le componenti con il carattere, Separando invece le componenti con il carattere ; si ottiene un vettore colonna: >> b = [1; 2; 3; 4] b = 1 2 3 4

In alcuni casi possiamo essere più rapidi, usando la sintassi inizio: incremento: fine Il valore di default per incremento è 1. >> b = [1:10] b = 1 2 3 4 5 6 7 8 9 10 >> b = [1:2:10] b = 1 3 5 7 9 >> b = [10:-3:0] b = 10 7 4 1 >> b = [1:1.5:10] b = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000

Definizione di matrici La costruzione delle matrici segue una sintassi simile al caso dei vettori: >> M = [1 2; 3 4] M = 1 2 3 4 definisce una matrice quadrata di ordine 2. Osserviamo che: 1 una matrice non è altro che una collezione di vettori riga ovvero colonna; 2 in tutte le righe, il numero di componenti deve essere lo stesso!

Manipolazione di vettori e matrici Definiamo: >> b = [1:10] 1 2 3 4 5 6 7 8 9 10 Per accedere agli elementi di b: >> a=b(5) a = 5 >> c=b(1:3) c = 1 2 3 >> b([1:2,6,9:10]) ans = 1 2 6 9 10

Transposizione di un vettore: >> bt = b bt= 1 2 3 4 5 6 7 8 9 10

Definiamo la matrice: >> M = [1:5; 6:10; 11:15; 16:20] M = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Per accedere agli elementi di M: >> M(2,3) ans = 8 Estrazione di una riga della matrice: >> M(1,:) ans = 1 2 3 4 5

Estrazione di una colonna della matrice: >> M(:,3) ans = 3 8 13 18

Estrazione di più righe e colonne: >> M(2:4,1:2:5) ans = 6 8 10 11 13 15 16 18 20

Operazioni fra vettori In MATLAB sono definite le operazioni di somma + e sottrazione -. tra vettori. Tali operazioni agiscono elemento per elemento: >> b =[1:4]; >> c = [2:5]; >> b+c ans = 3 5 7 9 >> c - b ans = 1 1 1 1

>> b = [1:4]; >> c = [2:5]; >> b*c ans = 40 >> b *c ans = 2 3 4 5 4 6 8 10 6 9 12 15 8 12 16 20 I vettori devono avere dimensioni compatibili!

Se le dimensioni non sono compatibili: >> a = 1:3; >> c= [1 2]; >> a+c??? Error using ==> plus Matrix dimensions must agree.

Uso della sintassi. MATLAB estende le proprietà delle operazioni tipo somma e sottrazione anche ad altre operazioni, fra cui moltiplicazione e elevamento a potenza. Il vincolo è che i due vettori operandi abbiano lo stesso numero di componenti riga e colonna. >> a = 1:3; >> b = a; >> a.*b ans = 1 4 9 >> a. b ans = 1 4 27

Operazioni fra matrici Somma e sottrazione di matrici: >> A = [ 1 2 3; 4 5 6; 7 8 9]; >> B = [ 1 1 1; 2 2 2; 3 3 3]; >> A+B ans = 2 3 4 6 7 8 10 11 12 >> A-B ans = 0 1 2 2 3 4 4 5 6

Prodotto tra matrici (prodotto righe per colonne): >> A = [ 1 2 3; 4 5 6; 7 8 9]; >> B = [ 1 1 1; 2 2 2; 3 3 3]; >> A*B ans = 14 14 14 32 32 32 50 50 50

Funzioni intrinseche definite per vettori e matrici Le principali functions built-in che permettono di manipolare o agire su vettori e matrici sono: eye(n) costruisce la matrice identità di ordine n, cioè la matrice che ha elementi 1 sulla diagonale principale e 0 altrove; ones(m,n) costruisce una matrice o un vettore di dimensione m n i cui elementi sono tutti 1. zeros(m,n) costruisce una matrice o un vettore di dimensione m n i cui elementi sono tutti 0. size(a) fornisce le dimensioni m e n della matrice A tril(a) (triu(a)) costruisce la matrice triangolare inferiore (superiore) estratta da A: det(a) restituisce il determinante della matrice A inv(a) restituisce l inversa della matrice A.

Grafici in due dimensioni Per tracciare nel piano cartesiano xy il grafico di una funzione f (x) in un intervallo [a, b] il MATLAB mette a disposizione le functions plot e fplot. Esempio Disegnare il grafico della funzione nell intervallo [0, 2π]. f (x) = cos(x)

Utilizzando il comando plot >> x=[0:pi/100:2*pi]; >> y=cos(x); >> plot(x,y) 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 6

Utilizzando il comando plot >> x=[0:pi/100:2*pi]; >> y=cos(x); >> plot(x,y) >> grid Il comando grid traccia sul grafico una griglia di riferimento. 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 6

Utilizzando il comando fplot >> fplot( cos(x), [0, 2*pi]) >> grid 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 6

Per rappresentare la curva per punti discreti procediamo nel modo seguente: >> x=[0:0.1:2*pi]; >> y=cos(x); >> plot(x,y, * ) 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 6 7

È possibile rappresentare nello stesso grafico più di una curva che possiamo contrassegnare con colori differenti: >> x=[0:pi/100:2*pi]; >> y1=cos(x); >> y2=cos(2*x); >> y3=cos(3*x); >> plot(x,y1, b,x,y2, y,x,y3, r ) >> grid 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 1 2 3 4 5 6 7

Rappresentazione di superfici in tre dimensioni Rappresentiamo il grafico della funzione di due variabili z = f (x, y) con (x, y) [ 2, 2] [ 2, 2]. A partire dai vettori >> x=[-2:0.2:2]; >> y=[-2:0.2:2]; generiamo con la function meshgrid una griglia di base costituita dalle matrici X e Y che individuano tutti i nodi di coordinate x i, y j >> [X,Y]=meshgrid(x,y); Usiamo la function surf per disegnare la funzione z = yx 2 e (x2 +y 2 ) utilizzando la griglia di base generata con le matrici X e Y: >> Z = Y. X. 2. exp( (X. 2 + Y. 2)); >> surf(x,y,z); >> colormap(hsv);

0.2 0.1 0 0.1 0.2 2 1 0 1 2 2 1 0 1 2

Funzioni simboliche Talvolta è utile definire una funzione in modo simbolico, ovvero definire semplicemente l espressione matematica della funzione senza che ad essa vengano associati dei valori numerici. In questo caso si dice la funzione è definita come stringa e la sua espressione deve essere racchiusa fra apici. Si utilizza la function eval per valutare la funzione simbolica nelle ascisse specificate da un vettore x. Esempio >> fun= sin(x).*cos(x) ; >> x=[-4:0.01:4]; >> y=eval(fun);

Il ciclo for L istruzione for ripete per un determinato numero di volte un blocco di istruzioni. La forma generale dell istruzione for è la seguente: for indice=inizio:incremento:fine blocco istruzioni end for indice=inizio:incremento:fine blocco istruzioni end Il valore di default per incremento è 1. for indice=inizio:incremento:fine blocco istruzioni end Il valore di default per incremento è 1. Le parole chiave for e end obbligatoriamente iniziano e terminano

È possibile annidare più cicli for. Ad esempio per riprodurre il comportamento della built-in function hilb(n) possiamo scrivere: for i=1:n for j=1:n a(i,j)=1/(i+j-1); end end È sempre utile indentare opportunamente le righe di codice per rendere il listato più facilmente comprensibile.

Il ciclo while L istruzione while esegue un blocco di istruzioni un numero indefinito di volte fino al persistere di una certa condizione. Non è quindi noto a priori il numero di ripetizioni del blocco di istruzioni. La sintassi generale dell istruzione while è: while (condizione) blocco istruzioni end La sintassi generale è: while (condizione) blocco istruzioni end Le parole chiave while e end obbligatoriamente iniziano e terminano il ciclo. La sintassi generale è:

Istruzione if L istruzione if controlla l esecuzione di un determinato blocco di codice a seconda del valore (vero o falso) assunto da una certa espressione logica. La forma generale dell istruzione if è la seguente: if (condizione1) blocco1 elseif (condizione2) blocco2 else blocco3 end

M-files I files che contengono codice MATLAB sono detti M-files (estensione.m). Essi possono essere richiamati dal prompt digitandone semplicemente il nome. Gli M-files si dividono in due categorie: M-files di tipo scripts: si tratta semplicemente di files che raccolgono in successione istruzioni come date dalla linea di comando; M-files di tipo functions: che accettano argomenti in ingresso e possono restituire argomenti in uscita; possiedono variabili interne che hanno visibilità locale.

L intestazione di ciascuna function, che deve comparire nella prima riga del file corrispondente, ha la struttura: function [out1,out2,...,outn]=nomefunction(in1, in2,..., inn) function [out1,out2,...,outn]=nomefunction(in1, in2,..., inn) Le variabili out1,out2,...,outn sono i parametri in uscita. function [out1,out2,...,outn]=nomefunction(in1, in2,..., inn) Le variabili out1,out2,...,outn sono i parametri in uscita. Le variabili in1, in2,..., inn sono i parametri in ingresso. function [out1,out2,...,outn]=nomefunction(in1, in2,..., inn) Le variabili out1,out2,...,outn sono i parametri in uscita. Le variabili in1, in2,..., inn sono i parametri in ingresso.