5 votos

Cómo calculadoras trigonometría

Necesito usar una calculadora para encontrar cocientes trigonometricas como $\sin(41),\cos(32)$.

¿Cómo funcionan las calculadoras para trigonometría? ¿También, como calculadoras son inventadas por la mente humana podemos hacerlo mentalmente? ¿Hay cualquier truco binario o algo como eso?

14voto

Mark McClure Puntos 14421

Aquí hay una página en la TI-Conocimiento de base de la afirmación de que las calculadoras TI, el uso de un algoritmo el algoritmo CORDIC. Este algoritmo está bien descrito en la Wikipedia y en un gran papel de la facultad de Matemáticas de Diario.

Para ser claros, mientras que la serie de Taylor (denominado en todas las respuestas anteriores son muy importantes en el análisis numérico se no la herramienta de elección para el cálculo de funciones trigonométricas en valores arbitrarios.

11voto

Andy Puntos 21

En general, para que las rutinas que se utilizan una y otra vez, como aquellas para las funciones trigonométricas, las calculadoras y las computadoras tienen una tabla de valores precalculados y las usan para generar otros valores. Los detalles de este dependen del problema. Un sistema común es utilizar el polinomio de interpolación o trozos polinomio de interpolación de los valores calculados de las funciones deseadas. El algoritmo CORDIC se utiliza a menudo para funciones trigonométricas en particular, y no otra cosa, que es bien discutido en el artículo de la Wikipedia. Tal vez esto es de interés para usted, pero siempre me parece un poco insatisfactorio cuando me estas respuestas, ya que por lo general no dicen donde el precalculadas valores de vino.

Aquí es un simple algoritmo para el cálculo de $\sin$, con poco precomputing necesario. Se basa en la aproximación de Taylor. Para hacerlo funcionar, usted necesita saber $\pi$, y también necesitamos precompute la serie de Taylor términos que se utilizarán. El último se discute a continuación.

En primer lugar vamos a utilizar algunas identidades trigonométricas básicas para reducir a una función sin1 que se limita al primer cuadrante. (Esto está escrito en Matlab sintaxis).

function y=mysin(x)
z=mod(x,2*pi);
if 3*pi/2<=z
  y=-sin1(2*pi-z);
elseif pi<=z
  y=-sin1(z-pi);
elseif pi/2<=z
  y=sin1(pi-z);
else
  y=sin1(z);
end

Ahora vamos a reducir de que para la primera mitad del primer cuadrante. Lo que podemos hacer sólo la informática coseno después de reflexionar a través de la línea de $y=x$.

function y=sin1(x)
if x>pi/4
  y=cos1(pi/2-x);
  return
end

Así que vamos a tratar con los que no necesitan reducirse coseno. Aquí Taylor teorema nos dice

$$\sin(x)=\sum_{n=0}^N \frac{(-1)^n x^{2n+1}}{(2n+1)!} + R_N$$

where $|R_N| \leq \frac{|x|^{2N+2}}{(2N+2)!}$. So we need to identify $N$ such that $\frac{|\pi/4|^{2N+2}}{(2N+2)!}<10^{-16}$ (around the usual error tolerance for IEEE double precision). Just directly checking some values reveals that it is enough to take $N=8$. So we can finish the second half of our "sin1" function like this:

n=0:8;
m=2*n+1;
y=sum((-1).^n.*x.^(m)./factorial(m));

Then you can do basically the same thing to define cos1, to finish the overall problem:

function y=cos1(x)
n=0:8;
m=2*n;
y=sum((-1).^n.*x.^(m)./factorial(m));

Note that this can be made considerably more efficient without actually changing the mathematical character of it by precomputing the coefficients and evaluating the polynomial using Horner's method.

Note that not all the reductions that I did here were strictly necessary. We do need to reduce to one period (otherwise the method would need to dynamically choose $N$ and would be very slow for large arguments). But if we do that and don't reduce to the first quadrant, we can just raise $N$ to $20$. Alternately, we could just reduce to the first quadrant itself and stop, provided we raise $N$ to $11$.

También, he probado la de arriba un poco. Se desvía un poco de Matlab de la función sin grandes argumentos; por ejemplo pecado(50000)= -0.999840189089790 y mysin(50000)= -0.999840189089824. El problema parece estar totalmente causado por error aritmético en el primer paso, ya que (en Matlab) pecado(mod(50000,2*pi))==mysin(50000). Tal vez alguien podría comentar sobre una buena manera de arreglar esto?

6voto

GDumphart Puntos 1587

"y como las calculadoras son inventado por la mente humana podemos hacerlo mentalmente?" Oh, eso es una gran falacia. Probablemente tomaría su vida entera a calcular lo que un moderno aritmética circuito se puede hacer en un segundo.

Sin embargo, hay muchas maneras de "calcular" (es decir, aproximar con precisión deseada) funciones trigonométricas. Una forma sería la aproximación lineal entre las tablas de búsqueda. Otra forma sería utilizando el polinomio de Taylor.

Te voy a mostrar la Taylor manera para que su $\sin(41^\circ) = \sin(\pi \cdot 41/180)$ donde $\pi \cdot 41/180$ es ligeramente menor que $\pi/4$, por lo que vamos a desarrollar una de primer orden en serie de Taylor de $\sin(x)$$x = \pi/4$: \begin{align*} \sin(x) &\approx \sin(\pi/4) + \left.\left( \frac{d}{dx} \sin(x) \right) \right|_{x=\pi/4} \cdot (x - \pi/4) \\ &= \sin(\pi/4) + \cos(\pi/4) \cdot (x - \pi/4) \\ &= 1/\sqrt{2} + 1/\sqrt{2} \cdot (x - \pi/4) \end{align*}

En su caso

\begin{align*}\sin(41^\circ) &= 1/\sqrt{2} + 1/\sqrt{2} \cdot \pi (41/180 - 45/180) \\ &= 1/\sqrt{2} - 1/\sqrt{2} \cdot \pi \ 4/180 \\ &= 0.6577 \end{align*}

El resultado real es de $0.6561$, por lo que ya estamos muy cerca. Una calculadora probablemente usar algo como un noveno de la orden Taylor aproximación y debe ser muy estrecha.

3voto

Aditya Agarwal Puntos 2671

En primer lugar, para aproximar funciones trigonométricas, es mejor convertir el argumento a medida del radián. En segundo lugar, USA serie de Taylor para aproximarlos. Para ex:
$$\sin x\approx x-\frac16x^3$ $ Da una respuesta con $\frac1{400}$ grado de exactitud.
Edit: Medida del radián es la medida básica a utilizar en el cálculo y otras branches.$$2\pi=360^{\circ}$$

3voto

Gyumin Roh Puntos 2221

Para los cálculos humanos rápidos...

Bueno, probablemente no es la mejor respuesta, pero usted puede aproximar $\sin 41$ y $\cos 32$ diferenciales.

Por ejemplo, tenemos %#% $ #%

En realidad se trata de $$\sin 41^\circ= \sin 45^\circ + \cos 45^\circ \cdot (\frac{41\pi}{180}-\frac{\pi}{4}) = \frac{\sqrt{2}}{2} + \frac{\sqrt{2}}{2} \cdot (-\frac{\pi}{45}) \sim 0.6577$. Mi humilde opinión no está mal.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X