Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
analogrechner:vektorlaenge [2018-01-31 15:59] – inverse methode nach vorne, als beste angesehen rainer | analogrechner:vektorlaenge [2021-10-11 07:54] – asciimath rainer | ||
---|---|---|---|
Zeile 148: | Zeile 148: | ||
nicht ausreichend groß. | nicht ausreichend groß. | ||
+ | Polynom-Approximation | ||
+ | -------------------- | ||
- | \ASCIIMATHML ./ASCIIMathML.js | + | 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:// | ||
+ | |||
+ | 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%: | ||
+ | |||
+ | | ||
+ | |||
+ | Die Koeffizienten sind wieder empirisch ermittelt; gegebenenfalls können optimale Koeffizienten über eine | ||
+ | [https:// | ||
+ | |||
+ | \ASCIIMATHML | ||
</ | </ |