9 Ocak 2010 Cumartesi

integral bulmada sympson 1/3 kuralı ile sympson 3/8 kuralının beraber uygulanması

daha önce sympson 1/3 kuralını vermiştim bu kez sympson 1/3 ile 3/8 in beraber kullanılmasını  ekledim.çünkü hatırlarsanız 1/3 sadece aralık sayısı  çift olanlar için kullanılıyordu,tek olanlar için ise aşağıdaki kod geçerli olur. %kodu eklerken f fonksiyon dosyasını da eklemeyi unutmayın!!!!!
a=input('alt sını değerini girinz:');

b=input('üst sınır degerini giriniz:');

n=input('segment sayısını ggirniz:');

h=(b-a)/n;

if rem(n,2)==0

k=0;%0a atamayınca hata veriyor

p=0;

x=a:h:b;

for i=2:n %verilen n değeri çift olduğu için sympson 1/3 kuralı uygulanır

if rem(i,2)==0 %indisi çift olanlar(xin indisi 1den başladığı için kitaba göre ters oluyor)

k=k+4*f(x(i));

else %indisi tek olanalr

p=p+2*f(x(i));
end

end

I=(f(a)+f(b)+k+p)*(h/3)

syms x;

trueval=int(sin(x),a,b)

Et=trueval-I

Ea=-((((b-a)^5)/(180*n^4))*(int(sin(x),a,b)/(b-a)))

else %aralık sayısı tek ise sympson 1/3 ile 3/8 beraber kullanılır

if(n==3)%aralık 3 ise sadece sympson 3/8 uygulanır

x=a:h:b;

sum=f(x(1))+3*f(x(2))+3*f(x(3))+f(b);

I=((b-a)/8)*sum

else%aralık tek fakat 3den düyükse ilk 4 nokta için sympson 3/8 geriye kalan noktalara da sympson 1/3 uygulanır

x=a:h:b;

sum1=f(a)+f(4);

sum1=sum1+3*(f(2)+f(3));

I=(b-a)*(sum1/8)%sympson 3/8in uygulandığı kısım

sum2=f(4)+f(b);%geriye kalan noktalara sympson 1/3 uygulanır

for i=6:n

if rem(i,2)==0 %indisi çift olanlar(xin indisi 1den başladığı için kitaba göre ters oluyor)

k=k+4*f(x(i));

else %indisi tek olanalr

p=p+2*f(x(i));
end

end

sum2=sum2+k+p;

T=((b-a)/(3*n))*sum2

integral=I+T%en sonda bulunan iki integral değeri toplanır

end

end
f foNKSİYONU f.m dosyası
function y=f(x);

y=sin(x);

Hiç yorum yok:

 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri