Approfondimenti di Analisi Matematica
1. Richiami
2. I polinomi (e le serie) di Taylor
3. Le serie di Fourier
4. Il gradiente
5. Esercizi
Sintesi
1. Richiami
Sappiamo che una funzione può essere approssimata in un punto dato, in cui sia derivabile, dalla funzione che ha per grafico la sua tangente, che è una funzione polinomiale di 1° grado, o una funzione costante. Più in generale abbiamo ricordato, nel "riassunto" di analisi matematica, qui, come una funzione possa essere approssimata con una funzione polinomiale anche di grado maggiore. Nel primo paragrafo di questa scheda approfondiremo questo aspetto. Nei successivi, che sono da intendere come approfondimenti per alcuni tipi di scuole, saranno approfonditi alcuni argomenti più o meno collegati al precedente: metodi per approssimare funzioni con somme di seni e coseni, la derivazione di una funzione di più variabili,
2. I polinomi (e le serie) di Taylor
La figura a lato ricorda che,
per x → 0, In 0 cos ha come tangente la retta y=1. Quindi, attorno a 0, è approssimabile con la funzione che vale costantemente 1. La pendenza di questa retta l'ho trovata calcolando la derivata di cos in 0: D(cos) = −sin e −sin(0) = 0. Cerco ora la funzione polinomiale P di 2º grado x → a0 + a1x + a2x² col grafico che meglio approssimi la curva attorno all'ascissa 0. Impongo che P abbia una pendenza che vari attorno a 0 con la stessa velocità con cui varia quella di cos. Posso esprimere ciò imponendo che la derivata della sua derivata in 0 coincida con quella di cos. |
In breve occorre che P(0) = cos(0) (il polinomio P in 0 valga quanto la funzione cos),
P'(0) = cos'(0) (P in 0 abbia la stessa pendenza di cos), P''(0) = cos''(0) (P in 0 abbia grafico
incurvato come quello di cos):
P(0) = cos(0) = 1, P'(0) = cos'(0) = −sin(0) = 0, P''(0) = −sin'(0) = −cos(0) = −1.
P(0) =
[a0 + a1x + a2x²] x=0 = a0,
P'(0) = [a1 + 2·a2·x] x=0 = a1,
P"(0) = [2·a2] x=0 = 2a2.
Quindi: a0 = 1, a1 = 0, a2 = −1/2.
Ossia: P(x) = 1 − x²/2
Data una funzione F che sia più volte derivabile nel punto Q, posso trovare un polinomio che ne approssimi l'andamento nei pressi di Q anche di grado maggiore al secondo. Basta che imponga che siano uguali a quelle di F anche le sue derivate in Q di ordine maggiore al secondo (F''' è la derivata di F'', F'''' è la derivata di F''', ). Polinomi di tal genere sono chiamati polinomi di Taylor (dal nome dello studioso inglese che, intorno al 1715, ne ha approfondito lo studio, pochi anni dopo che erano stati "inventati").
Vediamo qual è il polinomio P(x) di 3º grado
a0 + a1x + a2x² + a3x³
che approssima sin(x) nei pressi di 0. Occorre che: P(0) = [a0 + a1x + a2x² + a3x³] x=0 = a0, P'(0) = [a1 + 2·a2·x + 3·a3·x²] x=0 = a1, P"(0) = [2·a2 + 3·2·a3·x] x=0 = 2a2, P'''(0) = [3·2·a3] x=0 = 6a3, e che tali valori siano eguali a: F(0) = sin(0) = 0, F'(0) = sin'(0) = cos(0) = 1, F"(0) = cos'(0) = −sin(0) = 0, F'''(0) = −sin'(0) = −cos(0) = −1. Quindi: a0 = 0, a1 = 1, a2 = 0, a3 = −1/6. Ossia: P(x) = x − x³/6. |
Qual è il polinomio P(x) di 4º grado
a0 + a1x + a2x2 + a3x3 + a4x4
che approssima cos(x) nei pressi di 0? Occorre che: P(0) = [a0 + a1x + a2x2 + a3x3 + a4x4] x=0 = a0, , P(4)(0) = [4·3·2·a4] x=0 = 24a4 (P(4) sta per P''''), e che questi valori siano eguali a: F(0) = cos(0) = 1, F'(0) = cos'(0) = −sin(0) = 0, F"(0) = −sin'(0) = −cos(0) = −1, F(3)(0) = −cos'(0) = sin(0) = 0, F(4)(0) = sin'(0) = cos(0) = 1. Quindi: a0 = 1, a1 = 0, a2 = −1/2, a3 = 0, a4 = 1/24. Ossia: P(x) = 1 − x2/2 + x4/24. |
Generalizzando si può dimostrare che
se F è una funzione ad 1 input ed 1 output derivabile nel punto a fino all'ordine N, allora per x → a F(x) è eguale a P(x)
a meno di un infinitesimo di ordine superiore a
F(a) + Σ k = 1..N F(k)(a)·(x-a)k / k!
Questo termine viene chiamato polinomio di Taylor di ordine N ma non è detto che sia un polinomio di
grado N. Potrebbe infatti essere di grado minore: basta che F(N)(a) sia nullo. Ad esempio
Volendo, si può dimostrare che se esiste in a anche la derivata N+1-esima, allora il resto, ossia
la differenza tra F(x) e P(x), è infinitesimo non solo di ordine superiore a
|
Verifica che il polinomio che approssima sin(x) attorno a 0 a meno di un infinitesimo di ordine superiore a 6 è: P(x) = 0 + 1·x + 0/2·x2 - 1/6·x3 + 0/24·x4 + 1/120·x5 + 0/720·x6 = x − x3/6 + x5/120 |
Sotto sono rappresentate le funzioni seno e coseno e alcuni dei relativi polinomi di Taylor attorno a 0.
Il file taylor contiene istruzioni che consentono di ottenere facilmente in R il polinomio di Taylor attorno a qualunque valore a di una qualunque funzione più volte derivabile.
| Utilizza tale file per ritrovare i polinomi di Taylor della funzione seno fino a quello considerato nel quesito precedente e quelli della funzione coseno rappresentati nella figura precedente. |
|
|
Prova ad ottenere, da quanto visto nell'esercizio precedente, l'approssimazione polinomiale di log(1+x) attorno a 0. Poi verifica la risposta con WolframAlpha battendo taylor polynomial of log(1+x) at x=0. |
|
|||||
Posso anche stimare l'errore: F(x) = F(a) + Σ k = 1..N F(k)(a)·(x−a)k / k! + R(x) dove R(x) = F(N+1)(c)·(x−a)N+1 / (N+1)! |
• Ecco per esempio come valutare la precisione con cui x−x³/6 approssima sin(x) nell'intervallo [−0.1, 0.1].
Per x = 0 x−x³/6 = 0. R(x) = D(5)(sin)(c) / 5! · x5 = cos(c) · x5 / 5!
|cos(x)| ≤ 1; quindi |R(x)| ≤ 1·0.15/5! = 1/12·10−6 < 10-7. Stimo ad es. sin(0.1): 0.1−0.1³/6 = 0.09983333. L'errore è minore di 10-7. Quindi assumo sin(0.1) = 0.09983333±10-7. 0.09983323 = 0.09983333-10-7 < sin(0.1) < 0.09983333+10-7 = 0.09983343; posso assumere con sicurezza l'arrotondamento sin(0.1) = 0.099833. Se potessi disporre di una calcolatrice otterrei sin(0.1) = 0.09983342.
Calcoliamo, usando il polinomio di Taylor, il limite di una funzione, ad es.
• Numeratore e denominatore tendono a 0. Approssimo il denominatore.
x5(1−cos(x)) =
x5·(x2/2 + O(x4)) =
x7/2 + O(x9)
• Approssimo il numeratore. Uso il fatto che attorno a 0 (vedi es. 4) log(1+x) =
x − x²/2 + x³/3 +
log(1+x2) = x2 − x4/2 + x6/3 + O(x8)
x·log(1+x2) = x3 − x5/2 + x7/3 + O(x9)
sin(x) = x − x3/3! + O(x5)
sin(x)3 =
(x−x3/3!+O(x5))·(x−x3/3!+O(x5))·(x−x3/3!+O(x5))
= x3 − x5/2 + 13·x7/120 + O(x9)
sin(x)3−x·log(1+x2)
= (13/120−1/3)·x7 + O(x9) = −9/40·x7 + O(x9)
• A questo punto posso concludere che per x → 0:
È stato un po' faticoso, ma ci siamo arrivati. Ovviamente si poteva fare tutto facilmente con R o con
WolframAlpha. Ad es. con R si poteva procedere numericamente o, meglio, graficamente:
f <- function(x) (sin(x)^3-x*log(1+x^2))/(x^5*(1-cos(x))); plot(f,-1,1)
e in WolframAlpha si poteva introdurre:
limit (sin(x)^3-x*log(1+x^2)) / (x^5*(1-cos(x))) as x -> 0
Chiudiamo questo paragrafo con una osservazione. Prima ricordiamo che, come abbiamo visto pił volte, si possono considerare somme infinite
di numeri. Ad esempio, dalla scuola elementare, so che la somma di 0.3, 0.03, 0.003, 0.0003,
è 0.3333
= 1/3.
In breve: 0.3 + 0.03 + 0.003 + 0.0003 +
= 1/3.
Nella scuola superiore
ho visto che, volendo, posso esprimere ciò considerando la successione s1, s2,
s3,
dove sn =
3 + 3/101 +
+ 3/10n
e dire che il limite di sn per
Non tutte le serie convergono. Ad esempio 1+2+3+
non converge in quanto le somme 1, 1+2, 1+2+3,
non hanno risultati
che si stabilizzano. Neanche 1 + 1/2 + 1/3 +
converge:
a <- function(n) 1/n # a(n) elemento n-esimo della sommatoria N <- function(n) seq(1,n,1) # N = 1 2 ... n S <- function(n) sum(a(N(n))) # somma a(1)+...a(n) S(1); S(10); S(100); S(1000) # 1 2.928968 5.187378 7.485471Si capisce, infatti, che passando da S(1) a S(10) a S(100) a S(1000) la somma via via aumenta oltre ogni limite.
La cosa può essere dimostrata:
1 + 1/2 + 1/3 +
=
1 +
(1/2 + 1/3 + ... + 1/10) +
(1/11 + ... + 1/100) +
(1/101 + ... + 1/1000) + ... >
1 + (1/10 + 1/10 + ... + 1/10) +
(1/100 + ... + 1/100) + (1/1000 + ... + 1/1000) + ... =
1 + 9·1/10 + 90·1/100 + 900·1/1000 + ... = 1 + 0.9 + 0.9 + 0.9 + ...
Se come addendi invece di numeri considero delle funzioni f1(x), f2(x), f3(x),
parlo di serie di funzioni. Per quanto ricordato sopra, è ovvio che per alcuni valori di x una serie
Se una funzione F ammette derivate di ogni ordine in un intervallo I contenente a posso considerare i polinomi di Taylor
attorno ad a di ogni grado, ovvero considerare la serie di Taylor di punto iniziale a:
F(x) = F(a) + F'(a)·(x−a) + F"(a)·(x−a)2/2
+ F(3)(a)·(x−a)3/6 + ...
= F(a) + Σ k = 1..∞ F(k)(a)·(x−a)k / k!
Senza approfondire ulteriormente l'argomento, osserviamo che gli sviluppi in serie di Taylor di exp, sin e cos attorno a 0 convergono su tutto R, mentre quello di log attorno ad 1 converge solo nell'intervallo (0, 2]. Vedi, qui sotto, i grafici di exp e log e quelli di alcuni loro polinomi di Taylor. Lasciamo ad un esercizio indicazioni per eventuali approfondimenti.
3. Le serie di Fourier
Si può dimostrare che ogni funzione F continua in un intervallo [−h, h] può essere espressa come una serie di Fourier, ossia come una serie infinita di seni e di coseni:
F(x) = A0 + Σ k = 1..∞ (Ak·cos(k·x) + Bk·sin(k·x))
I termini
Ak·cos(k·x) + Bk·sin(k·x)
sono funzioni periodiche di frequenza crescente, e sono chiamati, in ordine, prima, seconda, terza, ... armonica.
Ogni funzione periodica (anche non continua) può essere approssimata con un polinomio di Fourier. Ci limitiamo a vedere alcuni esempi
(clicca qui se vuoi vedere come generare i grafici seguenti).
Se proseguirai negli studi potrai sviluppare il tema (in un esercizio sono comunque presenti indicazioni per eventuali approfondimenti).
Jean-Baptiste-Joseph Fourier (1768-1830) fu un matematico e fisico francese. Tra l'altro, studiando la propagazione del calore, introdusse gli sviluppi in serie che portano il suo nome.
f <- 0; for(i in 0:n) f <- f+sin((2*i+1)*x)/(2*i+1); f <- f*4/pi
n = 1, 2, 3, 1000
f <- 0; for(i in 1:n) f <- f+sin((2*i)*x)/(2*i); f <- f*4/pi
n = 1, 2, 3, 1000
f <- 0; for(i in 1:n) f <- f+sin((2*i+1)*x)/(2*i+1); f <- f*4/pi
n = 1, 2, 3, 1000
f <- pi^2/3; for(i in 1:n) f <- f+4*(-1)^i/i^2*cos(i*x)
n = 1, 2, 3, 1000
Questo argomento ha molte applicazioni in fisica, per studiare i fenomeni ondulatori, ad esempio di natura ottica e sonora, ed anche in molti ambiti tecnologici (per realizzare apparecchi fotografici digitali, per restaurare film e registrazioni, per memorizzare le impronte digitali, ).
Per dare un'idea delle applicazioni ci limitiamo a riportare la seguente immagine, in cui si vede un raggio solare che entra in un prisma a sezione triangolare e ne esce separato spazialmente in colori "puri", i colori dell'arcobaleno (essa mostra come un'onda possa essere espressa come sovrapposizione di onde sinusoidali). Per approfondimenti di natura fisica vedi qui.
4. Il gradiente
Nella scheda Funzioni di più variabili abbiamo introdotto il concetto di derivata parziale. Ora accenniamo al concetto di gradiente per venire incontro alle esigenze di chi lo trova nei programmi scolastici. Si tratta, comunque, di un tema che può essere approfondito solo negli studi universitari.
Data una funzione F di due variabili, il suo gradiente, indicato con
Calcolo ad esempio il gradiente di F: (x,y) → 6 x / (2+x²+y²). È facile calcolare le due derivate parziali, ma lo faccio con WolframAlpha. Ottengo:
grad ( 6*x/(2+x^2+y^2) )
( (6*(-x^2+y^2+2))/(x^2+y^2+2)^2, -(12*x*y)/(x^2+y^2+2)^2 )
Vediamone il significato geometrico. Traccio prima il grafico della funzione, e le sue curve di livello, con R.
F <- function(x,y) 6*x/(2+x^2+y^2) x1 <- -6; x2 <- 6; y1 <- -5; y2 <- 5 x <- seq(x1,x2,len=30); y <- seq(y1,y2,len=30); z <- outer(x,y,F) persp(x,y,z, theta=-45,phi=10, expand=1, col="lightblue",ticktype="detailed",shade=0.4) dev.new(); contour(x,y,z,col=rainbow(8),nlevels=8,lwd=3)
Ecco, a sinistra, il grafico della stessa funzione con visualizzate le curve di livello.
È stato realizzato con WolframAlpha mediante il
comando
Vedo che ci sono un punto di massimo ed uno di minimo. So che questo accade dove le derivate prime si annullano.
Ciò equivale al fatto che il gradiente sia (0, 0). Vediamo dove accade:
|
Vediamo che cosa rappresenta il gradiente nei punti dove non si annulla. Nel caso delle funzioni di una variabile il valore assoluto della derivata in un punto è la pendenza del grafico in quel punto, mentre il segno della derivata rappresenta se la funzione cresce o decresce. Nel caso di una funzione F di due variabili ci interessa la direzione in cui avviene il cambiamento con massima pendenza, e il valore di questa pendenza. Il gradiente di F rappresenta il vettore (orizzontale) che indica la direzione in cui F varia più rapidamente. Il modulo del gradiente rappresenta la velocità di questa variazione, ovvero la pendenza (positiva) della superficie lungo tale direzione. Le componenti del gradiente indicano la rapidità della variazione nelle direzioni degli assi x e y. È intuitivo capire che il gradiente in P, se diverso da 0, è perpendicolare alla curva di livello passante per P. La direzione di una curva di livello passante per un punto P indica la direzione lungo cui il gradiente si annulla. |
Le componenti del gradiente (ossia le due derivate parziali) indicano l'intensità della velocità della variazione nelle direzioni degli assi. In generale, fissata una qualunque direzione, la proiezione lungo di essa del gradiente di F indica l'intensità della velocità con cui varia F in tale direzione. Se u è il versore unitario che rappresenta la direzione, questa proiezione non è altro che il prodotto scalare (dot product) ∇(F)·u (vedi la scheda sui vettori).
Come nel caso di una funzione in una variabile il fatto che la sua derivata in x sia nulla non è sufficiente per
dedurre che in x vi sia un max o un min relativo (può esservi un flesso), così in quello di una funzione di due
variabili non basta che il gradiente in P sia nullo, ossia che P sia un punto stazionario, affinché in P vi sia un estremo relativo.
Nel caso precedente per
Consideriamo la funzione F: (x,y) → sin(x)·sin(y)
F <- function(x,y) sin(x)*sin(y) x1 <- -5; x2 <- 5; y1 <- -5; y2 <- 5 x <- seq(x1,x2,len=30); y <- seq(y1,y2,len=30); z <- outer(x,y,F) persp(x,y,z,theta=-30,phi=30, expand=0.4,col="lightblue",ticktype="detailed",shade=0.4) dev.new(); contour(x,y,z,col=rainbow(8),nlevels=8,lwd=3)
Il gradiente è (cos(x)·sin(y), sin(x)·cos(y)). Si azzera in (0, 0) e in (± π/2, ± π/2), e in tutti gli altri punti che si ottengono da questi aggiungendo "periodi". Individuiamo tali punti sul grafico. Tre di essi, (0, 0), (π/2, π/2) e (− π/2, π/2), sono evidenziati sul diagramma delle curve di livello.
(π/2, π/2) (e gli altri punti al centro dei riquadri più scuri) sono dei punti di massimo, in cui F vale 1. (− π/2, π/2) (e gli altri punti al centro dei riquadri più chiari) sono dei punti di minimo, in cui F vale −1.
(0, 0) (e gli altri punti dove i riquadri si incrociano) non è di massimo né di minimo.
È un punto di sella: è di minimo lungo la "cresta dei monti" e di massimo lungo la "strada del valico".
Nei punti di sella le curve di livello si intersecano. |
5. Esercizi
|
|
|
|
|
|
|
1) Segna con l'evidenziatore, nelle parti della scheda indicate, frasi e/o formule che descrivono il significato dei seguenti termini: polinomi di Taylor di ordine N (§2), serie di funzioni (§2), serie di Fourier (§3), gradiente (§4), punto stazionario (§4), punto di sella (§4) 2) Su un foglio da "quadernone", nella prima facciata, esemplifica l'uso di ciascuno dei concetti sopra elencati mediante una frase in cui esso venga impiegato. 3) Nella seconda facciata riassumi in modo discorsivo (senza formule, come in una descrizione "al telefono") il contenuto della scheda (non fare un elenco di argomenti, ma cerca di far capire il "filo del discorso"). |