Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Confronto di numeri in precisione finita
Due numeri sono da considerarsi uguali quando la loro differenza è piccola rispetto alla precisione di macchina, ovvero due numeri a, b in precisione finita sono da considerarsi uguali quando |a - b| ≤ ε, dove ε è un numero, detto tolleranza, il cui valore dipende dalla precisione di macchina.
Quindi, nell'esempio del punto medio, i due numeri:
- a = 0.651
- b = 0.653
potrebbero essere considerati uguali, infatti:
|b - a| = 0.002 ≤ 0.01 (ε = 0.01)
Nota: gli stessi numeri non potrebbero essere considerati uguali se fosse ε = 0.01m.
Se il risultato di un algoritmo in precisione infinita è zero e l'algoritmo realizzato in precisione finita dà un risultato diverso da zero ma piccolo, non possiamo concludere che l'elaboratore abbia sbagliato. Se un algoritmo prevede un controllo sull'uguaglianza tra due reali, dobbiamo fare molta attenzione nel realizzarlo in un programma: a = b ⇒ |a - b| ≤ ε
< εIL VALORE ε DEVE ESSERE SCELTO TENENDO CON-TO DELLA PRECISIONE DI MACCHINA E, IN GENERALE,DA CONSIDERAZIONI INDOTTE DAL CONTESTO 22ALGORITMO PER IL CALCOLO DI εmLA CONOSCENZA DI ε E’ FONDAMENTALE PERm• VALUTARE I RISULTATI• SCEGLIERE LE TOLLERANZE⇒ SERVE UN ALGORITMO PER CALCOLARLAIDEA SU CUI PUÒ ESSERE BASATO L’ALGORITMO−7 1−mβ = 10, m = 8 TRONCAMENTO ⇒ ε = 10 = βm−6 −7 −8CALCOLIAMO fl(1 + 10 ), fl(1 + 10 ), fl(1 + 10 )−6 1 −5fl(1 + 10 ) = 0.10000000 10 ¢ 0.10000000 10 =1 1 1= 0.10000000 10 ¢ 0.00000010 10 = 0.10000010 10−7 1 −6fl(1 + 10 ) = 0.10000000 10 ¢ 0.10000000 10 =1 1 1= 0.10000000 10 ¢ 0.00000001 10 = 0.10000001 10−8 1 −7fl(1 + 10 ) = 0.10000000 10 ¢ 0.10000000 10 =1 1 1= 0.10000000 10 ¢ 0.000000001 10 = 0.100000001 10⇒ ε E’ LA PIÙ PICCOLA POTENZA DELLA BASE β =10mCHE VIENE SENTITA IN MACCHINA SE SOMMATA A 1 23ALGORITMO PER DETERMINAREε IN BASE βm−pfl(1 + β ) 6 = fl(1) −p⇒ ε = βm−p−1fl(1 + β ) = fl(1)1. Poni ε = 1m −12. Poni ε = β ∗ εm mPoni a = 1 + ε3. m4. Se a > 1 vai a 2.Altrimenti vai a 5.5. Poni ε = β ∗ εm mStampa ε6. m 24CONSIDERAZIONI SULLE QUATTROOPERAZIONI ARITMETICHESUPPONIAMO DI EFFETTUARE OPERAZIONI ESATTEPRODOTTOfl(x ) fl(x )1 2z z}| { }| {x x − x (1 + ε ) · x (1 + ε ) x x − (x + x ε )(x + x ε )1 2 1 1 2 2 1 2 1 1 1 2 2 2= =x x x x1 2 1 2x x − x x − x x ε − x x ε − x x ε ε ∼1 2 1 2 1 2 2 1 2 1 1 2 1 2 −ε − ε= =x x 2 11 2DIVISIONE ε , ε ≤ ε1 2 mx (1 + ε )x 1 11 −x 1 + ε 1 + ε − 1
− εx (1 + ε )2 1 2 12 2 = 1 − = =x 1 + ε 1 + ε1 2 2x2 ε − ε2 1= ' ε − ε2 11 + ε 2SOMMA ALGEBRICA(x + x ) − x (1 + ε ) − x (1 + ε )1 2 1 1 2 2 =x + x1 2x + x − x − x ε − x − x ε1 2 1 1 1 2 2 2= =x + x1 2−x x1 2= ε − εx + x x + x1 21 2 1 2 25ESAMINANDO GLI ERRORI RELATIVI SI PUÒ AFFER-MARE CHE LA SOMMA DI DUE NUMERI DI SEGNO OP-POSTO PUÒ CAUSARE UN’AMPLIFICAZIONE DEGLI ER-RORI NEI DUE OPERANDI QUANDO x + x ≈ 01 2IL RISULTATO È ANALOGO ANCHE QUANDO SI SOSTI-TUISCE L’OPERAZIONE ARITMETICA ESATTA CON QUEL-LA DI MACCHINA 26CANCELLAZIONE NUMERICAPERDITA DI CIFRE SIGNIFICATIVE DOVUTA A SOTTRAZIONETRA OPERANDI QUASI UGUALIES:β = 10 m = 6 ARROTONDAMENTOa = 0.147554326 ā = 0.147554b = 0.147251742 b̄ = 0.147252 −3(a − b) = 0.000302584 = 0.302584 10-3(ā ¯ b̄) = 0.000302 = 0.302000 × 10-3LA PERDITA DI CIFRE SIGNIFICATIVE HA LA SUA ORIG-INE NEGLI ERRORI SUI DATI
ESEMPIO: PERDITA DI PRECISIONE E FORMULAZIONE ALTERNA-TIVA
2x − 2bx + c = 0
p = p2
2x = b + b − c
x = b − b − c
SE |c| ¿ b
p = 2b − c
b − sgn(b)
COMPORTA LA DIFFERENZA TRA NUMERI QUASI UGUALI
FORMULA ALTERNATIVA
p = c2
x = b + sgn(b) − b − c
x = 1/2 x1
RIASSUMENDO
SI COMMETTONO ERRORI NELLA RAPPRESENTAZIONE
1) DI NUMERI REALI
2) SI COMMETTONO ERRORI NELL'ESECUZIONE DELLE OPERAZIONI ARITMETICHE
IDEA (TRANQUILLIZZANTE MA SBAGLIATA):
POICHÈ GLI ERRORI SONO PICCOLI ANCHE I RISULTATI SONO AFFETTI DA ERRORI PICCOLI
POICHE' NON POSSIAMO BASARCI SU TALE RASSICU-RANTE IDEA, E' IMPORTANTE OCCUPARSI DELLE SEGUEN-TI QUESTIONI:
PROBLEMA −→ SOLUZIONE
SE SI ALTERANO I DATI DEL PROBLEMA, COME SI AL-TERA LA SOLUZIONE? (ANALISI DEL CONDIZIONAMEN-TO DEL PROBLEMA)
PROBLEMA −→ ALGORITMO −→ SOLUZIONE
SI PROPAGANO GLI ERRORI DELLE OPERAZIONI NELL'ALGORITMO? (ANALISI DELLA STABILITÀ DELL'ALGORITMO)
CONDIZIONAMENTO DI UN SISTEMA LINEARE
PROBLEMA → SOLUZIONE
SI CONSIDERI IL SISTEMA LINEARE ½ · çx - x = 1 1000011 2
LA SOLUZIONE È x - 1.00001x = 0 1000001 2
CONSIDERIAMO IL NUOVO SISTEMA ·½ çx - x = 1 -999991 2
LA SOLUZIONE È x - 0.99999x = 0 -1000001 2
UN CAMBIAMENTO (IN VALORE ASSOLUTO) DI -50.00002 = 2 · 10 IN UN ELEMENTO DELLA MATRICE HA PROVOCATO UN CAMBIAMENTO (IN VALORE ASSOLUTO) DI 5200000 = 2 · 10 NELLE COMPONENTI DELLA SOLUZIONE
μ ¶ ORDINE DI GRANDEZZA 5
CAMBIAMENTO RISULTATI 10 10' = 10μ ¶ -510
ORDINE DI GRANDEZZA CAMBIAMENTO DATI 30
STABILITÀ DI UN ALGORITMO
PROBLEMA → ALGORITMO → SOLUZIONE
STUDIAMO LA PROPAGAZIONE GLI ERRORI DOVUTI ALLE OPERAZIONI EFFETTUATE NEL CORSO DELL'ALGORITMO
ALGORITMO SI DICE STABILE SE L'INFLUSSO DEGLI ERRORI RIMANE LIMITATO
A BL'ALGORITMO E' PIU' STABILE DELL' ALGORITMO
SE L'INFLUENZA DEGLI ERRORI E' MINORE
2 3 4x x xxESEMPIO: e = 1 + x + + + + · · ·2! 3! 4!−13SI VUOLE STIMARE e 3 42 13 1313−13 − + + · · ·METODO 1: e = 1 − 13 + 2! 3! 4!%la sottrazione e' pericolosa!!!21 13−13METODO 2: e = = 1/(1 + 13 + + · · ·)2!13en M M1 2−5 −630 2.93783393 10 2.26036459 10−5 −640 9.37448635 10 2.26032941 10−5 −650 −1.32982788 10 2.26032941 10−558 −1.32986125 10 31NORME DI VETTORI E DI MATRICIIL CONCETTO DI NORMA E' UNA GENERALIZZAZIONE
DEL CONCETTO DI LUNGHEZZA DI UN VETTORE x ∈n n×nR O DI UNA MATRICE A ∈ R nDEFINIZIONE:UNA FUNZIONE DA IR IN IRx → kxkTALE CHE1) kxk ≥ 0 E kxk = 0 ⇐⇒ x = 02) kαxk = |α| · kxk
≤ kA k · kδbkkδxk kδbk −1≤ · kA k · kAk| {z }kxk kbk| {z } | {z }↓ERRORERELATIVO K(A)SUI INDICE DI CONDIZIONAMENTORISULTATI ERRORE RELATIVO SUI DATI 35CA