Upload
graziella-zanetti
View
214
Download
1
Embed Size (px)
Citation preview
Matematica e statisticaVersione 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
0
1 0
1
0
0
( )'( )
( )'( )
( ) 0
.........
n nn
n
f xf x
f xf x
f x
x
x x
x x
2.7.1. Il metodo delle tangenti di Newton
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
f a
x f a
f x x a
valore vero = valore approssimato + errore
2.7.2.a. Interpolazione costante (di Lagrange)
( )
( )
( ) (
( ) (
( )
( )
)
( ) ( )}
( ) ( )}
( ) ( )}
)
( )
( ) 0
( ) 0
( ) (
0
)
'(
'
)
(
'( )
{
{
( )
{
)
f x f a
t
a
f x
f
f
f a x a
f a a
f a a
f f axa
t t
a a
x x
c f c
f x f a f c x a
2.7.2.b. Interpolazione lineare (di Lagrange)
( ) ( )
( )
( )
( ) ( )
)
)
( )
(
( ( )f b f ab a
r x x a x
f x f
f x
r x
b
a x a
valore vero = valore approssimato + errore
2.7.2.b. Interpolazione lineare (di Lagrange)
(
2
) ( )
1
( )
( ) ( )
( )
( )
( )
(
( )( )
{ ( ) ( )( )}
{ ( ) ( )( )}
{ ( ) ( )( )}
{
)
( ( ) ( )( )}
( )
)
( )
( ) 0
( ) 0
( ) 0
0 '( ) '( )
0 "( ) "( )
( )f b f ab a
r x x a x b
r a b
r
f x r x
t t
a
b
x
f x
f
f a a a b
r b a b b
r a
f
x
f
a
bxf
t t t
a a
b b
x x
c c
f c
x
c
a
12( )( ) "
2
( )( )( )r xf x 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’intervallosi 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) 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
( ) ( ) '( )( )
( ) ( ) '(
( ) ( ) '( )(
)( )
)
f x f a f c x a
f v f u f v
u v
f v f u f
u
una quantità positiva
2.7.4. Funzioni convesse e concave
• f (x) è convessa in un intervallo I se comunque presi due valori u < v nell’intervallo Isi 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 Isi 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 Isi 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) 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
12
1212
( ) ( ) "( )( )( )
( ) ( ) "( )( )
( ) ( ) "( )( )
( )
f x r x f c x a x b
f x r x f
u x v
f x r
x u
x
x
f
v
una quantità negativa
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
1 1
1
1 1
1 1
'( ) ( ( )), (
( ) ( )
1 1, 2,3,...
2,3,...
)
( ( ))
( ) , ( ) , ( )
( ), ( )
( )
n n n
n n n
x t f x t x t
x t t x t t
t t
x
f x t
t n x t x n
x x t f x n
x x t
(valore iniziale assegnato)essendo
• Variante: Metodo di Eulero indietro, o backward (derivata = quoziente di Newton sinistro): per il passato
> 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")>
21.14 0.08
0 0.123
'( ) ( ) [ ( )]
( )
x t x t x t
x
Metodo di Eulero forward
Metodo di Eulero forward
• Metodo Leap Frog, o della cavallina (derivata = differenza centrale)
1
2 1
1 1
2 1 1
1
'( ) ( ( ))
( ) ( ) 2 ( ( ))
( ) , ( ) , ( 1,2,3,...)
2 ( ) ( 3,4,...)
( )
( )
n n n
n n n
x t f x t
x t t x t t t f x t
t t n t x t x n
x x t f x n
x x t
x x t f x
(valore iniziale assegnato)
(secondo valore calcolato con il metodo di Eulero forward)
essendo
e dove
> 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")>
21.14 0.08
0 0.123
'( ) ( ) [ ( )]
( )
x t x t x t
x
Metodo di Eulero Leap Frog
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à”