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

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

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

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

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

Laboratorio di Matematica Computazionale A.A Lab. 1 - Introduzione a Matlab

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

Lab. 1 - Introduzione a Matlab

CORSO DI LABORATORIO DI INFORMATICA

Variabile, costante ed espressione

Introduzione al MATLAB c Parte 1 Variabili ed array

Aritmetica in Floating Point

Introduzione a Matlab

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

I numeri reali e la loro rappresentazione

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Introduzione a MATLAB. Il Laboratorio. MATLAB Cos è? Oltre alle lezioni. Octave ( ) Scilab ( )

Laboratorio 1 Introduzione a Matlab R - Octave

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Complementi di Matematica e Calcolo Numerico A.A

MATLAB (1) Introduzione e Operazioni con array

Caratteristiche di un linguaggio ad alto livello

Corso di Matematica per la Chimica

8 Introduzione MATLAB

Calcolo Numerico A.A Esercitazione n

3. Matrici e algebra lineare in MATLAB

Fondamenti di Informatica

Introduzione a MATLAB

MATLAB parte II. Array

Introduzione alla programmazione in C(++)

MATLAB Elementi di grafica Costrutti di programmazione

Unità aritmetica e logica

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Corso di Matematica per la Chimica

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Numeri reali. Notazione scientifica (decimale) Floating Point. Normalizzazione. Esempi. Aritmetica del calcolatore (virgola mobile)

Laboratorio 1 Introduzione a Scilab

Informazione binaria: - rappresentazione dei numeri razionali -

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

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

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Rappresentazione numeri relativi e reali

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point)

Problema numerico. Relazione funzionale chiara e non ambigua tra dati iniziali e la soluzione. Dati iniziali e soluzione sono due vettori finiti

1-Rappresentazione dell informazione

Laboratorio con DERIVE

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 10 Novembre 2015

La codifica. dell informazione

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Numeri in virgola. Marco D. Santambrogio Ver. aggiornata al 14 Novembre 2014

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

Introduzione a Matlab (e al Calcolo Numerico)

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Somma di numeri binari

GLI ERRORI. Problema. valutare l'accuratezza del risultato di un calcolo e quindi l'affidabilità del risultato stesso. Prof.

Calcolo numerico e programmazione Rappresentazione dei numeri

La codifica digitale

Tipi interi lo standard (1)

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

Sperimentazioni di Fisica I mod. A Lezione 3

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

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

ESERCITAZIONE. Uso dell accessorio calcolatrice per

Introduzione agli ambienti

Guida all'uso del simulatore Calcolatrice Multibase, versione 1.0

Informatica Applicata al Suono Tutorial Matlab

Laboratorio di Informatica

Rappresentazione in virgola mobile. 5 ottobre 2015

Rappresentazione dei numeri reali in un calcolatore

MATRICI (ARRAY) IN MATLAB/OCTAVE

Codifica binaria dei dati numerici: i numeri naturali

Programmazione Procedurale in Linguaggio C++

Rappresentazione di numeri interi

Corso di Matematica per la Chimica

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Orario del corso. Contenuti del corso. Modalità d esame. Analisi Numerica 1 a.a. 2014/2015

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

Rappresentazione in virgola mobile Barbara Masucci

N= a i b i. Numeri e numerali. Sistemi di Numerazione Binaria. Sistemi posizionali. Numeri a precisione finita

1.2f: Operazioni Binarie

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Calcolatori Elettronici Parte III: Sistemi di Numerazione Binaria

Esercitazioni su rappresentazione dei numeri e aritmetica. Interi unsigned in base 2

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Rappresentazione dei Dati

Codifica di informazioni numeriche

Introduzione al linguaggio Matlab - 1. A) Command Window: é la nestra in cui si eseguono in comandi.

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Qualsiasi programma in C++ segue lo schema:

Laboratorio 1. Introduzione a Matlab

Introduzione al MATLAB c Parte 1

Abilità Informatiche e Telematiche

Introduzione a MATLAB. Fabio Rossi

Transcript:

