//nombres avec 16 chiffres après la virgule
format("v",16)


//Renvoie le premier n tel que |u_{n-1}-u_n|<epsilon
function n=approximation(epsilon)
    u=0;
    v=exp(-u);
    n=1;
    while abs(u-v)>epsilon
        w=v;
        v=exp(-v);
        u=w;
        n=n+1;
    end
endfunction

//Représentation graphique
X=0:15
Y=feval(10^(-X),approximation)
[a,b,sigma]=reglin(X,Y)
plot(X,Y)
xtitle("Nombre d"'itérations pour obtenir une précision 10^(-x)","x")
xstring(10,10,"Pente "+string(floor(a*10^(3))/(10^3)))




function y=f(x)
    y=exp(-x)
endfunction


//Représentation de la suite des itérées, convergence vers le point fixe de f
n=0;
while n<2
    n= input("Combien d iterations dessiner ? ")
    if n<2 then
        disp("Entrer un entier >1")
    end
end

X=zeros(1,2*n+1);
Y=zeros(1,2*n+1);

X(1)=1;
Y(1)=0;
for i=2:2:2*n
    X(i)=X(i-1);
    Y(i)=f(X(i));
    X(i+1)=Y(i);
    Y(i+1)=Y(i);
end

T=0:0.01:1
Z=f(T)

M=zeros(max(2*n+1,101),3)
N=zeros(max(2*n+1,101),3)

M(2,1)=1
N(2,1)=1

for i=1:2*n+1
    M(i,2)=X(i)
    N(i,2)=Y(i)
end
for i=2*n+2:max(2*n+1,101)
    M(i,2)=X(2*n+1)
    N(i,2)=Y(2*n+1)
end

for i=1:101
    M(i,3)=T(i)
    N(i,3)=Z(i)
end


scf();
plot(M(:,1),N(:,1),'red',M(:,2),N(:,2),'blue',M(:,3),N(:,3),'green')
e=gce();
h=captions(e.children,['$y=x$','itérations','$y=\exp(-x)$']);
h.legend_location='in_lower_right'




