• Sonuç bulunamadı

Sayısal Analiz(Prof. Dr. Erhan Coşkun, KTU,

N/A
N/A
Protected

Academic year: 2022

Share "Sayısal Analiz(Prof. Dr. Erhan Coşkun, KTU,"

Copied!
24
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

B ¨ol ¨um 1

Say¬sal Analiz(Prof. Dr. Erhan Co¸ skun, KTU, [email protected])

Bu bölümde matematiksel analiz türleri olarak bilinen analitik, say¬sal, kali- tatif ve sembolik analiz yöntemlerini k¬saca tan¬tarak, say¬sal analiz yön- teminin bütün a¸samalar¬n¬üç elemanter örnek üzerinde inceliyoruz.

1.1 Matematiksel analiz yöntemleri

Çözümü matematiksel yöntemlerin kullan¬lmas¬n¬ gerektiren bir problemin, ilgili matematiksel yöntemler yard¬m¬yla incelenmesine veya di¼ger bir de¼gimle analiz edilmesine matematiksel analiz ad¬verilmektedir. Herhangi bir mate- matiksel problem analitik, say¬sal, kalitatif veya sembolik analiz ad¬verilen yöntemlerden birisi veya birden fazlas¬yard¬m¬yla analiz edilebilir.

Analitik analiz, matematiksel problemleri çözerken s¬kça kulland¬¼g¬m¬z analiz yöntemidir. Bu analiz yöntemi ile verilen problem, ka¼g¬t ve kalem yard¬m¬yla ve bilinen çözüm yöntemleri ve matematiksel argümanlar kul- lan¬larak çözülür ve elde edilen çözüm irdelenir. Analitik analiz yöntemi, matematiksel analiz yöntemlerinden akla gelen ilk yöntemdir, ancak bu yön- tem her problem için ve özellikle son yüzy¬lda uygulamal¬ matematik kap- sam¬nda incelenmesi gereken problemlerin analizi için yeterli bir analiz yön- temi de¼gildir.

Konuya ¬¸s¬k tutmas¬aç¬s¬ndan a¸sa¼g¬da sunulan ve bir k¬sm¬ortaö¼gretim matematik ders müfredatlar¬nda ve di¼ger bir k¬sm¬ise elemanter lisans ders-

(2)

lerinde incelenen temel konulardan bir kaç¬na göz atal¬m:

1. a; b; c 2 R ve a 6= 0 olmak üzere ax2+ bx + c = 0 denkleminin köklerini belirlenmesi,

2. aij 2 R; bi 2 R olmak üzere

a11x + a12y = b1 a21x + a22y = b2 denklem sisteminin çözümü,

3.

R1 0

sin(x)dx integralinin hesaplanmas¬,

4. (x0; y0); (x1; y1)noktalar¬ndan geçen do¼gru denkleminin belirlenmesi ve son olarak ta

5. y0 = t y; t2 (a; b); y(a) = y0 ba¸slang¬ç de¼ger probleminin çözümünün belirlenmesi problemlerini gözönüne alal¬m.

Birinci problem için analitik analiz mümkündür: K¬saca denklem kök- lerini veren

x1;2 = b p

b2 4ac 2a

formülü mevcuttur. O halde bu problem analitik yöntemle çözülebilir. Ancak

¸simdi de

ax3+ bx2+ cx + d = 0 veya

ax4 + bx3+ cx2+ dx + e = 0

denklemlerinin köklerini bulmaya çal¬¸sal¬m. Bu durumda 3: veya 4: dereceden polinomlar¬n köklerini bulmam¬z gerekmektedir. Söz konusu denklem kök- lerinin belirlenmesi için de formüller 1 ve 2 mevcuttur, ancak pratik olarak uygulanamayacak kadar karma¸s¬kt¬rlar.

1Ömer Hayyam(1048-1131, ·Iranl¬)

2Girolamo Cardano (1501-1578, ·Italyan)

(3)

·Ikinci problem lineer bir denklem sistemidir ve çözümü yoketme yöntemi ad¬n¬ verilen bir yöntemle kolayca belirlenebilir. Ancak denklem ve bilin- meyen say¬s¬ artt¬¼g¬nda sistemin "ka¼g¬t-kalem" çözümü a¸s¬r¬ dikkat ve za- man gerektirir ve hatta belirli bir noktadan sonra ise mümkün olmaz. Oysa özellikle mühendislikte bir çok ara¸st¬rma problemi binler, yüzbinler ve hatta milyonlarca bilinmeyenli lineer sistemlerin çözümünü gerektirmektedir.

Üçüncü probleme gelince Z1

0

sin(x)dx = 1 cos(1)

oldu¼gunu kolayca görebiliriz. Ancak ¸simdi de Z1

0

sin(x2)dx

intregralini göz önüne alal¬m. Türevi sin(x2)fonksiyonuna e¸sit olan ve sonlu say¬da elemanter fonksiyonunun lineer kombinasyonu biçiminde ifade edilebilen hiç bir fonksiyon bulamay¬z. Bu ve benzeri bir çok fonksiyonun sonlu say¬da elemanter fonksiyonun lineer kombinasyonu biçiminde ifade edilebilen belirsiz integrali mevcut de¼gildir. O halde bu problem için de analitik analiz yöntemi uygun bir yöntem de¼gildir.

Dördüncü probleme bakt¬¼g¬m¬zda x0 6= x1 için (x0; y0),(x1; y1)noktalar¬n- dan geçen do¼gru denkleminin

y = y0+ y1 y0

x1 x0(x x0)

ba¼g¬nt¬s¬yla verildi¼gini hat¬rlayal¬m. Ancak en genel halde, verilen key… say¬- daki(örne¼gin n 3)

(x0; y0); (x1; y1); :::; (xn; yn) (1.1) nokta kümesini esas alarak, istenilen bir r 6= xi; i = 0; 1; :::; n noktas¬ndaki de¼geri tahmin etme i¸slemi olarak bilinen interpolasyon i¸slemi analitik analiz kapsam¬nda de¼gerlendirilemez. Benzer biçimde (1.1) ile verilen noktalar¬n- dan geçen polinomun hesaplanmas¬ için formül mevcut olsa da elde edilen polinomun istenilen bir noktadaki de¼gerinin hesaplanmas¬veya bu noktalara yeterince yak¬n uygun biçimdeki e¼grinin belirlenmesi problemi(e¼gri uydurma) analitik analiz kapsam¬nda incelenebilecek problemler de¼gildir.

(4)

Son olarak be¸sinci problem birinci mertebeden sabit katsay¬l¬bir ba¸slang¬ç de¼ger problemidir ve çözümü

y = t 1 + (1 a + y0)e(a t) olarak elde edilir. Ancak ¸simdi de

y0 = t y2; t2 (a; b) y(a) = y0

ba¸slang¬ç de¼ger problemini göz önüne alal¬m. Bilinen analitik yöntemlerle problemi çözebilir miyiz?

Yukar¬da gözönüne ald¬¼g¬m¬z problemlerin bir k¬sm¬nda veri say¬s¬n¬n art- mas¬ ve di¼ger bir k¬sm¬nda ise problem formülasyonununda yap¬lan ufak de¼gi¸siklikten sonra analitik analizin art¬k mümkün olmad¬¼g¬n¬gözlemliyoruz.

Bu durumda s¬kça ba¸svurulan yöntemler say¬sal analiz yöntemleridir.

Say¬sal analiz, genellikle analitik analizin mümkün olmad¬¼g¬veya bu yön- temle elde edilen çözümün kullan¬¸sl¬ olmad¬¼g¬ durumlarda bilgisayar yard¬- m¬yla problemin gerçek ya da genellikle yakla¸s¬k çözümünü belirleme yön- temidir.

Genellikle bilgisayar ortam¬nda gerçekle¸stirilebilen say¬sal analiz yöntem- leri, matemati¼gin do¼gu¸su itibariyle kullan¬lmakta olan analitik analiz yön- temlerine k¬yasla oldukça yeni bir yöntem türüdür ve özellikle XX. yüzy¬l¬n ikinci yar¬s¬nda geli¸sen ve yayg¬nla¸san bilgisayar teknolojisine paralel olarak önem kazanm¬¸st¬r. Say¬sal yöntemler olarak adland¬r¬lan say¬sal analiz yön- temleri ise çok çe¸sitli ara¸st¬rma alanlar¬nda kullan¬lmakta olup, bu kayna¼g¬n esas konusunu te¸skil etmektedirler.

Öte yandan kalitatif analiz ise çözümü belirlemeksizin(ya da belirleye- meksizin) çözüm hakk¬nda bilgi edinmeyi sa¼glayan analiz yöntemidir. Bu yöntem de modern ve k¬smen yeni bir analiz yöntemidir. Örne¼gin bir diferen- siyel denklemi çözmeden yön alanlar¬yard¬m¬yla çözüm e¼grilerinin davran¬¸s¬

belirlenebilir. ¸Sekil 1.1 de

y0 = y(1 y)

diferensiyel denklemi için elde edilen yön alanlar¬(k¬sa çizgiler) ve baz¬çözüm e¼grileri(sürekli çizgiler) görülmektedir. Bu örnekte gösterilen yön alanlar¬

herhangi bir yaz¬l¬ma ihtiyaç duyulmadan da elde edilebilir. Elde edilen yön alanlar¬na te¼get olan çözüm e¼grilerinin davran¬¸s¬kolayca tahmin edilebilir.

Son olarak sembolik analiz yönteminden bahsedelim. Sembolik analiz, analitik analizi mümkün olan ancak daha çok i¸slem karma¸s¬kl¬¼g¬na neden

(5)

¸

Sekil 1.1: Kalitatif analiz örne¼gi: y0 = y(1 y) denkleminin yön alanlar¬ve baz¬çözüm e¼grileri.

olan problemlerin analitik çözümlerinin bilgisayar cebir program¬ ad¬ ve- rilen programlar yard¬m¬yla elde etme yöntemidir. Sembolik analiz, 1980 li y¬llar itibariyle geli¸stirilen Maple[2], Mathematica[3], Maxima[6,7], veya MATLAB[3,4] sembolik araç kutusu veya daha de¼gi¸sik yaz¬l¬mlar yard¬m¬yla gerçekle¸stirilebilen ve k¬smen yeni bir analiz yöntemidir.

A¸sa¼g¬da verilen ba¸slang¬ç de¼ger problemini gözönüne alal¬m.

y00+ y0 = x

y(0) = 0; y0(0) = 0 (1.2)

(1.2) problemin analitik çözümünün

y = (x2 2x + 2)=2 e x

ile verildi¼gi yukar¬da bahsedilen yaz¬l¬mlardan herhangi birisi yard¬m¬yla ko- layca görülebilir. ¸Sekil 1.1 de verilen yön alanlar¬Maxima yaz¬l¬m¬n¬n plotdf fonksiyonu yard¬m¬yla elde edilmi¸stir.

MATLAB/Octave ve Maxima’n¬n matematiksel amaçla kullan¬m¬özetle ve s¬ras¬yla [?] ve [?] da incelenmektedir.

(6)

1.2 Say¬sal analiz süreci

Say¬sal analiz süreci

uygun bir matematiksel dille ifade edilmi¸s bir problem ile ba¸slay¬p, problemin çözümü için gerekli say¬sal yöntem(ve mümkünse yak¬nsakl¬k analizi),

söz konusu say¬sal yöntem için geli¸stirilen algoritma,

algoritman¬n uygun bir programlama diline dönü¸stürülmü¸s kodu veya di¼ger de¼gimle program¬,

geli¸stirilen program¬n örnek problemler üzerinde test edilmesi(uygulama) ve

sonuç, yorum, yöntemin kriti¼gi ile mümkünse zay¬f yönler için alternatif aray¬¸s a¸samalar¬ndan olu¸smaktad¬r.

Say¬sal analiz a¸samalar¬n¬ verilen bir fonksiyonun s¬f¬ryeri için bir yak- la¸s¬m belirleme problemi üzerinde inceleyelim:

1.2.1 Örnek 1: Verilen bir aral¬ktaki s¬f¬ryeri için yak- la¸ s¬m belirleme problemi

1. Problem:

f fonksiyonu [a; b] aral¬¼g¬nda tan¬ml¬ve aral¬¼g¬n¬n uç noktalar¬nda i¸saret de¼gi¸stiren (yani, f (a)f (b) < 0 ) sürekli bir fonksiyon olsun. Fonksi- yonunun [a; b] aral¬¼g¬ndaki r s¬f¬ryeri için yeterince küçük > 0 ile jf(c)j < kriterini sa¼glayan c = r yakla¸s¬m¬n¬belirleyiniz.

Öncelikle problemin çözümünün varl¬¼g¬na dikkat etmeliyiz. Sürekli fonksiyonlar için arade¼ger teoremi gere¼gince f fonksiyonunun [a; b] ara- l¬¼g¬nda en az bir reel s¬f¬r yeri oldu¼gunu biliyoruz. O halde problemin çözümü mevcuttur, yani jf(c)j < kriterini sa¼glayan en az bir c = r s¬f¬ryeri yakla¸s¬m¬mevcuttur.

Bir sonraki a¸sama ise problemin elektronik ortamda çözümünü mümkün k¬lacak olan ve say¬sal yöntem olarak bilinen uygun bir matematiksel yöntemin belirlenmesidir.

(7)

2. Say¬sal Yöntem( ikiye bölme yöntemi ): Say¬sal yöntem problemin elektronik ortamda çözümü için ne yap¬lmas¬gerekti¼gini ifade eder.

Bu amaçla ikiye bölme yöntemi ad¬verilen say¬sal yöntemi kullanal¬m.

Bu yöntem ile [a; b] aral¬¼g¬ile ba¸slanarak, bu aral¬k her ad¬mda iki e¸sit parçaya bölünür ve fonksiyonun i¸saret de¼gi¸stirdi¼gi alt aral¬k belirlenir.

Aral¬k bölme i¸slemine fonksiyonun i¸saret de¼gi¸stirdi¼gi yeni aral¬k ile de- vam edilir. ·I¸slemin ne zaman sonland¬r¬laca¼g¬n¬sonuçland¬rma kriteri ad¬verilen kriter belirler.

Sonuçland¬rma kriteri olarak, belirlenen yeni aral¬¼g¬n orta noktas¬ndaki fonksiyon de¼gerinin mutlak de¼gerce dan küçük olma kriteri olarak kabul edelim. Bu durumda elde edilen en son alt aral¬¼g¬n orta noktas¬n¬

s¬f¬ryeri için bir yakla¸s¬m olarak kabul edebiliriz.

Öteyandan elde edilen en son aral¬¼g¬n¬ uzunlu¼gunun yeterince küçük pozitif bir say¬dan küçük olmas¬kriteri gibi daha de¼gi¸sik sonuçland¬rma kriteri de kullan¬labilir.

Say¬sal yöntem seçimini, bu yöntem için geli¸stirilen algoritma takip etmelidir.

3. Algoritma: Say¬sal yöntemin hangi ad¬mlar¬takip edilerek, nas¬l uygu- lanaca¼g¬n¬ifade eder.

kullan¬c¬dan Girdi(input) ad¬verilen verilerin al¬nmas¬, yöntemin icras¬için gerekli her bir ad¬m ve

kullan¬c¬ya iletilecek sonuçlar¬n(Ǭkt¬veya Output) aç¬k ve net bir biçimde ifade edildi¼gi komutlar kümesidir.

Buna göre model problemimiz için Algoritma 1.1 a¸sa¼g¬da sunulmak- tad¬r.

(a) ad¬m¬nda kullan¬c¬n¬n s¬f¬ryerini belirlemek istedi¼gi fonksiyonu ve bu fonksiyonun i¸saret de¼gi¸stirdi¼gi aral¬¼g¬n¬n uç noktalar¬ile s¬f¬ryerini içeren en son alt aral¬¼g¬n ölçüsü olan > 0 sabitini tan¬mlamas¬isten- mektedir.

(b) de f (a)f (b) > 0 olmas¬ durumda yönemin çal¬¸smayaca¼g¬ ifade edilmektedir.

(8)

Algoritma 1.1 ·Ikiye bölme yöntemi algoritmas¬.

(a) Girdi: f; a; b;

(b) E¼ger f (a)f (b) > 0 ise ç¬k

(c) c = (a + b)=2 alt aral¬¼g¬n orta noktas¬, a; c; b; f (c) de¼gerlerini yaz (d) jf(c)j > oldu¼gu sürece

i. E¼ger f (a)f (c) < 0 ise b = c, de¼gilse a = c (s¬f¬ryerini içeren yeni [a; b] aral¬¼g¬)

ii. c = (a + b)=2

iii. a; c; b; f (c) de¼gerlerini yaz

(c)de [a; b] aral¬¼g¬n¬n orta noktas¬belirlenmekte ve c de¼gi¸skenine atan- makta ve a; c; b; f (c) de¼gerleri yazd¬r¬lmaktad¬r.

(d) de f (c)j > oldu¼gu sürece

(d) (i) de s¬f¬r yerini içeren alt aral¬k belirlenerek, bu alt aral¬k tekrar [a; b] aral¬¼g¬ olarak adland¬r¬lmaktad¬r. E¼ger f (a)f (c) < 0 ise yeni [a; b] = [a; c]; yani b = c, de¼gilse yeni [a; b] = [c; b]; yani a = c dir.

(d) (ii) de yeni alt aral¬¼g¬n orta noktas¬belirlenmekte (d) (iii) de ise a; c; b; f (c) de¼gerleri yazd¬r¬lmaktad¬r.

4. Program(Kod): Bir sonraki a¸sama ise algoritmas¬ belirlenen prob- leme ait program geli¸stirme a¸samas¬d¬r. Bu a¸sama algoritma ile belir- lenen komutlar kümesinin Bilgisayar Dili’ne dönü¸stürülmesi a¸samas¬d¬r.

Bu ba¼glamda uygun bir dil(Basic, Pascal, Fortran, C, vs) veya Prog- ramlama Dili olarak ta kulan¬labilen ve olu¸sturulan programlara zengin kütüphane deste¼gi veren yaz¬l¬mlar da tercih edilebilir.

Uygulamalar¬m¬z için ço¼gunlukla MATLAB veya ayn¬ yaz¬m kural- lar¬n¬kullanan Octave’¬[?] kullan¬yoruz. Yukar¬daki problem için Octave program¬a¸sa¼g¬da verilmektedir.

Octave (http : ==www:gnu:org=sof tware=octave) adresinden kolayca eri¸silebilen ücretsiz bir yaz¬l¬md¬r ve matematiksel i¸slemler için kul- lan¬m¬[?] de özet olarak incelenmi¸stir.

5. Uygulama

(9)

function c=ikibol(f,a,b,eps)

% f fonksiyonunun [a,b] aral¬¼g¬ndaki

% s¬f¬ryerini ikiye bölme yöntemi ile bulur.

% Yaz¬l¬m¬: c=ikibol(f,a,b,eps)

% eps>0 yeterince küçük bir sabit

%--- if f(a)*f(b)>0

error("ikiye bolme yöntemi uygulanamaz");

end;

c=(a+b)/2;

f printf (0 a c b f (c) nn0);

f printf (0%9:6f %9:6f %9:6f %9:6fnn0; a; c; b; f (c));

while abs(f(c))>eps if f(a)*f(c)< 0

b=c;

else a=c;

end

c=(a+b)/2;

f printf (0%9:6f %9:6f %9:6f %9:6f nn0; a; c; b; f (c));

end

%--- Program 1.1: MATLAB/Octave ile ikiye bölme yöntemi uygulamas¬.

(10)

ÖRNEK 1.1. f (x) = cos(x) x fonksiyonunun [0; 2] aral¬¼g¬ndaki s¬- f¬ryerini ikiye bölme yöntemi yard¬m¬yla belirleyiniz.

Çözüm.

f fonksiyonunu

f=inline(’cos(x)-x’);

komutu ile tan¬mlayal¬m. Daha sonra a¸sa¼g¬daki komut yard¬m¬yla Prog- ram 1.1 i çal¬¸st¬rarak a¸sa¼g¬da gösterilen sonuçlar¬elde edebiliriz.

>>ikibol(f,0,2,1e-5)

0.000000 1.000000 2.000000 -0.459698 0.000000 0.500000 1.000000 0.377583 0.500000 0.750000 1.000000 -0.018311 0.500000 0.625000 0.750000 0.185963 0.625000 0.687500 0.750000 0.085335 0.687500 0.718750 0.750000 0.033879 0.718750 0.734375 0.750000 0.007875 0.734375 0.742188 0.750000 -0.005196 0.734375 0.738281 0.742188 0.001345 0.738281 0.740234 0.742188 -0.001924 0.738281 0.739258 0.740234 -0.000289 0.738281 0.738770 0.739258 0.000528 0.738770 0.739014 0.739258 0.000120 0.739014 0.739136 0.739258 -0.000085 0.739014 0.739075 0.739136 0.000017 0.739075 0.739105 0.739136 -0.000034 0.739075 0.739090 0.739105 -0.000008 ans =

0.7391

6. Yak¬nsakl¬k Analizi

Haz¬rlanan program¬n do¼gru çal¬¸st¬¼g¬n¬n kontrol edilmesini takip eden son a¸sama ise elde edilen sonuçlar¬n irdelenmesi ve yorumlanmas¬d¬r.

Bu ba¼glamda cevapland¬r¬lmas¬gereken sorular:

(11)

Yöntemin söz konusu aral¬ktaki s¬f¬ryerini her zaman belirleyip ya da belirleyemeyece¼gi(Teorem 1.1)

S¬f¬ryerini belirleyebilme h¬z¬(orta noktalardan olu¸san dizinin yak¬n- sama h¬z¬).

Bu sorulara verece¼gimiz cevaplar yard¬m¬yla yöntemin yak¬nsak- l¬¼g¬, yak¬nsama h¬z¬ve bilgisayar sistem kaynaklar¬n¬hangi düzeyde kulland¬¼g¬ konusunda bilgi sahibi oluruz. Bu bilgiler yöntem ait

“kimlik ” bilgileridir ve bir di¼ger yöntemle kar¸s¬la¸st¬r¬l¬rken kul- lan¬l¬r.

TEOREM 1.1. f fonksiyonu [a; b] = [a1; b1] aral¬¼g¬n¬n uç nok- talar¬nda i¸saret de¼gi¸stiren sürekli bir fonksiyon ve r de fonksiyonun her n için f (an)f (bn) < 0 ¸sart¬n¬sa¼glayan [an; bn] aral¬¼g¬ndaki s¬- f¬ryeri ve fcng1n=1 ise cn= (an+bn)=2 ile tan¬mlanan orta noktalar dizisi olsun. Bu taktirde

n!1lim cn= r dir.

r s¬f¬ryeri için

jr cnj bn an 2

oldu¼gu aç¬kt¬r. Öte yandan her bir alt aral¬¼g¬n uzunlu¼gu önceki alt aral¬¼g¬n uzunlu¼gunun yar¬s¬na e¸sit oldu¼gundan

jr cnj bn an

2 = bn 1 an 1

22 = = b1 a1 2n

elde ederiz. Yukar¬daki e¸sitsizlikten limn!1jr cnj = 0 elde ede- riz. Öte yandan

jr cnj r cn jr cnj

e¸sitsizli¼gi ve genel matematik dersinden bilinen s¬k¬¸st¬rma teore- minden sonuç aç¬kça görülür.

TANIM 1.1. Bir r noktas¬na yak¬nsayan fcng1n=0dizisi verilmi¸s olsun.

E¼ger her n N için

jr cn+1j jr cnj

(12)

e¸sitsizli¼gi sa¼glanacak biçimde > 0; 1 reel say¬lar¬ ve N > 0 tam- say¬s¬ mevcutsa fcng1n=1 dizisi -¬nc¬ basamaktan yak¬nsak bir dizidir denir. = 1 olmas¬ durumunda yak¬nsama için 2 (0; 1) olmal¬d¬r ve bu durumda diziye lineer yak¬nsak dizi ad¬ verilir. = 2 olmas¬

durumda ise diziye kuadratik yak¬nsak dizi ad¬verilir.

Ikiye bölme yöntemi için·

jr cn+1j bn+1 an+1

2 = 1

2

bn an 2 ve

jr cnj bn an 2 e¸sitsizliklerini kar¸s¬la¸st¬rarak

jr cn+1j = 1

2jr cnj

elde ederiz. O halde yöntem lineer olarak yak¬nsakt¬r ve jr cn+1j=jr cnj = 12 sabiti ise ortalama yak¬nsakl¬k oran¬ olarak tan¬mlan¬r.

7. Alternatif Aray¬¸slar

En iyi say¬sal yöntem, gerçek sonucu en büyük hassasiyetle ve minimal bilgisayar bellek ve zaman kayna¼g¬kullan¬m¬ile elde eden yöntemdir.

Alternatif olarak daha de¼gi¸sik yöntemler uygulanabilir:

Kiri¸sle Bölme(Regula Falsi, false position) yöntemi: Genel- likle Regula Falsi olarak bilinen yöntem, her ad¬mda aral¬¼g¬orta noktas¬ndan ikiye bölmek yerine, (a; f (a)); (b; f (b)) noktalar¬n¬bir- le¸stiren kiri¸sin x eksenini kesim noktas¬yard¬m¬yla aral¬¼g¬iki alt parçaya böler. Kiri¸sin ekseni kesim noktas¬n¬belirlemek için önce- likle kiri¸s denklemini gözönüne alal¬m:

y = f (a) +f (b) f (a)

b a (x a)

Bu do¼grunun x = c olarak adland¬raca¼g¬m¬z x eksenini kesim nok- tas¬n¬, y = 0 alarak

x = c = a (b a)

f (b) f (a)f (a) (1.3)

(13)

olarak elde ederiz.

Bu yönteme ait algoritmay¬, Algoritma 1.1 de küçük bir de¼gi¸siklik yapmak suretiyle elde edebiliriz: Algoritma 1.1 de

c = (a + b)=2 yerine

c = a (b a)

f (b) f (a)f (a) almak yeterlidir.

Uyar¬. ikibol:m isimli dosyada da ayn¬ de¼gi¸sikli¼gi yaparak elde et- ti¼giniz program¬ kirislebol.m isimli dosyada kaydediniz. function iki- bol(f,a,b) sat¬r¬n¬ise function kirislebol(f,a,b) olarak de¼gi¸stirmeyi unut- may¬n¬z.

1.3 Di¼ ger alternatif yakla¸ s¬mlar

Bir di¼ger alternatif ise kiri¸s yöntemidir:

Kiri¸s Yöntemi: Kiri¸sle bölme yöntemindeki s¬f¬ryerini içeren aral¬kla ba¸slay¬p(yani f (a)f (b) < 0) ve yine s¬f¬ryerini içeren alt aral¬k ile de- vam etme kriterinden vazgeçilebilir. Bu durumda verilen f fonksiyonu ve s¬f¬ryerine yak¬n kom¸suluktaki key… iki a,b noktas¬ ile ba¸slayarak (a; f (a)); (b; f (b)) noktalar¬ndan geçen kiri¸sin x eksenini kesti¼gi c nok- tas¬(1.3) ile belirlenir. Daha sonra en güncel iki yakla¸s¬m noktas¬olan a,b yi a = b, b = c olarak elde edilerek, i¸sleme jf(c)j > kriteri do¼gru oldu¼gu sürece devam edilir. Elde edilen en son c de¼geri s¬f¬ryeri için yakla¸s¬m kabul edilir. Bu yöntem kiri¸sle bölme yöntemi ile ço¼gu kez kar¬¸st¬r¬l¬r ve Kiri¸s(secant) yöntemi olarak adland¬r¬l¬r.

Yukar¬da incelenen kiri¸sle bölme yöntemi, ikiye bölme yöntemi ve kiri¸s yönteminin bir kombinasyonudur. A¸sa¼g¬daki program parças¬n¬ ince- leyiniz:

%--- c=a-(f(a)*(b-a))/(f(b)-f(a));

f printf (0 a c b f (c) nn0);

(14)

f printf (0%9:5f %9:5f %9:5f %9:5fnn0; a; c; b; f (c));

while abs(f(c))>eps a=b;

b=c;

c=a-(f(a)*(b-a))/(f(b)-f(a));

f printf (0%9:5f %9:5f %9:5f %9:5fnn0; a; c; b; f (c));

end

%--- Uyar¬. Kiri¸sle bölme yöntemi ile kiri¸s yöntemini kar¬¸st¬rmay¬n¬z ve aralar¬n- daki fark¬tart¬¸s¬n¬z.

Örnek 2 de say¬sal analiz a¸samalar¬n¬ bir fonksiyonun verilen bir nokta kom¸sulu¼gundaki s¬f¬ryerini içeren aral¬¼g¬ belirleme problemi üzerinde inceleyeliyoruz.

1.3.1 Örnek 2: Verilen bir nokta kom¸ sulu¼ gunda s¬f¬r- yerini içeren aral¬¼ g¬belirleme problemi

Verilen bir f fonksiyonunun ve yine verilen bir x0b noktas¬kom¸sulu¼gundaki s¬f¬ryerini içeren [a; b] aral¬¼g¬n¬belirleyelim.

1. Problem(S¬f¬ryerini içeren aral¬k belirleme) Reel say¬lar¬n uygun bir alt kümesi üzerinde tan¬ml¬ve reel s¬f¬ryeri olan sürekli bir f fonk- siyonun verilen bir x0b noktas¬ kom¸sulu¼gundaki s¬f¬ryerini içeren [a; b]

aral¬¼g¬n¬belirleyiniz.

2. Say¬sal yöntem(sa¼g veya sol yönde tarama): x0b noktas¬n¬içeren uy- gun bir [x min; x max] kümesine s¬f¬ryeri tarama aral¬¼g¬ ad¬ verelim.

x0 = x0b noktas¬ndan ba¸slayarak önce sa¼ga do¼gru, h ad¬m uzunluklu xi+1= xi+ h; i = 0; 1; 2; :::

ile tan¬mlanan noktalar¬nda xi+1 < x max oldu¼gu sürece f (xi)f (xi+1) <= 0

e¸sitsizli¼gini sa¼glayan ilk (xi; xi+1) nokta çiftini belirleyelim. Bu du- rumda a = xi; b = xi+1 dir.

(15)

E¼ger belirtilen kriterleri sa¼glayan nokta çifti bulunamaz ise, bu du- rumda x0 = x0b noktas¬ndan ba¸slayarak, xi+1> x min oldu¼gu sürece

xi+1= xi h; i = 0; 1; 2; :::

ile tan¬mlanan noktalarda yukar¬daki e¸sitsizli¼gin sa¼gland¬¼g¬ilk (xi+1; xi) nokta çiftini belirleyelim. Bu durumda a = xi+1; b = xi dir.

E¼ger sol yönde tarama i¸sleminde de belirtilen kriteri sa¼glayan nokta çifti bulunamaz ise bu durumda [x min; x max] tarama aral¬¼g¬nda s¬f¬ryerini içeren alt aral¬k belirlenememi¸s olur.

3. Yönteme ait algoritma a¸sa¼g¬da verilmektedir:

Algoritma 1.2 S¬f¬ryerini içeren aral¬k belirleme algoritmas¬

(a) Girdi : f; x0b; R

(b) Varsay¬lan parametreler:

i. xmin = x0b R; xmax = x0b+ R s¬f¬ryeri tarama aral¬¼g¬d¬r.

ii. h = 0:1 ard¬¸s¬k noktalar aras¬mesafe, x0 = x0b ilk tahmini de¼ger (c) Sa¼g yönde tarama:

i. x1 = x0+ h

ii. x1 < xmax oldu¼gu sürece

A. e¼ger f (x0)f (x1) 0 ise X = [x0; x1] tan¬mla ve ç¬k B. de¼gilse x0 = x1; x1 = x0+ holarak tan¬mla ve c(ii) ye git (d) Sol yönde tarama

i. x0 = x0b; x1 = x0 h ii. x1 > xmin oldu¼gu sürece

A. e¼ger f (x0)f (x1) 0 ise X = [x1; x0] tan¬mla ve ç¬k

B. de¼gilse x0 = x1; x1 = x0 h olarak tan¬mla ve d(ii) ye git (e) S¬f¬ryeri için tahmini aral¬k bulunamam¬¸st¬r yaz ve ç¬k.

4. Program(Kod) Algoritma 1.2 ye ait Program 1.2 a¸sa¼g¬da verilmek- tedir.

(16)

%--- function X=bul(f,x0b,R)

x0=x0b; % aral¬k uzunluk ölçüsü ve ba¸slang¬ç noktas¬

xmin=x0-R;xmax=x0+R; % aral¬k uç noktalar¬

h=0.1; %tarama ad¬m uzunlu¼gu

x1=x0+h; test=1; % döngü parametresi while test %sa¼g yönde arama

if f(x0)*f(x1)<=0 X=[x0,x1]; return;

else

x0=x1; x1=x0+h;test=x1<xmax;

end;

end

x0=x0b; x1=x0-h;test=1;

while test %sol yönde arama

if f(x0)*f(x1)<=0 X=[x1,x0]; return;

else

x0=x1;x1=x0-h;test=x1>xmin;

end;

end

disp(’s¬f¬ryerini içeren aral¬k bulunamad¬’);X=[];

%--- Program 1.2: Verilen x0 kom¸sulu¼gunda s¬f¬ryerini içeren aral¬k belirleme uygulamas¬.

(17)

5. Uygulama

ÖRNEK 1.2. f (x) = exp(x) x 4 fonksiyonunun x0 = 0 noktas¬

kom¸sulu¼gundaki s¬f¬ryerini içeren ve h = 0:1 uzunluklu [a; b] aral¬¼g¬n¬

belirleyiniz.

>> f=inline(’exp(x)-x-4’) f =

Inline function:

f(x) = exp(x)-x-4

>> X=bul(f,0) X= 1.7000 1.8000

ÖRNEK 1.3. f (x) = log(x) x + 4 fonksiyonunun x0 = 10 noktas¬kom¸su- lu¼gundaki s¬f¬ryerini içeren ve h = 0:1 uzunluklu [a; b] aral¬¼g¬n¬belirleyiniz.

>> f=inline(’log(x)-x+4’) f =

Inline function:

f(x) = log(x)-x+4

>> X=bul(f,10) X=5.7000 5.8000

6 Alternatif Aray¬¸slar

Verilen bir fonksiyonun s¬f¬ryerini içeren aral¬¼g¬belirleyen bu yöntem ile yukar¬da verilen ikiye bölme yöntemini birlikte kullanarak, fonksiyonun verilen bir nokta kom¸sulu¼gundaki s¬f¬ryerini yakla¸s¬k olarak belirleye- biliriz.

(18)

1.3.2 Örnek 3: Bir nokta kom¸ sulu¼ gunda s¬f¬ryeri belir- leme problemi

Örnek 1 de geli¸stirilen yöntem ile Örnek 2 deki yöntemi birle¸stirerek hibrid olarak adland¬r¬lan bir karma yöntem geli¸stirebiliriz.

1. Problem: Verilen bir f fonksiyonunun yine verilen bir x0 noktas¬

kom¸sulu¼gundaki s¬f¬ryerini belirleyiniz.

2. Yöntem(karma yöntem): Öncelikle verilen bir f fonksiyonunun yine verilen bir x0 noktas¬ kom¸sulu¼gundaki s¬f¬ryerini içeren [a; b] aral¬¼g¬n¬

Örnek 2 de geli¸stirdi¼gimiz yöntem ile belirledikten sonra, elde edilen aral¬¼g¬ ikiye bölme yöntemine göndererek fonsiyonunu s¬f¬ryerini be- lirleyebiliriz.

3. Algoritma Yönteme ait algoritma a¸sa¼g¬da verilmektedir.

Algoritma 1.3 Verilen x0 noktas¬kom¸sulu¼gunda s¬f¬ryeri belirleme algorit- mas¬.

(a) Girdi f,x0

(b) f nin s¬f¬ryerini içeren [a,b] aral¬¼g¬n¬Örnek 2 deki yöntem ile belirle (c) i. e¼ger f(a)=0 ise c=a,

ii. de¼gil ve e¼ger f(b)=0 ise c=b dir,

iii. de¼gilse Örnek 1 deki yöntem ile c=ikibol(f,a,b) ile c yi bul (d) Ǭkt¬: c

4. Program Algoritmaya ait program a¸sa¼g¬da verilmektedir.

5. Test

ÖRNEK 1.4. f (x) = log(x) x + 4 fonksiyonunun x0 = 4 noktas¬

kom¸sulu¼gundaki s¬f¬ryerini belirleyiniz.

>> f=inline(’log(x)-x+4’) f =

(19)

%--- function c=fsifir(f,x0);

X=bul(f,x0);a=X(1);b=X(2);

if f(a)==0 c=a;

elseif f(b)==0 c=b;

else

c=ikibol(f,a,b);

end

%--- Program 1.3: Girilen nokta kom¸sulu¼gundaki s¬f¬ryerini belirleme uygulamas¬.

Inline function:

f(x) = log(x)-x+4

>> fsifir(f,4) ans =

5.7490

Ayn¬ i¸slem MATLAB/OCTAVE fzero fonksiyonu yard¬m¬yla da ger- çekle¸stirilebilir:

>> fzero(f,4) ans =

5.7490

ÖRNEK 1.5. f(x) = xsin(1=x) fonksiyonunun x0 = 4 noktas¬kom¸su- lu¼gundaki s¬f¬ryerini belirleyiniz.

>> f=inline(’x*sin(1/x)’)

(20)

f =

Inline function:

f(x) = x*sin(1/x)

>> fsifir(f,4) ans =

0.3183

elde ederiz.

Benzer yaz¬l¬mlarla kar¸s¬la¸st¬rma:

MATLAB/Octave fzero fonksiyonunun yukar¬da tan¬mlanan f fonksi- yonunun s¬f¬ryerini x0 = 4 ba¸slang¬ç noktas¬yla belirleyememektedir:

>> fzero(f,4)

Exiting fzero: aborting search for an interval containing a sign change because NaN or Inf function value encountered during search.

(Function value at -Inf is NaN.)

Check function or try again with a different starting value.

ans =NaN

Ancak ba¸slang¬ç noktas¬ fonksiyonun s¬f¬ryerine daha yak¬n seçilerek, fzero yard¬m¬yla da s¬f¬ryeri belirlenebilmektedir:

>>fzero(f,1) ans =

0.3183

(21)

6. Alternatif aray¬¸slar

Verilen bir reel x0 noktas¬kom¸sulu¼gunda reel s¬f¬ryerini bulan yöntem, karma¸s¬k s¬f¬ryerini bulmak için geli¸stirilebilir.

Bu konu Bölüm 4 te teferruatl¬olarak incelenmektedir.

Al¬¸st¬rmalar 1.1.

1.

A = a11 a12

a21 a22 ; b = b1

b2 ; X = x y

biçimindeki küçük boyutlu bir problem için AX = b denklem sisteminin say¬sal analizini a¸sa¼g¬daki ad¬mlar¬uygulayarak gerçekle¸stiriniz:

(a) det(A) 6= 0 ise Cramer yöntemini say¬sal yöntem olarak deneyiniz.

det(A) = 0 ise yöntemin uygulanamayaca¼g¬ mesaj¬n¬ kullan¬c¬ya ile- tiniz.

(b) Yönteme ait algoritman¬z¬ ad¬m ad¬m ve aç¬k bir biçimde yaz¬n¬z.

Algoritma kullan¬c¬dan A2 2 matrisi ve b2 1vektörünü alarak X2 1

çözümünü sunmal¬d¬r.

(c) Algoritmaya ait program¬n¬z¬Octave yaz¬l¬m diline uygun olarak geli¸stiriniz.

(d) Program¬n¬z farkl¬A matrisleri ve b sa¼g yan vektörleri için test yap¬n¬z.

2.

ax2 + bx + c = 0

denkleminin köklerini belirleme probleminin say¬sal analizini a¸sa¼g¬daki ad¬m- lar¬uygulayarak gerçekle¸stiriniz.

(a) a 6= 0 için bilinen kuadratik polinom kök formüllerini say¬sal yöntem olarak deneyiniz.

(b) Yönteme ait algoritman¬z¬ad¬m ad¬m ve aç¬k bir biçimde yaz¬n¬z. Al- goritma kullan¬c¬dan a; b; c katsay¬lar¬n¬ alarak, reel veya kompleks kökleri belirlemelidir.

(c) Algoritmaya ait program¬n¬z¬Octave yaz¬l¬m dilinde geli¸stiriniz.

(d) Program¬n¬z¬farkl¬a; b; c katsay¬lar¬için test yap¬n¬z.

(e) a = 0olmas¬durumundaki kökü ayr¬ca hesaplatmay¬unutmay¬n¬z.

(22)

3. Soru 2 deki analiziniz yard¬m¬yla A2 2 matrisinin özde¼gerlerini belirleme probleminin say¬sal analizini gerçekle¸stiriniz.

4.

x2+ y2 = r2 ax2+ y = 0

çember ve parabolünün arakesit noktalar¬n¬ belirleme probleminin say¬sal analizini gerçekle¸stiriniz. Verilen r yar¬çap¬ve a 6= 0 katsay¬s¬için her iki arakesit noktas¬belirlenmelidir.

5. ·Ikiye bölme yöntemine ait Program 1.1 i a¸sa¼g¬da verilen fonksiyonlar ve [a; b] aral¬klar¬ için çal¬¸st¬rarak s¬f¬ryerlerini belirleyiniz. Epsilon sabitini eps = 1e 10 olarak al¬n¬z.

(a) f (x) = x2 5x; a = 2; b = 3 (b) f (x) = x3 x 1; a = 2; b = 3 (c) f (x) = ln(x + 1) 14x2; a = 1; b = 4 (d) f (x) = 5e x coshx; a = 0; b = 4

6. Soru 5 i kiri¸sle bölme(regula falsi) yöntemi için tekrarlay¬n¬z.

7. Soru 5 i kiri¸s(secant) yöntemi için tekrarlay¬n¬z.

8. Kullan¬c¬dan f fonksiyonu , a,b de¼gerleri ve eps tolerans¬ile birlikte yontem isimli bir de¼gi¸sken de¼gerini de alarak yontem = 1 olmas¬durumunda ikiye bölme yöntemini, yontem = 2 olmas¬durumunda kiri¸sle bölme yöntemini ve di¼ger durumlarda ise kiri¸s yöntemini ça¼g¬rarak s¬f¬ryerini belirleyen bir uygulama geli¸stiriniz.

9. Soru 5 te verilen fonksiyonlar¬ve yine verilen a de¼gerlerini x0 = a alarak Program 1.2 yard¬m¬yla verilen fonksiyonlar¬n s¬f¬ryerlerini içeren aral¬klar¬

hesaplay¬n¬z.

10. ·Ikiye bölme yöntemini, her ad¬mda eldilen aral¬k içersindeki rasgele üretilen bir noktay¬(örne¼gin MATLAB/Octave ortam¬nda rand fonksiyonu ile ) c noktas¬olarak kabul edecek biçimde modi…ye ediniz. Elde etti¼giniz yöntemi ikiye bölme yöntemiyle kar¸s¬la¸st¬r¬n¬z. Ne gözlemliyorsunuz?

(23)

11. Program 1.3 ile tan¬mlanan f sif ir program¬ ve MATLAB/Octave’a ait f zero programlar¬yard¬m¬yla Soru 5 te verilen fonksiyonlar¬n s¬f¬ryerlerini yine ayn¬soru da verilen a de¼gerlerini ba¸slang¬ç noktas¬alarak hesaplay¬n¬z.

12. MATLAB/Octave ortam¬nda roots komutu, katsay¬lar¬verilen polinomun s¬f¬r yerlerini bulur. Buna göre Soru 5(a),(b) deki polinomlar¬n katsay¬lar¬n¬

girerek köklerini elde ediniz. Elde etti¼giniz sonuçlar yukar¬daki formül ile elde edilen sonuçlarla ayn¬olmal¬d¬r. Örne¼gin

>> roots([a b c]) komutu ile

p(x) =ax2+ bx + c polinomunun kökleri hesaplan¬r.

13. Bilgisayar¬n¬z¬n bellek kullan¬m kapasitesini test yap¬n¬z:

MATLAB/Octave ortam¬nda A = rand(n) komutu ile n = 1000 için rasgele bir An n matrisini üreterek, matrisin tersi, determinant¬ve rank¬n¬

bulmaya çal¬¸s¬n¬z.

n = 2000; 4000; 10000

için ayn¬i¸slemleri yapmaya çal¬¸sarak tersini hesaplayabilece¼giniz en büyük boyutlu matrisi bulmaya çal¬¸s¬n¬z.

14. Rasgele üretece¼giniz A matrisi ve b vektörü için MATLAB/Octave or- tam¬nda X = Anb komutuyla çözebilece¼giniz en büyük boyutlu AX = b denklem sisteminin boyutunu belirlemeye çal¬¸s¬n¬z.

15. Bilgisayar¬n¬z¬n CPU h¬z¬n¬test yap¬n¬z:

SN = XN k=1

1=k toplam¬n¬

N = 1000; 10000; 100000; 1000000

de¼gerleri için hesaplayarak her bir i¸slem için kullan¬lan CPU zaman¬n¬be- lirlemeye çal¬¸s¬n¬z. Artan N de¼gerleri için CPU zaman¬nas¬l de¼gi¸smektedir.

N de¼gerlerine kar¸s¬, toplama i¸slemi için gerekli CPU zamanlar¬n¬n gra…¼gini çizdiriniz. Bunun için MATLAB/Octave ortam¬nda cputime komutunu uygulayan a¸sa¼g¬daki program¬kullanabilirsiniz:

(24)

function sonuc=topla(N) topla=0;

zaman=cputime;

for i=1:N

topla=topla+1/i;

end

zaman=cputime-zaman;

disp([’zaman=’,num2str(zaman)]);

Referanslar

Benzer Belgeler

Bu polinom yardm ile f(0.5) de§erine bir yakla³mda bulununuz ve yakla³mda olu³an hata için bir üst snr

te olduğu amacı belli eder; metot ise, hu amaca götüren yollan gösterir. Sosyolojinin konusu toplum ve toplumsal düşünüş ve davranışları vasıflama

Sabah sporunda Fatih 2 saat koşarken, Emre 2 saat yürüyor. 2- Buna göre Fatih, Emre’den kaç kalori fazla yakmıştır?.. A) 234 B) 244

kom¸sulu¼ gundaki Taylor polinomundan faydalan¬labilir[7], Nonlineer problemlerin bir nokta kom¸sulu¼ gundaki davran¬¸s¬, söz konusu nokta kom¸sulu¼ gunda Taylor

de¼geri at¬¸ s e¼gimi olarak dü¸ sünüldü¼günde hede…n yukar¬s¬na at¬¸ s yap¬ld¬¼g¬nda e¼gim dü¸ sürülerek tekrar at¬¸ s yap¬lmaktad¬r. Hede…n a¸ sa¼g¬na

Özde¼ gerler basittirler, yani her bir özde¼ gere tek bir özfonksiyon kar¸ s¬l¬k gelir(bir özfonksiyonun sabit kat¬da özfonksiyondur, fakat sabit katlar ile elde

Dirichlet s¬n¬r ¸ sartlar¬n¬[0; 1] aral¬¼ g¬üzerinde sa¼ glayan RSL problemi- nin özfonksiyonlar¬n¬ lineer kombinasyonu olarak ifadelerinin s¬ras¬yla Fourier serisi,

16th–20th April 2012, University of East Anglia, Norwich. Inertial Navigation