Seri toplamini belli bir hatanin altinda tutmak.

Başlatan bunalmis, 30 Eylül 2007, 21:33:00

z

Analiz derslerinden hatirlayacaginiz gibi sonsuz kere turevlenebilir fonksiyonlarin, butun turevlerinin x=a noktasinda tanimli olmasi durumunda bu fonksiyonu a noktasinda seriye acabiliyor ve fonksiyonun a noktasi civarindaki degerlerini seri toplamindan hesaplayabiliyoruz.

Bir elektronikci olarak amacimiz microislemci kullanarak herhangi bir f(x) fonksiyonunun degerini bellli bir dogrulukta hesaplamak olsun.

Ornegin;

x=a icin f(a) yi hesapladigimizda, hata, mutlak degerce h degerinden kucuk kalsin.

(Forumumuzdaki math destegi kaldirilmasaydi asagidaki ifadenin Taylor seri acilimi oldugunu gorebilirdik.)

`f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n`


1) Istenen h hatasi icin serinin en az kac terimini kullanmak gerekir?

2) Istenen h hatasi icin, f^((n))(a))/(n!)(x-a)^n islemini yaparken kac bitlik toplama, cikartma, carpma, bolme rutinleri yazmaliyiz?

3) Neden?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ferdem

Hımmm, numerik analiz kitaplarını karıştırmanız gerekecek.
Biraz muğlak durumlar, iyi analiz gerektirtiyor, benim kafamda da %100 net değil ancak şunları söyleyebilirim: Taylor serisi terimleri yazılırken yazılmayan tüm terimler yerine en sonda bir remainder(Rn) term yazılır, remainder term yaptığınız gercek(!) hatadır(true error). Rn terimi kaçıncı terimde durduğunuza, hangi x değeri için f(x) i hesapladığınıza ve bir parametreye daha bağlı.
Not: Matlab kullanarak değerini bildiğiniz fonksiyonlar için taylor serisiyle hesaplama yaptırıp sonuçları karşılaştırarak da fikir sahibi olabilirsiniz.

Bulduğum bağlantılar:
http://www.math.wpi.edu/Course_Materials/MA1023C98/taylor/node1.html

http://marauder.millersville.edu/~bikenaga/calculus/tayerr/tayerr.html

İyi çalışmalar

Ziya

bunalmis hocam, 7. veya 8. elemanda hata kabul edilebilir limitin içerisinde kalır. Tabi h değeri çok büyük olursa seride daha fazla eleman kullanmak gerekebilir. Buradaki kritik nokta h nin büyüklüğü.

Bir de makina epsilonu denen sayı zaten sizin istediğiniz tam değere asla nümerik hesapla erişemeyeceğinizi gösterir.  Makina epsilonu da aritmetik işlemlerde kullandığınız hassasiyete göre değişir (24 bit, 32 bit 64bit için ayrı ayrıdır). mcular için 32 bitin üstünde aritmetik işlem yapan derleyici var mı?
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

z

Ziya tamam işte can alıcı noktaya değindin.

Sözkonusu işlemleri hazır fonksiyonları (4 işlem) kullanmadan kendimiz yapmak durumundayız. Bütün kodlamayı asm haricinde derleyici ve kütüphane kullanmadan yapacağımızı varsayın.

Örneğin 8 bit işlemci kullanarak 512 bit toplama çıkartma çarpma ve bölme rutinlerini yazmak elimizde.

Ancak gereksiz yere fazlaca bit uzunlukları seçip bunlar üzerinde işlem yapmak işlemciyi çok yorar. Bu nedenle verilen h hatasını aşmamak üzere optimum bit uzunluğunu kullanmak gerekir.

Zaten 3 maddeden olusan sorumun ilkinin cevabı belli. Kalan terimlerin toplamından hatayı biliyoruz.

Ancak seri toplamını matematikçinin anladığı anlamda yapamıyoruz (Sonsuz bit uzunluğu gerekiyor).

Biz, seride alınan terimlerin 4 işlemi esnasında ha bire kesme hatası yaptığımız için buradan gelen hataları dikkate almak lazım ve 4 işlem de kullanılacak bit uzunluğunu seçmemiz gerekir.

Atıyorum 48 bit 4 işlem yaparsan verilen seriyi 25 bit doğrulukta hesaplarsın gibi bir cevap bekliyorum. Tabi birde fonksiyonun tipi de bu soruya verilecek cevaı etkileyebilir. Şu anda genel konuşuyoruz.

Bu soruyu, Casio firmasının hesap makinelerini üreten bölümünün argesinde çalışan bir personel olduğunuzu varsayarak ele alın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

picusta

