Если вы загрузитематематическая библиотека bcвы получаете тригонометрические функции s()
и c()
и a()
которые являются синусом, косинусом и арктангенсом соответственно. Почему именно эти три функции?
Я знаю, почему именно эти три с математической точки зрения: потому что это те три, которые вам нужно перевести напрямую между декартовыми и полярными координатами. Я учитель математики, и, к сожалению, это единственное место, где я видел синус/косинус/арктангенс, установленный как наборпримитивныйтригонометрические функции, поэтому я надеялся, что кто-нибудь сможет мне сказатьпочемув более историческом контексте. Не знаю, мне больше всего нужны боеприпасы, когда я говорю с преподавателями математики о том, почему это не кощунственная идея - знакомить учащихся с арктангенсом перед тангенсом.
решение1
Неполный ответ, но, возможно, в какой-то степени полезный.
Еще список примеров использования тригонометрических функций в ранних адаптациях. Также взгляд на мир UNIX.
АЛГОЛ
Интересная статья по истории:
АЛГОЛ был разработан еще в 1950-х годах. На совместной встрече европейских и американских ученых-компьютерщиков в 1958 году, где также былПредварительный отчет о международном алгоритмическом языкеон же Цюрихский отчет. В те времена работа заключалась в унификации обозначений и того, как писать алгоритмы для компьютеров.Как отрывок из отчета 58'чтобы показать некоторые изобсуждениев этой связи:
«Идентификаторы, обозначающие функции, как и в случае переменных, могут быть выбраны по вкусу. Однако некоторые идентификаторы следует зарезервировать для стандартных функций анализа.
Этот зарезервированный список должен содержать:
abs (E) для модуля (абсолютной величины) значения выражения E знак (E) для знака значения E целое (E) для наибольшего целого числа, не превышающего значение E sqrt(E) для квадратного корня из значения E sin (E) для синуса значения Eи так далее в соответствии с общепринятой математической нотацией».
Из АЛГОЛа 58 появился АЛГОЛ 60, где, пожалуй, можно сказать, что работа также более конкретна в отношении того, что следует иметь в качестве основы (в отношении тригонометрических функций:
Отчет по алгоритмическому языку АЛГОЛ 60
Короче говоря, рекомендуется sin
, чтобы cos
и arctan
как стандартные функции.
АЛГО
Если посмотреть на установки, выполняющие математические вычисления в цифровую эпоху, то одной из первых машин был компьютер Bendix G-15 (конец 1950-х). Он использует ALGO, на который повлиял ALGOL 58. Он имеет библиотеку, которая не является частью системы Algo. Процедуры в библиотеке следующие: SIN
, COS
, ARCTN
:
- Руководство для ALGO–Инструкция по эксплуатации
- Справочник программиста(G15D - Примечание: содержит несколько интересных разделов, объясняющих различные аспекты, например, как группируются биты, байты, слова и использованиемагнитный барабанкак ОЗУ)
- Программы и подпрограммыНапример, есть процедуры для вычислений
arcsine
иarccosine
использованияarctan
. (Карточки процедур датированы 1957 годом, поэтому не уверен, было ли это частью какого-то предварительного эксперимента:?)
Для использования этих процедур была произведена загрузка с использованием кодовых слов:
SIN 0101000
COS 0168000
ARCTN 0164000
Загружается, например, так:
LIBRAry SIN{0101000}
Как там говорится
«В библиотеку могут быть добавлены процедуры машинного языка»., но эти три были включены в библиотеку. (Также используется шестнадцатеричная система счисления вместо шестнадцатеричной — но это не относится к делу, но забавно.)
ЮНИКС
Версия 1UNIX включенbas
, диалект базового (принадлежащего Томпсону). Он включал следующие встроенные функции: arg
, exp
, log
, sin
, cos
, atn
, rnd
, expr
и int
.
Версия 2также имел bas
и в дополнение можно найти список подпрограмм, где он перечисляет среди прочего: atan
, hypot
, log
, sin
(синус / косинус). Он также был связан с dc
.
Есть еще bc
, но он был для компиляции B-программы.
Также стоит упомянуть: ttt
(крестики-нолики), bj
(блэкджек), moo
(игра МОО).
Версия 5. Если кто-то хочет посмотреть исходный код и т. д. sin/cos
, atan
он может, например,посмотрите на этот код:
- Подпрограммы:
usr/source/s3/{atan.s,sin.s}
- Встроенные функции BASIC:
usr/source/s1/bas4.s
Внимание!Архивы, например, 1972-stuff (s2) имеютабсолютные пути!
Библиотека mathlib в V7 была расширена и теперь включает в себя tan
и т. д.
Также включает Fortran77.
До нашей эры
BC увидел свет еще в 1975 году и, как отмечено в вопросе, также включает эти три основных метода. Разработан Робертом Моррисом и Лориндой Черри. Из /usr/doc/bc/bc
выпуска V6 (1975):
3.Существует библиотека математических функций, которые можно получить, введя команду на уровне команд
bc –l
Эта команда загрузит набор библиотечных функций, который на момент написания статьи состоит из синуса (названного `s'), косинуса (`c'), арктангенса (`a'), натурального логарифма (`l'), экспоненты (`e') и функций Бесселя целого порядка (`j(n,x)'). Несомненно, со временем будут добавлены и другие функции. Библиотека устанавливает масштаб на 20. Вы можете сбросить его на что-то другое, если захотите. Конструкция этих математических библиотечных процедур обсуждается в другом месте
[4]
.
[4]
Роберт Моррис,Библиотека стандартных справочных математических подпрограмм,
Эта бумагаоднако, похоже, его довольно трудно найти.
Итак, из листингов следует, что основные тригонометрические функции были частью системы еще в версии V1. bc
Я использовал их в процедуре загрузки.
Заметки из Unix Heritage Wiki(копия)
Жизнь с Unix говорит: Написал dc и be с Лориндой Черри.
A Research Unix Reader пишет: Боб (Роберт) Моррис вмешивался везде, где была задействована математика, будь то численный анализ или теория чисел. Боб изобрел отличительно оригинальные утилиты typo
, и dc
- bc
(совместно с Лориндой Черри),написал большую часть математической библиотеки, и написал простые числа и множители (совместно с Томпсоном). Его серия криптографических программ способствовала постоянному интересу Центра к криптографии.
Life with Unix говорит: Писатель Writer's Workbench (дикция, стиль и т. д.), be и dc. Писал eqn
с bwk
.
A Research Unix Reader пишет: Лоринда Л. Черри сотрудничала с Моррисом в dc
- bc
и typo
. Всегда увлеченная обработкой текста, Лоринда инициировала eqn
и изобрела части, приблизительный синтаксический анализатор, который использовался в знаменитом Writer's Workbench®, ww6(v8).
Эллиотт 803
Конечно, не было систем, которые не реализовали больше функций, или, возможно, не имели их в качестве основных функций. Но это история... :P
arccos
, arcsin
, tan
- которыедополнения к sin
, cos
,arctan
.
ФОРТРАН
77 1977:
sin
,cos
,tan
,asin
,acos
,atan
, ...II 1958:
SIN
,COS
,ATAN
,TANH
какФункции библиотечной ленты.
БАЗОВЫЙ
BASIC, родившийся в 1964 году, имеет SIN
, COS
,TAN
и ATN
.
Согласно комментарию@роайма.
Большинство диалектов BASIC, используемых на домашних компьютерах (около 1975 года и далее), также имели SIN, COS, TAN, ATN (arctan). Никаких других обратных. Я предполагаю, что TAN был включен для минимизации погрешности при использовании SIN/COS, поскольку все эти тригонометрические функции были сгенерированы с помощью довольно небольшой таблицы поиска.
АПОЛЛОН 11
TheИсходный код для командно-лунного модуля APOLLO 11показать, что у них была по крайней мере подпрограмма дляARCTAN
Приближение
TAN(-20)
кSIN(-20)
(градус)
Можно утверждать, что им удалось высадиться на Луну без подпрограммы TAN
;)
КОРДИК
CORDIC (алгоритм Фольдера)заслуживает упоминания, когда речь заходит о реализации тригонометрии.
Статистика
Интересное дополнение от@Стивен Китт, из комментариев:
Еще одна интересная статья —Статистика использования математических подпрограмм из библиотеки вычислительного центра, опубликованный в 1973 году, который показывает, что в Пердью в начале 1973 года sin / cos / atan были наиболее часто используемыми тригонометрическими функциями, значительно опережая tan / asin / acos / tanh:
sin / cos 39,462
atan 27,248
tan 4,707
asin / acos 4,139
tanh 2,546
Нырять
Не аглубокое погружение, но по крайней мере немного больше по теме. Статья АЛГОЛа, пожалуй, самая точная.
Что касается до н.э., то это былоне найдя прямой цитатырешение Морриса/Черри включить эти конкретные базовые функции путем загрузки из библиотеки с помощью опции -l
.
Короче говоря, это не значит, что кто-то не делаетхотетьнапример tan
, но история показывает, какие тригонометрические функции были выбраны для реализации в качестве базы - с учетом ресурсов и использования.