Quero calcular y(n)=32677Sin(45/1024•n)onde yé um número inteiro e nvaria de 0 a 2048. Como posso tornar esse processo mais rápido e mais preciso? Agora, quero mostrar uma resposta de referência: Desde Sin(a+b)=Sin(a)Cos(b)+Cos(a)Sin(b)
And Cos(a+b)=Cos(a)Cos(b)-Sin(a)Cos(b). Para que eu possa armazenar Sin(45/1024•1)e Cos(45/1024•1)somente. Em seguida, use esta fórmula:
Sin(45/1024•2)=Sin(45/1024•1+45/1024•1),
Cos(45/1024•2)=Cos(45/1024•1+45/1024•1),
Sin(45/1024•n)=Sin(45/1024•(n-1)+45/1024•1),
Cos(45/1024•n)=Cos(45/1024•(n-1)+45/1024•1), Desta forma, talvez mais rápido sem armazenar grande variedade.
sin(x)onde xestá em graus. Se for esse o caso, você deve estar ciente de que o argumento para as funções trigonométricas é tipicamente em radianos. O argumento está em radianos em C ++, que é como essa pergunta é marcada.