Simpson 1/3 Kuralıyla Fonksiyonun Yaklaşık İntegral Değeri

Bu MATLAB kodu ile kullanıcı tarafından verilen bir vektörün (V) Simpson yöntemi kullanılarak integralinin yaklaşık değerini hesaplanmaktadır.

Bu MATLAB kodu ile kullanıcı tarafından verilen bir vektörün (V) Simpson yöntemi kullanılarak integralinin yaklaşık değerini hesaplanmaktadır. Simpson yöntemi, belirli bir fonksiyonun integralini hesaplamak için kullanılan bir yöntemdir ve genellikle nümerik integrasyon için tercih edilir. Bu programda, bu yöntemi kullanarak verilen vektörün belirli bir aralıktaki alanı hesaplanmaktadır. Aşağıda kodun adım adım açıklaması bulunmaktadır.

Simpson kuralı, belirli bir fonksiyonun integralini yaklaşık olarak hesaplamak için kullanılan bir yöntemdir. Eğer n adet alt bölgeye böldüğümüz alanları hesaplıyorsak ve bu alt bölgelerin genişliği h ise, Simpson kuralının formülü şu şekildedir:

f x 0 + 4 i = 1 n 2 f x 2 i 1 + 2 i = 1 n 2 1 f x 2 i + f x n = h 3 ( f x 0 + 4 ( i = 1 n 2 f x 2 i 1 ) + 2 ( i = 1 n 2 1 f x 2 i ) + f x n )

Fonksyion simpsonOrnek adında tanımlanmıştır ve iki girdi alır: V (integrali alınacak vektör) ve h (adım büyüklüğü). Kod, Simpson yöntemini kullanarak bu vektörün integralinin yaklaşık değerini hesaplamak için girdi vektörünü (V) kullanır.

length() fonksiyonu kullanılarak vektörün uzunluğu n bulunur.

function sonuc = simpsonOrnek(V, h)
% Fonksiyon giriş değişkenleri
% V: n elemanlı bir vektör
% h: (b-a)/n

% Fonksiyon çıkış değeri
% sonuc: vektörün kapladığı alanın yaklaşık değeri

% V = [ 0.1 0.2 0.3 0.4 0.3 0.3 0.2 0.1 0.05];
% h = 0.05;

% Vektörün uzunlugunu bulalım.
n = length(V);
 

Ardından, vektörün eleman sayısının çift olup olmadığı kontrol edilir rem(n, 2) == 0. Eğer vektörün eleman sayısı çift ise hata verilir, çünkü Simpson yöntemi çift sayıdaki terimler için doğru sonuçlar üretmez.


% Eğer terim sayısı çiftse hata ver ve fonksiyondan çık
if rem(n, 2) == 0
    error('vektör terim sayısı tek olmalıdır.');
end 

İlk ve son terimler ayrı değişkenlere atanır. Bunlar V(1) ve V(end) değerleridir. Burada n vektördeki terim sayısını verdiğinden, son terimi bulmak için V(n) şeklinde bir atama da mümkündür.

% İlk ve son terimler
ilkTerim = V(1); %ilk terim
sonTerim = V(end); %son terim 

Simpson yöntemi formülü kullanılarak integralin yaklaşık değeri hesaplanır. Bu formülde, Simpson yönteminde kullanılan katsayılar olan tekKatsayi ve ciftKatsayi tanımlanır.

% tek terimlerin katsayısı: Simpson kuralından gelen bir sabit
tekKatsayi = 2;

%çift terimlerin katsayısı: Simpson kuralından gelen bir sabit
ciftKatsayi = 4; 

Ardından, tek indeksli terimlerin toplamı teklerToplami ve çift indeksli terimlerin toplamı ciftlerToplami değişkenleri oluşturulur ve başlangıç değeri olarak 0 atanır.


% Tek indexli terimlerin toplamı
teklerToplami = 0; % başlangıçta sıfırlıyoruz

% Çift indexli terimlerin toplamı
ciftlerToplami = 0; % başlangıçta sıfırlıyoruz 

5. Bunun için iki ayrı döngü kullanılır. Bir döngü tek indexli terimleri, diğeri ise çift indexli terimleri toplar.

%Tek indexli terimleri topla:
%1.,3.,5., ... terimler
for i = 1:2:n-1
    teklerToplami = teklerToplami + V(i);
end

% Çift indeksli terimleri topla
% 2.,4.,6.,... terimler
for i = 2:2:n
    ciftlerToplami = ciftlerToplami + V(i);
end 

İlgili formül kullanılarak toplamlar (teklerToplami) ve (ciftlerToplami), ilk terim (ilkTerim), son terim (sonTerim) ve katsayılar kullanılarak toplam değişkeninde birleştirilir.

% alan hesabı
toplam = (ilkTerim + (tekKatsayi * teklerToplami) ...
+ (ciftKatsayi * ciftlerToplami) + sonTerim); 

Son adım hesaplanır ve `sonuc` olarak fonksiyonun çağrıldığı yere döndürülür. Bu adımda, toplam değeri adım büyüklüğü ile çarpılır ve son olarak 3’e bölünür. Yani (h/3) ile çarpılır.

% Son adımın hesaplanması
sonuc = toplam * (h / 3); 

Son olarak fonksiyon sonlandırılır.

end  

Bu kod, Simpson yöntemi kullanarak verilen vektörün integralinin yaklaşık bir değerini hesaplar. Bu tür yaklaşımlar genellikle analitik çözümlerin mümkün olmadığı durumlarda ve sayısal hesaplama gerektiren problemlerde kullanılır.

Programın Test Edilmesi

Command Window içinde aşağıdaki komutları yazalım. 
Bu komutlar sırasıyla şu işlemleri gerçekleştirir:

  • Bir y vektörü oluşturulur.
  • Adım değeri için bir delta_h değeri belirlenir.
  • Fonksiyon sonucu integral isimli bir değişkene atanmak üzere fonksyion y ve delta_h girdileriyle çalıştırılır. Aşağıdaki sonuç elde edilir.
				
					>> y = [0.1 0.2 0.3 0.4 0.3 0.3 0.2 0.1 0.05];
>> delta_h = 0.05;
>> integral = simpsonOrnek(y, delta_h)

integral =

    0.0958

				
			

Bir Dakika!

Şu an MATLAB ile program yazıyoruz. Neden onun eşsiz avantajlarından faydalanmayalım? Bu hesaplamayı tek bir satırda da pekala yazabiliriz.

  function sonuc = simpsonOrnek(V, h)
    if rem(numel(V), 2) == 0
        error('vektör terim sayısı tek olmalıdır.');
    end
    sonuc = (h/3)*(V(1)+V(end)+ 2*sum(V(1:2:length(V)-1))+4*sum(V(2:2:length(V))));
  end 

Sonuç

Bu yazımızda anti-türevi alınması zor olan fonksiyonların Simpson kuralı yönteminden faydalanarak yaklaşık integral değerinin hesaplanmasını MATLAB ile gerçekleştirdik. 

Öncelikle çok ayrıntılı bir şekilde yeni başlayan herkesin anlayabileceği şekilde yazdım. Ardından konu anlaşılmışsa daha kısa bir formül ile aynı işi yapan bir fonksiyon daha yazdım.

Okunma Sayısı: 1