ana sayfa > Projeler > Taylor ve Maclaurin Serileri ile Sinüs Fonksiyonunun C Dilinde Hesaplanması

Taylor ve Maclaurin Serileri ile Sinüs Fonksiyonunun C Dilinde Hesaplanması

   461.505 Kez Okundu Pazar, 24 Tem 2016 yorum ekle yorumlara git

sİNX-TAYLOR-YAKLAŞIM

Mühendislik alanında sıkça kullandığımız her dereceden türevi alınabilen gerçel ya da karmaşık matematiksel fonksiyonların sağladığı değerleri, Taylor ve Maclaurin serilerini kullanarak gerçeğine çok yakın değerlerde hesaplanabilmesi mümkün olmaktadır. Bu serilerin bulunması ile fonksiyonların modellenmesi ve hesaplanması kolaylaştığı için matematik alanındaki en büyük keşiflerden birisi kabul ediliyor.

 

 

Günümüzde algoritma ve programlama bilgisini kullanılarak fonksiyonların C dilinde dönüştürebilmek mümkün oluyor. Bu sayede matematiği çeşitli bilgisayar uygulamalarında elektronik cihazlarda kısaca hayatımızın içinde kullanabilmekteyiz. Sizlere nasıl yapıldığını kısaca anlatıp bir örnek üzerinde göstereyim.

 

Aşağıda Taylor serisinin matematiksel gösterimini görmektesiniz, Formüldeki “n” sayısı fonksiyonun “n” kadar türevi alındığını belirtmektedir. “n” sayısı sonsuza gittikçe bulunan sonuçta gerçeğe yaklaşmaktadır.

{\displaystyle f(x)=f(a)+{\frac {f'(a)}{1!}}(x-a)+{\frac {f''(a)}{2!}}(x-a)^{2}+\ldots +{\frac {f^{(n)}(a)}{n!}}(x-a)^{n}+\ldots }

Sigma gösterimi ise bu şekilde olur;

{\displaystyle =\sum _{n=0}^{\infty }{\frac {f^{(n)}(a)}{n!}}(x-a)^{n}}

Taylor ve Maclaurin serilerinin birbirinden tek farkı Maclaurin serisi “0”sıfır noktasını merkez kabul etmesidir. Dolayısıyla yukarıdaki formülde “a” ifadesine sıfır dediğimizde Maclaurin serisini elde etmiş oluruz. Şimdi Maclaurin serisini kullanıp sinüs fonksiyonunun türevlerini alarak modellemeye çalışalım.

10

 

 

 

 

 

 

 

 

 

Yukarıda f(x) fonksiyonumuza sin(x) dedik. Burada Maclaurin serisini uyguladığımız için x değerine sıfır verip art arda türev aldık ve 4. türevden sonra sinüs fonksiyonu sıfır noktasında kendisini tekrar ettiğini gördük. Maclaurin de bizden tam olarak bu tekrarı görmemizi istedi ki aşağıdaki denklemi de buradan çıkartıyoruz.

11

 

 

Geriye sinüs fonksiyonunun Maclaurin modelini C diline çevirmek kalıyor onuda aşağıda görebilirsiniz;

 

#define PI 3.14159265359
/////////////////////////////////////////////////////////
long Faktoriyel(int sayi)
{
    long sonuc=1;
    int i;
    for(i=1;i<=sayi;++i)
    {
        sonuc*=i;
    }
    return (sonuc);
}
/////////////////////////////////////////////////////////
double Kuvvet(double taban,int us)
{
    double sonuc=1;
    int i;
    for (i=1;i<=us;i++)
    {
       sonuc*=taban;
    }
    return sonuc;
}
/////////////////////////////////////////////////////////
double Sinus(double x, int n)
{
    double sonuc=0;
    int i;    
    for (i=0;i<n;i++)
    {
        sonuc += Kuvvet(-1,i) * Kuvvet(x,2*i+1) / Faktoriyel(2*i+1);
    }
    return sonuc;
}
/////////////////////////////////////////////////////////
void main() 
{ 
  int Derece = 60;
  
  printf( "%f\n" , Sinus( Derece * PI / 180 , 6 ) );

  while(1);
}
/////////////////////////////////////////////////////////
Sonuç;

Çıktı= 0.8660254

 

Sinüs fonksiyonuna radyan açısını girdik ve ekranda sinüs değerini virgülden sonra 7 haneye kadar doğru hesapladığını gördük. Bunu yapabilmek için döngü değerine 6 girdik yani fonksiyonun 6. türevine kadar “n” degerini arttırdık. Türev almaya devam etseydik sinus değerinin virgülden sonraki çözünürlüğü artacaktı.

Matematik, programlama ve algoritma bilgisinin bir arada kullanıldığını sizlere göstermiş oldum yazıyı burada bitiriyorum.

Bir sonraki yazıda görüşmek üzere.

 

 

Categories: Projeler Tags:
  1. şimdilik yorum yok.
  1. şimdilik geri bağlantı yok