59
7/23/2019 Matlab, Problemi Di Minimo http://slidepdf.com/reader/full/matlab-problemi-di-minimo 1/59 LEZIONE ICO 12-10-2009 Lucia Marucci [email protected] Argomento: introduzione alla piattaforma Matlab. Risoluzione numerica di problemi di minimo liberi e  vincolati.

Matlab, Problemi Di Minimo

  • Upload
    emilio

  • View
    235

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 1/59

LEZIONE ICO 12-10-2009

Lucia Marucci

[email protected]

Argomento: 

introduzione alla piattaforma Matlab. 

Risoluzione numerica di problemi di minimo liberi e 

vincolati.

Page 2: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 2/59

http://www.mathworks.com/access/helpdesk/help/toolbo

x/optim/optim.shtml

Page 3: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 3/59

Definizione funzione obiettivo in MatlabDefinizione funzione obiettivo in Matlab

Definizione della funzione obiettivo :

creazione di una MATLAB function:

• Input

• Output

• Modi di scrivere la funzione obiettivo:1. Creare una funzione anonima nella riga di comando

2. Scrivere un M-file

3. Utilizzo del comando “Inline”

Page 4: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 4/59

1.Creare una funzione anonima

nella riga di comandoesempio

>>f = @(x) 2*x^2-3*x+4;>>f(3)

ans = 13

>>f = @(x,y) 2*x*y;

>>f(2,2)

ans = 8

Si utilizza quando la f è semplice o

quando non si userà in una

successiva sessione di MATLAB

Page 5: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 5/59

2. Usando il comando inline

• Utilizzando il comando inline:

 – Crea una funzione nella linea di comando:

Sintassi: f = inline(‘expr’,’n’) con>f = inline('2*x^2-3*x+4','x');

>>f(3)

ans = 13

>> f = inline('2*x*y', 'x', 'y');

>> f(2,2)

ans = 8

Page 6: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 6/59

3. Scrivere un M-file

Bisogna aprire un file di Matlab editor 

function [out1, out2, ...] = funname(in1,in2, ...)

esempio: nell’editor square.mfunction f = square(x)

f = x.^2;

Nella command window si richiama la funzione

@ square per creare una funzione handle per

square. Si può usare questo metodo quando la f(x)è complicata o se si intende riutilizzare la funzione.

NOTA BENE attenzione ai path!

Page 7: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 7/59

MINIMIZZAZIONE NON VINCOLATA:

fminunc

• Scopo: trovare il minimo di una funzione

multivariabile non vincolata: – x è un vettore ed f(x) è una funzione che ritorna uno

scalare

• Sintassi:

Page 8: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 8/59

[x,fval,exitflag,output,grad,hessian] =

fminunc(fun,x0,options)INPUT

• x0 è punto iniziale di ricerca, scalare, vettore o matrice

• fun è la funzione obiettivo• options: crea attraverso il comando optmiset parametri di

ottimizzazione (numero di iterazioni, tolleranzadell’algoritmo,ecc..)

OUTPUT• fval valore della funzione obiettivo nel punto di minimo

• Exitflag: descrive le condizioni di uscita

• Output: genera una struttura di uscita che riporta informazioni

circa l’operazione di ottimizzazione• grad: ritorna il valore del gradiente di fun alla soluzione x

• hessian: ritorna il valore dell’hessiano di fun alla soluzione x

Page 9: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 9/59

Input

>>x = fminunc (myfun,x0)

x0=scelta iniziale;

myfun è una Matlab function, ovvero:

x = fminunc(@myfun,x0)

function f = myfun(x)

f = ...

Page 10: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 10/59

>>x = fminunc (myfun,x0,options)

Options:

Sintassi:options=optimset('param1',value1,'param2',value2,...)

Input

Page 11: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 11/59

 Algoritmi utilizzati da fminunc

• Per default fminunc utilizza algoritmi :

 – Quasi Newton method con BFGS, steepestdiscendent

medium scale: se poniamo nell’opzione LargeScale ‘off’ nel

comando optimset

 – Trust region method, Newton method e gradiente

coniugato

large scale: se l’opzione GradObj è ‘on’ nel comandooptimset

Page 12: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 12/59

Page 13: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 13/59

Page 14: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 14/59

Output

• x: valore ottimo (soluzione del problema)

• fval: valore della funzione nel punto ottimo

• exitflag: descrive le condizioni di uscita:

