Problemi e algoritmi. Riprendiamo a discutere sui

Problemi e algoritmi.
Riprendiamo a discutere sui problemi matematici da affrontare e risolvere con opportuni algoritmi.
Possiamo pensare che il problema in questione abbia dei dati di ingresso in termini di n numeri reali x 1,, x2,
….xn, e dei dati di uscita ( risultati) rappresentati da m numeri reali y1, …ym. Questo modo di vedere è molto
semplificato, perché, in realtà, i dati in ingesso possono essere funzioni reali di una più variabili, ( si pensi al
problema del calcolo di un integrale definito in cui in ingresso c’è una funzione continua e gli estremi di un
intervallo di integrazione). Ma, con qualche sforzo, conviene adottare il precedente punto di vista, per
mettere in relazione problemi e algoritmi. Allora, un metodo di risoluzione del problema, quando viene
descritto rigorosamente in singoli passi operativi, diventa un algoritmo di risoluzione del problema.
L’algoritmo ha gli stessi dati in ingresso del problema ma, in uscita a causa degli errori di troncamento,
∗
produce in luogo di y1, …ym. i numeri reali y1∗ ,y2∗ , … ym
. Questi risultati sono da considerasi ancora teorici
e non effettivi, in quanto stiamo supponendo che l’algoritmo adotti per eseguire le operazioni aritmetiche
un’aritmetica esatta, senza operare nessun arrotondamento né sui dati in ingresso, né sulle variabili che si
vengono a creare durante l’elaborazione. Cioè si fa l’ipotesi, puramente astratta, che l’algoritmo si possa
implementare in un ambiente di programmazione che adotti un’aritmetica infinita ( esatta). Comunque le
differenze yi∗ − yi , i = 1…m, sono gli errori di troncamento che non sono noti, perché non sono noti né gli yi,
né gli yi∗ . Da uno studio dell’algoritmo si possono trovare le maggiorazioni Ai, | yi∗ - yi | ≤ Ai, i = 1, …m.
Oppure si possono trovare le maggiorazioni degli errori relativi di troncamento
y ∗i −y i
yi
, i = 1 … m.. Quando
si adotta un ‘aritmetica finita, allora i dati di ingresso diventano, fl(xi), i = 1,…n, perché devono essere
forzati ad appartenere all’insieme F dei numeri floating dell’aritmetica. Poi, se durante l’elaborazione,
nessuna variabile cade in un under flow o in un over flow, i risultati effettivi sono i numeri floating
dell’aritmetica yi , i = 1, … m. Nascono gli errori assoluti di propagazione yi −yi∗ , i = 1,…m, che non sono
∗
noti, perché non sono noti i valori y1∗ ,y2∗ , … ym
. Da un’analisi sui passi dell’algoritmo si possono trovare le
maggiorazioni degli errori assoluti Bi, | yi −yi∗ | ≤ Bi, oppure le maggiorazioni degli errori relativi di
y i −y ∗i
, i = 1 … m.
y ∗i
yi −yi∗ + yi∗ - yi,
propagazione
Gli errori globali ( assoluti) sono evidentemente yi - yi , i = 1, …m. Da notare
che yi - yi =
i =1, …m, cioè l’errore globale è la somma dell’errore di troncamento e
dell’errore di propagazione. Questi due errori possono avere segno opposto, come lo stesso segno, ma,
possedendo solo le maggiorazioni, non resya che applicare la regola il valore assoluto di una somma è non
superiore alla somma dei valori assoluti. Da cui
| yi - yi |=| yi −yi∗ + yi∗ - yi| ≤ |yi - yi | + | yi∗ - yi | ≤ Ai + Bi = Mi, i = 1, …m.
Per maggiorare l’errore globale relativo possiamo utilizzare l’eventuale informazione |y i| ≥ ci > 0. Poiché in
una frazione diminuendo il denominatore sale il valore si trae
y i −y i
,|
yi
|
≤
Mi
Ci
= mi , i =1, …m.
Indici di condizionamento
Per studiare gli errori di propagazione si usano l’analisi diretta e l’analisi inversa. L’analisi inversa si
basa sulla nozione di condizionamento o numeri di condizionamento che sono nozioni relative al problema
ma non relative all’eventuale algoritmo di risoluzione. Dato un problema con dati di ingresso xi, i =1, …n, e
dati in uscita yi, i = 1, …m, ci poniamo la seguente questione. Se perturbiamo un solo dato in ingresso,
supponiamo xi, di una quantità δxi, cosa succede dei dati in uscita ? Evidentemente ogni dato cambierà di
valore ed esisteranno δyj, j = 1, …m, tali che le nuove uscite saranno yj + δyj, j = 1, …m. Alla perturbazione
relativa del dato yi, δyi/yi corrisponderanno le perturbazione relative su tutti i dati in uscita δyj/yj, j = 1,
…m. Possono verificarsi diverse situazioni. Potrebbe capitare che a piccole perturbazioni relative sul dato xi,
corrispondano piccole perturbazioni relative su tutti i dati in uscita. Il problema è ben condizionato rispetto
al dato xi. Ma potrebbe anche succedere che il problema risenta molto della variazione relativa su xi,
producendosi grosse variazioni relative sui dati. Si tratta di un problema mal condizionato. Rimane mal
condizionato anche se le grosse perturbazioni relative avvengono su parte dei dati in uscita. Poi si potrebbe
cambiare il dato in ingresso su cui effettuare perturbazioni, avendosi risultati differenti. In generale si cerca
di perturbare tutti i dati e vedere come le uscite risentano di queste perturbazioni. Per analizzare queste
situazioni si cercano di individuare delle costanti positive cij , dette indici di condizionamento o numeri di
condizionamento tali che
δy j
yj
≤ Cij
δx i
xi
, j =1, …m.
Se queste cij non producono maggiorazioni grossolane delle perturbazioni in uscita cioè sono individuate
con una certa accuratezza, misurano la sensitività dei dati in uscita rispetto alle variazioni nell’ingresso xi.
Spesso sono anche chiamati indici di sensitività.
Misure globali.
I dati di ingresso in un problema, secondo il modello proposto, possono raccogliersi in un vettore a
n componenti così come i dati di uscita, sono compattati in un vettore a m componenti. Questo induce a
maniere semplificate, anche se non molto rigorose di trattare gli errori assoluti e relativi e le misure di
condizionamento. Un errore relativo componente per componente è arduo da studiare e, spesso, conviene
usare valutazioni globali meno difficili da trattare. Anche le misure di sensitività dei dati in uscita, con
riferimento alla perturbazione, volta per volta, di un singolo dato in ingresso, presenta le stesse difficoltà.
A tale scopo riprendiamo alcune nozioni familiari sullo spazio Rn dei vettori a n componenti e definiamo
misure di grandezza su questi che sono comunemente dette norme su vettori. Un vettore x in R n ( lettere
minuscole in grassetto), enfatizzando le componenti si scrive
oppure
x1
x
𝐱 = .2
xn
x = (xi)1≤i≤n
Il vettore nullo è denotato con 0n e se la dimensione n dello spazio è chiara dal contesto, anche semplicemente
con 0. La familiare operazione di prodotto con uno scalare c ( lettere minuscole) forma il vettore cx, definito
da
cx1
cx
c𝐱 =
.2
cxn
L’operazione somma tra due vettori x = (xi)1≤i≤n e y = (yi)1≤i≤n è il vettore x + y definito da
x1 + y1
𝐱 + 𝐲 = x2 +. y2
xn + yn
Viene automaticamente individuata una struttura di spazio lineare su Rn, potendosi eseguire combinazioni
lineari tra vettori, definire sottospazi vettoriali, ecc., che richiameremo al momento opportuno. Il vettore
(-1)x sarà denotato con – x. In questo momento, preme la
Definizione
Una funzione
|| · || : Rn ⟼ R,
è una norma se verifica le condizioni
1. || x || ≤ 0, || x || = 0, se e solo se x = 0
2. || λx || = |λ| || x ||, ∀ π±πœ– 𝐑𝐧 , ∀πœ†πœ–R
3. || x + y || ≤ || x || + || y ||, ∀ x, y, Ο΅ Rn.
•
La terza proprietà è la proprietà triangolare per le norme.
Ogni norma induce una distanza tra vettori, così definita
d(x, y ) = || x – y ||, ∀ x, y, Ο΅ Rn.
Dalle proprietà delle norme seguono le seguenti tre proprietà delle distanze
1. d(x, y) ≥ 0, ∀ x, y, Ο΅ Rn , d(x, y ) = 0 se e solo se x = y
2. d(x, y ) = d(y, x)
3. d(x, y) ≤ d(x, z) + d(z, y)
Cioè ogni norma su Rn indice una struttura di spazio metrico su Rn, che è una struttura comunque più
povera, in quanto non interviene la seconda proprietà delle norme. La terza proprietà delle distanze
prende il nome di proprietà triangolare delle distanze. Per il fatto che ogni norma induce una distanza,
possiamo dare la nozione di sfera aperta di centro x0 Ο΅ Rn, e raggio ρ ≥ 0 . Si tratta di tutti i vettori x Ο΅Rn,
aventi distanza da x0 inferiore a ρ. Se ρ = 0, si tratta dell’insieme vuoto. In simboli B(x0, ρ ) = { x Ο΅Rn | d(x, x0)
< ρ }. Poiché la distanza deriva da una norma in luogo di d(x, x0), si può scrivere || x – x0 ||. La superficie
sferica di centro x0, e raggio ρ ≥ 0, è l’insieme dei vettori x Ο΅Rn, aventi distanza da x0 uguale a ρ Se ρ = 0, si
tratta del solo vettore x0. In simboli , S(x0, ρ ) = { x Ο΅Rn | d(x, x0) = ρ }, potendosi scrivere al posto di d(x, x0),
l’espressione in termini di norma || x – x0 ||. Infine la sfera chiusa è la unione della sfera aperta e della
superficie sferica, cioè
B 𝐱𝟎 , ρ = 𝐱ϡRn d(𝐱, 𝐱0 ) ≤ ρ}
Se ρ = 0, la sfera chiusa è formata dal solo centro x0 e al, solito, si usa scrivere || x – x0 || in luogo di d(x,
x0).
Vale il fondamentale
Teorema ( dell’equivalenza tra norme).
Assegnate due norma ||· ||a e ||· ||b, in Rn, esistono le costanti positive , m e M tali che
𝐱 a
𝐱 b
m≤
≤ M, ∀ 𝐱ϡRn - {0 }
•
Le costanti positive M e M indipendenti dal vettore x, possono dipendere, dalla dimensione n dello spazio.
Un modo diverso di scrivere la disuguaglianza è
m || x ||b ≤ || x ||a ≤ M || x ||b,
potendo valere anche per il vettore nullo. Se al posto di ||· ||a si mette ||· ||b e viceversa il ruolo di M è
giocato da 1/M e il ruolo di M, da 1/m.
Le conseguenze di questo teorema sono importanti. Per esempio, un sottoinsieme Ω di Rn è limitato se
esiste una costante C positiva tale che || x || ≤ C, per ogni x appartenente a Ω. In questa definizione, per il
teorema dell’equivalenza tra le norme, si può usare qualsiasi norma. Al più la costante C sarà diversa da
norma a norma. Inoltre per tutti i concetti topologici in Rn ( insieme aperto, insieme chiuso, insieme
compatto, limite di successioni di vettori, ecc.) l’uso di una norma qualsiasi può sempre andare bene. Le
nozioni di continuità tra funzioni definite in Rn e a valori in Rm richiede una qualsiasi norma dello spazio di
partenza e una qualsiasi norma dello spazio di arrivo.
Le classiche norme.
Introduciamo, ora, tre classiche norme di cui faremo uso in seguito. La prima è la norma infinito, ||
· ||∞, è definita da
|| x ||∞ = max1≤𝑖≤𝑛 |xi |, per ogni x in Rn
La seconda è la norma uno, || · ||1, definita da
|| x ||1 = | x1 | + | x2 | + … | xn |
Per queste due norme è agevole controllare che sono soddisfatte le tre condizioni. Quindi si tratta
effettivamente di norme.
La terza norma, la norma due o norma euclidea, || · ||2 viene definita come
π‘₯
2
=
x12 + x12 + β‹― xn2
Le prime due condizioni sono facilmente verificate. Per quanto riguarda la proprietà triangolare, esiste
qualche difficoltà. Comunque sono tutte e tre soddisfatte e si tratta di una norma effettiva. Il motivo per cui
viene detta anche norma euclidea, risiede nel fatto che, per ogni coppia di vettori x e y, in R2 ( il piano) o in
R3 ( lo spazio) la distanza d(x,y) = || x – y ||, è esattamente la lunghezza del segmento che unisce il punto x
al punto y. Per il teorema di equivalenza tra norme devono essere tra loro equivalenti. Infatti risulta, per
esempio, || x ||∞ ≤ || x ||1, ma anche || x ||1 ≤ n|| x ||∞ così come || x ||∞ ≤ || x ||2 e || x ||2 ≤ √n
|| x ||2.
La sfera aperta o chiusa di centro l’origine ( vettore nullo) e raggio ρ è in R2 il cerchio di centro l’origine
senza o con la circonferenza e raggio ρ. Invece in R3 si tratta della sfera aperta o chiusa di centro l’origine e
raggio ρ. Questo con riferimento alla norma euclidea. Con le altre norme le figura sono diverse. Per
esempio nella norma infinito, in R2, la sfera di centro l’origine e raggio 1 è il quadrato di vertici ( in senso
orario) (-1,1), (1,1), (1,-1), ((-1,-1). Mentre nella norma uno si tratta del rombo di estremi (0,1), (1,0) (0,-1),
( -1 ,0).
Esempio
Si consideri il vettore a quattro componenti x1 = -3, x2 = 1, x3 = -5, x4 = 2. La norma infinito vale 5
perché la terza componente è quella, in valore assoluto, più grande. La norma uno vale 11 che è la somma
dei valori assoluti delle componenti e la norma euclidea vale 6.2449…, che è la radice quadrata di 39 che è
la somma dei quadrati delle componenti.
•
Solitamente quando non si mette un indice ad una norma, si intende che si tratta della norma euclidea.
Notiamo che queste tre norma appartengono ad una famiglia generale di norme, ognuna delle quali è
individuata da un reale p positivo ( di solito p ≥ 1). Cioè la norma p, data da
π‘₯ 𝑝 = π‘₯1 𝑝 + π‘₯2 𝑝 + … π‘₯𝑛 𝑝 1/𝑝
Se p = 1, e p = 2,si ritrovano norma uno e norma due. Poi, per p = ∞, si trova la norma infinito in quanto ||
x ||∞ è il limite, per p che tende all’infinto di || x ||p.
Errore assoluto ed errore relativo.
Possiamo, finalmente, semplificare le nozioni di errore assoluto ed errore relativo in presenza di
confronti tra vettori. Sia x un vettore di Rn e 𝐱, una sua approssimazione. Il vettore errore assoluto è e 𝐱 - x,
e consta di n componenti come x. Allora, scelta una norma, si usa spesso chiamare errore assoluto la
quantità positiva || x - 𝐱 ||, cioè la distanza tra x e e 𝐱, indotta dalla norma. La scelta della norma può
variare da contesto a contesto a seconda delle convenienze, ma, per l’equivalenza tra le norme, un errore
molto piccolo misurato in una norma, generalmente lo è in un’altra, specialmente se si fa riferimento,
come accade spesso, alle classiche tre norme prima introdotte. Se si riesce a trovare un reale positivo M,
tale che || x - 𝐱 || ≤ M, M prende il nome di maggiorazione dell’errore assoluto. Per quanto riguarda gli
errori relativi, il vettore degli errori relativi ha componenti
π‘₯ 𝑖 −π‘₯ 𝑖
,
π‘₯𝑖
i =1, …n, ma in un algoritmo che produce
l’approssimazione 𝐱, è molto difficile fare delle stime su questi errori. Quindi andare a prendere una
norma di questo vettore sarebbe una cosa molto rigorosa ma poco praticabile. Una semplificazione, fissata
una norma, consiste nel voler definire errore relativo, la grandezza
x− 𝐱
𝐱
considerando, in sostanza, il rapporto di due misure globali. Poi, un positivo m tale che |ε| ≤ m, diventa una
maggiorazione dell’errore relativo.
ε=