Matematica e statistica
Versione didascalica: parte 2
•
•
•
Sito web del corso
http://www.labmat.it/didattica
Docente: Prof. Sergio Invernizzi, Università di Trieste
e-mail: [email protected]
2.7. Applicazioni numeriche delle derivate
2.7.1. Il metodo delle tangenti di Newton
f ( x)  0
x0
x1  x0 
f ( x0 )
f '( x0 )
.........
xn 1  xn 
f ( xn )
f '( xn )
2.7.1. Il metodo delle tangenti di Newton
> y1 <- function(x) exp(x)-2.
> y2 <- function(x) exp(x)
> y3 <- function(x) x - y1(x)/y2(x)
> y3(2)
[1] 1.270671
> newton <- function(x) y3(y3(y3(y3(y3(x)))))
> newton(2)
[1] 0.6931472
> log(2)
[1] 0.6931472
> y1 <- function(x) x^2-2
> y2 <- function(x) 2*x
> newton(2)
[1] 1.414214
> sqrt(2)
[1] 1.414214
> y1 <- function(x) sin(x)-x^2
> y2 <- function(x) cos(x)-2*x
> 1 -> a
> y3(a) -> a; a
[1] 0.891396
> y3(a) -> a; a
[1] 0.8769848
> y3(a) -> a; a
[1] 0.8767263
> y3(a) -> a; a
[1] 0.8767262
> y3(a) -> a; a
[1] 0.8767262
> y3(a) -> a; a
[1] 0.8767262
> y1(a)
[1] 0
2.7.2. Interpolazione: Lemma di Rolle
Se:
• a<b
• f(a) = 0
• f(b) = 0
Allora esiste c che verifica
• a<c<b
• f '(c) = 0
2.7.2.a. Interpolazione costante (di Lagrange)
f ( x)  f (a)
f ( x)  f (a)   ( x  a)
valore vero = valore approssimato + errore
2.7.2.a. Interpolazione costante (di Lagrange)
f ( x)  f (a )
f ( x)  f (a)   ( x  a )
 (t )  f (t )  { f (a)   (t  a)}
 (a)  f (a )  { f (a)   ( a  a)}  0
 ( x)  f ( x)  { f (a )   ( x  a)}  0
0   '(c)  f '(c)  
f ( x)  f (a)  f '(c)( x  a )
2.7.2.b. Interpolazione lineare (di Lagrange)
f ( x)  r ( x)  f (a ) 
f (b ) f ( a )
ba
f ( x)  r ( x)   ( x  a)( x  b)
valore vero = valore approssimato + errore
( x  a)
2.7.2.b. Interpolazione lineare (di Lagrange)
f ( x)  r ( x)  f (a) 
f (b ) f ( a )
ba
( x  a)
f ( x)  r ( x )   ( x  a )( x  b)
 (t )  f (t )  {r (t )   (t  a)(t  b)}
 (a)  f (a )  {r (a)   (a  a)( a  b)}  0
 (b)  f (b)  {r (b)   (b  a )(b  b)}  0
 ( x)  f ( x)  {r ( x)   ( x  a)( x  b)}  0
0   '(c1 )   '(c2 )
0   "(c)  f "(c)  2
f ( x)  r ( x)  12 f "(c)( x  a )( x  b)
2.7.3. Funzioni crescenti e decrescenti
• f (x) è crescente in un intervallo I se
comunque presi due valori u < v nell’intervallo
si ha f (u)  f (v).
• f (x) è decrescente in un intervallo I se
comunque presi due valori u < v nell’intervallo
si ha f (u)  f (v).
• f (x) è costante in un intervallo I se
comunque presi due valori u < v nell’intervallo
si ha f (u) = f (v).
Applicazione dell’interpolazione costante
f ( x)  f (a )  f '(c)( x  a )
f (v)  f (u )  f '( )(v  u )
uv
quantità
f (v)  f (u )  f '( )( unapositiva
)
• f '(x)  0 in ogni x di un intervallo I
 f (x) è crescente nell’intervallo I
• f '(x)  0 in ogni x di un intervallo I
 f (x) è decrescente nell’intervallo I
• f '(x) = 0 in ogni x di un intervallo I
 f (x) è costante nell’intervallo I
2.7.4. Funzioni convesse e concave
• f (x) è convessa in un intervallo I se
comunque presi due valori u < v nell’intervallo I
si ha f (x)  r (x) per tutti gli x del sottointervallo [u, v]
• f (x) è concava in un intervallo I se
comunque presi due valori u < v nell’intervallo I
si ha f (x)  r (x) per tutti gli x del sottointervallo [u, v]
• f (x) è lineare in un intervallo I se
comunque presi due valori u < v nell’intervallo I
si ha f (x) = r (x) per tutti gli x del sottointervallo [u, v]
Qui la r(x) è la retta che passa per (u, f(u)) e (v, f(v)),
cioè la funzione lineare che in x = u ed x = v assume gli
stessi valori di f.
Applicazione dell’interpolazione lineare
f ( x)  r ( x)  12 f "(c)( x  a)( x  b)
f ( x)  r ( x)  12 f "( )( x  u )( x  v)
u xv
f ( x)  r ( x)  12 f "( )(
una quantità
negativa
)
• f "(x)  0 in ogni x di un intervallo I
 f (x) è convessa nell’intervallo I
