1. Evitar la singularitat¶
Definim la funció \(f\) com segueix per tal d’evitar la singularitat en el punt \(x = 1\):
\[\begin{split}f(x) = \begin{cases}
0& \text{si } x = 1,\\
\frac{e^x - x^3}{\ln x}& \text{si } x \ne 1.
\end{cases}\end{split}\]
Dissenya les funcions següents i desa-les al mòdul singular
(fitxer singular.py).
- singular.f(x)¶
Retorna \(f(x)\).
Per exemple:
>>> round(f(1e-3), 5) -0.14491 >>> round(f(0.5), 5) -2.19827 >>> round(f(0.9), 5) -16.42554 >>> round(f(1), 5) 0 >>> round(f(1.1), 5) 17.55496
Trobaràs més tests al fitxer
test-singular-f.txt
- singular.aprop(x, eps, arr)¶
Retorna un string amb dues línies. A la primera hi ha els nombres x - eps, x i x + eps separats per un tabulador. A la segona els valors f(x - eps), f(x) i f(x + eps) arrodonits a arr decimals i separats per un tabulador.
Recorda que el tabulador s’escriu dins d’un string com
\ti el salt de línia com\n.Per exemple:
>>> a = aprop(0.02, 1e-3, 2) >>> a '0.019\t0.02\t0.021\n-0.26\t-0.26\t-0.26' >>> print(a) 0.019 0.02 0.021 -0.26 -0.26 -0.26 >>> a = aprop(0.02, 1e-3, 5) >>> a '0.019\t0.02\t0.021\n-0.25715\t-0.26078\t-0.26434' >>> print(a) 0.019 0.02 0.021 -0.25715 -0.26078 -0.26434 >>> a = aprop(0.02, 1e-5, 5) >>> a '0.01999\t0.02\t0.02001\n-0.26075\t-0.26078\t-0.26082' >>> print(a) 0.01999 0.02 0.02001 -0.26075 -0.26078 -0.26082 >>> a = aprop(1, 1e-5, 3) >>> a '0.99999\t1\t1.00001\n-171827.605\t0\t171828.76' >>> print(a) 0.99999 1 1.00001 -171827.605 0 171828.76 >>> a = aprop(1, 1e-3, 3) >>> a '0.999\t1\t1.001\n-1717.702\t0\t1718.857' >>> print(a) 0.999 1 1.001 -1717.702 0 1718.857
Trobaràs més tests al fitxer
test-singular-aprop.txt