mpmath sınırsız hassasiyet ve üstel boyutları ile Python şamandıra / karmaşık türleri ve matematik / cmath modülleri için bir yedek. mpmath yazılım herhangi bir dış bağımlılıkları olmadan Python tamamen yazılmış ve bu nedenle derleme için gerek kalmadan, hemen hemen her yerde çalıştırır.
Yüklemek için, mpmath arşiv açmak ve çalıştırmak
Python yüklemek setup.py
Dokümantasyon ve kullanım:
İthalat mpmath
mpmath ithalat * dan
Bu Python şamandıra ve karmaşık türleri benzer işe sınıfları Mpfnin ve mpc sağlar:
>>> MPF (2) / (MPF 3)
(MPF ',66666666666666663'),
>>> Mpc (0, -1)
mpc (gerçek = '0', imag = '- 1')
>>> Mpf (-0.6) ** mpf (-0.2)
mpc (gerçek = ',89603999408558288', imag = '- ,65101116249684809')
Güzel çıkışı için, kullanım baskı veya str () (aynı zamanda küçük yuvarlama hatalarını gizler):
>>> Print mpf (2) / mpf (3)
,666666666666667
>>> Print mpc (1 + 2j) ** 0.5
(+ 0.786151377757423j 1,27201964951407)
Hassas gayrimenkullerin mpf.prec (bit sayısı) ve mpf.dps (ondalık sayısı) tarafından kontrol edilir. Bu özellikler bağlantılı, bu yüzden bir değişen otomatik maç için diğer güncellemeleri vardır. Yağışlı veya dps Ayar tüm işlemler yürütülmektedir ve numaraları basarken basamak sayısı görüntülemek için hangi hassasiyet değiştirir. varsayılan
prec Python yüzen Aynı şekilde, = 15 53 ve dps =.
>>> Mpf.dps = 30
>>> MPF (2) / (MPF 3)
(MPF '0,66666666666666666666666666666663'),
>>> Print _
,666666666666666666666666666667
>>> Mpf.dps = 15 # varsayılan yükleme
Python numaralardan gelen mpfs ve MPCs oluşturabilir veya aritmetik işlemlerinde Python numaraları ile mpfs ve MPCs birleştirmek, ancak düzenli Python sadece yüzer sonlu hassasiyet var farkında olabilir. Tam kesinlik değerine sahip bir Mpfnin başlatmak için, bir dize kullanın:
>>> MPF (0.1)
float olarak mpf ('0,10000000000000001') # aynı doğruluk
>>> Mpf.dps = 50
>>> MPF (0.1)
mpf ('0,1000000000000000055511151231257827021181583404541016') # önemsiz
>>> (MPF '0.1'),
mpf ('0,1000000000000000000000000000000000000000000000000001') # Tamam
aşağıdaki standart fonksiyonlar hem reel hem de karmaşık tartışmalar mevcuttur ve destek:
exp, sqrt, log, güç, cos, sin, tan, cosh, sinh, tanh,
acos, asin, atan, asinh, acosh atanh
Örnek:
>>> Mpf.dps = 15
>>> Print cos (1)
,540302305868140
>>> Mpf.dps = 50
>>> Print cos (1)
0,54030230586813971740093660744297660373231042061792
Bazı az yaygın fonksiyonlar da mevcuttur: gama (gama fonksiyonu), faktöryel, erf (hata fonksiyonu), lower_gamma / upper_gamma (tamamlanmamış gama fonksiyonu) ve zeta (Riemann zeta fonksiyonu).
Son olarak, mevcut hypot ve atan2 kolaylık fonksiyonları (gerçek sayılar yalnızca tanımlanır).
sabitler pi, e, ve cgamma (Euler sabiti) değerleri otomatik olarak hassas uyum mevcut özel mpfs gibi davranan nesneler vardır ama.
>>> Mpf.dps = 15
>>> Print pi
3,14159265358979
>>> Mpf.dps = 50
>>> Print pi
3,1415926535897932384626433832795028841971693993751
>>> Mpf.dps = 15
>>> E ** (- pi * 1j)
mpc (gerçek = '- 1', imag = '- 1.2289836075083701E-16')
>>> Mpf.dps = 50
>>> E ** (- pi * 1j)
mpc (gerçek = '- 1', imag = '1,0106 [...] E-51')
Yönetmen yuvarlama kısmen uygulanmaktadır. Örneğin, bu hesaplar ve pi için 15 basamaklı yaklaşım aralığını doğrular:
>>> Mpf.dps = 15
>>> Mpf.round_down (); PI1 = + pi
>>> Mpf.round_up (); pi2 = + pi
>>> PI1
(MPF '3,1415926535897931'),
>>> Pi2
(MPF '3,1415926535897936'),
>>> Mpf.dps = 30
>>> PI1
Bu sürümde Yeni nedir:
- Genel
- Birden bağlam nesneleri oluşturmak ve bunun yerine küresel devlet / fonksiyonların bağlama yerel yöntemleri kullanmak artık mümkün (örneğin MP2 = mp.clone (); mp2.dps = 50; mp2.cos (3)). Tüm fonksiyonlar bağlam yöntemleri dönüştürülmüş ve bazı hatalar vardır, bu nedenle bu özellik şu anda deneyseldir.
- mpmath artık uzun içten yerine Python sage.Integer kullanacaktır.
- Kaldırılan örnekleri.
- runtests.py kapsama istatistikler oluşturmak için -coverage ile çalıştırılabilir.
- Türleri ve temel aritmetik
- Sabit karşılaştırılması.
- mpi aralığı Çeşidi değiştirildi repr formatı eval (repr (x)) == x. yapmak
- aralıklarla Geliştirilmiş baskı.
- mpmathify () ve nstr () (Vinzent Steinberg tarafından katkıda) tarafından desteklenen Aralıkları.
- olduğunu.
- iç işlev to_str daha biçimlendirme seçeneği eklendi.
- Daha hızlı saf Python karekök.
- boşluk str- & gt yanlış değerler vererek sondaki Fix;. Mpf dönüşüm
- Matematik
- Sabit nsum ().
- Uygulanan findroot için Newton yöntemi ().
- Lineer cebir
- Sabit LU_decomp () (Vinzent Steinberg tarafından katkıda) tekil matrisler tanımak.
- Çeşitli norm fonksiyonları genel vektör norm fonksiyonu norm (x, p) ve jenerik matris norm fonksiyonu mnorm (x, p) ile değiştirilmiştir.
- Özel fonksiyonlar:
- Bazı iç önbelleklerini her zaman biraz overallocate hassasiyetle değiştirildi. Bu önbelleğe alınan değer, her işlev çağrısı üzerine recomputed gerekiyordu daha önce en kötü durum davranışını düzeltir.
- Sabit log (küçük sayı).
- Sabit gama () ve gibi 2 büyük güç tarafından bölünebilir olması tamsayı girişlerine yanlış sonuçlar dönen) (binom. Türev fonksiyonları
- Sabit asin () değil (Vinzent Steinberg tarafından katkıda) yüksek hassasiyetli bir istisna yükseltmek.
- .
- aritmetik-geometrik ortalama fonksiyonu agm () büyüklükte bir sipariş daha hızlı, düşük hassasiyet artık.
- ellipk () ve ellipe daha hızlı uygulamaları ().
- ellipe Analitik devam () için | x | & gt;. = 1 uygulanan
- Uygulanan günlük gama fonksiyonu (loggamma ()).
- hyperfac Sabit şube keser ().
- Uygulanan Riemann-Siegel Z-fonksiyonu (siegelz ()).
- Uygulanan Riemann-Siegel teta fonksiyonu (siegeltheta ()).
- Gram puan Uygulanan hesaplama (grampoint ()).
- Riemann zeta fonksiyonu sıfır Uygulanan hesaplama (zetazero ()).
- Başbakan sayma fonksiyonu Uygulanan: Yavaş, tam sürüm (primepi ()). ve bir sınırlayıcı aralığını veren hızlı bir yaklaşık sürümü (primepi2 ()).
- Uygulanan Riemann R asal sayma fonksiyonu (riemannr ()).
- Uygulanan Bell numaraları ve polinomlar (çan ()).
- Uygulanan expm1 () işlevi.
- (polyexp ()).
- Uygulanan ikiz asal sabiti (twinprime) ve Mertens 'sabiti (mertens).
- Uygulanan asal zeta fonksiyonu (primezeta ()).
Mpmath Sage 4.0 veya üstü yüklü ise
Kod temeli eski stil tamsayı bölme
-inf Ile
(Don Peterson tarafından koduna göre Vinzent Steinberg katkıda) yapılandırılabilir çıkış biçimi ile
Mpc şimdi hashable
N = 1 başlangıç endeksi ve toplamı görmezden önceden ediyorum Euler-Maclaurin toplamı ile
(Vinzent Steinberg tarafından katkıda)
Yüksek hassasiyet de saçma dönen
Eski orta Precisions daha önce kullanılan Newton yöntemini yapma, doğal logaritma için AGM kod optimize
Doğru dal keser (yavaş, yer tutucu uygulaması) ile
'Polieksponensiyel işlevi' Uygulanan
nedir sürüm 0.10 Yeni:
- İlaveler yeni komplo destek, matris ve lineer cebir fonksiyonları içerir Kök bulma ve kareli algoritmaları, gelişmiş aralık aritmetik ve bazı yeni özel fonksiyonlar.
- Birçok hız geliştirmeleri (bir kaç fonksiyonları daha hızlı 0.9 daha büyüklükte bir sipariş olarak) işlendiği ve çeşitli hatalar düzeltildi.
- Daha da önemlisi, bu sürüm düzeltmeleri Python 2.6 ile çalışmak için mpmath.
Gereksinimleri :
- Python
Yorum Bulunamadı