Top Banner
Matlab - 1 Introduzione Slide basate sul corso di C. Blundo
37

Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

Feb 21, 2019

Download

Documents

lemien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

Matlab - 1

Introduzione

Slide basate sul corso di C. Blundo

Page 2: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 2

Cosa è Matlab – 1

È un ambiente di calcolo scientifico con funzioni altamente specializzate

È un linguaggio di programmazione

È un ambiente grafico

Page 3: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 3

Cosa è Matlab – 2

Matlab integra Calcolo Visualizzazione Programmazionein un ambiente facile da usare dove i problemi e le soluzioni sono espresse in una notazione matematica familiare

Page 4: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 4

In pratica …

Page 5: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 5

Cloni Matlab

Octave http://www.octave.org/ Linux Windows (95, NT, 2000) Mac OS X

Scilab http://www.scilab.org/ Linux Windows (9X, NT, 2000,XP) Mac OS X

Page 6: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 6

Altre caratteristiche di Matlab – 1

Esecuzione di programmi esterni eventuale risultato disponibile nella

finestra comandi (Command Window)

Cover function import/export di dati da e per altri

ambienti

Figure window Gestione grafici bi/tridimensionali

Page 7: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 7

Altre caratteristiche di Matlab – 2

Help system Completa navigazione in un help in

linea

Application Program Interface (API) Interfaccia (libreria) per elaborazioni

sincrone con programmi scritti in altri linguaggi di programmazione (C, Fortran, Java, …)

Page 8: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 8

Argomenti trattati nel corso

Matlab come calcolatrice Comandi di base Vettori e matrici Operazioni su vettori File .m e funzioni Programmare Matlab Grafici Calcolo simbolico

Page 9: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 9

Come interagire con Matlab

Tutti i comandi che Matlab deve eseguire vengono indicati nella “Finestra Comandi” (Command Window)

Page 10: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 10

Matlab come calcolatrice – 1

Per usare Matlab come calcolatrice, si inseriscono i comandi dopo il prompt >> Ad esempio:

>> 2+2ans = 4

>> log(5)ans =1.6094

>> cos(pi)ans = -1

Page 11: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 11

Matlab come calcolatrice – 2

Matlab normalmente stampa solo le prime 4 cifre decimali, ma in realtà ne memorizza molte di più. Per vederle tutte:

>> format long>> log(5)ans =1.60943791243410

Page 12: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 12

Uso della Command History

Cliccando due volte su una riga della Command History il comando viene automaticamente ripetuto nella Command Window

Page 13: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

Formatformat short 4 cifre decimali 39.2157

format long 16 cifre decimali

17.1234567890101112format short e 5 cifre (4 decimali) con esponente

3.1232e+03 format long e 16 cifre (15 decimali) con

esponente 7.1234567890101112e-04

format bank 2 cifre decimali 126.36

format rat approsimazione razionale 4/3

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 13

Page 14: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 14

Soppressione dell’output

Per sopprime l’output basta far seguire all’espressione che digitiamo dopo il prompt comandi il punto e virgola (;) Il comando (calcolo) verrà comunque

eseguito>> 3 + 4ans = 7>> 3 + 4;>>

Page 15: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 15

Aiuto in Matlab Matlab ha un ricco help in linea. Per accedere alle informazioni, basta digitare help nella finestra dei comandi:

>> help

HELP topics:

matlab\general - General purpose commands.

matlab\elmat - Elementary matrices and matrix manipulation.

matlab\elfun - Elementary math functions.

….

For more help on directory/topic, type "help topic".

For command syntax information, type "help syntax".

Page 16: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 16

Aiuto su un argomento specifico

>> help log LOG Natural logarithm. LOG(X) is the natural logarithm of the elements of X. Complex results are produced if X is not positive. See also LOG2, LOG10, EXP, LOGM.

>> help sum SUM Sum of elements. For vectors, SUM(X) is the sum of the elements of X. For matrices, SUM(X) is a row vector with the sum over each column.

Page 17: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 17

Un altro tipo di aiutoPer cercare informazioni su una particolare parola chiave, si usa il comando lookfor

L’output di lookfor contiene i nomi di tutte le funzioni che presentano la parola “logarithm” nel loro help

>> lookfor logarithm

LOGSPACE Logarithmically spaced vector.

LOG Natural logarithm.

LOG10 Common (base 10) logarithm.

LOG2 Base 2 logarithm and dissect floating point number.

BETALN Logarithm of beta function.

GAMMALN Logarithm of gamma function.

LOGM Matrix logarithm.

REALLOG Real logarithm.

Page 18: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 18

Variabili in Matlab – 1

Una variabile è un nome simbolico associato ad un valore un posto dove Matlab memorizza il

risultato di un calcolo

Con Matlab non dobbiamo assegnare un tipo alla variabile (intero,

decimale, stringa, record, …) assegnare una dimensione (grandezza) alla

variabile

Page 19: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 19

Variabili in Matlab – 2

Una variabile consiste di una lettera seguita da lettere, numeri o underscore _Una variabile può essere lunga la massimo 31 caratteriLa variabile ans contiene il risultato “più recente” calcolato con MatlabAttenzione, le variabili in Matlab sono case sensitive: a e A sono variabili differenti

