% errori assoluti e relativi

% approssimazione di Stirling per il fattoriale

% n! ~ S(n) = sqrt(2 pi n) * (n/e)^n

help fattoriale

fattoriale

% 29 novembre 2007

% approssimazioni e precisione macchina
% in una rappresentazione floating point F(B, s, L, U)
% B: base
% s: lunghezza mantissa
% L: minimo esponente ammesso
% U: massimo esponente ammesso
%
% numeri NON equispaziati: in base 10
%
% il piu' piccolo numero diverso da 1 e' 1 + 10^(-s+1),
% diverso da 10 e' 10 + 10^(-s+2), ecc.
%
% machine precision: eps = C B^(1-s); C < 1/2 per arrotondamento
% base 2: eps_m = 2^(-s)
% standard IEEE: double precision (64 bit) s=53 (52+1)
% L = -1021; U = 1024 (= 2^10) 

eps

help eps

% max numero (0,11111...)_2 X 2^U
% in base 10 sarebbe 0,9999999...9 10^Umax
realmax

2*realmax

% esempio, con F(10,3,-9,9)
% x1 = 15.4
% x2 = 3.55
% x1 + x2 = 18.95
% fl(x1+x2) ?

% interpretazione: 1 + 2*eps_m e' il piu' piccolo numero
% in F considerato diverso da 1
% (1,1+eps_m] -> 1; (1+eps_m, 1+2eps_m) -> 1+eps

(1 + 1e-16) -1

(1 + 2e-16) -1

(1 - 1e-16) -1

1 + (1e-16 -1)

% interpretare il seguente script
x = 2
for i=1:54
    x = sqrt(x);
end
x
for i=1:54
    x = x^2;
end
x

% fine 29 novembre

% ln(1+x)/x ~ 1 per piccoli x
log(1+3e-16)/3e-16

log(1+3e-16)/((1+3e-16) -1)


help approxexp

approxexp


% f(x) o-piccolo di g(x) per x -> x0
% f(x) = o(g(x))
% esiste k(x) -> 0 t.c. |f(x)| <= k(x) |g(x)|
% ossia, f/g ->0

% O-grande 
% per funzioni e successioni

% F(x) �approssimazione di ordine alpha>0 di f(x) se 
% E_h(x) = f(x) - F(x) (errore) soddisfa
% E_h(x) = O(h^alpha) per h -> 0
%
% se E(h,x) = C*h^alpha + o(h^alpha)
%
% alpha ~ ln( E_h1(x)/E_h2(x) ) / ln(h1/h2)

% esempio: calcolo approssimato di pi greco
% analizziamo lo script

edit archimede

% eseguiamo lo script

archimede


% cenni di propagazione dell'errore
% errore in avanti e all'indietro

% calcolo numerico di derivate

% analizziamo il codice sinfindiff.m fornito dal testo

edit sinfindiff.m

sinfindiff(1)

% scrivere una funzione per testare la bont�del calcolo
% della derivata con la formula del secondo ordine

% f'(x) = ( f(x+h) - f(x-h) ) / (2*h) + o(h^2)


