Aproximación al seno y al coseso
Publicado por sor (12 intervenciones) el 03/05/2017 04:11:31
Hola. Se trata de la aproximación al seno y al coseno con las series de Taylor. Mi código:
Está más o menos bien. El problema viene cuando en el cálculo se pasa con el número de decimales (OverflowError). ¿Cómo podría evitarlo cuando le dé ciertos valores al ángulo (p. ej. 90)?
Gracias. Saludos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
print('Aproximación al seno y coseno de un ángulo.')
from math import pi
def factorial(x1):
factorial=1
while x1>1:
factorial*=x1
x1-=1
return factorial
def seno(x1):
repeticiones=99.0
sumatorio=1.0
n=0.0
seno=0.0
decimales=4
while(n<repeticiones):
n+=1
numerador=float((-1)**n)*(x**(2*n+1))
denominador=float(factorial(2.0*n+1.0))
sumatorio=float(numerador/denominador)
if n%2!=0:
seno+=sumatorio
else:
seno-=sumatorio
senofinal=seno+x1
senofinal=str(round(senofinal,decimales))
return senofinal
def coseno(x1):
repeticiones=99.0
sumatorio=1.0
n=0.0
coseno=0.0
decimales=4
while(n<repeticiones):
numerador=float((-1)**n)*(x1**(2*n))
denominador=float((factorial(2*n)))
sumatorio=float(numerador/denominador)
n+=1
if n%2==0:
coseno+=sumatorio
else:
coseno-=sumatorio
cosenofinal=str(round(coseno,decimales))
return cosenofinal
x=float(input('Dame el grado del ángulo (en grados sexagesimales): '))
x1=x*pi/180
print('La aproximación al seno de',x,'es:',seno(x1)*(180/pi))
print('La aproximación al coseno de',x,'es:',coseno(x1)*(180/pi))
Está más o menos bien. El problema viene cuando en el cálculo se pasa con el número de decimales (OverflowError). ¿Cómo podría evitarlo cuando le dé ciertos valores al ángulo (p. ej. 90)?
Gracias. Saludos.
Valora esta pregunta
0