Pregunta 3 · Recursos Informáticos UB 2020

Tema: Sèries numèriques, aproximacions i errors · Del examen Examen de Programació - Curs 2020-2021 (4 de desembre de 2020) (2020)

Enunciado

Pregunta 3 (20 punts). Aproximació per sèrie del cosinus i impressió tabulada

La funció cosinus es pot aproximar mitjançant el següent desenvolupament en sèrie:

cos⁡(x)=∑n=0∞(−1)nx2n(2n)!≈1−x22!+x44!−x66!+x88!−x1010!+…\cos(x) = \sum_{n=0}^{\infty} (-1)^n \frac{x^{2n}}{(2n)!} \approx 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \frac{x^6}{6!} + \frac{x^8}{8!} - \frac{x^{10}}{10!} + \dots

Es desitja avaluar diverses aproximacions del valor de cos⁡(45∘)\cos(45^\circ) utilitzant aquest desenvolupament.

Per a aconseguir-ho:

a.

Definiu una funció que rebi com a paràmetres el punt xx i el nombre de termes de la sèrie a considerar, i en retorni el valor acumulat.

b.

Elaboreu un programa que calculi i mostri en una taula els resultats per als 5 primers termes de la sèrie, juntament amb l'error absolut comès en comparació amb el valor exacte obtingut mitjançant la funció math.cos per a un angle de 45∘45^\circ.

Requeriments de format:

Com a encapçalament de les dades s'ha d'escriure: "nterm, cos_valor, error".

La columna del nombre de terme s'ha d'alinear a la dreta amb una amplada de 3 espais (especificador ":>3").

El valor aproximat del cosinus s'ha de mostrar ocupant 10 espais totals i amb 5 decimals (especificador ":10.5f").

L'error ha d'ocupar un total de 8 espais i mostrar 5 xifres decimals (especificador ":8.5f").

Nota: Recordeu que el mòdul math conté tant la funció factorial ( math.factorial) com les funcions trigonomètriques i la conversió a radians.

Enunciado: Pregunta 3 · Recursos Informáticos UB 2020

Solución

Según los criterios oficiales de corrección

Pregunta 3 (20 punts). Aproximació per sèrie del cosinus i impressió tabulada

Solución: ```python import math def aproximacio_cos(x, num_termes): """Calcula la suma dels primers num_termes de la sèrie de Taylor del cosinus.""" suma = 0.0 for n in range(num_termes): terme = ((-1)n) * (x(2 * n)) / math.factorial(2 * n) suma += terme return suma # Angle de 45 graus convertit a radians angle_rad = math.radians(45) # Equivalent a 45 * math.pi / 180 valor_exacte = math.cos(angle_rad) # Encapçalament print("nterm, cos_valor, error") # Tabulació per als primers 5 termes (de nterm = 1 a 5) for nterm in range(1, 6): valor_aprox = aproximacio_cos(angle_rad, nterm) error = abs(valor_exacte - valor_aprox) print(f"{nterm:>3} {valor_aprox:10.5f} {error:8.5f}") ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

Pregunta 1 · Exemples 2020 ›

Más ejercicios de Sèries numèriques, aproximacions i errors