matlab - 1libeccio.di.unisa.it/labinf2010/matlab 1.pdf · programmare matlab grafici calcolo...

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

Upload: lemien

Post on 21-Feb-2019

269 views

Category:

Documents


0 download

TRANSCRIPT

Matlab - 1

Introduzione

Slide basate sul corso di C. Blundo

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

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

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 4

In pratica …

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

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

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, …)

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

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)

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

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

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

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

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;>>

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".

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.

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.

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

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

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

>>

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

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

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

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 24

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

A.A. 2010/2011 -- GPersiano

Laboratorio di Informatica per Fisici 26

Operatori

+ addizione

- sottrazione

* moltiplicazione

/ divisione

^ elevamento a potenza

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

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

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

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

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

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

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)

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

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

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

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