» se>0 la funzione converge ad una soluzione x

» se=0 l’algoritmo non è in grado di ottenere una

soluzione nel numero di iterazioni stabilite» se <0 la funzione non converge alla soluzione x

• output: informazioni circa il processo di ottimizzazione

» Iterations: numero di iterazione dell’algoritmo

» funcCount : numero di valutazioni della funzione

» Algorithm: algoritmo usato

» Step-size

» Firstorderopt: norma del gradiente nella soluzione

Page 15: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 15/59

Page 16: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 16/59

Esempio 1: Unconstrained Minimization

• Problema di minimizzazione della

funzione:

• Passi da effettuare:

 – Generare un M-file che ritorni il valore della

funzione

 – Invocare la routine di risoluzione fminunc

Page 17: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 17/59

Step 1: scrittura dell’M-file myfun.m

Step 2: nella command window chiamo

fminunc

>>x0=[1 1];

>>[x,fval] = fminunc(@myfun,x0)

Page 18: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 18/59

Quasi_Newton

Page 19: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 19/59

Page 20: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 20/59

• Minimizziamo con un altro algoritmo:

• Modifichiamo l’M-file:myfun.m fornendo gradiente

• Creazione di una struttura options

Page 21: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 21/59

trust-region Newton

Page 22: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 22/59

Limiti dell’ fminunc

• La funzione da minimizzare deve esserecontinua

• Potrebbe determinare soluzioni locali

• Ottimizzazione di funzioni di variabili reali: x

deve essere una variabile reale

Page 23: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 23/59

• Trova il minimo di una funzione obiettivo multivariabile in

assenza di vincoli SENZA CALCOLARE GRADIENTE ALGORITMO: Nelder-Mead simplex direct search

• Sintassi:

MINIMIZZAZIONE NON VINCOLATA

fminsearch

Page 24: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 24/59

 – x= fminsearch (fun,x0), partendo da un punto di

ricerca iniziale tenta di trovare il minimo di fun

 – fun è una funzione descritta nella linea dicomando, dal comando inline o da un M.file

 – x= fminsearch (fun,x0,options), tenta la

minimizzazione usando il parametro options.

Usare optimset per stabilire le opzioni

dell’algoritmo

Page 25: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 25/59

• [x,fval]=fminsearch(…) , riporta in fval il valore ilvalore della funzione obiettivo fun nel valore x

• [x,fval,exitflag]=fminsearch(…), riporta un valoreexitflag che descrive le condizioni di uscita difminsearch

• [x,fval,exitflag,output]=fminsearch(…), riporta inoutput le informazioni inerenti il processo diottimizzazione.

• [x,fval,exitflag,output]=fminsearch(…P1,P2…),dove P1… Pn sono parametri della funzioneobiettivo

Page 26: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 26/59

Input arguments

• fun: funzione da minimizzare

 – fun può essere:

• M.file:

con myfun Matlab function

• Funzione anonima nella linea di comando

• Options: valgono le stesse considerazioniper fminunc….. ma i più usati sono:

Page 27: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 27/59

Options

Page 28: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 28/59

Output Arguments

Page 29: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 29/59

Esempio 1

Minimizzazione della funzione di Rosenbrock:x0=[-1.2, 1]

Presenta minimo (1,1) ed fval=0

-Scriviamo l’M.file:

function f= myfun(x)

f=

-Passiamo dall’M.file alla routine di ottimizzazione:

[x,fval] = fminsearch (f , [-1.2, 1] )

OPPURE

La definiamo nella command window

100*(x(2)-x(1)^2)^2+(1-x(1))^2;

Page 30: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 30/59

E i 2

Page 31: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 31/59

Esempio 2

• Se la funzione obiettivo è parametrica:

>>f= inline('100*(x(2)-x(1)^2)^2+(a-x(1))^2','x','a')

>>a=2;

>>options= optimset ('Display','iter','TolX',1e-8);>>[x,fval]= fminsearch (f,[1 2],options,a)

Page 32: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 32/59

Vantaggi e limiti• Vantaggi:

 – se f(x) è discontinua, fminsearch è uncomando robusto

• Svantaggi: – è in genere meno efficiente di fminunc per

problemi di ottimizzazione di ordine maggiore

di 2 – Ottimizzazione di funzioni di variabili reali: x

deve essere una variabile reale

Page 33: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 33/59