Complementi di Matematica e Calcolo Numerico A.A. 2013-2014 Laboratorio 1 - Introduzione a MATLAB MATLAB =MAT(rix)-LAB(oratory) è un ambiente integrato per il calcolo scientifico utilizzabile sia in maniera interattiva che come linguaggio di programmazione. In Matlab ogni quantità (variabile) viene trattata come matrice. Un numero reale è una matrice 1 1. Sono predefinite numerose funzioni di uso generale(built-in functions), e raccolte di funzioni dedicate ad uno specifico argomento (toolboxes). Per informazioni su Matlab: www.mathworks.com Matlab è un software a pagamento. Octave è un software gratuito che ne riproduce buona parte delle funzioni fondamentali. Per info vedere www.octave.org.

Matlab in modalità interattiva All avvio di Matlab si accede ad una finestra di lavoro caratterizzata dal prompt >> Tutto quanto inserito dopo il prompt verrà eseguito dopo aver premuto il tasto enter. Se Matlab riconosce il comando digitato produrrà un output in caso contrario segnalerà un errore. In ogni caso il sistema ripropone al termine il prompt in attesa di un nuovo comando. Matlab si chiude con il comando quit 2

La prima cosa da fare: >> cd z: Altri comandi del sistema operativo importanti da conoscere: >> pwd Z:\ >> mkdir CalcNum >> ls. CalcNum.. >> cd CalcNum 3

Alcuni comandi Matlab importanti da conoscere: >> help >> doc permettono di ottenere informazioni dettagliate su qualsiasi comando. Il comando doc mostra anche quali pacchetti (toolboxes) siano installati nella versione in uso. Ad esempio: >> help sqrt >> doc sin Per cercare il nome esatto di un comando: >> lookfor cosine cerca i comandi nella cui descrizione appare la parola cosine (ATT.NE la documentazione di Matlab è in inglese!) 4

Scalari in Matlab Matlab valuta espressioni e le associa a variabili. Assegnazione della variabile z: >> z=6 z = 6 >> 6 6 se non specificato il valore 6 viene assegnato alla variabile ans che contiene sempre l ultimo valore non esplicitamente assegnato ad una variabile. >> a=3+2; >> a a = 5 Il ; alla fine dell istruzione sopprime la visualizzazione a schermo del risultato (ma non l esecuzione dell operazione!). Sono definite le operazioni elementari: +,,, /, (elevamento a potenza). >> a=3+2, b=5-3, d=3*4, e=3/2, f=2^3 5

Attenzione alle precedenze: >> 3+2*4 ans= 11 >> 3*2^4 ans= 48 Per alterare l ordine delle operazioni si utilizzano le parentesi tonde. >> (3+2)*4 ans= 20 >> (3*2)^4 ans= 1296 >> (who) whos (elenca le variabili attualmente attive in memoria) e dà alcune informazioni importanti sulle loro caratteristiche (tipo di oggetto, dimensioni...) >> clear all cancella il valore di tutte le variabili attive in memoria. 6

Esercizio 1 Posto a = 3,b = 2, calcolare 3 a+b, a+b 2,a+b 2a, 1, 8 1 3 Se x = 10,y = 5,z = 2, calcolare 3x 2y 5z 2 (= 1) Se a = 1 3,b = 1 5, calcolare a 3 (= 8.3) (1 b+3a) 2 4 64 7

Variabili predefinite: pi (pigreco), i,j (unità immaginaria), Ogni variabile può essere sovrascritta. Per tornare indietro: clear. >>pi 3.1416 >>pi=5; >> clear pi >> pi 3.1416 Numeri Complessi: Oltre ai numeri reali in Matlab sono definiti i numeri complessi, ovvero del tipo: z = Re(z)+iIm(z). Se la variabile i non è stata ridefinita, un tale numero può essere scritto in Matlab nei modi seguenti >> z=5+3i z = 5.0000 + 3.0000i >> y=2.5-2*i y = 2.5000-2.0000i 8

Funzioni matematiche predefinite: abs(x) x sqrt(x) x exp(x) e x, exp(1) = e = Costante di Nepero 2,7182818284... log(x) ln(x) sin(x) sen(x) cos(x) cos(x) tan(x) tan(x) asin(x) arcsen(x)... Per vedere l elenco: >> help elfun Attenzione: Se z=a+bi è un numero complesso per definizione si ha z = a 2 +b 2 >> z=2+3i >> abs(z) 3.6056 Attenzione: Sezèunnumeronegativoocomplessolog(z)non da errore ma restituisce il logaritmo complesso; >> log(-1) 0 + 3.1416i 9