• f "(x)  0 in ogni x di un intervallo I
 f (x) è concava nell’intervallo I
• f "(x) = 0 in ogni x di un intervallo I
 f (x) è lineare nell’intervallo I
Mnemotecnica
Dinamica di popolazioni, I
• X = X(t) popolazione al tempo t, ovviamente X(t) > 0
• Tasso di crescita costante: X '/ X = a, ossia X ' = aX
• a > 0 popolazione crescente, < 0 decrescente, = 0 costante
• X " = aX ' = a aX = a²X > 0  X = X(t) convessa
(sia che cresca, sia che decresca)
• Si ottengono informazioni su X(t) senza risolvere la equazione
(senza conoscere la formula per X(t) = ...)
• Si parla di analisi qualitativa del problema.
• Si dimostra che X(t) = X(0) exp(a t)
Dinamica di popolazioni, II
• X = X(t) popolazione al tempo t, ovviamente X(t) > 0
• Tasso di crescita decrescente linearmente: X '/ X = a – bX,
ossia X ' = aX – bX2 = X (a – bX)

• Negli intervalli di tempo in cui X < a/b la popolazione è crescente
• Negli intervalli di tempo in cui X > a/b la popolazione è decrescente
• X " = aX ' – 2bXX ' = X '(a – 2bX)

• Negli intervalli di tempo in cui X < (a/b)/2 la popolazione è crescente,
e la crescita è convessa.
• Negli intervalli di tempo in cui (a/b)/2 < X < a/b la popolazione cresce,
ma la crescita è concava.
• Negli intervalli di tempo in cui X > a/b la popolazione decresce, in
modo convesso. - fare il grafico! -
• Metodo di Eulero in avanti, o forward (standard)
(derivata = quoziente di Newton destro): per il futuro
x '(t )  f ( x(t )),
x(t1 )  x1
x(t  t )  x(t )  t  f ( x(t ))
tn  t1  (n  1)  t ,
x(tn )  xn ,
(n  1, 2, 3,...)
 xn  xn 1  t  f ( xn 1 ), (n  2, 3,...)

x1  x(t1 ) (valore iniziale assegnato)
 essendo
• Variante: Metodo di Eulero indietro, o backward
(derivata = quoziente di Newton sinistro): per il passato
x '(t )  1.14 x(t )  0.08 [ x(t )]2
x(0)  0.123
Metodo di Eulero forward
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
a <- 1.14
b <- 0.08
f <- function(x) a*x-b*x^2
u <- function(x) (20.0550*exp(1.14*x))/(161.642+1.40737*exp(1.14*x))
h <- 0.4
t0 <- 0.
x0 <- 0.123
t <- c(1:25)*NA
x <- c(1:25)*NA
t[1] <- t0
x[1] <- x0
for (n in c(2:25)) { t[n] <- t[n-1]+h; x[n] <- x[n-1]+ h*f(x[n-1]) }
plot(t,x,type="b",col="red")
plot(u,0,10,add=TRUE,col="blue")
Metodo di Eulero forward
• Metodo Leap Frog, o della cavallina
(derivata = differenza centrale)
x '(t )  f ( x(t ))
x(t  t )  x(t  t )  2  t  f ( x(t ))
tn  t1  (n  1)  t ,
x(tn )  xn , (n  1, 2,3,...)
(n  3, 4,...)
 xn  xn  2  2  t  f ( xn 1 )

x1  x(t1 ) (valore iniziale assegnato)
essendo


e dove x2  x1  t  f ( x1 ) (secondo valore

calcolato con il metodo
di Eulero forward)
x '(t )  1.14 x(t )  0.08 [ x(t )]2
x(0)  0.123
Metodo di Eulero Leap Frog
>
>
>
>
>
>
x[1] <- x0
x[2] <- x[1] + h*f(x[1])
for (n in c(3:25)) { x[n] <- x[n-2]+ 2*h*f(x[n-1]) }
plot(t,x,col="red",type="b")
plot(u,0,10,add=TRUE,col="blue")
Metodo di Eulero Leap Frog
Attenzione!
• Per questi tipi di modelli (equazioni differenziali)
devono sempre essere usati integratori
professionali!
• No fai-da-te!
• Problemi di “stabilità”
Scarica

f (x) - Università di Trieste