MINIMIZZAZIONE VINCOLATAMINIMIZZAZIONE VINCOLATA

fminconfmincon

dove x; b; beq; lb; ub sono vettori,  A;  Aeq sono matrici; c(x) e

ceq(x) sono funzioni vettoriali (cioe’ ad ogni vettore x associano un

vettore) e f e’ una funzione scalare (cioe’ ad ogni vettore x associa

un numero reale). Le funzioni f(x), c(x) e ceq(x) possono essere

non lineari.

Page 34: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 34/59

sintassi input

x=fmincon(fun,x0,A,b)

partendo da x0 cerca il minimo x della funzione fun

sotto i vincoli lineari A*x <= b .

x0 può essere uno scalare, un vettore o una matrice.

x=fmincon(fun,x0,A,b,Aeq,beq)

vincoli lineari Aeq*x = beq e anche A*x <= b.

(A=[ ] and B=[ ] se non ci sono disuguaglianze)

min F(x) vincoli: A*x <= b, Aeq*x= beq

C(x) <= 0, Ceq(x) = 0

LB <= x<= UB

Page 35: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 35/59

x=fmincon(fun,x0,A,b,Aeq,beq,LB,UB)

Definisce un set di lower e upper per la variabile x,

di modo che la soluzione sia trovata nel range

LB <= x <= UB.

Porre LB(i) = -Inf se x(i) é illimitata inferiormente;

porre UB(i) = Inf se x(i) é illimitata superiormente.

x = fmincon(fun,x0,A,b,Aeq,beq,LB,Ub,nonlcon,options)

se ci sono anche dei vincoli non lineari definiti innonlcon e delle opzioni specificate con optimset.

min F(x) vincoli: A*x <= b, Aeq*x= beq

C(x) <= 0, Ceq(x) = 0

LB <= x<= UB

sintassi output

Page 36: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 36/59

sintassi output

[x,fval] = fmincon(...) ritorna il valore della funzione

Obiettivo raggiunto

[x,fval,exitflag] = fmincon(...)[x,fval,exitflag,output] = fmincon(...)

[x,fval,exitflag,output,lambda] = fmincon(...)

Ritorna una struttura lambda i cui campi contengonoI moltiplicatori di Lagrange alla soluzione x

[x,fval,exitflag,output,lambda,grad,hessian]

=fmincon(...)

Page 37: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 37/59

-active-set (DEFAULT)

-interior-point

-trust-region-reflective SE SPECIFICATO

MA BISOGNA DARE IL JACOBIANO

 ALGORITMI

Page 38: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 38/59

Esempio 1

Minimizzare f(x)=-x1x2x3

x0 = [10; 10; 10]

Vincolo: 1 2 30 2 2 7 2 x x x ≤ + + ≤

1.Scrivo m file myfun_vin.m

function f = myfun_vin(x)

f = -x(1) * x(2) * x(3);

Page 39: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 39/59

min F(x) vincoli: A*x <= b, Aeq*x= beq

C(x) <= 0, Ceq(x) = 0LB <= x<= UB

2. Riscrivo il vincolo riportandolo a due

minorazioni

1 2 30 2 2 72 x x x ≤ + + ≤

  1 2 3

1 2 3

2 2 0

2 2 72

 x x x 

 x x x 

− − − ≤

+ + ≤

In questo modo posso formulare i due vincoli,

entrambi lineari, come

 A=[-1 -2 -2; 1 2 2];

b=[0;72];

 A*X <= b

Page 40: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 40/59

>> A=[-1 -2 -2;1 2 2];>> b=[0;72];

>> x0 = [10; 10; 10]; % Starting guess at the solution

>> [x,fval] = fmincon(@myfun_vin,x0,A,b)

3 . Chiamo routine fmincon dalla command window

E i 2

Page 41: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 41/59

Esempio 2

C=10; V=6; X0=[1 1 1];

Mfile nlcon.m per il vincolo non lineare

function [C,Ceq]=nlcon(x)

C=[ ];Ceq=[x(1)*x(2)*x(3)-6];

min F(x) vincoli: A*x <= b, Aeq*x= beq

C(x) <= 0, Ceq(x) = 0LB <= x<= UB

Page 42: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 42/59

>>[x,fval,exitflag,output,lambda,grad,hessian]=

fmincon(inline('2*10*(x(1)*x(2)+x(1)*x(3)+x(2)*x(3))‘,’x’),[

1;1;1],[ ],[ ],[ ],[ ],[-Inf;-Inf;-Inf],[Inf;Inf;Inf],@nlcon)

