АЛГОЛ

АЛГОЛ

Если вы загрузитематематическая библиотека bcвы получаете тригонометрические функции s()и c()и a()которые являются синусом, косинусом и арктангенсом соответственно. Почему именно эти три функции?

Я знаю, почему именно эти три с математической точки зрения: потому что это те три, которые вам нужно перевести напрямую между декартовыми и полярными координатами. Я учитель математики, и, к сожалению, это единственное место, где я видел синус/косинус/арктангенс, установленный как наборпримитивныйтригонометрические функции, поэтому я надеялся, что кто-нибудь сможет мне сказатьпочемув более историческом контексте. Не знаю, мне больше всего нужны боеприпасы, когда я говорю с преподавателями математики о том, почему это не кощунственная идея - знакомить учащихся с арктангенсом перед тангенсом.

решение1

Неполный ответ, но, возможно, в какой-то степени полезный.

Еще список примеров использования тригонометрических функций в ранних адаптациях. Также взгляд на мир UNIX.


АЛГОЛ

Интересная статья по истории:

АЛГОЛ был разработан еще в 1950-х годах. На совместной встрече европейских и американских ученых-компьютерщиков в 1958 году, где также былПредварительный отчет о международном алгоритмическом языкеон же Цюрихский отчет. В те времена работа заключалась в унификации обозначений и того, как писать алгоритмы для компьютеров.Как отрывок из отчета 58'чтобы показать некоторые изобсуждениев этой связи:

«Идентификаторы, обозначающие функции, как и в случае переменных, могут быть выбраны по вкусу. Однако некоторые идентификаторы следует зарезервировать для стандартных функций анализа.

Этот зарезервированный список должен содержать:

abs (E) для модуля (абсолютной величины) значения выражения E
знак (E) для знака значения E
целое (E) для наибольшего целого числа, не превышающего значение E
sqrt(E) для квадратного корня из значения E
sin (E) для синуса значения E
и так далее в соответствии с общепринятой математической нотацией».


Из АЛГОЛа 58 появился АЛГОЛ 60, где, пожалуй, можно сказать, что работа также более конкретна в отношении того, что следует иметь в качестве основы (в отношении тригонометрических функций:

http://web.eecs.umich.edu/~bchandra/courses/papers/Naure_Algol60.pdf

Отчет по алгоритмическому языку АЛГОЛ 60

Короче говоря, рекомендуется sin, чтобы cosи arctanкак стандартные функции.


АЛГО

Если посмотреть на установки, выполняющие математические вычисления в цифровую эпоху, то одной из первых машин был компьютер Bendix G-15 (конец 1950-х). Он использует ALGO, на который повлиял ALGOL 58. Он имеет библиотеку, которая не является частью системы Algo. Процедуры в библиотеке следующие: SIN, COS, ARCTN:

Библиотечные процедуры ALGO

Для использования этих процедур была произведена загрузка с использованием кодовых слов:

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

Эллиот 803 Дополнения

Эллиот 803 Дополнения:

arccos, arcsin, tan- которыедополнения к sin, cos,arctan.


ФОРТРАН

ФОРТРАН 1958


БАЗОВЫЙ

BASIC, родившийся в 1964 году, имеет SIN, COS,TANи ATN.

ОСНОВНОЙ ТРИГГЕР

БАЗОВОЕ руководство (1964)

Согласно комментарию@роайма.

Большинство диалектов BASIC, используемых на домашних компьютерах (около 1975 года и далее), также имели SIN, COS, TAN, ATN (arctan). Никаких других обратных. Я предполагаю, что TAN был включен для минимизации погрешности при использовании SIN/COS, поскольку все эти тригонометрические функции были сгенерированы с помощью довольно небольшой таблицы поиска.

АПОЛЛОН 11

TheИсходный код для командно-лунного модуля APOLLO 11показать, что у них была по крайней мере подпрограмма дляARCTAN

Можно утверждать, что им удалось высадиться на Луну без подпрограммы 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, но история показывает, какие тригонометрические функции были выбраны для реализации в качестве базы - с учетом ресурсов и использования.

Связанный контент