bu konuyu ayrintili bir biçimde irdeleyen bir dersi geçmiste almis biri olarak ve su an hafizamda size tam bir cevap verecek kadar bilgi kalmadigindan dolayi utaniyorum.
ben yinede alternatif bir yöntem önereyim, belirsizlik hesaplamasi, uncertainty calculation.
elimizde bir formül var diyelim, herbir degiskenin belirsizligi var,mutlak hata veya oransal (1 lsb mesela). Formül de belli basli islemler yapiliyor (4 islem, sin,cos..)her bir islemde cikan sonucun belirsizligine bakiliyor. En sonunda toplam belirsizlik bulunuyor.
pratikte ben de 16 bitlik islemcide 64 bitlik hesaplamalar yapmak zorunda kaldim.

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

pisayisi

#7
Bu taylor serilerini kullanarak mikroişlemcide fonksiyon hesaplatıp bunu bir kontrol algoritmasında kullanan ben hiç görmedim. x terimine bağlı, kuantalama işlemine bağlı, hesaplanmayan terimlere bağlı hiç kestirilemeyen tonlarca kümüle olmuş hata terimlerini kim kabul edeibilir ki kendi sisteminde. Birde bir sürü çarpma bölme işlemi yapacaksın canına yazık derler adama.

Gelelim sadade e^x=1+x+(x^2 )/2 sabrım yok 3 terim alıyorum sadece. x e bağlı olarak ta hata terimi değişcek ya, 8 bitlik kuantalama imkanımız olduğunu düşünürsek, 0 -1 aralığını 8 bitlik kuantalama ile tanımlarsak herhangi bir terimi  nekadar bir hata ile tanımlarız? 1/256=0.004 olabilcek en büyük kuantalama hatasını bulcağımıza göre x=1.004 ü yukardaki 3 terimli formülde yerine koyalım. kuantalamadan dolayı çıkan sonuc=2.5448, kuantalamasak ne olcaktı x =1 yazacaktık ve sınırsız bit uzunluğunda çarpma yapacaktık bu durumda sonuc=2.5 kuantalamadan dolayı ilk 3 terim için beklenen en büyük hata=0.0448 olacaktır. Kuantalamaya bağlı hata terimi fonksiyona, tanım aralığına, bit sayısına, dört işlem bit uzunluğuna hepsine bağımlı sistematik tek bir formülle ifade edilemeyecek kadar karışık...
Murat

z

En tepede sorduğum soruma cevap olmamış.

Problem, transandant fonksiyonların hesaplanması.

1. sorunun cevabını yani hata teriminin nasıl hesaplanacağını verdiğim linkte detaylı olarak ele aldım.

Yazının devamında ise 2. sorunun cevabı yeralacak.

Zaten asıl kalite soru ikincisi. Çarpma rutininin  ve sabitlerin bit uzunluğu, kütüphane fonksiyonlarımızın hızını belirleyecek.

Eğer mikroişlemci ile matematik fonksiyonlarını hesaplayan kütüphaneleri seri açılımından yararlanarak yazacaksak en tepedeki iki soruya cevap verebilmemiz gerekiyor.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

pisayisi

ikinci sorunun benim beklediğim türden genelleştirilmiş bir cevabını verebileceğinizi sanmıyorum ;D
Murat

z

Fonksiyonumuza giren verilerin aralığı belli.
Fonksiyonun bu girdilere ilişkin veriği doğru ondalık sayısı da belli.

Bu durumda 2. sorunun da cevabı var.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

fractal

#11
sayın z çok teşekkür ediyorum forumda bu tür konuları ele alıp adım adım inceleyip tartışma ortamı oluşturduğunuz için.sitenizdeki dökümanlarıda okudum.
hatırladığım kadarıyla 7-8 terimden sonra hatayı 0 kabul ediyordu.ünide mat 1de  cok fazla üzerinde durmuştuk.taylor-maclauren.gerçi sitenizde toplam hatayı veren formülü vermişsiniz.pisayısının dediği gibi kesin birşey söylemek cok zor.çünkü bilindiği üzere cok fazla parametre var..
Restantum cogniscutur Quantum deligutur

z

Yazının ortalarında gereksiz yerlere gitmişim. Geri dönüp o kısımları silmeyip olduğu gibi bırakmanın daha faydalı olacağını gördüm.
Sanırım kafadaki pek soruya cevap olacaktır.

http://www.cncdesigner.com/wordpress/?p=1331   (Uyarı: Yazıda edepsiz bölümler vardır)

Aslında çok da kafayı takacak kadar karmaşık olmadığını görmüşsünüzdür. Aynı yazı temiz şekilde yeniden yazılsa çok kısa yer tutar.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com