//
// Sistema da studiare:
//   .
//   x =  x + t   ,   t in [0,tf]
//
// Condizione iniziale:
//
//   x(0) = 1
//
clear;
//
function du = f(t,u)
    du = u + t;
endfunction
//
Percorso = ...;  // <--------- inserire il percorso del file eulero_pv.sci
exec(Percorso + "eulero_pv.sci");
//
tf = 3;
u0 = 1;
EL_MAX = 1d-2;
//
[T,U,PASSO] = eulero_pv(u0,0,tf,f,EL_MAX,"loquace");
//
// Soluzione esatta
//
function y = xe(t)
  y = -1 - t + 2*exp(t);
endfunction
//
// errore
//
ET = xe(T) - U;
NormaET = [];
for k = 1:length(T), NormaET(k) = norm(ET(:,k)); end;
printf("\nErrore locale massimo ammesso = %4.3e\n", EL_MAX);
printf("\nErrore totale massimo = %4.3e\n", max(NormaET));
printf("\nNumero passi = %d\n", length(PASSO));
printf("\nPasso medio = %3.2e\n", mean(PASSO));
//
// grafici
//
clf();
subplot(221);
plot(T,xe(T),"r",T,U,"b");
xtitle("soluzioni");
subplot(223);
//plot(T(1:$-1),log10(PASSO),"rx");
plot(T(1:$-1),PASSO,"r");
xtitle("passo");
xgrid();
subplot(222);
plot(T,NormaET);
xtitle("errore totale");
xgrid();
//
