Sèries de Maclaurin¶
En aquest exercici treballarem amb el desenvolupament en sèrie de Maclaurin per les funcions \(\frac{1}{1-x}\) i arctan(x):
\(\frac{1}{1-x} = \sum_{n=0}^{k} x^{n} = 1 + x + x^{2} + x^{3} + \cdots\)
\(arctan(x) = \sum_{n=0}^{k}(-1)^{n} \frac{x^{2n+1}}{2n+1} = x - \frac{x^{3}}{3} + \frac{x^{5}}{5} - \frac{x^{7}}{7} + \cdots\)
Donats dos valors reals,
x, tal que \(-1 < x < 1\) iepsilon, la tolerància \(epsilon << 1\), dissenya la funció,serie1que calcula la suma dels termes del desenvolupament en sèrie de Maclaurin per la funció \(\frac{1}{1-x}\), sumant tots els termes que en valor absolut són més grans o iguals queepsilon.Dissenya també la funció,
serie2que fa el mateix per la funció \(arctan(x)\).Desa totes dues funcions al fitxer
maclaurin1.pyLes funcions han de passar el següent doctest:
>>> def f1 (x): ... return 1/(1-x) >>> round(f1(0.2), 4) 1.25 >>> round(f1(-0.8), 4) 0.5556 >>> round(f1(-0.4), 4) 0.7143 >>> round(serie1(0.2, 0.01), 4) 1.24 >>> round(serie1(-0.8, 0.01), 4) 0.5607 >>> round(serie1(-0.8, 0.0001), 4) 0.5555 >>> round(serie1(-0.4, 0.0001), 4) 0.7143 >>> round(math.atan(0.2), 4) 0.1974 >>> round(math.atan(-0.8), 4) -0.6747 >>> round(math.atan(-0.4), 4) -0.3805 >>> round(serie2(0.2, 0.01), 4) 0.2 >>> round(serie2(0.2, 0.0001), 4) 0.1973 >>> round(serie2(-0.8, 0.0001), 4) -0.6748 >>> round(serie2(-0.4, 0.0001), 4) -0.3805
Nota
Podeu descarregar el fitxer amb tests
test-maclaurin1.txtDonats dos valors real,
x, tal que \(-1 < x < 1\) iepsilon, la tolerància \(epsilon << 1\), dissenya la funció,serie1que calcula la suma dels termes del desenvolupament en sèrie de Maclaurin per la funció \(\frac{1}{1-x}\). En aquest cas, cal aturar el càlcul de la suma quan dos termes consecutius siguin iguals amb la tolerànciaepsilondonada, és a dir, quan la seva diferència en valor absolut sigui inferior aepsilon.Dissenya també la funció,
serie2que fa el mateix per la funció \(arctan(x)\).Desa totes dues funcions al fitxer
maclaurin2.pyLes funcions han de passar el següent doctest:
>>> round(serie1(0.2, 0.001), 1) 1.2 >>> round(serie1(-0.8, 0.0001), 3) 0.556 >>> round(serie2(0.2, 0.001), 1) 0.2 >>> round(serie2(-0.8, 0.0001), 3) -0.675 >>> round(serie2(0.4, 0.0001), 4) 0.3805
Nota
Podeu descarregar el fitxer amb tests
test-maclaurin2.txt
Solució
Disposeu de solucions als fitxers
maclaurin1.py i
maclaurin2.py