ALGOL

ALGOL

Wenn Sie dieBC-MathematikbibliothekSie erhalten die trigonometrischen Funktionen s()und , c()nämlich a()Sinus, Cosinus und Arkustangens. Warum diese drei Funktionen?

Ich weiß, warum es aus mathematischer Sicht diese drei sind: weil das die drei sind, die man braucht, um direkt zwischen kartesischen und polaren Koordinaten zu übersetzen. Ich bin Mathematiklehrer, und dies ist leider der einzige Ort, an dem ich Sinus/Cosinus/Arkustangens als Satz vonPrimitivetrigonometrische Funktionen, also hoffte ich, jemand könnte mir sagenWarumin einem eher historischen Kontext. Ich weiß nicht, ich brauche vor allem Munition, wenn ich mit Mathematiklehrern darüber spreche, warum es keine blasphemische Idee ist, den Schülern den Arkustangens vor dem Tangens beizubringen.

Antwort1

Keine vollständige Antwort, aber vielleicht einigermaßen nützlich.

Eher eine Liste mit Beispielen für die Verwendung trigonometrischer Funktionen in frühen Anpassungen. Außerdem ein Blick in die UNIX-Welt.


ALGOL

Interessanter Artikel zur Geschichte:

ALGOL wurde bereits in den 1950er Jahren entwickelt. Bei einem gemeinsamen Treffen europäischer und amerikanischer Informatiker im Jahr 1958 - bei dem man auchVorläufiger Bericht zur Internationalen Algorithmischen Spracheauch bekannt als „Der Züricher Bericht“. Damals ging es darum, die Notation und die Art und Weise, wie Algorithmen für Computer geschrieben werden, zu vereinheitlichen.Auszug aus dem 58er-Berichtum einige derDiskussionin jener Hinsicht:

„Bezeichner, die Funktionen bezeichnen, können, genau wie bei Variablen, nach Belieben gewählt werden. Bestimmte Bezeichner sollten jedoch den Standardfunktionen der Analyse vorbehalten bleiben.

Diese reservierte Liste sollte enthalten:

abs (E) für den Modul (Absolutwert) des Wertes des Ausdrucks E
sign (E) für das Vorzeichen des Wertes von E
ganzzahlig (E) für die größte Ganzzahl, die nicht größer als der Wert von E ist
sqrt (E) für die Quadratwurzel des Wertes von E
sin (E) für den Sinus des Wertes von E
und so weiter gemäß der üblichen mathematischen Notation.“