Page 20: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 20

Esempi>> x=3

x = 3

>> y=4

y = 4

>> z=x+y

z =7

>>

>> a=5;

>> b=9;

>> z=a+b+sin(pi/4);

>> z

z =14.7071

>>

Page 21: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 21

Le variabili i e j

Se le variabili i e j non sono assegnate, Matlab le considera come unità immaginaria>> i

ans =0 + 1.0000i

>> j

ans = 0 + 1.0000i

>> i=3;

>> i

i = 3

>> j

ans = 0 + 1.0000i

Page 22: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

Operatore di assegnazione

Una sola variabile nel lato sinistro x+2=20 6=x

x=y+5 solo se y ha un valore assegnato

x=x+2 incrementa x di 2

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 22

Page 23: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 23

Il Workspace di Matlab

Consiste dell’insieme delle variabili utilizzate durante una sessione di Matlab Sono elencate tutte le variabili

utilizzate Un doppio click visualizza il loro

contenuto

Nella Command Window possiamo vedere le variabili utilizzate e lo spazio che occupano con i comandi who e whos

Page 24: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 24

Page 25: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 25

Cancellare una variabile

Per eliminare una variabile v dal workpace si usa, nella Command Window, il comando clear v Il comando clear cancella tutte le variabili dal workspaceLe variabili possono anche essere cancellate tramite la finestra Workspace

Page 26: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 26

Operatori

+ addizione

- sottrazione

* moltiplicazione

/ divisione

^ elevamento a potenza

Page 27: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 27

Costanti – 1

ans valore ultima operazione eseguita non assegnata ad una variabile

i, j unità immaginaria

pi π, 3.14159265...

eps precisione di macchina

Page 28: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 28

Costanti – 2

realmax massimo numero macchina positivo

realmin minimo numero macchina positivo

Inf ∞, ossia un numero maggiore di realmax

NaN Not a Number, tipicamente il risultato dell’espressione 0/0

Page 29: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 29

Esempi

>> realmax

ans = 1.7977e+308

>> realmin

ans =2.2251e-308

>> 1/0

warning: Divide by zero

ans = Inf

>> grande=exp(log(realmax))

grande =1.7977e+308

>> enorme=pi*grande

enorme =Inf

>> 0/0

warning: divide by zero

ans = NaN

Page 30: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 30

Esercizi

Avviare e chiudere una sessione di Matlab

Con x=5 ed y=3, eseguire i seguenti calcoli 1) u = x + y 2) v = x*u 3) w = x/y 4) z = w3

5) xy2/(x-y) 6) 3x/2y 7) r = 3xy/2 8) t = x5/(x5-1) 9) r/t 10) e = (5+4i)/(5-4i)11) 7x1/3+4x0.66 11) (1-1/x6)-1

Page 31: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 31

Funzioni matematiche di base –1

round(x) Approssima all’intero più vicino

ceil(x) Parte intera superiore

floor(x) Parte intera inferiore

fix(x) Considera solo la parte intera

Page 32: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 32

Funzioni matematiche di base –2

sign(x) Restituisce 1 se x è positivo, zero

altrimenti

>> x=3.4;

>> [round(x) ceil(x) floor(x) fix(x) sign(x)]

ans =

3 4 3 3 1

Page 33: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 33

Funzioni matematiche di base –3

sqrt(x), abs(x), exp(x) → [√x, |x|, ex] real(x), imag(x), conj(x) Parte reale, parte immaginaria,

complesso coniugato di x

log(x), log10(x) sin(x), cos(x), tan(x) asin(x), acos(x), atan(x)

Page 34: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 34

Esercizio – 1

Con x=10 ed y=3, eseguire i seguenti calcoli:

1) r=8 sin y 2) s= 5 sin(2y)3) z= sin x 4) 3πx2

5) w=2(sin x)/5 6) ex+1

7) 2+cos(2πx) 8) t=5 tan(ex/2)9) √x + 4 + sin(0.2π) + e2

Page 35: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 35

Esercizi – 2

Il volume di una sfera è dato da V=4πr3/3, dove r è il raggio. Utilizzare Matlab per calcolare il raggio di una sfera che ha il volume del 30% più grande di quello di una sfera di raggio 5

Page 36: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 36

Esercizi – 3

Supporre che

x=-7-5i y=4+3i

Calcolare

1.x+y

2.xy

3.x/y

Page 37: Matlab - 1libeccio.di.unisa.it/LabInf2010/Matlab 1.pdf · Programmare Matlab Grafici Calcolo simbolico. A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 9 Come interagire

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 37

Esercizi – 4La legge dei gas perfetti mette in relazione la pressione P, il

volume V, la temperatura T, e la quantità di gasPV=nRT

R è la costante dei gas perfetti.Un serbatoio di gas mantiene la pressione costante a 2.2

atmosfere.In dicembre con un a temperatura di -15C, il volume nel

serbatoio è 28500dm3. Quale sarà il volume a 31C? Nota che n,R,P sono costanti e K=C+273.2