Page 43: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 43/59

Esempio 3

Page 44: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 44/59

Esempio 3

Page 45: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 45/59

M-files:

Command

window

Ri l i di i t i di i i

Page 46: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 46/59

Risoluzione di sistemi di equazioni

• fsolve e fzero:

fsolve : risoluzione di sistemi non lineari diequazioni: con x vettore e F(X) che

ritorna un valore vettoriale (determinazione delle

radici (zero) di un sistema non lineare diequazioni)

Sintassi

Input Argument

Page 47: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 47/59

Input Argument

• fun: sistema di equazioni non lineari da risolvere:

accetta un vettore x e ritorna un vettore F, equazioni

non lineari valutate in x. fun può essere richiamata

da :• M.file:

• funzione anonima:

• Jacobiano:

 –  in tal modo la funzione fun richiama in un secondo output il valore

della matrice J in x.

Output Arguments

Page 48: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 48/59

Output Arguments

• exitflag:CaratteristicheCaratteristiche

delldell’’algoritmoalgoritmo

utilizzatoutilizzato

• utput:

Page 49: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 49/59

Informazioni circaInformazioni circa

il processo diil processo di

ottimizzazioneottimizzazione

 Algoritmo• Per default viene utilizzato Trust-region dogleg.

• Alternativamente, si puo’ scegliere Levenberg-Marquardt

oppure Gauss-Newton.

Esempio 1

Page 50: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 50/59

p

• Sistema di equazioni in 2 incognite:

• Risolviamo in x:

 – Scriviamo un M.file:

 – Routine di ottimizzazione:

xx00=[=[--5,5,--5]5]

Esempio 2

Page 51: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 51/59

p

• Trovare una matrice X tale che:

con x0=[1,1;1,1] (matrice)

• Scrittura dell’M.file:

• Invochiamo la routine di ottimizzazione:

x= fval=

exitflag=1

Page 52: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 52/59

Limiti• Le funzioni del sistema devono essere

continue

• Le variabili devono essere reali

• Fsolve potrebbe convergere ad un puntoche non e’ uno stazionario; in tal caso

converrebbe variare le condizioni iniziali.

fzerofzero

Page 53: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 53/59

fzerofzero

• Soluzioni di una funzione continua di unavariabile

• Sintassi:

• Descrizione: – x=fzero(fun,xo), determina lo zero di fun vicino ad xo,

se xo è uno scalare. fun è una funzione descritta daM.file o da una funzione anonima. Il valore xdeterminato da fzero è vicino al punto per cui lafunzione fun cambia segno, o NaN se la ricerca nonammette risultato.

Input arguments

Page 54: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 54/59

Input arguments

• fun: funzione da risolvere

 – M.file richiamata nella routine dal comando @

con

 – Attraverso una funzione anonima:

 – Options: cambiando i valori attraverso il

comando optimiset…. Ovvero:

Options

Page 55: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 55/59

Options

Output arguments

Page 56: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 56/59

Esempi

Page 57: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 57/59

• Calcolare il valore di determinando lo zerodella funzione seno vicino al punto 3

• Trovare lo zero della funzione coseno

nell’intervallo [1 2]

Trovare lo zero della funzione:

Page 58: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 58/59

• Scriviamo un M.file:

• Per calcolare lo zero vicino a 2 :

• Dal momento che questa è una funzione

polinomiale, è possibile usare il comando roots ([1 0

-2 5]), che determina lo stesso zero reale e coppie dizero coniugate

Limiti

Page 59: Matlab, Problemi Di Minimo

7/23/2019 Matlab, Problemi Di Minimo

http://slidepdf.com/reader/full/matlab-problemi-di-minimo 59/59

• Il comando è in grado di trovare un punto dove la

funzione cambia segno.

• Se la funzione è continua, tale punto è anche un punto

per cui la funzione si avvicina al suo zero

• Se la funzione non è continua, il comando trova punti di

discontinuità invece cha la soluzione.

• Inoltre, la funzione determina lo zero come punto diintersezione di fun con l’asse x. Punti per cui la funzione

tocca l’asse, ma non lo intercetta non sono considerati

zero. Esempio la funzione x^2 è una parabola che tocca

l’asse x nello zero. Non attraversando l’asse x, il puntonon viene visto come soluzione.