function [sol, niter, err, flag]=MPuntoFisso(g, x0, tol, kmax) %------------------------------------------------------ % Inputs: g: funzione d'iterazione; % x0: guess iniziale; tol: tolleranza % kmax: numero massimo d'iterazioni %----------------------------------------------------- % Outputs: sol: soluzione; niter: iterazioni fatte; % . err: vettore errori relativi % flag: 1 o 0 per indicare se % la convergenza c'e' o meno %----------------------------------------------------- x1=g(x0); k=1; flag=1; err(k)=abs(x1-x0)/abs(x1); while abs(x1-x0) > tol*abs(x1) && k <= kmax x0=x1; x1=g(x0); k=k+1; err(k)=abs(x1-x0)/abs(x1); end % Se converge, x0 o x1 contengono il valore dello zero cercato. % Altrimenti, si pone flag=0 if (k > kmax) flag=0; end niter=k-1; sol=x1; return