Puja, baixa, …¶
Dissenya la funció
fque donat un valor numèricx, retorni \(f(x)\), on \(f\) és la següent funció definida a trossos:\[\begin{split}f(x) = \begin{cases} e^x sin^2(x) & x < 2\pi \\ ln(x) (1-cos(3x)) & x \ge 2\pi \\ \end{cases}\end{split}\]
La funció sempre ha de retornar un
float. Desa-la al fitxerpujaBaixa.py. La funció ha de passar el següent doctest:>>> from math import pi >>> round(f(2*pi-0.02), 4) 0.2099 >>> round(f(2*pi), 4) 0.0 >>> round(f(2*pi+0.02), 4) 0.0033 >>> round(f(pi/2-0.01), 4) 4.7621 >>> round(f(pi/2), 4) 4.8105 >>> round(f(pi/2+0.01), 4) 4.8583
Nota
Podeu descarregar el fitxer amb tests
pujaBaixa_1.txtDissenya la funció
gque donat un valor numèricx, retorni \(g(x)\), on \(g\) és la següent funció definida a trossos:\[\begin{split}g(x) = \begin{cases} -x² -8x - 10 & x < -4 \\ 2-x & -4 \le x \le 0 \\ \frac{1}{10}x³ -x + 2 & x > 0 \\ \end{cases}\end{split}\]
La funció sempre ha de retornar un
float. Desa-la al fitxerpujaBaixa.py. La funció ha de passar el següent doctest:>>> round(g(-4-0.05), 4) 5.9975 >>> round(g(-4), 4) 6.0 >>> round(g(-4+0.05), 4) 5.95 >>> round(g(-0.05), 4) 2.05 >>> round(g(0), 4) 2.0 >>> round(g(0.05), 4) 1.95
Nota
Podeu descarregar el fitxer amb tests
pujaBaixa_2.txtDissenya la funció
analitza_funcioque donat un valor numéricx, un petit incrementdelta, i una funció unariafunc, retorni un d’aquests enters:1, si la funció
func«fa pujada» quan es consideren els 3 puntsx-delta,x, ix+delta; és a dir, quanfunc(x-delta) <func(x) \(\;\) i \(\;\)func(x) \(<\)func(x+delta)-1, si la funció
func«fa baixada» quan es consideren els puntsx-delta,x, ix+delta0, en qualsevol altre cas
Desa la funció al fitxer
pujaBaixa.py. La funció ha de passar el següent doctest:>>> from math import pi, sqrt >>> analitza_funcio(2*pi, 0.02, f) # la funció f(x) "no puja ni baixa" a x=2*pi 0 >>> analitza_funcio(pi/2, 0.01, f) # la funció f(x) "puja" a x=pi/2 1 >>> analitza_funcio(-4, 0.05, g) # la funció g(x) "no puja ni baixa" a x=-4 0 >>> analitza_funcio(0, 0.05, g) # la funció g(x) "baixa" a x=0 -1 >>> analitza_funcio(-2.5, 0.01, abs) # la funció abs(x) "baixa" a x=-2.5 -1 >>> analitza_funcio(7.3, 0.02, sqrt) # la funció sqrt(x) "puja" a x=7.3 1
Nota
Podeu descarregar el fitxer amb tests
pujaBaixa_3.txt
Solució
Disposeu de solucions al fitxers pujaBaixa.py