Esercizio 2 Calcolare: y = 2sin(x)cos(x) cos(2x) con x = π/2, (R = 1) y = esin(x2) +cos(x) 2 x+5ln(x) con x = 10, (R = 0.0133) 10

Rappresentazione dei numeri reali: È impossibile rappresentare su un calcolatore l infinità dei numeri reali. Si lavora con un sottoinsieme di dimensione finita: l insieme dei numeri floating-point (virgola mobile) o numeri macchina. Matlab utilizza la rappresentazione in doppia precisione, con la quale è possibile rappresentare ogni numero reale x che si trova approssimativamente negli intervalli: 1.88 10 308 x 2.23 10 308 2.23 10 308 x 1.80 10 308 Le variabili predefinte realmax, realmin di Matlab contengono il più grande ed il più piccolo numero macchina positivo rappresentabile in doppia precisione >> realmax ans= 1.7977e+308 >> realmin 2.2251e-308 Att.ne! Nell espressione 1.7977e+308, la e indica l esponente nella potenza di 10 per cui si intende moltiplicato il numero 1.7977 e non ha nullaachevedereconilnumerodineperoe = 2,7182818284590...! 1.7977e+308 = 1.7977 10 308 11

Ad un numero maggiore di realmax Matlab associa il valore Inf o infinito. Quindi ad esempio: >> 2*realmax Inf Se la valutazione di una espressione risulta in una divisione per zero il risultato della divisione sarà Inf e Matlab continuerà i calcoli. Nota: Matlab riesce a rappresentare numeri più piccoli di realmin cambiando la rappresentazione ed utilizzando parte dei bit normalmente utilizzati per la mantissa per l esponente. Questo comporta una predita di cifre significative rispetto agli altri numeri macchina se tale perdita supera una certo livello allora Matlab restituisce semplicemente 0. >> realmin/10 2.2251e-3090 >> realmin/1e+16 0 12

Numeri reali come 1/3 = 0.3 1/e = 0.367879441171442... vengono quindi approssimati con numeri macchina che hanno un numero finito di cifre significative, digitando >> 1/3 0.3333 >> 1/ exp(1) 0.3679 ne vediamo una rappresentazione. Usare solo 4 cifre decimali per rappresentare i numeri sarebbe molto grossolano, infatti questo è solo un possibile formato del sistema per visualizzare un numero reale che non coincide con la sua rappresentazione interna. Quest ultima è data appunto dal numero floating point che più si avvicina ad numero reale. Ciò si evidenzia cambiando il formato di visualizzazione. Altri possibili formati sono: >> format long >> 1/3 ans= 0.3333333333333 >> 1/exp(1) 0.367879441171442 13

>> format short e >> 1/3 3.3333e-01 >> 1/exp(1) 3.6788e-01 >> format long e >> 1/3 3.333333333333333e-01 >> 1/exp(1) 3.678794411714423e-01 Esercizio 3 (Esistenza di un realmax e di un realmin.) Partendo da 1 moltiplicare o dividere per 1e50 14

Vettori in Matlab Assegnazione di un vettore riga: >> w=[1 2 3] w = 1 2 3 Assegnazione di un vettore colonna: >> v=[1; 2; 3] w = 1 2 3 Altri modi di generare vettori riga: >> v=[1:8] v = 1 2 3 4 5 6 7 8 >> v=[1:.5:3] v = 1.0000 1.5000 2.0000 2.5000 3.0000 La sintassi generale è v=[valore iniz:passo:valore finale]. Il passo può essere anche negativo, ad es. v=[10:-.5:1]; 15

Il comando linspace(valore iniziale, valore finale, N) genera N valori equispaziati fra valore iniziale e valore finale (estremi compresi). Ad esempio >> v=linspace(0,1,5) 0 0.2500 0.5000 0.7500 1.0000 Il comando zeros(n,1)( zeros(1,n)) produce un vettore colonna (riga) di lunghezza n con elementi tutti nulli. Il comando ones(n,1) (ones(1,n)) genera un vettore colonna (riga) con tutte le componenti pari a 1. Per accedere alla componente di un vettore: >> v(3) 0.5 Attenzione: in Matlab l indicizzazione inizia da 1 e non da 0! 16

