Arrel

Dissenyeu la funció següent i deseu-la al mòdul arrels (fitxer arrels.py):

arrels.arrel_quadrada(n, eps)

Retorna \(x_{k+1}\), l’aproximació a \(\sqrt n\) calculada mitjançant la successió

\[ \begin{align}\begin{aligned}x_1=n, \qquad\\x_{i+1}={1\over 2} (x_i+{n\over x_{i}})\end{aligned}\end{align} \]

i de manera que \(k\) és l’índex més petit que compleix \(\left|x_{k+1}-x_k\right|<\epsilon\), és a dir, que dues aproximacions successives difereixin en menys que \(\epsilon\).

El paràmetre eps correspon a \(\epsilon\) en les fórmules anteriors.

Per exemple:


>>> a = arrel_quadrada(2, 0.01)
>>> round(a, 6)
1.414216

>>> a = arrel_quadrada(2, 0.0001)
>>> round(a, 6)
1.414214

>>> a = arrel_quadrada(25, 0.0001)
>>> round(a, 4)
5.0

Trobareu més jocs de proves al fitxer test-arrel_quadrada.txt i una solució a arrels.py.