2016-05-13 7 views
0

Ich suche nach trigonometrischen Funktionen im Pseudocode. Ich bin nicht gut in Mathematik, also kann ich mit den Formeln in der Wikipedia nicht viel anfangen. Hauptsächlich suche ich nach Sinus, Kosinus, Tangente und den inversen Funktionen (sin & supmin; ¹, cos & supmin; ¹, tan & supmin; ¹) von ihnen. Es gibt auch andere trigonometrische Funktionen. Aber für mich sind die oben genannten die wichtigsten.Trigonometrische Funktionen im Pseudocode

Wenn es möglich ist, würde ich glücklich sein, wenn in dem Pseudo-Code nur Variablen, for, if und Operatoren (+, -, *, /, %, sqrt()) verwendet werden, weil ich nicht über eine Bibliothek mit erweiterten Mathematikfunktionen.

Antwort

2

Trigonometriefunktionen sind Transcendental.
Sie können einen exakten Ausdruck von ihnen in Begriff der polynomischen Algebra nicht finden.

Sie können ungefähre sie obwohl.

Die übliche Vorgehensweise ist die Periodizität und die Symmetrie zu verwenden, die einen Winkel in α und äquivalenten Winkel α ′ so dass sin (α) = sin (α ′), aber α ′ & # x226a zu reduzieren; α.
Einfach gesagt, reduzieren Sie jeden Winkel in und Winkel im ersten Quadranten oder ähnliches, das ist einfacher als es aussieht.
Sobald Sie einen kleinen Winkel haben, können Sie Taylor Series Expansion verwenden, um die Funktion bis zu einer festen Fehlergröße zu berechnen.

Here ist eine Lernprogrammseite.


Ein anderer Ansatz ist die Verwendung eines lookup table.
Dies ist besonders nützlich, wenn Sie die erforderliche Präzision des Prozesses verfolgen können und sehr schnell sind.
Allerdings benötigt es mehr Speicher und kann zu einer schrittweisen Funktion führen. Here eine einführende Seite.


Ein weiterer Ansatz ist CORDIC Algorithm zu verwenden, das speziell für die Hardware geeignet ist, die Multiplikation Unterstützung (wie einige MIPS und ARM-Chips) fehlt. Aus Wikipedia:

CORDIC als andere Ansätze im Allgemeinen schneller ist, wenn ein Multiplikator Hardware nicht verfügbar ist (zB ein Mikrocontroller) [...]

Auf der anderen Seite, wenn ein Hardware-Multiplizierer ist verfügbar (z. B. in einem DSP-Mikroprozessor) sind Tabellensuchmethoden und Potenzreihen im Allgemeinen schneller als CORDIC.