analogrechner:vektorlaenge
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
analogrechner:vektorlaenge [2020-12-10 16:43] – approx rainer | analogrechner:vektorlaenge [2021-12-11 14:01] (aktuell) – rainer | ||
---|---|---|---|
Zeile 106: | Zeile 106: | ||
Wird anstelle der integrierten Schaltung eine Schaltung aus vorhandenen Elementen verwendet, so ergibt sich die Schaltung zu: | Wird anstelle der integrierten Schaltung eine Schaltung aus vorhandenen Elementen verwendet, so ergibt sich die Schaltung zu: | ||
+ | `v=x + y^2 / (v+x) | ||
+ | |||
[svg: | [svg: | ||
Zeile 111: | Zeile 113: | ||
Wegen `v ge |x|` ist auch für `x<0` die Summe `v+x ge 0`, so dass hier | Wegen `v ge |x|` ist auch für `x<0` die Summe `v+x ge 0`, so dass hier | ||
der Divisor nicht negativ ist. | der Divisor nicht negativ ist. | ||
+ | Auch hier kann allerdings `v+x > 1 ` werden, so dass -- nicht gezeigt -- skaliert werden muss. | ||
Die in der vorigen und dem folgenden Schema gezeigten Addierer sind | Die in der vorigen und dem folgenden Schema gezeigten Addierer sind | ||
**nicht** invertierend, | **nicht** invertierend, | ||
- | Änderungen notwendig sind, da einige Dividierer | + | Änderungen notwendig sind, da einige Dividierer invertierte |
Ergebnisse liefern, u.s.w. | Ergebnisse liefern, u.s.w. | ||
Zeile 122: | Zeile 125: | ||
Eine bessere Aussteuerung wird erreicht, wenn anstelle des Quadrierers | Eine bessere Aussteuerung wird erreicht, wenn anstelle des Quadrierers | ||
ein Multplizierer verwendet wird und die Faktoren vertauscht werden: | ein Multplizierer verwendet wird und die Faktoren vertauscht werden: | ||
+ | |||
+ | `v=x + y * (y / (v+x)) | ||
+ | |||
[svg: | [svg: | ||
Zeile 169: | Zeile 175: | ||
Besser ist freilich eine Taylorreihe (für `x<=1`) mit | Besser ist freilich eine Taylorreihe (für `x<=1`) mit | ||
- | `sqrt(1+x*x) ~~ 1 + 0.41*x^2 if |x| <= 1 | + | `sqrt(1+x^2) ~~ 1 + 0.41*x^2 if |x| <= 1 |
| | ||
benötigt aber einen Quadrierer (anstelle von dreien). | benötigt aber einen Quadrierer (anstelle von dreien). | ||
Zeile 175: | Zeile 181: | ||
Mit einem zusätzlichen Multiplizierer ist der Fehler unter 1%: | Mit einem zusätzlichen Multiplizierer ist der Fehler unter 1%: | ||
- | | + | |
Die Koeffizienten sind wieder empirisch ermittelt; gegebenenfalls können optimale Koeffizienten über eine | Die Koeffizienten sind wieder empirisch ermittelt; gegebenenfalls können optimale Koeffizienten über eine | ||
[https:// | [https:// | ||
- | \ASCIIMATHML ./ASCIIMathML.js | + | \ASCIIMATHML |
</ | </ |
analogrechner/vektorlaenge.1607614990.txt.gz · Zuletzt geändert: 2020-12-10 16:43 von rainer