Aproximació del cosinus usant Taylor V27906


Statement
 

pdf   zip

Es vol aproximar el valor del cosinus d’un angle donat, emprant el desenvolupament en sèrie de Taylor de la funció cos(θ)\cos(\theta) centrat a 0 (sèrie de Maclaurin).

Escriu un programa que donat un flux de parells de nombres naturals (g,n)(g, n), per a cada parell calculi i escrigui una aproximació de cos(θ)\cos(\theta), on θ\theta és l’angle gg expressat en graus. L’aproximació s’ha d’obtenir sumant els nn primers termes de la sèrie següent:

cos(θ)k=0n1(1)kθ2k(2k)!=θ00!θ22!+θ44!θ66!+\cos(\theta) \approx \sum_{k=0}^{n-1} (-1)^k \frac{\theta^{2k}}{(2k)!} = \frac{\theta^0}{0!} - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} - \frac{\theta^6}{6!} + \ldots

Important: abans de calcular la sèrie, cal convertir l’angle a radians mitjançant la fórmula: θradians=gπ180\theta_{\text{radians}} = g \cdot \frac{\pi}{180} Defineix π\pi com una constant amb valor 3.141593.

Entrada

El programa rep un flux de dades format per diversos parells de valors:

  • Un nombre natural gg, que representa l’angle en graus.

  • Un nombre natural nn, que indica el nombre de termes de la sèrie de Taylor que s’han de sumar.

Sortida

Per a cada parell d’entrada, el programa ha d’escriure en una línia el valor aproximat de cos(g)\cos(g^\circ) amb 6 decimals de precisió.

Per mostrar nombres reals amb 6 decimals de precisió, cal incloure la biblioteca <iomanip> i utilitzar la següent instrucció:

	cout << fixed << setprecision(6) << num << endl;

El format de sortida ha de coincidir exactament amb el dels jocs de prova.

Observació

Per resoldre aquest exercici no es poden utilitzar variables de tipus string, taula ni vector.

Public test cases
  • Input

    0 1
    60 2
    60 5
    90 3
    90 8
    

    Output

    1.000000
    0.451689
    0.500000
    0.019969
    -0.000000
    
  • Input

    45 3
    45 5
    45 10
    120 1
    120 4
    180 2
    180 6
    180 9
    

    Output

    0.707429
    0.707107
    0.707107
    1.000000
    -0.508749
    -3.934803
    -1.001829
    -1.000000
    
  • Input

    30 4
    30 6
    75 5
    75 8
    210 5
    210 10
    315 6
    315 12
    

    Output

    0.866025
    0.866025
    0.258823
    0.258819
    -0.756877
    -0.866025
    -0.650679
    0.707106
    
  • Information
    Author
    Bernardino Casas
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++