Matlab. Vettori, funzioni matematiche e grafici.

Похожие документы
Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

UD6 - MATLAB. Gestione della grafica

Grafici in MATLAB Uso del comando plot() Appunti per l insegnamento di Metodi computazionali per la finanza Anno Accademico 2015/2016

Introduzione al MATLAB c Parte 1

ESERCITAZIONE MATLAB

Laboratorio 2 Grafici di funzione in Scilab Metodo di Bisezione

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Grafici in matlab. Un esempio di grafico: xv = 3:0.1:3; yv = xv.^3 5*xv.^2 + 4; plot(xv,yv) xlabel('value of x') ylabel('value of y')

INTRODUZIONE A MATLAB Matrix Laboratory

FUNZIONI. y Y. Def. L insieme Y è detto codominio di f. Es. Siano X = R, Y = R e f : x y = 1 x associo il suo inverso). (ad un numero reale

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

Introduzione al MATLAB c

Formule e funzioni. Manuale d uso

UNITÀ DIDATTICA 2 LE FUNZIONI

Vettori e Matrici. Vettori. Vettori e matrici: dati. Vettori di caratteri Polinomi. Dimensione (Size) numero di righe e di colonne della matrice

Laboratorio 1. Introduzione a Matlab

Funzioni iperboliche - Wikipedia

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

SISTEMI DI CONTROLLO Ingegneria Meccanica e Ingegneria del Veicolo

alsoftwork Manuale d' uso di X_Calc V.1.0 Calcolatrice scientifica Utilizzo di X_Calc Questo pulsante abilita/disabilita la calcolatrice scientifica.

Esercitazione Numpy e Plotting. Programmazione Orientata agli Oggetti e Scripting in Python

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di

Sviluppi e derivate delle funzioni elementari

La codifica digitale

Introduzione a MATLAB INTRODUZIONE A MATLAB

Moltiplicazione. Divisione. Multipli e divisori

TRIGONOMETRIA: EQUAZIONI TRIGONOMETRICHE

Fortran in pillole : prima parte

Calcolo differenziale per funzioni in più variabili.

Anno 2. Radicali algebrici e aritmetici: condizioni di esistenza

Lezioni su MATLAB. Ingegneria Civile/Meccanica

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

Laboratorio di Calcolo Numerico

Calcolare con il computer: Excel. Saro Alioto 1

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Introduzione al software R

Analisi Matematica T1 (prof.g.cupini) (CdL Ingegneria Edile Polo Ravenna) REGISTRO DELLE LEZIONI A.A

Anno 1. Divisione fra polinomi

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

EXCEL: FORMATTAZIONE E FORMULE

Corso di Calcolo Numerico

Laboratorio per l Elaborazione MultiMediale Lezione 1 - Introduzione a Matlab R

PROGRAMMAZIONE GENERALE MATEMATICA-INFORMATICA a.s

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Anno 4 Matrice inversa

Introduzione a Matlab

EXCEL: FORMATTAZIONE E FORMULE

MATLAB - Introduzione Enrico Nobile. MATLAB - Introduzione. E. Nobile - DINMA - Sezione di Fisica Tecnica, Università di Trieste

iv Indice c

Introduzione a Matlab

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

Grafici e Pagina web

La grafica. La built-in funzione grafica plot. x spezzata poligonale. discretizzato

Introduzione alla probabilità. Renato Mainetti

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

PIANO DI STUDIO DELLA DISCIPLINA MATEMATICA e COMPLEMENTI di MATEMATICA

Caratteristiche di un linguaggio ad alto livello

Access. P a r t e t e r z a

3. Matrici e algebra lineare in MATLAB

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Strumenti freeware/open source per l'insegnamento delle discipline scientifiche

Prima prova in itinere di Analisi Matematica 1 Ingegneria Elettronica. Politecnico di Milano. A.A. 2015/2016. Prof. M. Bramanti.

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Indice. Prefazione. Fattorizzazione di A + B Fattorizzazione di trinomi particolari 22 2

Programmazione Dipartimento Area Scientifica T. Rossi A.S. 2015/2016

Lezione 3. I numeri relativi

Le Derivate. Appunti delle lezioni di matematica di A. Pisani Liceo Classico Dante Alighieri

Corso Matlab : Seconda lezione (Esercitazione, 10/05/13) Samuela Persia, Ing. PhD.

PON Liceo Scientifico Leonardo da Vinci Vallo della Lucania Nuovi percorsi matematici: Osservare, descrivere, costruire.

Funzioni goniometriche

Laboratorio di Matematica Computazionale A.A Lab. 4

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Unità Didattica N 2 Le funzioni

Firmware Division & Floating pointer adder

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Uso di metodi statici. Walter Didimo

EXCEL. Alfabetizzazione Informatica Prof. GIUSEPPE PATTI

La codifica del testo

EUROPEAN COMPUTER DRIVING LICENCE SYLLABUS VERSIONE 5.0

CENNI DI TRIGONOMETRIA

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Operazioni sui vettori

1. Funzioni reali di una variabile reale

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

INTRODUZIONE ALL ANALISI MATEMATICA

INTRODUZIONE A SIMULINK

Транскрипт:

Matlab. Vettori, funzioni matematiche e grafici. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 1 aprile 2016 Alvise Sommariva Introduzione 1/ 32

Introduzione Il proposito di questa terza lezione mostriamo Come definire i vettori in Matlab (e alcune operazioni di base). Come definire funzioni matematiche, senza utilizzare files.m. Come eseguire il grafico di funzioni matematiche. Alvise Sommariva Introduzione 2/ 32

Matlab: operazioni con vettori Un vettore in Matlab lo si rappresenta tramite le sue componenti. A seconda del vettore ci sono vari modi più o meno efficaci. Se ad esempio devo descrivere il vettore (riga) ciò può essere fatto come segue [5, 4, 9] >> % VETTORE ( RIGA! ) [ 5 4 9 ] >> v=[5 4 9 ] v = 5 4 9 >> in cui tra le componenti numeriche del vettore sono interposti degli spazi vuoti. Alvise Sommariva Introduzione 3/ 32

Matlab: operazioni con vettori Si supponga di aver immagazzinato nella variabile v il vettore riga [5, 4, 9] e di voler aggiungere una componente, ad esempio 10, così da avere il vettore [5, 4, 9, 10] A tal proposito si procede come segue >> % VETTORE ( RIGA! ) [ 5 4 9 ] >> v=[5 4 9 ] ; >> v=[v 1 0 ] v = 5 4 9 10 >> Alvise Sommariva Introduzione 4/ 32

Matlab: operazioni con vettori Per selezionare la componente j-sima di un vettore v, si usa il comando v(j). Così se volessimo selezionare la seconda componente del vettore v = [5, 4, 9, 10] >> v=[5 4 9 1 0 ] v = 5 4 9 10 >> v ( 2 ) 4 >> Un utile comando per selezionare l ultima componente è end. Così ad esempio >> v=[5 4 9 1 0 ] ; v ( end ) 10 >> Alvise Sommariva Introduzione 5/ 32

Matlab: operazioni con vettori Per determinare la lunghezza di un vettore, cioè il numero delle sue componenti, si usa il comando length, come da esempio. >> v=[5 4 9 1 0 ] ; l=l e n g t h ( v ) l = 4 >> Nota. Un errore comune è scrivere lenght invece di length. Alvise Sommariva Introduzione 6/ 32

Matlab: operazioni con vettori Se invece di un vettore riga, si vuole descrivere un vettore colonna, si procede in due modi. Nel primo caso, si scrive un vettore riga e lo si traspone con il comando Così, ad esempio, >> v=[5 4 9 1 0 ] ; >> v=v v = 5 4 9 10 >> % i l s i m b o l o f a l a t r a s p o s i z i o n e d e l v e t t o r e. Alvise Sommariva Introduzione 7/ 32

Matlab: operazioni con vettori Alternativamente lo si descrive, intervallando un ; tra le varie componenti. >> v =[5; 4 ; 9 ; 1 0 ] v = 5 4 9 10 >> % v e t t o r e colonna, d e s c r i t t o d i r e t t a m e n t e i n q u e s t a forma, u t i l i z z a n d o i l ;. Alvise Sommariva Introduzione 8/ 32

Matlab: operazioni con vettori Per capire se un vettore è riga o colonna, è bene usare il comando size che ne descrive le dimensioni. >> v =[5; 4 ; 9 ; 1 0 ] ; s i z e ( v ) 4 1 >> % Componente 1 : n. ro r i g h e. Componente 2 : nero c o l o n n e. Quindi il vettore ha 4 righe e 1 colonna, e di conseguenza è un vettore colonna. Alvise Sommariva Introduzione 9/ 32

Matlab: operazioni con vettori Per vettori con componenti equispaziate, cioè del tipo v = (v k ) k=1,...,n, v k = v 1 + k h, con k = 1,..., N, cioè v = [v 1 v 1 + h, v 1 + 2h,..., v 1 + Nh] molto utili in matematica, si possono usare due comandi speciali. Se è nota la spaziatura h, il punto iniziale a e il punto finale b, si scrive (a : h : b) Ad esempio: >> a=5; b=7; h =0.5; v=a : h : b v = >> 5.0000 5.5000 6.0000 6.5000 7.0000 Alvise Sommariva Introduzione 10/ 32

Matlab: operazioni con vettori Se è invece noto il numero di punti equispaziati N, il punto iniziale a e il punto finale b, si scrive Ad esempio: linspace(a, b, N) >> l i n s p a c e ( 5, 7, 4 ) 5.0000 5.6667 6.3333 7.0000 >> % i p u n t i sono e q u i s p a z i a t i, con s p a z i a t u r a 2/3=0.6666..., punto i n i z i a l e 5 e f i n a l e 7. Alvise Sommariva Introduzione 11/ 32

Operazioni aritmetiche e funzioni elementari predefinite Le seguenti operazioni tra due vettori dello stesso tipo (riga o colonna) e della stessa dimensione, producono un vettore dello stesso tipo e dimensione. >> l i n s p a c e ( 5, 7, 4 ) 5.0000 5.6667 6.3333 7.0000 >> % i p u n t i sono e q u i s p a z i a t i, con s p a z i a t u r a 2/3=0.6666..., punto i n i z i a l e 5 e f i n a l e 7. Alvise Sommariva Introduzione 12/ 32

Operazioni aritmetiche e funzioni elementari predefinite Le seguenti operazioni tra due vettori dello stesso tipo (riga o colonna) e della stessa dimensione, producono un vettore dello stesso tipo e dimensione. + addizione sottrazione. prodotto./ divisione. potenza Alvise Sommariva Introduzione 13/ 32

Operazioni aritmetiche e funzioni elementari predefinite >> a=[1 2 ] ; b=[5 8 ] ; >> a+b 6 10 >> a b 4 6 >> a. * b 5 16 >> % PRODOTTO PUNTUALE: [ 1 *5 2 *8] >> a. / b 0.2000 0.2500 >> % DIVISIONE PUNTUALE: [ 1 / 5 2 / 8 ] >> a. ˆ b 1 256 >> % POTENZA PUNTUALE: [ 1 ˆ 5 2 ˆ 8 ] Alvise Sommariva Introduzione 14/ 32

Operazioni aritmetiche e funzioni elementari predefinite Si sottolinea che i vettori devono essere dello stesso tipo e dimensione. >> a=[2 4 ] a = 2 4 >> b =[5; 7 ] b = 5 7 >> a+b Error using + Matrix dimensions must agree. >> % NON POSSO SOMMARE VETTORI RIGA CON VETTORI COLONNA >> a=[2 4 ] ; b=[1 3 5 ] ; a+b Error using + Matrix dimensions must agree. >> % NON POSSO SOMMARE VETTORI CON NUMERO DIVERSO DI COMPONENTI Alvise Sommariva Introduzione 15/ 32

Operazioni aritmetiche e funzioni elementari predefinite Unica eccezione a quanto detto, si ha quando uno dei due vettori è un numero. >> a=[2 4 ] ; a+1 % [2+1 4+1] 3 5 >> a=[2 4 ] ; 2. * a % [ 2 *2 2 *4] 4 8 >> a=[2 4 ] ; a. ˆ 2 % [ 2 ˆ 2 4 ˆ 2 ] 4 16 >> a=[2 4 ] ; 3. ˆ a % [ 3 ˆ 2 3 ˆ 4 ] 9 81 >> a=[2 4 ] ; 8. / a % [ 8 / 2 8 / 4 ] 4 2 Alvise Sommariva Introduzione 16/ 32

Operazioni aritmetiche e funzioni elementari predefinite Importante. Si osservi che se uno dei vettori è un numero, possiamo in alcuni casi evitare il.. >> a=[2 4 ] ; 3*a % OK! 6 12 >> a=[2 4 ] ; 3/ a % KO! NUMERO DIVISO VETTORE. Error using / Matrix dimensions must agree. >> a=[2 4 ] ; a/3 %OK! VETTORE DIVISO NUMERO. 0.6667 1.3333 >> a=[2 4 ] ; aˆ3 % KO! Error using ˆ Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (. ˆ ) instead. >> a=[2 4 ] ; 3ˆa % KO! Error using ˆ Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (. ˆ ) instead. Alvise Sommariva Introduzione 17/ 32

Operazioni aritmetiche e funzioni elementari predefinite Le seguenti operazioni tra due vettori dello stesso tipo (riga o colonna) e della stessa dimensione, producono (puntualmente) un vettore dello stesso tipo e dimensione. abs valore assoluto sin seno cos coseno tan tangente cot cotangente asin arco seno acos arco coseno atan arco tangente sinh seno iperbolico cosh coseno iperbolico tanh tangente iperbolica asinh arco seno iperbolico acosh arco coseno iperbolico atanh arco tangente iperbolica sqrt radice quadrata exp esponenziale log 2 logaritmo base 2 log10 logaritmo base 10 log logaritmo naturale fix arrotondamento verso 0 round arrotondamento verso l intero più vicino floor arrotondamento verso ceil arrotondamento verso + sign segno rem resto della divisione Alvise Sommariva Introduzione 18/ 32

Operazioni aritmetiche e funzioni elementari predefinite >> a=[ p i p i / 2 ] ; cos ( a ) 1.0000 0.0000 >> % [ cos ( p i ) cos ( p i /2) ] >> b=[1 exp ( 1 ) ] ; l o g ( b ) 0 1 >> % [ l o g ( 1 ) l o g ( exp ( 1 ) ]=[0 1 ] >> c=exp ( l o g ( [ 1 4 ] ) ) c = 1 4 >> % c=exp ( [ l o g ( 1 ) l o g ( 4 ) ] ) =[ exp ( l o g ( 1 ) ) exp ( l o g ( 4 ) ) ] >> s q r t ( [ 1 6 36 6 4 ] ) 4 6 8 >> % [ s q r t ( 1 6 ) s q r t ( 3 6 ) s q r t ( 6 4 ) ] Alvise Sommariva Introduzione 19/ 32

Definizione di funzioni matematiche Per quanto riguarda le funzioni elementari spesso, qualora necessario, un utente può comporne di proprie, salvandole su file. Così ad esempio, può salvare in f.m la funzione f u n c t i o n y=f ( x ) y=s i n ( x )+p i ; e quindi chiamarla in altri programmi (che fanno parte della stessa cartella di f.m). A volte però la si può definire semplicemente, senza ricorrere a nuovi files, con il comando di definizione di funzione matematica @. >> f=@ ( x ) s i n ( x )+p i ; >> f ( 0 ) 3.1416 >> % s i n ( 0 )+p i Alvise Sommariva Introduzione 20/ 32

Definizione di funzioni matematiche Talvolta, per valutare le funzioni si usa il comando feval. Vediamone qualche esempio. >> f=@ ( x ) s i n ( x )+p i ; >> f e v a l ( f, 0 ) 3.1416 >> f=@ ( x ) [ s i n ( x )+p i ; cos ( x )+p i ] ; % f u n z i o n e da R i n R ˆ 2. >> f e v a l ( f, 0 ) 3.1416 4.1416 >> Alvise Sommariva Introduzione 21/ 32

Definizione di funzioni matematiche Una alternativa a @ è la definizione tramite inline (che Matlab considera desueta) >> g=inline ( s i n ( t )+p i ) ; >> g ( 0 ) % g a p p l i c a t a a numero 3.1416 >> g ( [ 0 p i / 2 ] ) % g a p p l i c a t a a v e t t o r e 3.1416 4.1416 >> Alvise Sommariva Introduzione 22/ 32

Il comando plot Per effettuare il grafico di funzioni si usa il comando plot, avente Nota. quale primo argomento un vettore che si riferisce alle ascisse, quale secondo argomento, un vettore dello stesso tipo e dimensione del primo, che si riferirisce alle ordinate. Per sovrapporre più grafici, si usano i comandi hold on e hold off, intervallati dai plot da sovrapporre. Per cancellare precedenti grafici, si usa il comando clf. Alvise Sommariva Introduzione 23/ 32

Il comando plot Per capire il comando plot digitiamo su workspace >> h e l p p l o t p l o t Linear p l o t. p l o t ( X, Y ) plots vector Y versus vector X...... Various l i n e types, p l o t symbols and colors may be obtained with p l o t ( X, Y, S ) where S is a character string made from one element from any or a l l the following 3 columns : b blue. point solid g green o circle : dotted r red x x mark. dashdot c cyan + plus dashed m magenta * star ( none ) no l i n e y yellow s square k black d diamond w w h i t e v triangle ( down ) Alvise Sommariva Introduzione 24/ 32

Il comando plot ˆ triangle ( up ) < triangle ( left ) > triangle ( right ) p pentagram h hexagram..... Example x = p i : p i / 1 0 : p i ; y = tan ( s i n ( x ) ) s i n ( tan ( x ) ) ; p l o t ( x, y, r s, LineWidth, 2,... MarkerEdgeColor, k,... MarkerFaceColor, g,... M a r k e r S i z e, 1 0 )..... >> Nell esempio vengono modificati vari pattern di grafica, come tratteggio colore o grossezza delle linee. Alvise Sommariva Introduzione 25/ 32

Il comando plot In virtù di quanto detto, digitiamo su workspace >> c l f ; % c a n c e l l a, s e n e c e s s a r i o, p r e c e d e n t i g r a f i c i. >> f=inline ( exp ( t ) 2 ) ; >> x = 0 : 0. 0 0 1 : 1 ; % v e t t o r e d i a s c i s s e. >> y=f ( x ) ; >> h o l d on ; % t i e n i g r a f i c i i n f i n e s t r a, s o v r a p p o n e n d o l i, f i n o ad h o l d o f f >> p l o t ( x, y ) ; % GRAFICO f ( u n i t o i p u n t i d i campionamento con s e g m e n t i n i i n b l u ). >> g=@ ( x ) 0*x ; >> yy=g ( x ) ; >> p l o t ( x, yy, r ) ; % ASSE x ( i n r o s s o! ). >> h o l d off ; e otteniamo, su una finestra esterna, il grafico della funzione f (x) = e x 2 (in blu), definita in [0, 1] (mediante campionamenti in punti sufficientemente fitti). Alvise Sommariva Introduzione 26/ 32

Il comando plot Figura : Finestre del workspace e di plot Alvise Sommariva Introduzione 27/ 32

Il comando plot 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura : In blu, grafico della funzione f in [0, 1]. In rosso, l asse delle ascisse. Alvise Sommariva Introduzione 28/ 32

Il comando plot Per salvare il grafico: Da menu File (del plot!), si clicchi su Save as (o sue traduzioni). Si dia un nome al file nel campo in alto Save as (o sue traduzioni). Per cambiare il formato del file, si clicchi sul menu a tendina con Format (o sue traduzioni). Si clicchi Save (o sue traduzioni) per salvare il file stesso nel formato prescelto. Alvise Sommariva Introduzione 29/ 32

Il comando plot Figura : Finestre del workspace e di plot Alvise Sommariva Introduzione 30/ 32

Il comando plot Per salvare il grafico: Da menu File (del plot!), si clicchi su Save as (o sue traduzioni). Si dia un nome al file nel campo in alto Save as (o sue traduzioni). Per cambiare il formato del file, si clicchi sul menu a tendina con Format (o sue traduzioni). Si clicchi Save (o sue traduzioni) per salvare il file stesso nel formato prescelto. Alvise Sommariva Introduzione 31/ 32

Esercizio: algoritmo di bisezione Si supponga sia f : [a, b] R una funzione continua tale che f (a) f (b) < 0. E noto che per il teorema degli zeri (di Bolzano), esiste almeno un punto x tale che f (x ) = 0. Per approssimare x utilizziamo l algoritmo di bisezione che genera una successione di intervalli (a k,b k ) con f (a k ) f (b k ) < 0, [a k, b k ] [a k 1, b k 1 ], b k a k = 1 2 b k 1 a k 1. Fissate la tolleranza ɛ si arresta l algoritmo quando b k a k ɛ. Alvise Sommariva Introduzione 32/ 32

Esercizio: algoritmo di bisezione Operativamente, dati in input a, b con a b e f (a) f (b) < 0, nonchè la tolleranza ɛ, Esercizio calcola c = (a + b)/2; se f (a) f (c) > 0 sostituisce c ad a, viceversa sostituisce c a b ; termina il processo se le condizioni d arresto sono verificate. Si implementi in Matlab/Octave l algoritmo di bisezione. Alvise Sommariva Introduzione 33/ 32