Skip to content

Primo laboratorio del corso universitario Agebra Lineare e Analisi numerica: focus su precisione dei calcolatori (rappesentazione dei float) e polinomi di Taylor

Notifications You must be signed in to change notification settings

dgdavide999/Aritmetica-di-macchina_stabilita-numerica_sistemi-lineari

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Aritmetica-di-macchina_stabilita-numerica_sistemi-lineari

Primo laboratorio del corso universitario Agebra Lineare e Analisi numerica:

Esercizio 1

Il primo esercizio chiede, dati 2 valori, di creare 3 variabili denominate a, b, c e di misurare i risultati delle espressioni (a+b)+c e a+(b+c).

Valori dati in input:     Valori di a, b e c:
d0 = 5;             a = (d0 + 1)( 10 i )
d1 = 0;             b = (d1 + 1)( 10 20 )
                  c = -b

Output

output image output image
Come possiamo osservare dai vari output nel caso (a+b)+c è presente un evidente errore di calcolo: dati un valore molto grande per b (che nel nostro caso è uguale a 10^20 ), un valore a rispettivamente piccolo ed essendo c l’opposto di b il calcolatore considererà (a+b) ≈ b e vedrà l'operazione successiva come un annullamento. Nei casi in cui a è sufficientemente grande in proporzione a b l’errore diventa sempre più piccolo, essendo a sempre più significativo nel valore a+b, se il valore di i aumentasse ancora vedremmo l’errore algoritmico diventare 0. Nel secondo algoritmo a+(b+c) questo non succede perché la cancellazione avviene prima della somma di a+b non incrementando pertanto il suo errore algoritmico.

Esercizio 2

In questo esercizio abbiamo utilizzato il polinomio di Taylor sulla funzione $(e^x)$

Funzione:
f (x) = $e^x$
Polinomio di Taylor:
Taylor formula

Output

Il polinomio di Taylor è così strutturato: data una funzione e un valore N che rappresenta il numero di ripetizioni della sommatoria, da un risultato approssimato di f(x) il quale diventa più preciso assegnando ad N un valore sempre più grande. Abbiamo implementato due algoritmi e per entrambi abbiamo effettuato il calcolo degli eroori assoluto e relativo:

Algoritmo 1:

Utilizza il polinomio di Taylor con i valori di N uguali a: 3,10,50,100,200 e i valori di x uguali a: 0.5, 30, -0.5, -30 e studia ogni combinazione tra essi. output image Come si può notare dagli output sopra riportati maggiore è il valore di N, maggiore è la precizione del polinomio, mentre all'aumentare della dimensione di x la precisione diminuisce. Applicando il polinomio di Taylor direttamnete alle x con valore negativo si evince un’inefficacia dell’approssimazione. Per x = -30 e grado 150 il polinomio di Taylor vale -4.82085e-06. Questo risultato è ben diverso da quello atteso cioè 9.35762e-14. questo è causato dalla cancellazione avvenuta nella sommatoria del polinomio dato che la somma dei termini positivi è in modulo uguale alla somma di quelli negativi.

Algoritmo 2:

L'altro invece utilizza la funzione:
output image
con i medesimi valori di N dell'algoritmo precedente mentre i valori di xutilizzati sono solamente quelli minori di 0. (il denominatore è il polinomio di Taylor definito precdentemente con x negativa)
output image
Come possiamo notare dall'output all'aumentare di N i valori sono più precisi fino a giungere al rislutato corretto.

Esercizio 3:

In questo esercizio dobbiamo trovare il valore di eps (precisione di macchina) con eps = 2 −d Per riuscirci, abbiamo scelto un numero arbitrariamente piccolo ( 0 ) per l’esponente e, attraverso un ciclo, abbiamo aumentato il valore di d fino a che l’espressione 1 + 2 −d desse come risultato 1. A questo punto sappiamo di aver superato il valore corretto di d e pertanto:

$eps = 2^{-(d-1)}$

Output:

output image

Componenti del gruppo:

Giovanetti Davide: S4823205
Sartori Alice: S4819455
Terrosi Marco: S4867414

Dettagli calcolatore

S.O.: linux mint 20 cinnamon
Kernel: 5.4.0-52-generic
Processore: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx × 4

About

Primo laboratorio del corso universitario Agebra Lineare e Analisi numerica: focus su precisione dei calcolatori (rappesentazione dei float) e polinomi di Taylor

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published