Secant Yöntemi

Herkese merhaba! Sayısal analizde son açık yöntemimiz olan Secant (Kiriş) Yöntemini inceleyeceğiz. Bundan önceki öğrendiğimiz Newton-Raphson yöntemindeki türev alma işleminde zorlanabileceğimiz zamanlar olabilir. Secant yöntemi bu noktada imdadımıza yetişmektedir.

Hadi başlayalım ✿


Yukarıda da belirttiğimiz gibi newton-raphson yöntemi ne kadar hızlı olursa olsun türev alması zor olan bir denklemle karşılaştığında hızlı olduğu kadar yavaşta kalabiliyor. Polinom şeklinde olanlardan ziyade türevlerinin hesaplanması çok zor veya zaman alan belirli fonksiyonlar vardır. Böyle durumlarda türevi geriye sonlu farklar yaklaşımı ile bulabiliriz. Şekil üzerinden orta noktamızın formülü nasıl bulunmuş birlikte inceleyelim.


Secant Yöntemi Denklemi
Secant Yöntemi Denklemi
Secant Yöntemi Denklemi

En üstte gördüğünüz geriye sonlu farklar yaklaşımını kullanarak Newton-Raphson yönteminde bulunan f'(xk) değerini buluyoruz. Yani Newton-Raphson yönteminde paydadaki f'(xk) değeri yerine geriye sonlu farklar yaklaşımı formülünü yazıyoruz. Bu sayede de Secant (Kiriş) Yöntemimizin formülü ortaya çıkmış oluyor. Secant (Kiriş) yönteminde bilmemiz gereken bir diğer unsurda iki adet başlangıç noktası verilmesi gerekiyor. Verilen bu iki noktaya göre denklemde orta noktamızı bir döngüye sokarak bulabiliyoruz.

Son olarak bu yöntemimizi bir Matlab örneği yaparak bitirelim 🙂


Secant (Kiriş) Yöntemi Matlab Örneği

Örneğimiz başlangıç noktası [0.5, 3.0] olan f(x) = 2*x-0.13/sqrt(5*x^0.5)) denklemini secant yöntemi kullanarak hesaplayınız. Hadi kodlarını inceyelim.

Secant Yöntemi Matlab Kodları
Secant Yöntemi Matlab Kodları

En üstte klasikleşen fprintf kullanımı ile yapacağımız işlemler hakkında bilgi veriyoruz. Başlangıç noktası olarak verilen değerleri x1 ve x0 değişkenlerinde tutuyoruz. Son olarak tolerans değerimizi ve fprintf kullanarak döngü içerisinde yazdıracaklarımıza başlık oluşturduktan sonra for döngümüzü başlatıyoruz. İterasyon değeri olarak i değişkenimizi 1’den 100’e olacak şekilde başlatıyoruz. Yukarıda vermiş olduğumuz denklemde kullanacağımız değerleri tanımlıyoruz (fx0 ve fx1). Bu değerlerin karşısında denklemde yerine yazıyormuşuz gibi denklemi ve değerleri aynen yazıyoruz. Elde ettiğimiz fx1 ve fx0 değerlerinin ardından x2 adında yeni bir değişken oluşturuyoruz. Bu değişkende hesaplayacağımız değer bizim yeni x1 değerimiz olacak. Oluşturduğumuz x2 değişkenin karşısındaki denklem bizim secant yöntemimizin denklemi.

Daha sonrasında döngü içerisindeki değerlerimizi yazdırıyoruz ki daha sonra bunları command window ekranında inceleyelim. Döngüden çıkma şartımız olan mutlak hata değerimiz tolerans değerinden küçükse break fonksiyonu yardımıyla döngüden çıkıyoruz. Eğer bu if bloğuna girmezse döngümüzde değişkenlerimizi değiştiriyoruz. İlk başta bize verilen x0 değerine yine ilk başta bize verilen x1 değerini veriyoruz. Bize yine verilen x1 değeri yerine de bulduğumuz x2 değerini koyuyoruz. Bu şekilde döngümüz yukarıdaki if bloğuna girene kadar devam ediyor. Son olarak çıktımızı inceleyelim ve konumuzu tamamlayalım.

Secant Yöntemi Matlab Çıktısı
Secant Yöntemi Matlab Çıktısı

Gördüğünüz üzere beşinci iterasyonda durdurma koşulu olarak girdiğimiz if bloğuna girmiş ve kök değerimizi bu şekilde yazdırmış olduk.


Böylece sayısal analizde lineer olmayan denklemlerin çözümü için geliştirilen üçer adet kapalı ve açık yöntemimizin tamamını işlemiş olduk. Bundan sonra ise lineer denklemler için geliştirilen yöntemlere bakacağız. Tabii sayısal analize biraz ara vermek istiyorum. Oluşturmuş olduğum diğer kategorilere de biraz ağırlık vermem gerekiyor. Bu yüzden yakın zamanda çok güzel java projelerine girişebiliriz 🙂

Bir sonraki yazıda görüşünceye dek herkese sağlıklı günler dilerim! ❁✵❀