Başka bir programcının incelerken normal dağılım CDF'yi hesaplamak için bir fonksiyonun uygulanması , bir yapılan öneri ya Python'un yerleşik işlevleri veya kullanım SciPy, ortak bilimsel kütüphane ile tüm uygulama değiştirin.
Başka bir programcı , belgelerinde math.erfc()
ne scipy.stats.norm.cdf()
kesin hassasiyet garantisi ne de verdiğini belirtti . Bu nedenle, bir yaklaşım algoritmasını ( saygın bir kaynaktan alınmış ve hata sınırlarını belgeleyen ) değiştirme konusunda daha dikkatli olmalıyım .
Dürüst olmak gerekirse, yerleşik veya kütüphane işlevinin doğruluğundan ve kesinliğinden şüphe duyma düşüncesi aklımı hiç geçmemişti. Ne de olsa gibi işlevleri çağıran oldum sin()
ve sqrt()
neden olmalı - çok düşünmeden yıllarca math.erf()
veya scipy.stats.norm.cdf()
herhangi farklı olabilir?
Ama şimdi endişeliyim. Sorularım:
- Genel olarak, dokümantasyon özel bir şekilde belirtilmiyorsa, bu tür fonksiyonların IEEE çift kesinlikli kayar nokta tarafından sunulan hassasiyet dahilinde son ondalık basamağa tamamen doğru olduğu ima ediliyor mu?
- Bu özellikle
math.erf()
Python'lar veya SciPy'ler için geçerliscipy.stats.norm.cdf()
mi? Nasıl söyleyebilirsin? Bu adam sayfası
sin()
diyor ki…Bu işlevler argümanı pi'nin katına yakınsa veya 0,0'dan uzak olduğunda doğruluk kaybedebilir.
Sinüs fonksiyonu periyodik ve simetrik olduğunda neden bu tür uyarılar var? Optimum doğruluk elde etmek için girdiyi standartlaştırmak için arayanın üzerine bir yük var gibi görünmektedir.
Öte yandan, Mozilla'nın belgeleri
Math.sin()
doğruluk veya kesinlik hakkında hiçbir şey söylemiyor. Bu tamamen doğru olduğu anlamına mı geliyor, yoksaMath.sin()
JavaScript'teki bazı durumlarda (diğer her yerde olduğu gibi) doğru olan "ortak bilgi" mi?