Aus ALGOL 58 wurde ALGOL 60, wo man vielleicht sagen kann, dass die Arbeit auch konkreter ist, was die Grundlagen betrifft (in Bezug auf trigonometrische Funktionen:

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

Bericht über die algorithmische Sprache ALGOL 60

Kurz gesagt sin, es empfiehlt sich cosund arctanals Standardfunktionen.


ALGO

Wenn man sich Installationen ansieht, die im digitalen Zeitalter mathematische Berechnungen durchführten, war eine frühe Maschine der Bendix G-15-Computer (Ende der 1950er Jahre). Er verwendet ALGO, das von ALGOL 58 beeinflusst wurde. Er verfügt über eine Bibliothek, die nicht Teil des Algo-Systems ist. Die Routinen in der Bibliothek sind wie folgt, SIN, COS, ARCTN:

ALGO-Bibliotheksroutinen

  • Handbuch für ALGOBedienungsanleitung
  • Referenzhandbuch für Programmierer(G15D - Randbemerkung: enthält einige interessante Abschnitte zur Erklärung verschiedener Aspekte, beispielsweise wie Bits, Bytes, Wörter gruppiert werden und die Verwendung derMagnettrommelals RAM)
  • Programme und UnterprogrammeEnthält beispielsweise Routinen zum Berechnen arcsineund arccosineVerwenden von arctan. (Die Routinekarten sind auf 1957 datiert, daher bin ich nicht sicher, ob es Teil einiger vorläufiger Experimente war:?)

Zur Verwendung dieser Routinen wurden Codewörter verwendet:

SIN    0101000
COS    0168000
ARCTN  0164000

Geladen beispielsweise wie folgt:

LIBRAry SIN{0101000}

Wie es heißt

„Maschinensprachenroutinen können der Bibliothek hinzugefügt werden.“, aber diese drei waren diejenigen, die in der Bibliothek enthalten waren. (Es verwendet auch Sexadezimalzahlen für Hex – aber das ist hier nicht relevant, sondern macht Spaß.)


UNIX

Version 1von UNIX inklusivebas, ein Dialekt von Basic (im Besitz von Thompson). Es enthielt die folgenden integrierten Funktionen: arg, exp, log, sin, cos, atn, rnd, exprund int.

Version 2hatte auch basund zusätzlich findet man eine Liste von Unterprogrammen, wo es unter anderem auflistet: atan, hypot, log, sin(Sinus / Cosinus). Es wurde auch mit gebündelt dc.

Es gibt auch bc, aber das war zum Kompilieren des B-Programms.

Ebenfalls erwähnenswert: ttt(Tick-Tack-Toe), bj(Black Jack), moo(das Spiel MOO).

Version 5Wenn man sich den Quellcode für usw. ansehen möchte sin/cos, atankann man beispielsweiseschau dir diesen Code an:

  • Unterprogramme:usr/source/s3/{atan.s,sin.s}
  • BASIC-Einbaufunktionen:usr/source/s1/bas4.s

Achtung!Archive in zum Beispiel 1972-Stuff (S2) hatabsolute Pfade!


Die in V7 enthaltene Mathlib wurde um tanusw. erweitert.

Enthält auch Fortran77.


vor Christus

BC erblickte 1975 das Licht der Welt und enthält, wie in der Frage erwähnt, auch diese drei grundlegenden Methoden. Entwickelt von Robert Morris und Lorinda Cherry. Aus /usr/doc/bc/bcder V6-Version (1975):

3.Es gibt eine Bibliothek von mathematischen Funktionen, die durch Eingabe auf Befehlsebene abgerufen werden können

bc –l

Dieser Befehl lädt eine Reihe von Bibliotheksfunktionen, die zum Zeitpunkt des Schreibens aus Sinus (genannt „s“), Cosinus („c“), Arkustangens („a“), natürlichem Logarithmus („l“), Exponential („e“) und Bessel-Funktionen ganzzahliger Ordnung („j(n,x)“) bestehen. Zweifellos werden mit der Zeit weitere Funktionen hinzugefügt. Die Bibliothek setzt den Maßstab auf 20. Sie können ihn bei Bedarf auf einen anderen Wert zurücksetzen. Das Design dieser mathematischen Bibliotheksroutinen wird an anderer Stelle erläutert [4].

  • [4]Robert Morris,Eine Bibliothek mit Referenzstandard-Unterprogrammen für die Mathematik,

Dieses Papierscheint jedoch ziemlich schwer zu finden zu sein.

Aus den Auflistungen geht hervor, dass die grundlegenden trigonometrischen Funktionen bereits in V1 Teil des Systems waren. bcDiese wurden in der Laderoutine verwendet.


Notizen aus dem Unix Heritage Wiki(cc)

Robert Morris

Das Leben mit Unix sagt: Habe dc geschrieben und bin mit Lorinda Cherry zusammen.

Ein Research Unix Reader sagt: Bob (Robert) Morris kam überall zum Einsatz, wo es um Mathematik ging, sei es um numerische Analyse oder Zahlentheorie. Bob erfand die unverwechselbar originellen Dienstprogramme typound dc( bcmit Lorinda Cherry)schrieb den größten Teil der Mathematik-Bibliothekund schrieb Primzahlen und Faktoren (mit Thompson). Seine Reihe von Kryptoprogrammen förderte das anhaltende Interesse des Zentrums an Kryptographie.

Lorinda Kirsche

Das Leben mit Unix sagt: Autor von Writer's Workbench (Aussprache, Stil usw.), be und dc. Schrieb eqnmit bwk.

Ein Research Unix Reader sagt: Lorinda L. Cherry hat mit Morris an dc- bcund zusammengearbeitet typo. Lorinda war schon immer von der Textverarbeitung fasziniert und initiierte eqnund erfand parts, einen ungefähren Parser, der in der berühmten Writer's Workbench®, ww6(v8), eingesetzt wurde.


Elliott 803

Es liegt natürlich nicht daran, dass man nicht Systeme hatte, die mehr Funktionen implementierten, oder vielleicht diese nicht als Kernfunktionen hatten. Aber das ist Geschichte... :P

Elliot 803 Ergänzungen

Elliot 803 Ergänzungen:

arccos, arcsin, tan- welche sindErgänzungen zu sin, cos,arctan.


FORTRAN

FORTRAN 1958


BASIC

BASIC Jahrgang 1964 hat SIN, COS,TANUnd ATN.

GRUNDLEGENDE TRIGGER

BASIC-Handbuch (1964)

Laut Kommentar von@roaima.

Die meisten auf Heimcomputern verwendeten BASIC-Dialekte (ab etwa 1975) hatten auch SIN, COS, TAN, ATN (arctan). Keine anderen Inversen. Ich gehe davon aus, dass TAN aufgenommen wurde, um die Fehlergrenze bei der sonstigen Verwendung von SIN/COS zu minimieren, da alle diese trigonometrischen Funktionen über eine ziemlich kleine Nachschlagetabelle generiert wurden.

APOLLO 11

DerQuellcode für das Kommando- und Mondmodul von APOLLO 11zeigen, dass sie zumindest eine Subroutine fürARCTAN

Man könnte argumentieren, dass sie es geschafft haben, auf dem Mond zu landen, ohne ein Unterprogramm dafür zu haben TAN;)

CORDIC

CORDIC (Volder-Algorithmus)ist eine erwähnenswerte Sache, wenn es um die Trigonometrie-Implementierung geht.


Statistiken

Eine interessante Ergänzung von@Stephen Kitt, aus Kommentaren:

Ein weiteres interessantes Papier istStatistik zur Nutzung mathematischer Unterprogramme aus einer Rechenzentrumsbibliothek, veröffentlicht im Jahr 1973, was darauf hinweist, dass an der Purdue University Anfang 1973 sin / cos / atan die am häufigsten verwendeten trigonometrischen Funktionen waren, weit vor tan / asin / acos / tanh:

sin  / cos    39,462
atan          27,248

tan            4,707
asin / acos    4,139
tanh           2,546

Tauchen

KeinTieftauchgang, aber zumindest ein bisschen mehr zum Thema. Das Papier von ALGOL trifft es vielleicht am besten.

Was BC betrifft, war esohne ein direktes Zitat zu findeneine Entscheidung von Morris/Cherry, diese spezifischen Grundfunktionen -loptional durch Laden aus der Bibliothek einzubinden.


Kurz gesagt, es ist nicht so, dass man nichtwollenbeispielsweise tan, aber die Geschichte zeigt, welche trigonometrischen Funktionen zur Implementierung als Grundlage gewählt wurden – im Lichte der Ressourcen und der Verwendung.

verwandte Informationen