Anzeigen des Gesamtinhalts (oder Logo links anklicken) oder des Impressums.

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
analogrechner:vektorlaenge [2017-03-17 15:53] – created raineranalogrechner:vektorlaenge [2021-10-11 07:54] – asciimath rainer
Zeile 1: Zeile 1:
 <nimla> <nimla>
- 
 Berechnung einer Vektorlänge Berechnung einer Vektorlänge
  
-\ASCIIMATHML ./ASCIIMathML.js+
  
 Zur Berechnung der Vektorlänge Zur Berechnung der Vektorlänge
Zeile 39: Zeile 38:
 Dies kann jedoch leicht zu Instabilitäten führen. Dies kann jedoch leicht zu Instabilitäten führen.
  
-Alternative Quadratsumme +Zudem werden drei multiplikative Elemente verwendet, die meist knapp sind.
---------------------+
  
-Wegen 
- `x^2+y^2 = (x+y)^2 - 2 x y 
  
-kann man die Quadratsumme auch mit einem zusätzlichen Addierer, +Inverse Methode 
-einem Quadrierer und einem Multiplizierer bilden +--------------- 
-und hat dabei größere Zwischenwerte, + 
-da manmit `x=y=0.1`, die Subtraktion `0.04 - 0.02+Verwendet wird die dritte Binomische Formel: 
-anstelle der Addition `0.01+0.01verwendet+ `v^2 - x^2 = (v+x)*(v-x) = y^2 
-Dieser Vorteil ist aber für einen weiteren Addierer + 
-nicht ausreichend groß.+und `v` durch einen einzigen offenen Verstärker bestimmt. 
 + 
 +Hierbei wird, zusätzlich zu zwei Addierern und einem offenen Vestärker, lediglich ein Quadrierer und ein Multiplizierer benötigt: 
 + 
 +[svg:analogrechner/Vektorlaenge2M.svg:,
 + 
 +Als Beispiel sei `x=y=0.1`,  
 +dann sind `y^2 = 0.01, v=0.141, v+x=0.241, v-x = 0.041, (v+x)*(v-x)=0.0099 `. 
 + 
 +Der offene Verstärker muss zwei Werte mit 1% vom Rechenbereich vergleichen (also 100mV bei 10V). 
 + 
 +Für `y=0` oder `x=0` sind keine Stabilitätsprobleme ersichtlich
 + 
 +Es werden nur zwei multiplikative Elemente verwendet; zwar wird gegenüber den folgenden Lösungen mit Division zusätzlich ein offener Verstärker benötigt; dafür entfallen die Instabilitäten bei der Division mit Null. 
  
  
Zeile 122: Zeile 132:
 gebildet wird. gebildet wird.
  
-Inverse Methode 
---------------- 
  
-Man kann auch die zweite Binomische Formel verwenden 
-und durch einen einzigen offenen Verstärker `v` bestimmen: 
- `y^2 = v^2 - x^2 = (v+x)*(v-x) 
  
-Hierbei wird ein Quadrierer und ein Multiplizierer benötigt:+Alternative Quadratsumme 
 +--------------------
  
-[svg:analogrechner/Vektorlaenge2M.svg:,]+Wegen 
 + `x^2+y^2 = (x+y)^2 - 2 x y 
 + 
 +kann man die Quadratsumme auch mit einem zusätzlichen Addierer, 
 +einem Quadrierer und einem Multiplizierer bilden 
 +und hat dabei größere Zwischenwerte, 
 +da man, mit `x=y=0.1`, die Subtraktion `0.04 - 0.02` 
 +anstelle der Addition `0.01+0.01` verwendet. 
 +Dieser Vorteil ist aber für einen weiteren Addierer 
 +nicht ausreichend groß. 
 + 
 +Polynom-Approximation 
 +-------------------- 
 + 
 +Wegen 
 + `sqrt(x^2+y^2) >= max(x,y) 
 + 
 +kann man auch durch einen linearen Ausdruck approxmieren: 
 +      `sqrt(x^2 + y^2) ~~ alpha x + beta y 
 +       
 +Hierbei ist für `x > y` der Koeffizient `alpha` ungefähr 1;  
 +dies wird als "Alpha max plus beta min" Verfahren bezeichnet (siehe [https://en.wikipedia.org/wiki/Alpha_max_plus_beta_min_algorithm für Werte von `alpha` und `beta`). 
 + 
 +Damit für `y=0` der Funktionswert nicht kleiner als `x` wird, ist `alpha = 1` vorzuziehen. 
 + 
 +Dies entspricht einer Approximation 
 +      `sqrt(1+x^2) ~~ 1 + 0.38 x if |x| <= 1 
 + 
 +wobei der Wert 0.38 durch Probieren ermittelt wurde. Mit dem Faktor `sqrt(2)-1 ~~ 0.414` wird der Fehler am Bereichsende minimiert.  
 + 
 +Besser ist freilich eine Taylorreihe (für `x<=1`) mit 
 + 
 +    `sqrt(1+x^2) ~~ 1 + 0.41*x^2 if |x| <= 1 
 +     
 +benötigt aber einen Quadrierer (anstelle von dreien).      
 +     
 +Mit einem zusätzlichen Multiplizierer ist der Fehler unter 1%:
  
-Als Beispiel sei `x=y=0.1`, dann ist `v=0.14, v+x=0.24, v-x = 0.04`.+     `sqrt(1+x^2) ~~ 1 + (0.47 - 0.06x)*x^2 if |x| <
 +      
 +Die Koeffizienten sind wieder empirisch ermittelt; gegebenenfalls können optimale Koeffizienten über eine 
 +[https://rclab.de/analogrechner/tschebyscheffapproximation Tschebyscheff-Approximation] bestimmt werden.
  
 +\ASCIIMATHML https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/latest.js?config=AM_CHTML
  
  
  
 </nimla> </nimla>

Anmelden