% grafica 2d e 3d

x = linspace(0, 2*pi, 21);
y = cos(x);

plot(x,y)

figure
plot(x,y, '-o');
hold on
plot(x,y,'r')

title('Grafico di cos(x) vs. x')
xlabel('x')
ylabel('cos(x)')

a = axis

axis([a(1) pi a(3) a(4)])

x = linspace(0,2*pi);
s=sin(x);
c=cos(x);

plot(x,s,'-')
hold on
plot(x,c,'--')
hold off

plot(x,s,'-',x,c,'--',[1 5]*pi/4, [1 -1]/sqrt(2), '*')
legend('seno', 'coseno', 'intersezione')


% uso di SUBPLOT
% f(x) = exp(-x^2) * cos(k pi x)

x  = linspace(-2,2);
y1 = exp(-x.^2) .* cos(pi*x);
subplot(2,2,1)
plot(x,y1);
title('k=1');



% uso di SURF
figure
n=5;
m=5;
x=linspace(0,1,n)
y=linspace(0,1,m)
[X,Y] = meshgrid(x,y)

Z = X .* (1-X) .* Y .* (1-Y);
surf(X,Y,Z);
xlabel('x')
ylabel('y')
zlabel('z')

figure

contour(X,Y,Z)

help graph3d


% disegnare poligoni; colorare regioni di piano.
% esplorare plot e fill

stella

help stella

help puntistella

% disegnare una stella a n punte (n = 3:11)
% e presentare i grafici in un unica figura 
% usando subplot




% errori assoluti e relativi

% approssimazione di Stirling per il fattoriale

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

help fattoriale


% 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
% 1  diverso da 1  + 10^(-n+1)
% 10 diverso da 10 + 10^(-n+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 
% L = -1021; U = 1024 (= 2^10) 

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

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

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



help approxexp


