Si cargas elbiblioteca de matemáticas bcobtienes las funciones trigonométricas s()
y c()
que a()
son seno, coseno y arcotangente respectivamente. ¿Por qué estas tres funciones?
Sé por qué son esos tres desde la perspectiva matemática: es porque esos son los tres que necesitas traducir directamente entre coordenadas cartesianas y polares. Soy profesor de matemáticas y, lamentablemente, este es el único lugar donde he visto el seno/coseno/arctangente establecido como el conjunto deprimitivofunciones trigonométricas, así que esperaba que alguien pudiera decirmepor quéen un contexto más histórico. No sé, sobre todo necesito munición cuando hablo con profesores de matemáticas sobre por qué no es una idea blasfema presentar la arcotangente a los estudiantes antes que la tangente.
Respuesta1
No es una respuesta completa, pero quizás algo útil.
Más de una lista de ejemplos de uso de funciones trigonométricas en adaptaciones tempranas. También una mirada al mundo UNIX.
ALGOL
Interesante artículo sobre la historia:
ALGOL fue desarrollado en los años 50. En una reunión conjunta entre científicos informáticos europeos y americanos en 1958 - donde también se obtuvoInforme preliminar sobre el lenguaje algorítmico internacionaltambién conocido como El Informe Zurich. En aquella época el trabajo era unificar la notación y cómo se escriben algoritmos para computadoras.Como extracto del informe 58'para mostrar algunos de losdiscusiónen ese sentido:
“Los identificadores que designan funciones, al igual que en el caso de las variables, pueden elegirse según el gusto. Sin embargo, ciertos identificadores deben reservarse para las funciones estándar de análisis.
Esta lista reservada debe contener:
abs (E) para el módulo (valor absoluto) del valor de la expresión E signo (E) para el signo del valor de E entero (E) para el número entero más grande que no sea mayor que el valor de E sqrt (E) para la raíz cuadrada del valor de E sin (E) para el seno del valor de Ey así sucesivamente según la notación matemática común”.
De ALGOL 58 se obtuvo ALGOL 60 donde, quizás, se pueda decir que el trabajo también es más concreto sobre qué tener como básico (en lo que respecta a las funciones trigonométricas:
Informe sobre el lenguaje algorítmico ALGOL 60.
En definitiva recomienda que sin
, cos
y arctan
como funciones estándar.
ALGO
Si nos fijamos en las instalaciones que realizan matemáticas en la era digital, una de las primeras máquinas fue la computadora Bendix G-15 (finales de la década de 1950). Utiliza ALGO que fue influenciado por ALGOL 58. Tiene una biblioteca que no forma parte del sistema Algo. Las rutinas en la biblioteca son las siguientes, SIN
, COS
, ARCTN
:
- Manual de ALGO–Instrucciones de operación
- manual de referencia para programadores(G15D - Nota al margen: tiene algunas secciones interesantes que explican varios aspectos, por ejemplo cómo se agrupan los bits, bytes, palabras y el uso detambor magnéticocomo RAM)
- Programas y subrutinasTiene por ejemplo rutinas para calcular
arcsine
yarccosine
utilizararctan
. (Las tarjetas de rutina están fechadas en 1957, por lo que no estoy seguro si fue parte de algún experimento preliminar:?)
Para utilizar estas rutinas se cargó usando palabras clave:
SIN 0101000
COS 0168000
ARCTN 0164000
Cargado como por ejemplo:
LIBRAry SIN{0101000}
como dice
"Se pueden agregar rutinas de lenguaje de máquina a la biblioteca"., pero estos tres eran los que estaban incluidos en la biblioteca. (También usa sexadecimal para hexadecimal, pero eso no es el punto aquí, pero es divertido).
UNIX
Versión 1de UNIX incluidobas
, un dialecto de básico (propiedad de Thompson). Incluía las siguientes funciones integradas : arg
, exp
, log
, sin
, cos
, atn
, rnd
y expr
.int
Versión 2También tenía bas
y además uno encuentra una lista de subrutinas donde lista entre otras: atan
, hypot
, log
, sin
(seno/coseno). También venía incluido con dc
.
También existe bc
, pero eso fue para compilar el programa B.
También vale la pena mencionar: ttt
(tic-tack-toe), bj
(black-jack), moo
(el juego de MOO).
Versión 5. Si uno quiere ver el código fuente de sin/cos
, atan
etc., puede, por ejemplo,mira este codigo:
- Subrutinas:
usr/source/s3/{atan.s,sin.s}
- Incorporaciones BÁSICAS:
usr/source/s1/bas4.s
¡NÓTESE BIEN!Los archivos en, por ejemplo, 1972-stuff (s2) tienencaminos absolutos!
El mathlib que se encuentra en V7 se amplió para incluir tan
, etc.
También incluye Fortran77.
antes de Cristo
BC vio la luz allá por 1975 y, como se señaló en la pregunta, también incluye estos tres métodos básicos. Desarrollado por Robert Morris y Lorinda Cherry. Desde /usr/doc/bc/bc
la versión V6 (1975):
3.Hay una biblioteca de funciones matemáticas que se pueden obtener escribiendo en el nivel de comando
bc –l
Este comando cargará un conjunto de funciones de biblioteca que, al momento de escribir este artículo, consta de seno (llamado `s'), coseno (`c'), arcotangente (`a'), logaritmo natural (`l'), exponencial (`e') y funciones de Bessel de orden entero (`j(n,x)'). Sin duda, se añadirán más funciones con el tiempo. La biblioteca establece la escala en 20. Puedes restablecerla a otro valor si lo deseas. El diseño de estas rutinas de biblioteca matemática se analiza en otra parte
[4]
.
[4]
Roberto Morris,Una biblioteca de subrutinas matemáticas estándar de referencia,
ese papelSin embargo, parece bastante difícil de encontrar.
Entonces, según los listados, parece que las funciones trigonométricas básicas formaban parte del sistema desde la V1. bc
Los utilizó en la rutina de carga.
Notas de Unix Heritage Wiki(cc)
La vida con Unix dice: Escribí dc y estuve con Lorinda Cherry.
Un lector de Research Unix dice: Bob (Robert) Morris intervino en todos los aspectos relacionados con las matemáticas, ya fuera análisis numérico o teoría de números. Bob inventó las utilidades distintivamente originales typo
y dc
( bc
con Lorinda Cherry),escribió la mayor parte de la biblioteca de matemáticasy escribió números primos y factores (con Thompson). Su serie de programas de criptas fomentó el continuo interés del Centro por la criptografía.
La vida con Unix dice: Writer del Writer's Workbench (dicción, estilo, etc.), be y dc. Escribió eqn
con bwk
.
Un lector de Research Unix dice: Lorinda L. Cherry colaboró con Morris en dc
- bc
y typo
. Siempre fascinada por el procesamiento de textos, Lorinda inició eqn
e inventó partes, un analizador aproximado que se explotó en el célebre Writer's Workbench®, ww6(v8).
Elliot 803
Por supuesto, no es así que uno no tenga sistemas que implementen más funciones, o quizás no las tenga como funciones principales. Pero eso es historia... :P
arccos
, arcsin
, tan
- que sonadiciones a sin
, cos
,arctan
.
FORTRAN
77 1977:
sin
,cos
,tan
,asin
,acos
,atan
, ...II 1958:
SIN
,COS
,ATAN
,TANH
comoFunciones de cinta de biblioteca.
BÁSICO
BASIC nacido en 1964 tiene SIN
, COS
,TAN
y ATN
.
Según comentario de@roaima.
La mayoría de los dialectos de BASIC utilizados en las computadoras domésticas (alrededor de 1975 en adelante) también tenían SIN, COS, TAN, ATN (arctan). No hay otras inversas. Supongo que se incluyó TAN para minimizar el límite de error cuando se usa SIN/COS porque todas estas funciones trigonométricas se generaron a través de una tabla de búsqueda bastante pequeña.
APOLO 11
ElCódigo fuente para el módulo lunar y de comando APOLLO 11.demostrar que tenían al menos una subrutina paraARCTAN
Aproximación de
TAN(-20)
porSIN(-20)
(grado)
Se puede argumentar que lograron aterrizar en la luna sin una subrutina TAN
;)
CORDICO
CORDIC (algoritmo de Volder)es una mención digna de mención cuando se trata de implementación trigonométrica.
Estadísticas
Una interesante adición de@Stephen Kitt, de comentarios:
Otro artículo interesante esEstadísticas sobre el uso de subrutinas matemáticas de la biblioteca de un centro de cómputo, publicado en 1973, que indica que, en Purdue a principios de 1973, sen/cos/atan eran las funciones trigonométricas más utilizadas, bastante por delante de tan/asin/acos/tanh.:
sin / cos 39,462
atan 27,248
tan 4,707
asin / acos 4,139
tanh 2,546
Bucear
No unbucear profundo, pero al menos un poco más sobre el tema. El artículo de ALGOL es quizás el más acertado.
En cuanto a BC fuesin encontrar una cotización directauna decisión de Morris / Cherry de incluir estas funciones básicas específicas cargándolas desde la biblioteca mediante la -l
opción.
En resumen, no es que uno nodesearpor ejemplo tan
, pero el historial muestra qué funciones trigonométricas se eligieron implementar como base, a la luz de los recursos y el uso.