Matlab produce un messaggio di errore quando si cerchi di accedere ad una componente non definita, ad esempio: >> z=v(0)??? Subscript indices must either be real positive integers or logicals. Nota: esiste in Matlab la parola chiave end per accedere all ultimo elemento di un vettore. Ad es., se v ha dieci elementi, v(end) equivale a v(10). Per conoscere la lunghezza di un vettore v: >> length(v) 5 Per controllare la dimensione di una variabile v: >> size(v) 1 5 17

Operazioni su vettori Dati i vettori v=[1 2 3 4] e w=ones(1,4). Trasposizione: >> u=v u = 1 2 3 4 Somma (sottrazione) algebrica tra vettori di ugual dimensioni >> v+w 2 3 4 5 >> v-w 0 1 2 3 Prodotto scalare (v,w) = (v 1 w 1 +v 2 w 2 +...+v n w n ). >> dot(v,w) (oppure v*w se v e w sono vettori riga) 10 18

Norma euclidea v = n i=1 v2 i : >> norm(v,2) (oppure >> norm(v)) 5.4772 Operazioni su vettori componente per componente. Consideriamo i vettori di ugual dimensione a=[1 2 3 4], b=[4 3 2 1]. il prodotto componente per componente genera il vettore: (a 1 b 1,a 2 b 2,a 3 b 3,a 4 b 4 ) >> a.*b 4 6 6 4 la divisione componente per componente genera il vettore: (a 1 /b 1,a 2 /b 2,a 3 /b 3,a 4 /b 4 ) >> a./b 0.2500 0.6667 1.5000 4.0000 19

l elevamento a potenza componente per componente genera il vettore: (a b 1 1,a b 2 2,a b 3 3,a b 4 4 ) >> a.^b 1 8 9 4 >> a.^3 1 8 27 64 Esercizio 4 Generare gli interi da 28 a 80 con passo 1 generare gli interi da 22 a -10 con passo -4 generare 125 punti equispaziati tra -1 e 5 Assegnati i vettori u = [1,0,2, 3] e v = [3;0;2;1] a) calcolarne il prodotto scalare in due modi diversi; cosa fornisce il prodotto v u? b) calcolare i vettori colonna z, w, y definiti, componente per componente, da z i = u i v i, w i = u v i i, y i = z i /w i 20

Manipolazione di sottoblocchi di vettori e concatenazione Siano v=[1 2 3 4 5] e w=[100 200]. Per sostituire alle ultime due componenti di v le componenti di w: >> v=[1 2 3 4 5]; w=[100 200]; >> v(end-1:end)=w v= 1 2 3 100 200 Pereliminaredavlaterzaelaquartacomponenteusiamoilvettore vuoto []: >> v=[1 2 3 4 5]; >> v(3:4)=[]; v= 1 2 5 Per concatenare i due vettori: >> z=[v w] z= 1 2 3 4 5 100 200 21

Altre funzioni predefinite sui vettori >> v=[1,5,3]; >> sum(v) 9 >> prod(v) 15 >> max(v) 5 >> min(v) 1 >> sort(v) 1 3 5 >> diff(v) % => [v(2)-v(1), v(3)-v(2),...v(end)-v(end-1)]. 4-2 22

Esercizio 5 Sia x = [ 3,5,8,0,1,5, 2,4]: - imporre 6 elemento =100 - togliere 4 elemento - aggiungere in testa = [1,2,3] Siconsiderilasuccessionediterminen-esimoa n = sin(n 2 )con n 1. Si calcolino il più grande e piú piccolo numero tra i primi 10 elementi della successione. Suggerimento: Sieseguanooperazionisulvettore[1,2,3,...,10]. (Soluzioni: max = 0.9200, min = 0.9918) Siconsiderilasuccessionediterminen-esimoa n = 1/n,n 1. - Calcolare la somma dei primi 100 termini della successione. - Fissato n = 20, calcolare le seguenti quantità: n 1 a i+1 B1 =, B2 = n (a i +a 1 ) a i i=1 i=2 ( Soluzioni: B1 = 16.4023, B2 = 3.2404) - Per n = 10,100 calcolare il vettore b di componenti b i = a i+1 a i e verificare che la somma delle sue componenti è uguale a a n 1. N.B. Si risolva l esercizio eseguendo operazioni vettoriali. 23