side_next(side) = sqrt(2. - sqrt(4. - side^2)); function aprox_pi(n = 10) s = 2. for i=1:(n-1) s = side_next(s) end 2^(n-1) * s end; a_pi = aprox_pi() @printf "%.1e" abs(pi - a_pi) @printf "%10s \t %10s \t %20s \t %10s\n" "i" "Sides" "Pi" "Error" @printf "===================================================================\n" for i=1:30 sides = 2^i a_pi = aprox_pi(i) err = abs(pi - a_pi) @printf "%10d \t %10d \t %20.10f \t %10.2e\n" i sides a_pi err end 2*pi/16384