kayan nokta (im), kesinlik içine küçük bir saptırma, bölüm 1

oy
16

Çoğu matematikçiler kabul ediyorum:

E πi + 1 = 0

Ancak, çoğu kayan nokta uygulamaları katılmıyorum. Ne kadar iyi bu anlaşmazlığını olabilir?

Farklı dilleri ve uygulamaları, ve mümkün olduğunca sıfıra yakın bir sonuç hale getirmek için çeşitli yöntemler hakkında duymak için istekli değilim. Yaratıcı ol!

Oluştur 04/08/2008 saat 07:21
kaynak kullanıcı
Diğer dillerde...                            


10 cevaplar

oy
16

Bu onlar% 100 cevap almak için gerekli hassasiyeti alamayan bu sadece var, en kayan nokta uygulamaları katılmıyorum değil. Ve doğru cevap bunu yapamazlar olmasıdır.

PI kimse sembolik gösterimi dışında başka bir şeyden belirtmek mümkün olmuştur basamak sonsuz dizi ve e ^ X aynıdır ve bu nedenle tek yolu% 100 doğrulukla almak için sembolik gitmektir.

Cevap 26/12/2008 saat 21:22
kaynak kullanıcı

oy
8

İşte ben denedim uygulamaları ve dillerin kısa bir liste. Bu sıfıra yakınlığı göre sınıflandırılmaktadır oluyor:

  • Şema: (+ 1 (make-polar 1 (atan 0 -1)))
    • 0.0+1.2246063538223773e-16i(Chez Şema MİT Şema)
    • 0.0+1.22460635382238e-16i(Guile)
    • 0.0+1.22464679914735e-16i(Tavuk numbersyumurtası)
    • 0.0+1.2246467991473532e-16i(MzScheme, SISC, Germain, Gambiti)
    • 0.0+1.2246467991473533e-16i(SCM)
  • Common Lisp: (1+ (exp (complex 0 pi)))
    • #C(0.0L0 -5.0165576136843360246L-20)(CLISP)
    • #C(0.0d0 1.2246063538223773d-16)(CMUCL)
    • #C(0.0d0 1.2246467991473532d-16)(SBCL)
  • Perl: use Math::Complex; Math::Complex->emake(1, pi) + 1
    • 1.22464679914735e-16i
  • Python: from cmath import exp, pi; exp(complex(0, pi)) + 1
    • 1.2246467991473532e-16j(CPython)
  • Yakut: require 'complex'; Complex::polar(1, Math::PI) + 1
    • Complex(0.0, 1.22464679914735e-16)(MR)
    • Complex(0.0, 1.2246467991473532e-16)(JRuby)
  • R: complex(argument = pi) + 1
    • 0+1.224606353822377e-16i
Cevap 04/08/2008 saat 07:22
kaynak kullanıcı

oy
5

Bu anlaşmazlığını mümkün mü?

Benim ilk düşünce gibi sembolik bir dile bakmaktır Akçaağaç . Ama bunun kayan nokta olarak sayılır sanmıyorum.

Aslında, nasıl birini temsil etmez i (veya j geleneksel programlama dilinde mühendisler için)?

Belki de daha iyi bir örnek, sin (π) = 0 olduğu? (Yoksa tekrar noktası cevapsız var?)

Cevap 04/08/2008 saat 07:29
kaynak kullanıcı

oy
4

Eğer Kayan Nokta matematik dille uygulandığını öne süren gibi görünüyor olarak Sorunuz, bana biraz tuhaf görünüyor. FP matematik donanım kayan noktalı işlemci kullanılarak yapıldığı gibi Yani, genel olarak doğru değil. Ama yazılım veya donanım, kayan nokta her zaman doğru olmayabilir. Bu işi yüzen sadece nasıl.

Daha iyi hassasiyet gerekirse farklı sayı gösterimini kullanmak gerekir. Sadece int veya uzun sığmayan numaraları tamsayı matematik yapıyorsak gibi. Bazı diller (java BigInteger ve BigDecimal yoktur biliyorum) inşa bunun için kütüphaneler var, ama yüzen kullandıysanız daha kötü açıkça onun yerine özgün türlerinden olan kütüphaneleri kullanmak zorunda kalacaktı ve performans (anlamlı bazen) olur.

Cevap 25/08/2008 saat 14:37
kaynak kullanıcı

oy
4

@Ryan Fox

Aslında, nasıl bir geleneksel programlama dilinde (mühendisleri için veya j) i temsil ediyor?

Yerli karmaşık veri tipleri bilinmeyen olmaktan uzaktır. Fortran altmışlı yılların ortalarında tarafından vardı, ve OP hist takibinde onları destekleyen diğer dillerin çeşitli sergiler.

Ve karmaşık sayılar (onlar bile sadece kodda yerli türleri gibi bakmak aşırı operatör ile) kütüphaneleri gibi diğer dillere eklenebilir.

Bu sorun için özel bir durum oluşturmadıkları sürece, "non-anlaşma" kesin olmayan makine aritmetik sadece ifade hayır vardır? Bu şikayet gibi

float r = 2/3;
float s = 3*r;
float t = s - 2;

ile biter (t! = 0) (bir aptal yeterince derleyici kullanmak En azından varsa) ...

Cevap 25/08/2008 saat 14:29
kaynak kullanıcı

oy
4

Ben Ryan ile, başka bir numara temsil sistemine geçmek gerekir katılıyorum. Eğer herhangi bir sınırlı hassas düzeni sadece kayıp telafi etmek en azından geçiştirmek-faktör çeşit istihdam olmadan (işe gitmiyor böylece sonsuz uzun ondalık olarak temsil pi gerektiğinden çözüm kayan nokta matematik alanı dışında olduğunu hassas).

