Aproximació del cosinus usant Taylor V27906


Statement
 

pdf   zip

thehtml

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

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

cos(θ) ≈ 
n−1
k=0
 (−1)k
θ2k
(2k)!
 = 
θ0
0!
 − 
θ2
2!
 + 
θ4
4!
 − 
θ6
6!
 + … 

Important: abans de calcular la sèrie, cal convertir l’angle a radians mitjançant la fórmula:

θradians = g · 
π
180

Defineix π com una constant amb valor 3.141593.

Entrada

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

  • Un nombre natural g, que representa l’angle en graus.
  • Un nombre natural n, 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) 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++