1. Comportament

Definim la funció \(f\) com segueix per tal d’evitar les singularitats en els punts \(x = -2\) i \(x = 2\):

\[\begin{split}f(x) = \begin{cases} 0& \text{si } x \in \{-2, 2\},\\ \frac{\ln(x + 5) + \sin x}{x^2 - 4}& \text{si } x \notin \{-2, 2\}. \end{cases}\end{split}\]

Dissenya les funcions següents i desa-les al mòdul comportament (fitxer comportament.py).

comportament.f(x)

Retorna \(f(x)\) (float).

Per exemple:


>>> y = f(0)
>>> round(y, 3)
-0.402

>>> y = f(1.5)
>>> round(y, 3)
-1.64

>>> y = f(1.999)
>>> round(y, 3)
-714.049

>>> y = f(2)
>>> round(y, 3)
0.0

>>> y = f(2.001)
>>> round(y, 3)
713.555

>>> y = f(10)
>>> round(y, 3)
0.023

Trobaràs més tests al fitxer test-comportament-f.txt


comportament.pendent_secant(x1, x2)

Retorna el pendent de la recta secant a la funció \(f\) que passa pels punts \((x_1, f(x_1))\) i \((x_2, f(x_2))\).

El pendent de la recta secant es calcula segons la fórmula:

\[\frac{f(x_2) - f(x_1)}{x_2 - x_1}\]

Per exemple:


>>> round(pendent_secant(0, 1), 3)
-0.475
>>> round(pendent_secant(1, 2), 3)
0.878
>>> round(pendent_secant(1.5, 2), 3)
3.279
>>> round(pendent_secant(1.9, 2), 3)
73.79
>>> round(pendent_secant(2, 2.1), 3)
68.861
>>> round(pendent_secant(2, 2.5), 3)
2.323
>>> round(pendent_secant(2, 3), 3)
0.444

Trobaràs més tests al fitxer test-comportament-pendent_secant.txt


comportament.com_creix(x, eps, arr)

Retorna un string amb dues línies. A la primera hi ha els nombres x - eps, x i x + eps (sense arrodonir) separats per un espai en blanc. A la segona el pendent de la recta secant a la funció \(f\) que passa pels punts (x - eps, f(x - eps)) i (x, f(x)) seguida d’un espai en blanc i de el pendent de la recta secant a la funció \(f\) que passa pels punts (x, f(x)) i (x + eps, f(x + eps)). Els dos pendents s’han d’arrodonir a arr decimals.

Recorda que el salt de línia s’escriu dins d’un string com \n.

Per exemple:


>>> r = com_creix(1, 1e-3, 3)
>>> print(r) 
0.999 1 1.001
-0.82 -0.822

>>> r = com_creix(2, 1e-3, 3)
>>> print(r) 
1.999 2 2.001
714048.612 713555.067

>>> r = com_creix(-2, 1e-3, 3)
>>> print(r) 
-2.001 -2 -1.999
-47337.684 -47319.942

Trobaràs més tests al fitxer test-comportament-com_creix.txt