Wie wird die Standard-Gleitkommazahlgenauigkeit auf eine andere, vielleicht benutzerdefinierte, umgeschaltet? Ich brauche das, weil ich einige Berechnungen mache und ich sehe, dass ich die Standardschwimmpunktgenauigkeit erhöhen sollte.Erhöhung der Genauigkeit der Gleitkommazahlen
Antwort
Ich hatte vor kurzem mit diesem Problem zu tun haben und die mpmath war perfekt. Es ist reines Python, unter einer BSD-Lizenz.
Mpmath is a pure-Python library for multiprecision floating-point arithmetic. It provides an extensive set of transcendental functions, unlimited exponent sizes, complex numbers, interval arithmetic, numerical integration and differentiation, root-finding, linear algebra, and much more. Almost any calculation can be performed just as well at 10-digit or 1000-digit precision, and in many cases mpmath implements asymptotically fast algorithms that scale well for extremely high precision work
Es ist nicht zu viel langsamer, und es kann die gmpy Bibliothek nutzen, wenn installiert (eine C-coded Python extension modules that support fast multiple-precision arithmetic
).
Mit scipy.integrate.odeint bekomme ich "TypeError: Array kann nicht sicher in den erforderlichen Typ umgewandelt werden" = (Es scheint, dass scipy.integrate.odeint alles in float konvertiert. – user983302
Aber es hat seinen eigenen ode solver - [odefun] (http : //mpmath.googlecode.com/svn/trunk/doc/build/calculus/odes.html) OK, lass das die Lösung sein – user983302
Aktualisierter Text über [unlimitedness] (http://mpmath.org/doc/ current/technical.html # Darstellung der Zahlen): "Mpmath verwendet willkürliche Ganzzahlen für die Mantisse und den Exponenten, so dass die Zahlen so groß sein können, wie es der Speicher des Computers zuläßt extrem große Zahlen. " –
Wenn Sie eine höhere Genauigkeit wünschen, rate ich Ihnen stattdessen, das bigfloat
Paket zu verwenden (da dies ist, wofür es gemacht ist). Alternativ können Sie auch in die Decimal
Klasse schauen.
Ist es möglich, dass scipy.integrate und bigfloat miteinander umgehen? Momentan bekomme ich "TypeError: Array kann nicht sicher in den erforderlichen Typ umgewandelt werden", wenn BigFloat Argumente an scipy.integrate.odeint übergeben werden – user983302
@ user983302 Vielleicht [dies] (http://stackoverflow.com/questions/7770870/numpy-array-with -dtype-dezimal) wird Ihnen helfen. – arshajii
- 1. Beliebige Genauigkeit Gleitkommazahlen auf JavaScript
- 2. Multi-Entscheidungs-Engine zur Erhöhung der OCR-Genauigkeit
- 3. Lua - Verpackungs IEEE754 einfache Genauigkeit Gleitkommazahlen
- 4. CUDA und doppelte Genauigkeit Gleitkommazahlen arithmetics
- 5. Wie Drucken von Arrays aus mehreren Datenformaten mit der Steuerung der Genauigkeit von Gleitkommazahlen in Python?
- 6. Erhöhung der Vektorkapazität
- 7. Erhöhung der Optimierungsstufe g ++
- 8. Unerklärliche Erhöhung der Variablen
- 9. Richtiger Weg, um Gleitkommazahlen einfacher Genauigkeit in Python zu emulieren?
- 10. Messung der VAR-Genauigkeit mit Genauigkeit() von der Prognose
- 11. Genauigkeit der Nachkommastellen
- 12. Erhöhung der Anzahl der Anzahl pro Sekunde?
- 13. Erhöhung der Website-Leistung - ASP.NET
- 14. Erhöhung der Instanzen von MDB
- 15. Erhöhung der Liniendicke von geom_smooth
- 16. XGboost - Erhöhung der Trainingsfehler "mae"
- 17. Erhöhung der ASP.net WebForm Performance
- 18. Längste Erhöhung der Untersequenz-Optimierung
- 19. Erhöhung der Zählung auf lesen
- 20. MLP: Beziehung zwischen der Anzahl der Iterationen und der Genauigkeit
- 21. Erhöhung der Grafikdetail durch Skript in Mathematica
- 22. Maximale Erhöhung der Verarbeitungsgeschwindigkeit durch Parallelität
- 23. SQL - wie Reihenfolge durch Erhöhung der Zählschleife
- 24. Nachteile der Erhöhung des PHP-Speicherlimits
- 25. Erhöhung der Variable für eine Umwandlung
- 26. Take von einer Liste während der Erhöhung
- 27. Erhöhung der Stackgröße in Linux mit setrlimit
- 28. Erhöhung der Speicherkapazität des Android-Emulators?
- 29. Java-Indexierungsfehler durch Erhöhung der Häufigkeit
- 30. Erhöhung der Befehl Timeout für SQL-Befehl
Python und numpy verwenden standardmäßig einen Gleitkommawert mit doppelter Genauigkeit. Was lässt Sie glauben, dass die Genauigkeit ungenügend ist? – talonmies
Haben Sie sich http://docs.python.org/2/library/decimal.html angesehen –
Sie können Dezimalzahlen für Ihre Berechnungen verwenden, aber dann verlieren Sie den Leistungsvorteil von 'numpy'. Soweit ich weiß, können Sie diesen Kompromiss nicht umgehen - der genaueste Datentyp, mit dem ein Prozessor nativ arbeiten kann, ist der, der "numpy" verwendet. – millimoose