Cevap 25/08/2008 saat 02:10
kaynak kullanıcı

oy
2

Benim en iyi dostum Mantıksız numaraları ve diğer sayılar arasındaki diference bahsediyoruz ile looooong kahve sohbetleri vardı. Eh, ikimiz bakış bu farklı noktada katılıyorum:

İrrasyonel sayılar ilişkileri, işlevleri olarak, bir bakıma, ne şekilde olduğunu? Eh, "Eğer mükemmel bir daire isterseniz, bana mükemmel bir pi vermek" düşünmek, ancak çevreler (4 tarafı, 5, 6 ... 100, 200) ancak ... Daha kaç taraf yapmak diğer rakamlara diferent edilir daha benziyor çember gibi, var. Şu ana kadar beni takip ederse, burada bütün bu fikirleri bağlayan pi formülü şu şekildedir: Burada görüntü açıklama girin

Yani, pi bir işlev, ancak hiç bitmez biridir! ∞ parametresinin, ama çok büyük Int için ∞ parametresini değiştirmek eğer, pi "örneği" olabileceğini düşünmek istiyorum, çünkü çok büyük bir pi örneği olacaktır.

e ile aynı, sana büyük e verecektir bana büyük bir parametreyi ver.

Birlikte tüm fikirleri koymak:

biz bellek sınırlamaları vardır gibi, dili ve kütüphaneleri bu durumda, pi ve e, nihai sonuç olarak, sen 0 almak için uzun yaklasimimizi olacak bize irrasyonel sayıların büyük örneğini temin @Chris Jester-Young tarafından sağlanan örneklere benzer

Cevap 06/05/2017 saat 03:07
kaynak kullanıcı

oy
2

Bizim şimdiki kayan nokta hesaplama mimarileri bir sınırlama var. Kayan noktalı aritmetik (sizin bit izin hassasiyet ötesinde ya da bir şey) e veya pi gibi sayısal direkleri sadece bir tahmindir. Gerçekten onlar sınıflandırma meydan çünkü bu sayıları zevk ve daha fazla entropi var görünüyor (?) Kanonik serisi bile asal, daha. Bir oran meydan okur sayısal temsili, bazen böyle basit şeyler bir kişinin zihninde (bunu seviyorum) darbe olabilir.

Neyse ki tüm diller ve kütüphaneler (tarafından anlatılanlara benzer simge kavramları kullanarak hassas trigonometrik fonksiyonlar adanmış edilebilir Lasse V. Karlsen ).

Bir makine anlayabileceği bir biçimde e ve pi gibi kavramları açıklayan bir kütüphane / dil düşünün. Bir makine mükemmel bir çember ne olduğuna dair herhangi bir kavramı var mı? Daire bunun (sabit yarıçaplı, çevresi yarıçapının ilişki * pi r = Cı-2) için özellik bilinen tüm özellikleri tatmin - muhtemelen, fakat bir nesne yaratabilmektedir değildir. Pi gibi bir nesne, yalnızca yukarıda adı geçen oran ile tarif edilir. r & C onlara vermek istersen hassas tarafından açıklanan sayısal nesneler olabilir. "E x = 0 fonksiyonu f (x) = ex türevin değeri (tanjant çizgisinin eğimi) tam olarak 1 olduğu benzersiz bir reel sayı, örneğin olduğu gibi," e tanımlanabilir wikipedia .

Eğlenceli bir soru.

Cevap 20/11/2009 saat 21:37
kaynak kullanıcı

oy
2

Sayısal Analiz Eğer büyük sayılar arasındaki küçük farklılıkların kesin değeri güvenemez olduğunu öğretiyor.

Bu sadece burada söz konusu denklemi etkilemez, ancak, günlük değerlendirirken için polinomların sıfır bulma yoluyla, eşzamanlı denklem-yakın tekil dizi çözme gelen her şeyi istikrarsızlık getirebilir (~ 1) veya exp (~ 0) ( hatta günlüğü (x + 1) ve (exp (x) -1) Bu turda almak için) değerlendirmek için özel fonksiyonlar gördük.

Fark zeroing açısından düşünmemeye teşvik edecek - yapamazsın - ziyade böyle bir şekilde ilişkili hesaplamalar yaparken asgari hatayı sağlamak için.

Ben bu uni içime kovaladılar, ben referanslar hatırlıyordu bile, daha iyi şeyler şimdi etrafında var eminim beri o 43 yıl oldu, üzgünüm. Ben önermek bu bir başlangıç noktası olarak.


Bu biraz tepeden geliyorsa, özür dilerim. O günlerde pek CS yoktu gibi Benim "Sayısal Analiz 101", benim Kimyası tabii bir parçasıydı. Gerçekten sayısal analiz modern CS kursuna sahip yer / önemi hakkında bir fikir yok.

Cevap 26/12/2008 saat 22:22
kaynak kullanıcı

oy
2

Aslında, nasıl bir geleneksel programlama dilinde (mühendisleri için veya j) i temsil ediyor?

Bir yerli temsil hakkına sahip olmayan bir dilde, bir oluşturmak için OOP kullanılarak eklenen genellikle edilir Complextemsil etmek sınıfı ive joperatör düzgün diğer ilgili işlemleri ile uğraşmak aşırı yük olan, Complexdiline yerli numaraları ve diğer numara ilkeller.

Ör: Complex.java , C ++ <karmaşık>

Cevap 25/08/2008 saat 14:48
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more