Rainer Glaschick, Paderborn
2014-06-27
Die Approximation von Funktionen, die sich nicht als Lösung von Differentialgleichungen anbieten, erfolgt in der Regel durch Funktionsgeber auf der Basis einer Sekantenapproximation.
Eine Approximation durch Polynome erscheint dagegen ungünstig, weil wegen Runges Phänomen die Werte zwischen den Stützstellen heftig oszillieren können und im Analogrechner Multiplikationen als aufwendig und ungenau angesehen werden.
Somit wird in der Regel die Approximation durch Potenzreihen verworfen.
Impliziert wird dabei allerdings, dass die optimale Methode zur Berechnung eines Polynoms das Horner-Schema ist, weil die Potenzen von Variablen ohnehin durch Multiplikation gebildet werden. Im klassischen Analogrechner wird hingegen die Multiplikation durchaus über Quadratfunktionen durchgefüht, weil die Bildung von Quadraten, dritten und evtl. höheren Potenzen durch Sekantenapproximantion vergleichsweise wenig aufwendig ist.
Es wird daher untersucht, wie sich unter Verwendung der Tschebyscheff-Approximation Funktionen gut als Potenzreihe darstellen lassen.
Dies gilt insbesondere für symmetrische Funktionen wie `sin x` etc., die nur gerade oder ungerade Potenzen aufweisen und gut konvergieren.
Die übliche Näherung `sin (pi/2 x) ~~ 1.5 x - 0.5 x^3` hat einen maximalen Fehler von 2%; mit den verbesserten Koeffizienten `1.55 x - 0.55 x^3` bleibt der Fehler unter 0.8%. Dies ist als `x + 0.55x(1-x^2)` mit einer Multiplikation und einer Quadrierung leicht zu erreichen. Für die Näherung `cos (pi/2 x) ~~ 1.00 - 1.22 x^2 + 0.22 x^4` bleibt der Fehler unter 0.2%, jeweils mit der Abbildung von 0..±1 auf 0..±90°.
Die Berechnung der Potenzreihe
durch das Hornerschema erfordert n
Multiplikationen und n
Additionen.
Da ein Analogrechner vollständig parallel rechnet, werden bei der Bildung
von `x^n` zwar n
Multiplikationen benötigt, aber alle niedrigeren Potenzen
fallen gleichzeitig mit an.
Damit kann ein Addierer mit n
Eingängen die Partialsummen direkt aufsummieren,
so dass nur 1
anstelle von n
Addierern benötigt werden.
Auch wenn heute Steilheitsmultiplizierer preiswert sind, kann es sich lohnen, die Potenzen `x^2` und `x^3` als spezielle Funktionen durch Sekantenapproximation bereitzustellen.
Die Potenzen bis `x^6` können mit 3 Quadrierern und 2 Multiplizierern berechnete werden:
Zwar sind bei direkter Bildung von `x^6` auch 5 Multiplizierer notwendig, aber in dem obigen Schema sind höchstens 3 Elemente in Reihe, so dass Fehler weniger stark akkumulieren.
Bei der Tschebyscheff-Approximation wird eine Potenzreihe durch Verteilung der Fehler durch eine Potenzreihe mit einer niedrigeren Potenz angenähert. Die Funktion muss zuvor sowohl im Argument als auch in den Funktionswerten in das Intervall `[-1..+1]` skaliert werden, was im Analogrechner ohnehin der Fall sein muss.
Dies soll im folgenden nur für die ersten Potenzen explizit betrachtet werden.
Die ersten Tschebyscheff-Polynome sind:
Als Rekursionsformel:
Ersichtlich ist `T_n (1) = 1`; dies kann für die Kontrolle von Rechnungen ausgenutzt werden.
Hier wird die Eigenschaft ausgenutzt, dass die Polynome immer im Wertebereich von `[-1..+1]` verbleiben.
Nunmehr werden die Potenzen von `x` als Ausdrücke von Tschebyscheff-Polynomen dargestellt:
Allgemein:
wobei für das letzte Glied gilt:
Beispielsweise gilt:
Weglassen des letzten Gliedes ergibt einen maximalen Fehler von 0.2%permil; (für x ≤ 1); damit wird (mit der abgekürzten Schreibweise `T_iota` für `T_iota (x)`:
Da `T_5` dem Betrag nach nicht größer als eins wird, bedeutet das Weglassen dieses Terms einen weiteren Fehler von 0.5 ‰, so dass die Näherung wird:
Rücktransformation ergibt:
Probe für `x=1`: `0.9974 - 0.1564 = 0.8410; sin 1 = 0.8415`
Der maximalen Fehler ist 0.5 ‰; und 1.5‰ für die gerundeten Faktoren:
Für die Genauigkeit des Ergebnisses ist einerseits der — unkritsche — Faktor 1.00, dessen Abweichung voll wirksam ist, und der Koeffizient 0.160, dessen absoluter Fehler sich mit dem Faktor 3 auswirkt (0.1595 ist optimal).
Soll der gesamte Bereich von `0` bis `pi / 2` abgedeckt werden, dann zunächst der Argumentbereich auf `[0..1]` abzubilden:
Der maximale Fehler ist nunmehr 5‰, wenn die Reihe bis zur 5ten Potenz verwendet wird; und es wird:
Weglassen von `T_5` könnte bis zu 0.5‰ Fehler bewirken, und es wird
Die Abweichung bleibt mit den brechneten wie auch mit den gerundeten Faktoren unter 8‰:
Mit lediglich der (negativen) Kubikfunktion, zwei Koeffizientenpotentiometern und einem Addierer kann also die Sinusfunktion sehr genau abgebildet werden; insbesondere ist die Abbildung flexibel einstellbar, ob das Argument im Bogenmass oder skaliert auf `90° stackrel (^) (=) 1` benötigt wird.
Zwar wäre `cos x = sqrt ( 1 - sin^2 x` mit einer Wurzel und einem Quadrat leicht berechenbar, aber die Tschebyscheff-Approximation benötigt keine Wurzel, sondern zweimal ein Quadrat, also einen Verstärker weniger.
Taylorentwicklung:
Abbrechen nach dem 4. Glied ist geboten, also wird:
Die Abweichung ist kleiner als 0.1‰ bzw. 0.15‰ für die gerundeten Koeffizienten:
Für den Bereich bis 90°, also `cos (pi / 2 x)`, ergibt sich:
Die Abweichung ist kleiner als 1‰ für die berechneten bzw. 2‰ für die gerundeten Koeffizienten: