Benutzer-Werkzeuge

Webseiten-Werkzeuge


analogrechner:tschebyscheffapproximation

Dies ist eine alte Version des Dokuments!


Tschebyscheff-Approximation für Analogrechner

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 sinx etc., die nur gerade oder ungerade Potenzen aufweisen und gut konvergieren.

Die übliche Näherung sin(π2x)1.5x-0.5x3 hat einen maximalen Fehler von 2%; mit den verbesserten Koeffizienten 1.55x-0.55x3 bleibt der Fehler unter 0.8%. Dies ist als x+0.55x(1-x2) mit einer Multiplikation und einer Quadrierung leicht zu erreichen. Für die Näherung cos(π2x)1.00-1.22x2+0.22x4 bleibt der Fehler unter 0.2%, jeweils mit der Abbildung von 0..±1 auf 0..±90°.

Berechnung von Potenzreihen

Die Berechnung der Potenzreihe

    f(x)=anxn+...+a3x3+a2x2+a1x+a0

durch das Hornerschema erfordert n Multiplikationen und n Additionen.

Da ein Analogrechner vollständig parallel rechnet, werden bei der Bildung von xn 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 x2 und x3 als spezielle Funktionen durch Sekantenapproximation bereitzustellen.

Die Potenzen bis x6 können mit 3 Quadrierern und 2 Multiplizierern berechnete werden:

    x3=x2x
    x4=(x2)2
    x5=x4x
    x6=(x3)2

Zwar sind bei direkter Bildung von x6 auch 5 Multiplizierer notwendig, aber in dem obigen Schema sind höchstens 3 Elemente in Reihe, so dass Fehler weniger stark akkumulieren.

Tschebyscheff-Approximation

Theorie

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:

    T0(x)=1
    T1(x)=x
    T2(x)=2x2-1
    T3(x)=4x3-3x
    T4(x)=8x4-8x2+1
    T5(x)=16x5-20x3+5x
    T6(x)=32x6-48x4+18x2-1

Als Rekursionsformel:

    Tn+1(x)=2xTn(x)-Tn-1(x)

Ersichtlich ist Tn(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:

    x=T1(x)
    x2=12[T2(x)+1]
    x3=14[T3(x)+3T1(x)]
    x4=18[T4(x)+4T2(x)+3]
    x5=116[T5(x)+5T3(x)+10T1(x)]
    x6=132[T6(x)+6T4(x)+15T2(x)+10]
    x7=164[T7(x)+7T5(x)+21T3(x)+35T1(x)]

Allgemein:

    xn=12n-1[Tn+(n1)Tn-2+(n2)Tn-4+...]

wobei für das letzte Glied gilt:

    x={12(nν)T0(x)ifn=2ν(nν)T1(x)ifn=2ν+1

Beispiel sin(x)

Beispielsweise gilt:

    sinx=x-16x3+1120x5-15040ε7 für 0εx

Weglassen des letzten Gliedes ergibt einen maximalen Fehler von 0.2%permil; (für x ≤ 1); damit wird (mit der abgekürzten Schreibweise Tι für Tι(x):

    sinx=x-16x3+1120x5
    sinx=T1-124T3-324T1+116120T5+516120T3+1016120T1
    sinx=(1-324+11612)T1-(124-11624)T3+11920T5

Da T5 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:

    sinx0.8802T1-0.0391T3

Rücktransformation ergibt:

    sinx0.8802x-0.0391(4x3-3x)=0.9974x-0.1564x31.00x-0.160x3

Probe für x=1: 0.9974-0.1564=0.8410;sin1=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 π2 abgedeckt werden, dann zunächst der Argumentbereich auf [0..1] abzubilden:

    f(x)=sin(π2x)=1.5708x-0.6460x3+0.0797x5-0.0047ε7 für 0ε1

Der maximale Fehler ist nunmehr 5‰, wenn die Reihe bis zur 5ten Potenz verwendet wird; und es wird:

    sin(π2x)=1.5708x-0.6460x3+0.0797x5
    sin(π2x)=1.5708T1-0.1615T3-0.4845T1+0.005T5+0.0249T3+0.0498T1

Weglassen von T5 könnte bis zu 0.5‰ Fehler bewirken, und es wird

    sin(π2x)1.1362T1-0.1366T3=1.1362x-0.5464x3+0.4098x
    sin(π2x)1.5460x-0.5464x31.55x-0.55x3=x+0.55x(1-x2)

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°=^1 benötigt wird.

Beispiel cos(x)

Zwar wäre cosx=1-sin2x 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:

    cosx=1-12x2+124x4-1720x6+140320x8

Abbrechen nach dem 4. Glied ist geboten, also wird:

    cosx1-12x2+124x4-1720x6
    cx1-14T2-14+1192T4+148T2+164-123040T6-13840T4-11536T2-12304
    cosx0.7652-0.2298T2+0.0049T4=0.7652-0.4596x2+0.2298+0.0392x4-0.0392x2+0.0049
    cosx0.9999-0.4988x2+0.0392x41.00-0.50x2+0.404x4

Die Abweichung ist kleiner als 0.1‰ bzw. 0.15‰ für die gerundeten Koeffizienten:

Für den Bereich bis 90°, also cos(π2x), ergibt sich:

    cos(π2x)1-1.2337x2+0.2537x4-0.0209x6
    cos(π2x)1-0.6169T2-0.6169+0.0317T4+0.1269T2+0.0951-0.0007T6-0.0039T4-0.0098T2-0.0065
    cos(π2x)0.4717-0.4998T2+0.0278T4=0.4717-0.9996x2+0.4998+0.2224x4-0.2224x2+0.0278
    cos(π2x)0.9993-1.2220x2+0.2224x41.00-1.22x2+0.22x4

Die Abweichung ist kleiner als 1‰ für die berechneten bzw. 2‰ für die gerundeten Koeffizienten:

analogrechner/tschebyscheffapproximation.1519467202.txt.gz · Zuletzt geändert: 2018-02-24 11:13 von rainer