Prof.Dr. Nurettin UMURKAN 1 / 89

advertisement
2010/11
Güz
Teknoloji, Algoritma ve Bilgisayar Tarihi
Nümerik Analiz
Teknoloji insan gereksinimleri ile şekillenmektedir. Đnsan
doğduğu andan itibaren yaşamını sürdürmesi için bir şeyler
öğrenme çabası içindedir. Böylece insanlar yeni düşünceler
ve yeni fikirler geliştirir. Bu da yeni bilgilerin ve buna bağlı
olarak yeni teknolojilerin doğmasına neden olur. Đnsanlar
bilimsel araştırmaları doğası gereği merak edip
sorgulamaları sonucu yaptıkları çalışmalarla meydana
getirirler. ’technoslogos’ teknolojinin Latince karşılığıdır.
’techne’ yapmak, ‘logos’ bilmek anlamına gelmektedir. Alet
ve edevatın yapılması için gerekli olan bilgi ve yetenektir.
Sanayinin en belirgin ögesi teknoloji üretebilmektir. Uluslar
teknoloji üretip, bilgiyi ürün tasarlamada kullanabildiği
ölçüde ticarette rekabet üstünlüğünü sağlayabilir. Bu yüzden
ülkelerin teknoloji üretmesi gelişmişlikleriyle doğrudan
ilgilidir.
• Đnsan yaşamını kökten etkileyen ve onların daha rahat ve
güvenli yaşamalarını sağlayan unsurlar bilgi ve onun
teknik birikimi olan teknolojidir. Đnsan yaşadıklarından,
gözlemlediklerinden, yaptıklarından, hissettiklerinden,
istek ve gereksinimlerinden yararlanarak yaşamını
kolaylaştıracak, kendisine yardımcı olacak unsurları
üretmiştir. Đnsan bilgisini, becerisini ve merakını
karıştırarak araç-gereç, silah, barınak, tarım araçları
vb. gereksinimlerini çevrelerinde bulunan kil, taş, tahta
gibi malzemelerden yapmıştır. Đnsan gereksinimleri,
teknolojinin gelişmesinde en önemli rolü oynamıştır.
Đnsan, doğanın yasalaştırdığı evrensel ihtiyaçları değil,
kendimize ait olarak algıladığımız ihtiyaçları karşılamak
amacıyla teknolojiyi geliştirir.
Prof.Dr. Nurettin UMURKAN
1 / 89
Nümerik Analiz
2010/11
Güz
• Bilgisayarın tarihi günümüzden yaklaşık 5000 sene
evveline dayanmaktadır. Bilgisayar tarihi bilgi işlem,
hesaplama ve depolama işlemleri üzerinde gelişme
göstermiştir. Bunun nedeni eski çağlardan beri, başka
bir değişle insanların birbirleri ile olan ilişkilerinden
itibaren sözü edilen işlemler de gelişme göstermiştir. Bu
ilişkilerin başında ticari ilişkiler gelmektedir. Üreticinin,
ürün miktarı, üretim alanı, üretim maliyeti vb.,
tüketicinin alım gücü gibi değişkenler, ticareti etkileyen
ve bilinmesi gereken önemli bilgilerdir. Ancak bütün bu
değişkenler sürekli olarak değişir. Bu nedenle de
ticaretle uğraşanların
bilgisayarın gelişiminde de
önemli yere sahiptir. Bilgisayarlar ilk olarak hesaplama
işlemi üzerine geliştirilmişlerdir.
• Đlk hesap makinesi ellerdi. Zamanla aynı dili
konuşmayan tüccarlar ve diğerleri arasında el-sayı dili
gelişti. Sayısal rakamlar on parmağımızı aşınca yeni
yöntemler araştırılmaya başlandı. Çakıl taşlarıyla
sayıların belli gruplara ayrılmasına "Çakıl Taşı
Yöntemi" dendi. Ama bu yöntemle işin çoğunu insan
yapıyordu. Bu sıralarda taşınabilir bir çakıl taşı aleti
yapma düşüncesi ortaya çıktı. Bundan Abaküs
geliştirildi. Çin, Eski Yunan ve Roma'da değişik tür
abaküsler kullanıldı. Günümüzde de Asya'nın birçok
yöresinde Abaküs kullanılmaktadır. Abaküs, çalışma
mantığı olarak ilk bilgisayar olarak nitelendirilebilir.
• Abaküs; çağdaş hesap makinelerinin ve bilgisayarların
atası sayılan hesap aygıtıdır. Abaküs'te amaç; toplama,
çıkarma, çarpma ve bölme yapmaktır. Babilliler'in
buluşu olan abaküs, yüzyıllar boyunca ticarette büyük
önem taşımıştır. Abaküsün temeli Girit ve Miken'e
Prof.Dr. Nurettin UMURKAN
2 / 89
Nümerik Analiz
2010/11
Güz
dayanır. Đlk
lk yazılı rakamlar 5000 yıl önce Mısırlılar ve
Sümerlerde görülüyor. En eski ve yaygın hesap makinesi
elin kullanımı ise Mısır'dan Eski Yunan'a, Avrupa, Đslam
Ülkeleri, Çin, Hindistan ve Amerika'ya kadar bir çok
yerde görülebilir. Çince ismi suan phan olan Çinlilerin
kullandığıı Abaküs, toplama çıkarma işlemlerinin
i lemlerinin yanı
sıra çarpma bölme ve kök alma gibi diğer
di er işlemlerin de
yapılmasına olanak sa
sağlar.
Abaküs-1
tirilerek kullanımı M.S. 1000’e kadar
• Abaküsün geliştirilerek
devam etmiştir.
Prof.Dr. Nurettin UMURKAN
3 / 89
Nümerik Analiz
2010/11
Güz
• Abaküsün geliştirilmesi ve hesaplama işlemlerinde daha
sıklıkla kullanılmaya başlamasının ardından matematiği
oldukça yakından ilgilendiren ve gelecek yıllarda
bilgisayar mantığını oluşturacak olan “0” sayısı
bulunarak kullanılmaya başlandı. “0” ın Harezmi
tarafından keşfedilmesi ondalık sayı sistemlerinin ve ileri
matematiğin de gelişmesinde en önemli paya sahiptir.
Bugün, bütün Batı dünyasında sıfırı anlatmak için
kullanılan "zero" kelimesi Arapça "sıfır " kelimesinden
geliyor.
Algoritma kavramı ilk defa, 780-850 yılları arasında
Bağdat’ta yaşamış, matematik, astronomi ve coğrafya
alanlarında mühim çalışmalara imza atmış, dünyaca ünlü
âlim Harezmî tarafından kullanılmıştır. Harezmî’nin?
Hisabü’l-Cebr ve’l-Mukabele? isimli eseri, aynı zamanda ilk
algoritma koleksiyonunu oluşturur. Eserin Lâtince tercümesi
Avrupa’da da büyük dikkat çekmiştir. Avrupalılar,
Prof.Dr. Nurettin UMURKAN
4 / 89
Nümerik Analiz
2010/11
Güz
‘algorizma’yı ‘Arapça sayıları kullanarak aritmetik
problemleri çözme kuralları’ mânâsında kullanmışlar, terim
daha sonra ‘algoritma’ya dönüşmüştür.
Başlangıçta matematiğin bir dalı olarak gelişen algoritma,
‘belli bir problemi çözmek veya bir fiili gerçekleştirmek için
takip edilen yol, işlemler dizisi, basamaklar kümesi’ veya
‘insanların problemlere getirdikleri değişik çözüm metotları’
olarak tarif edilir. Sonlu sayıdaki bu işlemler, adımlar veya
basamaklar bir noktada başlar ve tarif edilmiş bir netice
durumunda sonlanır. Günümüzde algoritma dendiğinde ise,
daha çok bilgisayar programlarında kullanılan, sıralama,
arama vb. işlemlerde takip edilen yollar akla gelmektedir.
Bilgisayarların her alanda problem çözmede kullanılmasına
paralel olarak, algoritmalar oldukça yaygınlaşmıştır.
Günümüzde fizik, kimya, biyoloji, müzik dâhil birçok sahada
algoritmalar kullanılmaktadır.
• 15.yy’dan itibaren dünyanın ticari, kültürel, politik ve
askeri merkezi Avrupa’ya kaymaya başlamıştır. Bilimsel
çalışmalar Avrupa’da odaklanmaya ve yayılmaya
başlamıştır. Avrupalı bilim adamları çeşitli alanlardaki
bilimsel çalışmalar için, giderek artan bir yoğunlukta
aritmetiksel işlemler ile ilgileniyorlardır. 17.yy’ın ilk
yarısında (1600) Đskoç Matematikçi John Napier
hesaplama işlemlerini çok kısa sürede yapabilen ve her
biri 20 cm uzunluğunda 10 çubuktan oluşan, “Napier’s
Rods or Bones – Napier’in Çubukları veya Kemikleri”
ismini verdiği aracı geliştirdi.
Prof.Dr. Nurettin UMURKAN
5 / 89
Nümerik Analiz
2010/11
Güz
Napier’in Çubukları (Kemikleri)
• Napier’in geliştirmiş
geliş
olduğuu bu araç çarpma
işlemlerinin
erinin çok daha hızlı ve basit bir biçimde
gerçekleştirilmesini
tirilmesini sağlıyordu.
sa lıyordu. Özellikle birden çok
basamaklı sayılarla yapılan çarpma iş
işlemlerinde
i
oldukça yararlı bir araçtı. Örneğin
Örne in 63 ile 6 sayısının
çarpımını verelim. Öncelikle 6 ve 3 rakamlarının
üzerindee bulunduğu
bulundu u çubuklar yan yana konuyor.
Çarpılacak olan rakamın (6) çubuğu
çubu u ile aynı hizada olan
rakamlar çapraz olarak toplanıyor ve sonuç bulunuyor.
• 63 x 6 = 378 dir.
Prof.Dr. Nurettin UMURKAN
6 / 89
Nümerik Analiz
• 63 x 65 = 4095 dir.
2010/11
Güz
• 1617’de John Napier, bölmenin çıkarma işlemi
i
mantı
mantığı
ile, çarpmanın
nın ise toplama işlemi
i
mantığıı ile yapıldı
yapıldığını
kanıtlamıştır.
Prof.Dr. Nurettin UMURKAN
7 / 89
2010/11
Güz
Nümerik Analiz
• 1621
yılında
William
Oughtred,
logaritmik
hesaplamalarda kullanılmak üzere Slide Rule (Sürgülü
cetvel)’u geliştirmiştir. Bu araç da John Napier’in
geliştirdiği araç gibi çarpma ve bölme işlemlerini
kolaylaştırmak amacıyla geliştirilmiştir. Sürgülü cetvel,
önceleri çok karmaşık ve zor kullanımlı bir araç olarak
kabul edilmesine rağmen daha sonraları tüm matematik
işlemlerinde yoğun olarak kullanılan bir araç haline
gelmiştir.
• Oughtred, matematikte kullanılan birçok sembolün de
öncüsü olmuştur. Çarpma işlemi için “x”, bölme işlemi
için “:” sayısal karşılaştırmalarda “<, >” gibi
sembolleri geliştirmiştir.
John Napier
William Oughtred
Prof.Dr. Nurettin UMURKAN
8 / 89
Nümerik Analiz
2010/11
Güz
• 1624 yılında Wilhelm Schickard ilk kez dör
dört işlemi bir
arada yapabilen hesap makinesini Almanya’daki
Heidelberg Üniversitesinde geliştirdi.
geli tirdi. Schickard
geliştirmiş olduğuu araç ile astronomi, matematik, alan
ölçümleri, yüz ölçümü hesaplama ve haritacılık
işlemlerinde
lemlerinde kullanmıştır.
kullanmı
Geliştirmiş oldu
olduğu cihaz
oldukça
karmaşık
karma ık
ve
herkesin
kolaylıkla
kullanamayacağı
ğı bir çalışma
çalı ma sistemine sahipti.
Prof.Dr. Nurettin UMURKAN
9 / 89
2010/11
Güz
Nümerik Analiz
Wilhelm Schickard
Schickard’ın 1642’de geliştirdiğii hesap makinesinin
taslağı
1957’de yeniden dizayn edilen Schickard’ın hesap
makinesi
• 1642 yılında Fransız bilim adamı Blaise Pascal,
kendisinden daha önce geliştirilmiş
geli
olan hesaplama
makinelerini de inceleyerek Arithmetic
Arithmetic Machine Pascaline adıyla tanınan bir hesap makinesi
geliştirmiştir.
tir. Blaise Pascal, bir vergi dairesinde
çalışmaktaydı.
maktaydı. Yapmı
Yapmış olduğu iş,, tekrarlı işlemlerin
i
çabuk ve güvenilir bir biçimde yapılmasını
gerektiriyordu. Pascal işini
i ini daha kolay ve hızlı yyapmak
amacıyla bir hesaplama makinesi geliştirdi.
geli tirdi. Toplanacak
Prof.Dr. Nurettin UMURKAN
10 / 89
2010/11
Güz
Nümerik Analiz
sayılar
telefon
ahizesindeki
gibi
çevrilerek
belirleniyordu. Bu işlem araç içerisindeki dişlileri
harekete geçiriyor ve sonuçlar bir pencereden
izleniyordu. Ayrıca, Pascal üçgenini de yaratan bilim
adamıdır.
Blaise Pascal
Pascaline (Sayıların girildiği ve hesaplamaların
okunduğu kapağın üstü)
Prof.Dr. Nurettin UMURKAN
Pascaline (Đç görünüm)
11 / 89
2010/11
Güz
Nümerik Analiz
Pascaline’nın kullanımı
Pascal Üçgeni (Pascal
Triangle)
Nümerik Analizin Amacı
Matematiksel problemlerin çözümlenebilmesi için uygun ve
en iyi yaklaşım
ım veren yöntemleri bulmak, ayrıca bunlardan
anlamlı ve faydalı sonuçlar çıkarmaktır.
Çözümü istenenn problemi tanımlamak ve sonuca varacak
yöntemi saptamak genellikle aynı bilim adamının iişidir. Bu
nedenle problemi tanımlayanın bir nümerik analizcinin sahip
olduğuu bilgilerin en azına sahip olması gerekir. Problemin
çözümünde bir takım aşamalardan
a
geçilerek
rek sonuca varılır.
Bu aşamalardan
amalardan ilki problemin formüle edilmesidir. Fiziksel
bir olayın matematiksel modelinin formüle edilmesinde
nümerik analizci, problemini bilgisayar ile çözümleyece
çözümleyeceğini
gözönünde bulundurmalıdır.
Formülasyon yapıldıktan sonra problemin
problemin çözümü için hata
analizi ile birlikte nümerik yöntem en iyi yaklaş
yakla
yaklaşımla sonuç
elde edilecek şekilde
ekilde seçilmelidir. Nümerik çözüm yöntemi,
Prof.Dr. Nurettin UMURKAN
12 / 89
Nümerik Analiz
2010/11
Güz
belirtilen ya da istenilen hassaslıktaki yaklaşımla ve belli
sayıda ardışık tekrar işlemlerinden sonra matematiksel
probleme çözüm getirmelidir. Nümerik çözüm yöntemleri
genellikle önceden saptanmış aritmetik ve mantıksal
işlemlerden oluşur. Bu işlemlerin tümüne çözüm algoritması
denir. Algoritma belli sayıda işlemlerden sonra probleme
çözüm getirir. Problemin bilgisayar ile çözümünde üçüncü
aşama, algoritmanın bilgisayarda çözümünü sağlayacak
programlama aşamasıdır. Programlama; C, Pascal, Basic,
Cobol, Fortran gibi bilgisayar dillerinden birisi ile yapılır.
Nümerik Analizde Problem Türleri:
1. Yaklaşık hesaplamalar
• Enterpolasyon
• Đntegrasyon
• Türev ve diferansiyel
• Serilerin toplamı
• Eğri Uydurulması
2. Fonksiyonel Denklemler
• Adi Diferansiyel Denklemler
• Kısmi Türevli Diferansiyel Denklemler
• Minimizasyon
• Đntegral Denklemler
• Benzeşim (Simulation)
3. Cebir
Prof.Dr. Nurettin UMURKAN
13 / 89
Nümerik Analiz
• Kök Bulma
• Lineer Denklem Sistemleri
• Lineer Olmayan Denklem Sistemleri
2010/11
Güz
4. Matris Problemleri
• Lineer Denklemler
• Determinant
• Bir Matrisin Đnversi
• Öz değer ve öz vektörler
Hatalar
Veri Hataları
Hesaplamalarda kullanılacak verilerde bulunan hatalardır.
Ölçme ile elde edilen verilerde, ölçme hatasından veya
aletlerin ölçüm hassasiyetleri kaynaklı hatalar meydana
gelmektedir.
Kesme Hataları
Hesaplamalarda kullanılan sonsuz terimli serilerin belli bir
yerden kesilmesi ve geri kalan terimlerin atılması sonucunda
oluşan hatalardır.
Π, e ve 7 gibi büyüklükler sonlu sayıda basamakla tam
olarak ifade edilemezler.
Π=3.141592653589793238462643….
Prof.Dr. Nurettin UMURKAN
14 / 89
2010/11
Güz
Nümerik Analiz
Şeklinde sonsuza kadar gider. Sayısal işlemler sonlu sayıda
rakamla yapıldıkları için bu tip sayılar hiçbir zaman
işlemlerde tam olarak ifade edilemez.
x x 2 x3
xn
e = 1 + + + ⋅⋅⋅ +
1! 2! 3!
n!
x
Örneğin yukarıdaki Maclaurin Serisi açılımında herhangi
bir x değerine karşılık gelen ex değerinin, sonsuz sayıda terim
kullanılarak hesaplanamaması nedeniyle, ancak belirli
terimler kesilerek hesaplanabilirler.
Yuvarlama Hataları
Bu tür hatalar genellikle ondalık yazılımın son hanesini
etkiler. Bilgisayarlar kendisine veri olarak girilen ya da işlem
sonucu elde edilen sayıları sınırlı sayıda basamaklı çalışır.
Bazı rakamların yuvarlama ile basamak sayısının
azaltılması, yuvarlama hatasına neden olur.
Mutlak Hata
Gerçek değeri y olan bir büyüklüğün yaklaşık değeri p ise,
y-p farkı p yaklaşık ifadesinin hatasını gösterir. p nin mutlak
hatası ∆(p),
y − p ≤ ∆( p )
Prof.Dr. Nurettin UMURKAN
15 / 89
2010/11
Güz
Nümerik Analiz
p sayısının y sayısını ∆(p) kadar bir hata ile temsil etmesi,
y ≈ p[∆( p )] şeklinde ifade edilir. Ayrıca mutlak hata ε(p)
şeklinde de gösterilebilir. Mutlak hata ifadesinden, hata
sayısal olarak belirlenir ancak yaklaşım hassaslığı açısından
fikir vermez. Örneğin,
A≈9999[0.01]
B≈9[0.01]
sayıları incelendiğinde her iki sayı için yapılan mutlak hata
0.01 dir. Birinci sayı büyük olduğundan, bu sayıdaki hata
ikinciye göre önemsizdir. Bu nedenle ölçümün veya
hesaplamanın hassasiyeti ölçülen ya da hesaplanan
büyüklüğe de bağlıdır.
Bağıl Hata
Yaklaşık değeri p olan bir büyüklüğün mutlak hatası ∆(p) ise,
εp =
∆( p )
%100
p
şeklinde ifade edilir. ε p ye yaklaşımın (p) yüzde bağıl hatası
denir. ε t ise gerçek (y) bağıl yüzde hatası olarak,
εt =
∆( p )
%100
y
ile ifade edilir.
Sayısal yöntemlerdeki zorluklardan biri de, gerçek değer
hakkında bilgi sahibi olmadan hata tahmini yapmaktır.
Prof.Dr. Nurettin UMURKAN
16 / 89
2010/11
Güz
Nümerik Analiz
Đteratif hesaplamalar yapan sayısal yöntemlerde hata
analizi genellikle son elde edilen yaklaşım ile bir önceki
yaklaşım arasındaki fark olarak yapılır. Bu durumda bağıl
yüzde hata,
 son yaklaşım - bir önceki yaklaşım 
 %100
son yaklaşım


εa = 
ile ifade edilir.
Çoğu zaman hesap yapılırken hatanın işareti ile ilgilenilmez,
ancak yüzde hatanın mutlak değerinin önceden verilen
tolerans yüzdesinden daha küçük olup olmadığına bakılır.
εs
εa < εs
Bu sağlanırsa sonucun önceden belirlenmiş kabul edilebilir
hata sınırları içinde kaldığı kabul edilir.
Sonlu Farklar
Sonlu farklar hesabı nümerik analizde geniş kullanılma
alanına sahiptir. Matematiksel problemler değişkenlerin
sürekli fonksiyonları olarak verilir ve bu fonksiyonlar kapalı
bir formülle tanımlanır (örneğin; y = f ( x) = 3x 2 + 5 x − 6 ).
Bağımsız değişkenlerin verilmiş değerleri için fonksiyonların
değerleri hesaplanabilir. Bir başka şekilde de fonksiyon,
bağımsız değişkenlerin her bir değerine karşılık gelen
değerlerin bir cümlesi (örneğin; x1 , y1; x2 , y 2 ; x3 , y 3 ) olarak
tanımlanabilir. Bu durumda süreklilik aralığında herhangi
bir noktada formülle tanımlama yoktur. Sonlu farklar
kullanılarak, aralığın içinde herhangi bir noktada
fonksiyonun değeri için iyi bir yaklaşım bulmak mümkündür.
Prof.Dr. Nurettin UMURKAN
17 / 89
Nümerik Analiz
Đleri Farklar
Bir y = f (x) fonksiyonu verildiğinde,
2010/11
Güz
∆f ( x) = f ( x + h) − f ( x)
şeklinde tanımlanan işlemi yaptıran ∆ sembolüne ileri fark
operatörü denir. Burada h, “fark aralığı, adım” olarak
adlandırılmıştır. ∆f (x) yada ∆y ifadesine f(x) fonksiyonunun
birinci mertebeden ileriye farkı denir.
2
f(x) fonksiyonunun ikinci mertebeden ileriye farkı, ∆ f ( x)
şeklinde gösterilir ve
∆2 f ( x) = ∆[∆f ( x)] = ∆[ f ( x + h) − f ( x)]
şeklinde ifade edilir. En genel halde, f ( x) = f i ve
f ( x + kh) = f i+k ile gösterilmek üzere
∆n f ( x ) = ∆(∆n −1 f i ) = ∆n −1 f i +1 − ∆n −1 f i
şeklinde tanımlanır.
Bir Polinomun Farkları
Bir polinomun y0 , y1 , y2 ,..., yn +1 gibi n+2 değerinin verilmiş
olduğu kabul edilirse, bu değerler yardımıyla oluşturulan
∆y0 = y1 − y0
∆y1 = y2 − y1
∆y2 = y3 − y2
. . .
. . .
. . .
∆y n = y n+1 − yn
Prof.Dr. Nurettin UMURKAN
18 / 89
2010/11
Güz
Nümerik Analiz
farklarına verilen polinomun birinci dereceden ileri farkları
denir.
Birinci dereceden ileri farklar ile,
∆2 y0 = ∆y1 − ∆y0
∆2 y1 = ∆y2 − ∆y1
∆2 y2 = ∆y3 − ∆y2
. . .
. . .
. . .
∆2 y n −1 = ∆y n − ∆y n−1
şeklinde elde edilen farklara verilen polinomun ikinci
dereceden ileri farkları denir.
y = f (x) polinomunda x = a + kh dönüşümü yapıldığında y ‘
ler yk ile gösterilsin. Yani yk = f (a + kh) olur ki bu durumda,
∆yk = yk +1 − yk
farkı k ‘ıncı birinci mertebeden ileri fark olarak adlandırılır.
k = 0, 1, 2, . . . alınırsa x ‘in ardışık değerleri için y
fonksiyonunun ileri fark tablosu aşağıdaki gibi hesaplanır.
x
a
y
y0 = f ( a )
a+h
a + 2h
y1 = f ( a + h )
a + 3h
y3 = f (a + 3h )
a + 4h
y4 = f ( a + 4 h )
y2 = f ( a + 2h )
∆y
∆2 y
∆3 y
∆y0 = y1 − y0
2
∆y1 = y2 − y1 ∆ y0 = ∆y1 − ∆y0 ∆3 y = ∆2 y − ∆2 y
0
1
0
2
∆y2 = y3 − y2 ∆ y1 = ∆y 2 − ∆y1 ∆3 y = ∆2 y − ∆2 y
1
2
1
2
∆
y
=
∆
y
−
∆
y
2
3
2
∆y 3 = y 4 − y 3
Prof.Dr. Nurettin UMURKAN
19 / 89
Nümerik Analiz
Bölünmüş Farklar
2010/11
Güz
x ‘in x0 , x1 , . . ., xn değerleri için sırasıyla f(x0), f(x1), . . .,
f(xn) değerlerini alan bir fonksiyon için f(x) ‘in herhangi iki
ardışık değeri f(xi) ve f(xj) ise birinci bölünmüş fark,
f ( xi , x j ) =
f ( x j ) − f ( xi )
x j − xi
formülü ile tanımlanır. Benzer şekilde f(x) ’in iki tane birinci
bölünmüş farkı f(xi, xj) ve f(xj, xk) ise ikinci bölünmüş fark,
f ( xi , x j , xk ) =
f ( x j , xk ) − f ( xi , x j )
xk − xi
olur. Bölünmüş farklar başka notasyonlarla da
gösterilebilirler. Örneğin, f(xi, xj, xk ) yerine [xi, xj, xk] gibi.
Bir başka örnek olarak üçüncü dereceden f(x0, x1, x2, x3 )
bölünmüş farkını alırsak,
f ( x0 , x1 , x2 , x3 ) =
f ( x1 , x2 , x3 ) − f ( x0 , x1 , x2 )
x3 − x0
formülü ile hesaplanır.
y = f ( x ) fonksiyonu için bölünmüş fark tablosu,
Prof.Dr. Nurettin UMURKAN
20 / 89
2010/11
Güz
Nümerik Analiz
x
f (x)
x0
f (x0 )
f (x0 , x1 )
x1
f (x1 )
f (x0 , x1, x2 )
f (x1, x2 )
x2
f (x2 )
f (x0 , x1, x2 , x3 )
f (x1, x2 , x3 )
f (x2 , x3 )
x3
f (x3 )
L
L
L
L
L
şeklinde ifade edilebilir.
ÖRNEK:
y = x2 fonksiyonunun x = 0, 1, 3, 4, 7 değerleri için
bölünmüş fark tablosunu oluşturunuz.
Prof.Dr. Nurettin UMURKAN
21 / 89
2010/11
Güz
Nümerik Analiz
x
0
f (x)
0
1
1
1
1
4
3
9
1
7
4
16
1
11
7
49
ENTERPOLASYON
Matematiksel problemler değişkenlerin sürekli fonksiyonları olarak
ifade edilebilir. Bu fonksiyonlar kapalı bir formülle tanımlanır ve
bağımsız değişkenlerin değerleri için fonksiyonların değerleri
hesaplanır. Fonksiyonlar, bağımsız değişkenlerin her bir değerine
karşılık gelen fonksiyon değerlerinin bir cümlesi olarak da
tanımlanabilir. Bu durumda kapalı bir formül verilmemiştir. Sonlu
farklar kullanılarak, değişkenlerin herhangi bir ara değerine
karşılık gelen fonksiyon değerleri için iyi bir yaklaşım bulunabilir.
Pratikte karşılaşılan problemlerin çoğunu kapalı bir formül şeklinde
tanımlamak mümkün ise de, ayrık noktalar cümlesinde sonlu farklar
kullanılarak çözüm elde etmek daha kolay olduğu için daha fazla
tercih edilir.
Veri noktaları arasında ara değer hesabı gereksinim problemi fen
ve mühendislikte sıkça karşılaşılır. Örneğin, bir bina için
bilgisayarlı enerji kontrol sistemi dizaynında giriş verisi olarak,
hergün binada meydana gelen tipik ısı değişimi gerekebilir. Örnek
ısı değerleri ayrık zaman noktalarında bina içinde ölçülmelidir.
Prof.Dr. Nurettin UMURKAN
22 / 89
2010/11
Güz
Bununla birlikte enerji kontrol sistemi bilgisayar programı için,
Nümerik Analiz
örnek olarak saatlik artışlarla ısı ölçümleri gerekebilir. Bu problemi
çözmenin bir yolu ölçülen ısı değerlerinin, ölçüm zamanları
arasındaki ara değerleri için bir eğri ile tarif edilmesidir. Bütün
enterpolasyon algoritmalarının temeli, veri çizelgesinin bir alt
kümesi için bazı fonksiyonlar ya da eğri tipleri uydurmaktır.
Enterpolasyon algoritmalarının eğrileri, gerçek fonksiyon
eğrilerinden farklıdır.
Genel anlamda enterpolasyon, bilinmeyen bir f (x ) fonksiyonunun
gibi
ayrık
noktalarda
bilinen
x0 , x1 , x 2 ,..., xn
f ( x0 ), f ( x1 ), f ( x 2 ),..., f ( x n ) değerlerini kullanarak, bu fonksiyonun
daha basit ve bilinen bir P( x) fonksiyonu ile ifade edilmesi
işlemidir. Bu P( x) fonksiyonuna, enterpolasyon fonksiyonu adı
verilir.
Enterpolasyon fonksiyonunun
kullanılır.
seçiminde, başlıca
iki teorem
f (x )
1. Eğer
fonksiyonu [a, b] aralığında sürekli
enterpolasyon fonksiyonu olarak polinom kullanılabilir.
2. Periyodu 2π olan herhangi bir sürekli fonksiyon için
n
n
k =0
k =1
ise,
P(x ) = ∑ ak cos kx + ∑ bk sin kx
şeklinde sonlu bir trigonometrik seri enterpolasyon fonksiyonu
olarak kullanılabilir.
Prof.Dr. Nurettin UMURKAN
23 / 89
Nümerik Analiz
Lineer Enterpolasyon
Enterpolasyon fonksiyonu düz
enterpolasyon fonksiyonu,
2010/11
Güz
bir çizgiden oluşur. Lineer
P( x ) = b0 + b1 x
şeklinde ifade edilebilir. Burada iki adet bilinmeyen katsayı (b0, b1)
bulunmaktadır. Katsayı değerlerini elde etmek için en az iki adet
değişken değeri ve bu değişkenlere karşılık gelen gerçek fonksiyon
değerleri bilinmelidir. Bilinen değişken değerleri xi ve xi+1,
fonksiyon değerleri de sırasıyla f(xi) ve f(xi+1) olsun, denklemde xi ,
f(xi) ve xi+1, f(xi+1) değerleri kullanılarak,
f ( xi ) = b0 + b1 xi
f ( xi +1 ) = b0 + b1 xi +1
elde edilen iki bilinmeyenli iki denklem çözülerek
 f ( xi ) − f ( xi +1 ) 
b0 = f ( xi ) − 
 xi
xi − xi +1


b1 =
f ( xi ) − f ( xi +1 )
xi − xi +1
denklemin katsayıları bulunarak,
 f ( xi ) − f ( xi +1 ) 
 f ( xi ) − f ( xi +1 ) 
P ( x) = f ( xi ) − 
x
+
 i 
x
xi − xi +1
xi − xi +1




elde edilir.
Prof.Dr. Nurettin UMURKAN
24 / 89
2010/11
Güz
Nümerik Analiz
ÖRNEK :
f ( x) = x 3 fonksiyonunun değerleri tabloda verilmiştir. x = 2.2 için
enterpolasyon fonksiyonunun değerini bulalım.
x
f(x)
0
0
1
1
2
8
3 4
27 64
Burada xi ve xi+1 için 2 ve 3 değerleri, f(xi) ve f(xi+1) için de 8 ve 27
değerleri tablodan alınır.
(5) denklemi kullanılarak,
 8 − 27 
 8 − 27 
P( x) = 8 − 
2+
x


 2−3 
 2−3 
olur ve lineer enterpolasyon fonksiyonu
P ( x) = −30 + 19 x
olarak elde edilir. Enterpolasyon fonksiyonu x = 2.2 nin küpünü
11.8 olarak bulmuştur. Gerçek değer olarak 2.2 nin küpü 10.648
dir. Enterpolasyon hatası 1.152 ya da % 10.8 olarak gerçekleşti.
Aynı denklemde x = 4 için enterpolasyon değeri % 28 hata ile 46
olarak hesaplandı. Bu durum şekilden de görülmektedir. Lineer
enterpolasyon fonksiyonu elde edilirken daima hesaplanacak
değerin arada kaldığı bilinen sınır değerleri kullanılmalıdır. Sınır
değerlerin dışında kalan bölge için hesaplanan fonksiyon
değerlerinde hata oranı artabilmektedir.
Prof.Dr. Nurettin UMURKAN
25 / 89
Nümerik Analiz
Gregory-Newton Enterpolasyon Yöntemi
2010/11
Güz
Bir f (x ) fonksiyonunun x1 , x2 , K xn+1 gibi aralıkları eşit olan ayrık
noktalarda bilinen f (x1 ), f (x2 ), K , f (xn+1 ) değerleri varsa ve bu f (x )
fonksiyonunun, enterpolasyon fonksiyonu P(x) ‘i veren GregoryNewton enterpolasyon yönteminde, n. dereceden bir enterpolasyon
polinomu,
P( x ) = a1 + a2 ( x − x1 ) + a3 ( x − x1 )( x − x2 ) + a4 ( x − x1 )( x − x2 )( x − x3 ) + ...
+ an ( x − x1 )( x − x2 )...( x − xn −1 ) + an + 1 ( x − x1 )( x − x2 )...( x − xn )
şeklinde ifade edilmiştir. Buradaki bilinmeyen katsayılardan a1
için, eşitlikte x ve P(x) yerine sırasıyla x1 ve f (x1 ) değerleri
yazılırsa,
a1 = f ( x1 )
olarak elde edilir. a2 bilinmeyen katsayısının çözümü için, eşitlikte x
ve P(x) yerine sırasıyla x2 ve f (x2 ) değerleri yazılırsa,
a2 =
f ( x2 ) − a1 f ( x2 ) − f ( x1 )
=
x2 − x1
x2 − x1
şeklindedir. Elde edilen a1 ve a 2 değerleri ile x3 , f ( x3 ) kullanılarak
a3 için denklemden,
f ( x3 ) = a1 + a2 ( x3 − x1 ) + a3 ( x3 − x1 )( x3 − x2 )
bulunur, buradan a3 çözülerek,
a3 =
f (x3 ) − a1 − a2 (x3 − x1 )
(x3 − x1 )(x3 − x2 )
şeklinde elde edilir.
Prof.Dr. Nurettin UMURKAN
26 / 89
Nümerik Analiz
ÖRNEK :
2010/11
Güz
x
1 2 3 4
f(x) 1
8 27 64
Tablo değerleri kullanılarak Gregory-Newton yöntemiyle ikinci
dereceden bir polinom için, önce [1, 1] kullanılarak,
a1 = f ( x1 ) = 1
ve [2, 8] kullanılarak denklemden,
a2 =
8 −1
=7
2 −1
ve son olarak [3, 27] değeri kullanılarak denklemden,
a3 =
27 − 1 − 7(3 − 1)
=6
(3 − 1)(3 − 2)
şeklinde katsayılar elde edilir. Katsayılar yerine yazılarak,
P ( x) = 1 + 7( x − 1) + 6( x − 1)( x − 2)
olur. Denklem düzenlendiğinde enterpolasyon polinomu,
P ( x) = 6 − 11x + 6 x 2
olarak elde edilmiştir. x = 2.2 için P ( 2.2) = 10.84 değeri elde edilir.
ÖRNEK :
40o ve 72o C sıcaklık değerleri arasındaki suyun buhar basıncı
verileri aşağıdaki tabloda verildiği gibidir.
T(oC)
40 48
56
64
72
P(mm Hg) 55.3 83.7 123.8 179.2 254.5
Enterpolasyon polinomunda 52oC için buhar basıncı ?
Prof.Dr. Nurettin UMURKAN
27 / 89
2010/11
Güz
Gregory-Newton ifadesindeki katsayıların elde edilişi aşağıda tabloda
Nümerik Analiz
verilmiştir.
i T(oC) P(mm Hg)
1
2
3
4
5
40
48
56
64
72
Eşitlik ‘den
ai
55.3
83.7
123.8
179.2
179.2 = a1 + a2 (64 − 40) + a3 (64 − 40)(64 − 48)
55.3
3.55
0.0914063
0.001172
254.5
+ a4 (64 − 40)(64 − 48)(64 − 56)
254.5 = a1 + a2 (72 − 40) + a3 (72 − 40)(72 − 48)
0.00001017
55.3 = a1
83.7 = a1 + a2 (48 − 40)
123.8 = a1 + a2 (56 − 40) + a3 (56 − 40)(56 − 48)
+ a4 (72 − 40)(72 − 48)(72 − 56)
+ a5 (72 − 40)(72 − 48)(72 − 56)(72 − 64)
Katsayılar yerine yazıldığında,
P (T ) = 55.3 + 3.55(T − 40) + 0.0914063(T − 40)(T − 48)
+ 0.001172(T − 40)(T − 48)(T − 56)
+ 0.00001017(T − 40)(T − 48)(T − 56)(T − 64)
şeklindedir.
Enterpolasyon polinomunda 52oC için buhar basıncı,
P(52) = 102.0 mm Hg olarak elde edilir.
n=5;
%
for i=1:n
%
m=input('x degeri: ');
%
x(i)=m;
%
end
% for i=1:n
%
k=input('y degeri: ');
%
y(i)=k;
% end
x(1)=40;
x(2)=48;
x(3)=56;
x(4)=64;
x(5)=72;
y(1)=55.3;
y(2)=83.7;
y(3)=123.8;
y(4)=179.2;
y(5)=254.5;
for i=1:n
switch i
case 1
Prof.Dr. Nurettin UMURKAN
28 / 89
2010/11
Güz
Nümerik Analiz
a(1)=y(1);
case 2
a(2)=(y(2)-y(1))/(x(2)-x(1));
case 3
a(3)=(y(3)-a(1)-a(2)*(x(3)-x(1)))/((x(3)-x(1))*(x(3)-x(2)));
case 4
a(4)=(y(4)-a(1)-a(2)*(x(4)-x(1))-a(3)*(x(4)-x(1))*(x(4)x(2)))/((x(4)-x(1))*(x(4)-x(2))*(x(4)-x(3)));
case 5
a1=y(5)-a(1)-a(2)*(x(5)-x(1))-a(3)*(x(5)-x(1))*(x(5)-x(2))a(4)*(x(5)-x(1))*(x(5)-x(2))*(x(5)-x(3));
a2=(x(5)-x(1))*(x(5)-x(2))*(x(5)-x(3))*(x(5)-x(4));
a(5)=a1/a2;
end
end
for i=1:n
f=a(i);
fprintf('
%12.8f\n', f);
end
55.30000000
3.55000000
0.09140625
0.00117188
0.00001017
>>
Newton Đleri Fark Enterpolasyon Formülü
x1 , x2 ,... xn +1 gibi aralıkları eşit olan ayrık noktalarda bilinen
f ( x1 ), f ( x2 ),..., f ( xn +1 ) değerleri için enterpolasyon fonksiyonu
P (x ) ,
s n
s
s 2
P( x ) = y0 +  ∆y0 +  ∆ y0 + ... +  ∆ y0
1
2
n
şeklinde ifade edilir. Burada,
s
  katsayısına, binom katsayısı adı verilir ve
i
 s  s( s − 1)(s − 2)...(s − i + 1)
 =
 
i!
i
Prof.Dr. Nurettin UMURKAN
29 / 89
2010/11
Güz
Nümerik Analiz
şeklindedir. Đfade düzenlendiğinde,
s( s − 1) 2
s( s − 1)(s − 2) 3
∆ y0 +
∆ y0 + ...
2!
3!
s(s − 1)...(s − n + 1) n
+
∆ y0
n!
x − x0
s
=
dir. Đfade de yerine yazıldığında,
olur. Burada
h
 x − x0  x − x0 
− 1


x − x0
h
h
 ∆2 y +

P( x ) = y0 +
∆y0 + 
0
2!
h
 x − x0  x − x0  x − x0

− 1
− 2


h  h
 h
 ∆3 y + ...
+
0
3!
olur. Đfade düzenlendiğinde,
P(x ) = y0 + s∆y0 +
x − x0
( x − x0 )( x − ( x0 + h)) 2
( x − x0 )( x − x1)( x − x2 ) 3
∆ y0
∆y0 +
∆ y0 +
2
3
h
2! h
3! h
( x − x0 )...( x − xn −1) n
+ ... +
∆ y0
n! hn
P(x ) = y0 +
olarak elde edilir.
Aynı ifade, Gregory-Newton enterpolasyon yönteminin ifadesinde
katsayılar ileri farklar ile yeniden düzenlenerek, a0 , a1,..., an
katsayıları,
a0 = y0
;
y −y
∆y
a1 = 1 0 = 0
x1 − x0
h
∆2 y
a2 = 2 0
h 2!
;
a3 =
∆3 y0
h3 3!
Prof.Dr. Nurettin UMURKAN
an =
∆n y0
h n n!
30 / 89
2010/11
Güz
olarak elde edilir. Formülde yerine yazıldığında, Newton Đleri Fark
Nümerik Analiz
Enterpolasyon Formülü elde edilir.
Newton Đleri Fark Enterpolasyon Formülü en genel anlamda,
∆y0
∆2 y0
∆3 y0
P( x ) = y0 +
( x − x0 ) +
( x − x0 )( x − x1 ) +
( x − x0 )( x − x1 )( x − x2 )
h
2! h 2
3! h3
∆n y0
+ ... +
( x − x0 )...( x − xn −1 )
n! h n
şeklinde ifade edilir. h=1 ve x0=0 ise ifade,
∆2 y0
∆3 y0
P( x ) = y0 + ∆y0 x +
x( x − 1) +
x( x − 1)( x − 2)
2!
3!
∆n y0
+ ... +
x( x − 1)...( x − xn −1 )
n!
ÖRNEK:
x
y
0
1
1
2
2
4
y
1
∆y
∆2y
x=0.5 için P(x)=?
Đleri fark tablosu,
x
0
1
1
2
1
2
2
4
şeklinde elde edilir. Tablo değerleri formüle uygulandığında,
∆2 y0
P( x ) = y0 + ∆y0 x +
x( x − 1)
2!
Prof.Dr. Nurettin UMURKAN
31 / 89
Nümerik Analiz
P( x ) = 1 + x +
1
1
1
x( x − 1) = x 2 + x + 1
2
2
2
2010/11
Güz
P(0.5) = 1.37
ÖRNEK:
x
y
2
10
4
50
6
122
8
226
10
362
Yukarıdaki tabloyu kullanarak enterpolasyon polinomunu ve x=3
noktasındaki değerini bulunuz.
Đleri fark tablosu,
x
y
2
10
∆y
∆2y
∆3y
40
4
50
32
72
6
122
0
32
104
8
226
0
32
136
10
362
şeklinde elde edilir. Tablo değerleri formüle uygulandığında,
∆y 0
∆2 y 0
( x − x0 ) +
( x − x0 )( x − x1 )
P( x ) = y0 +
2
h
2! h
40
32
P( x ) = 10 + ( x − 2) +
( x − 2)( x − 4 )
2
2
2! 2
2
P( x ) = 4 x − 4 x + 2
P(3) = 26
clc
n=8;
x(1)=1;
x(2)=2;
x(3)=3;
Prof.Dr. Nurettin UMURKAN
32 / 89
2010/11
Güz
Nümerik Analiz
x(4)=4;
x(5)=5;
x(6)=6;
x(7)=7;
x(8)=8;
y(1)=1;
y(2)=8;
y(3)=27;
y(4)=64;
y(5)=125;
y(6)=216;
y(7)=343;
y(8)=512;
for i=1:n-1
a(i)=y(i+1)-y(i);
e=a(i);
fprintf('%f\n', e);
end
for i=1:n-2
f=a(i+1)-a(i);
b(i)=f;
if f~=0
fprintf('
%f\n', f);
end
end
for i=1:n-3
c(i)=b(i+1)-b(i);
g=c(i);
if g~=0
fprintf('
end
%f\n', g);
end
for i=1:n-4
k(i)=c(i+1)-c(i);
g=k(i);
if g~=0
fprintf('
end
end
%f\n', g);
for i=1:n-5
m(i)=k(i+1)-k(i);
g=m(i);
if g~=0
fprintf('
end
Prof.Dr. Nurettin UMURKAN
%f\n', g);
33 / 89
Nümerik Analiz
end
2010/11
Güz
for i=1:n-6
k(i)=m(i+1)-m(i);
g=k(i);
if g~=0
fprintf('
end
end
%f\n', g);
for i=1:n-7
r(i)=k(i+1)-k(i);
g=r(i);
if g~=0
fprintf('
end
%f\n', g);
end
7.000000
19.000000
37.000000
61.000000
91.000000
127.000000
169.000000
12.000000
18.000000
24.000000
30.000000
36.000000
42.000000
6.000000
6.000000
6.000000
6.000000
6.000000
>>
Đleri Farklar Enterpolasyon formülü sadece sabit adım aralıklı
değişkenli problemlere uygulanabilir. Adım aralığının sabit
olmadığı durumlarda, değişken dönüşümü yapılarak adım aralığı
sabit hale getirildikten sonra yöntem uygulanabilir.
Prof.Dr. Nurettin UMURKAN
34 / 89
2010/11
Güz
Nümerik Analiz
ÖRNEK:
x
y
-1
2
0
1
3
10
8
65
15
226
24
577
Yukarıdaki tabloyu kullanarak enterpolasyon polinomunu bulunuz.
Değişkenin adım aralığı sabit olmadığı için x , z ‘nin fonksiyonu
olarak tanımlanır. x= f(z)
z
x
y
0
-1
2
1
0
1
2
3
10
Đleri fark tablosu,
z
x
0
-1
3
8
65
∆x
4
15
226
5
24
577
∆2x
1
1
0
2
3
2
3
2
5
3
8
2
7
4
15
2
9
5
24
şeklinde elde edilir. Tablo değerleri formüle uygulandığında,
değişken x ve fonksiyon y için formül,
∆2 y0
P( x ) = y0 + ∆y0 x +
x( x − 1)
2!
Prof.Dr. Nurettin UMURKAN
35 / 89
2010/11
Güz
Nümerik Analiz
olacaktı, değişken z ve fonksiyon x için aynı ifade
∆2 x0
f ( z ) = x0 + ∆x0 z +
z ( z − 1)
2!
şeklinde ifade edilir. Tablo değerleri yerine yazıldığında,
x = f ( z ) = −1 + z + z ( z − 1) = z 2 − 1
z = x +1
olarak örnek problem için değişken dönüşüm ifadesi elde edilir.
z değişkeni ve y fonksiyonu için ileri fark tablosu,
z
0
y
2
∆y
∆2y
∆3y
∆4y
-1
1
1
10
9
2
10
36
46
55
3
65
60
106
161
4
24
226
24
84
190
351
5
577
Formül z değişkeni ve y fonksiyonu için düzenlendiğinde,
∆2 y0
∆3 y0
P( z ) = y0 + ∆y0 z +
z ( z − 1) +
z ( z − 1)( z − 2) +
2!
3!
∆4 y0
+
z ( z − 1)( z − 2)( z − 3)
4!
Prof.Dr. Nurettin UMURKAN
36 / 89
2010/11
Güz
Nümerik Analiz
10
36
24
z ( z − 1) +
z ( z − 1)( z − 2) +
z ( z − 1)( z − 2)( z − 3)
2!
3!
4!
parantez çarpımları yapılarak,
P( z ) = 2 − z +
P( z ) = z 4 − 2 z 2 + 2
ara enterpolasyon fonksiyonu elde edilir. Değişken dönüşüm ifadesi
yerine yazıldığında x değişkenine bağlı enterpolasyon polinomu,
P( x ) = ( x + 1) 2 − 2( x + 1) + 2
P( x ) = x 2 + 1
olarak elde edilir.
Lagrange Enterpolasyon Formülü
Bir f (x ) fonksiyonunun x0 , x1, x2 ,... xn gibi (aralıkları eşit olan veya
olmayan) ayrık noktalarda bilinen f (x0 ), f ( x1 ), f (x2 ),..., f ( xn )
değerleri varsa ve bu f (x ) fonksiyonunun, enterpolasyon
fonksiyonu P (x ) ‘i veren Lagrange Enterpolasyon Formülü,
n
P ( x ) = ∑ Li ( x ) f ( xi )
i =0
şeklinde verilir.
P( x) = L0 ( x) f ( x0 ) + L1( x) f ( x1) + L2 ( x) f ( x2 ) + ... + Ln ( x) f ( xn )
genel ifadesi kullanılır. Burada Li, Lagrange enterpolasyon
katsayıları,
n  x−xj
Li ( x ) = ∏ 

j = 0  xi − x j




j≠i
ifadesi ile tanımlanmıştır. n. dereceden Li katsayısı,
Prof.Dr. Nurettin UMURKAN
37 / 89
2010/11
Güz
Nümerik Analiz
( x − x0 )( x − x1 )( x − x2 )...( x − xn −1 )( x − xn )
Li ( x) =
( xi − x0 )( xi − x1 )...( xi − xi −1 )( xi − xi +1 )...( xi − xn )
ile hesaplanır.
ÖRNEK
Aşağıda tabloda verilen noktalardan geçen polinomu bulunuz.
x
f(x)
0
1
1
2
2
4
Bu problem için denklemden,
P ( x) = L0 ( x ) f ( x0 ) + L1 ( x) f ( x1 ) + L2 ( x) f ( x2 )
elde edilir. Burada Lagrange enterpolasyon katsayıları,
( x − x1 )( x − x2 )
( x0 − x1 )( x0 − x2 )
L0 ( x ) =
( x − x0 )( x − x2 )
( x1 − x0 )( x1 − x2 )
( x − x0 )( x − x1 )
L2 ( x) =
( x2 − x0 )( x2 − x1 )
L1 ( x) =
şeklindedir. Sayısal değerler P (x ) ifadesinde yerine yazılırsa,
P( x) =
( x − 1)( x − 2)
( x − 0)( x − 2)
( x − 0)( x − 1)
⋅1 +
⋅2+
⋅4
(0 − 1)(0 − 2)
(1 − 0)(1 − 2)
(2 − 0)(2 − 1)
elde edilir. Bu ifade düzenlendiğinde enterpolasyon polinomu
olarak
P( x ) =
1 2 1
x + x +1
2
2
bulunur.
Prof.Dr. Nurettin UMURKAN
38 / 89
Nümerik Analiz
2010/11
Güz
ÖDEV
f ( x ) = sin (x ) fonksiyonunun bazı değişkenler için değerleri aşağıda
tabloda verilen gibidir. sin 12 o nin enterpolasyon değerini bulunuz.
x
10
11
13
f(x) 0.17365 0.19081 0.22495
ÖRNEK
Aşağıda tabloda verilen noktalardan geçen Lagrange Enterpolasyon
polinomunun x = 3 için değeri,
x
0
1 2 4
5
f(x) 4
6 10 48 94
Lagrange enterpolasyon formülü,
P ( x) = L0 ( x) f ( x0 ) + L1 ( x) f ( x1 ) + L2 ( x) f ( x2 ) + L3 ( x) f ( x3 ) + L4 ( x) f ( x4 )
şeklinde düzenlenir, bu ifadedeki L(x) katsayıları,
( x − x1 )( x − x2 )( x − x3 )( x − x4 )
L0 ( x) =
( x0 − x1 )( x0 − x2 )( x0 − x3 )( x0 − x4 )
(3 − 1)(3 − 2)(3 − 4)(3 − 5)
L0 (3) =
= 0.1
(0 − 1)(0 − 2)(0 − 4)(0 − 5)
L1 ( x ) =
( x − x0 )( x − x 2 )( x − x3 )( x − x 4 )
( x1 − x0 )( x1 − x 2 )( x1 − x3 )( x1 − x4 )
L1 (3) =
(3 − 0)(3 − 2)(3 − 4)(3 − 5)
= −0.5
(1 − 0)(1 − 2)(1 − 4)(1 − 5)
L2 ( x ) =
( x − x0 )( x − x1 )( x − x3 )( x − x4 )
( x2 − x0 )( x2 − x1 )( x2 − x3 )( x2 − x4 )
L2 (3) =
(3 − 0)(3 − 1)(3 − 4)(3 − 5)
= 1.0
(2 − 0)(2 − 1)(2 − 4)(2 − 5)
Prof.Dr. Nurettin UMURKAN
39 / 89
Nümerik Analiz
L3 ( x) =
( x − x0 )( x − x1 )( x − x2 )( x − x4 )
( x3 − x0 )( x3 − x1 )( x3 − x2 )( x3 − x4 )
L3 (3) =
(3 − 0)(3 − 1)(3 − 2)(3 − 5)
= 0.5
(4 − 0)(4 − 1)(4 − 2)(4 − 5)
L4 ( x) =
( x − x0 )( x − x1 )( x − x2 )( x − x3 )
( x4 − x0 )( x4 − x1 )( x4 − x2 )( x4 − x3 )
2010/11
Güz
(3 − 0)(3 − 1)(3 − 2)(3 − 4)
= −0.10
(5 − 0)(5 − 1)(5 − 2)(5 − 4)
olarak bulunur. Böylece enterpolasyon polinom değeri,
P (3) = (0.1)( 4) + ( −0.5)(6) + (1.0)(10) + (0.5)( 48) + ( −0.10)(94) = 22.0
L4 (3) =
clc
n=input('n degeri: ');
for i=1:n
m=input('x degeri: ');
x(i)=m;
end
for i=1:n
k=input('y degeri: ');
y(i)=k;
end
b=3;
a=1;
pp=0;
for i=1:n
m(i)=1;
k(i)=1;
for j=1:n
if i~=j
m(i)= m(i)*(b-x(j));
k(i)=k(i)*(x(i)-x(j));
end
end
s(i)=m(i)/k(i);
pp=pp+s(i)*y(i);
end
for i=1:n
l=s(i);
fprintf('\n
L(x)= %6.3f',l);
Prof.Dr. Nurettin UMURKAN
40 / 89
2010/11
Güz
Nümerik Analiz
end
fprintf('\n
p(a)= %10.3f',pp)
Bölünmüş Farklar Enterpolasyon Formülü
x ‘in x0 , x1 , . . ., xn değerleri için sırasıyla f(x0), f(x1), . . .,
f(xn) değerlerini alan bir fonksiyon için enterpolasyon
polinomu P(x), bölünmüş farklar ile,
P ( x) = f ( x0 ) + ( x − x0 ) f ( x0 , x1 ) + ( x − x0 )( x − x1 ) f ( x0 , x1 , x2 ) + ...
+ ( x − x0 )( x − x1 )...( x − xn −1 ) f ( x0 , x1 ,..., xn )
formülü ile tanımlanır.
ÖRNEK:
x
1.0
1.1
1.2
1.3
cos x 0.5403 0.4536 0.3624 0.2675
x = 1.12 için enterpolasyon polinomu değerini bulunuz.
x
1.0
f(x)
0.5403
-0.8670
1.1
0.4536
-0.2250
-0.9120
1.2
0.3624
0.1333
-0.1850
-0.9490
1.3
0.2675
P (1.12) = 0.5403 + (1.12 − 1.0)(−0.8670) + (1.12 − 1.0)(1.12 − 1.1)(−0.2250) +
+ (1.12 − 1.0)(1.12 − 1.1)(1.12 − 1.2)(0.1333) = 0.4357
Prof.Dr. Nurettin UMURKAN
41 / 89
2010/11
Güz
Nümerik Analiz
ÖRNEK:
X
1.1
1.2
1.0
1.3
cos x 0.4536 0.3624 0.5403 0.2675
x = 1.12 için enterpolasyon polinomu değerini bulunuz.
x
1.1
f(x)
0.4536
-0.9120
1.2
0.3624
-0.2250
-0.8895
1.0
0.5403
0.1333
-0.1983
-0.9093
1.3
0.2675
P (1.12) = 0.4536 + (1.12 − 1.1)(−0.9120) + (1.12 − 1.1)(1.12 − 1.2)(−0.2250) +
+ (1.12 − 1.1)(1.12 − 1.2)(1.12 − 1.0)(0.1333) = 0.4357
clc
n=input('n degeri: ');
for i=1:n
m=input('x degeri: ');
x(i)=m;
end
for i=1:n
k=input('y degeri: ');
y(i)=k;
end
for i=1:n-1
a(i,i+1)=(y(i)-y(i+1))/(x(i)-x(i+1));
e=a(i,i+1);
fprintf('%f\n', e);
end
for i=1:n-2
b(i,i+1)=(a(i,i+1)-a(i+1,i+2))/(x(i)-x(i+2));
e=b(i,i+1);
fprintf('
%f\n')
fprintf('%f\n', e);
end
for i=1:n-3
Prof.Dr. Nurettin UMURKAN
42 / 89
Nümerik Analiz
c(i,i+1)=(b(i,i+1)-b(i+1,i+2))/(x(i)-x(i+3));
e=c(i,i+1);
fprintf('
%f\n')
fprintf('%f\n', e);
2010/11
Güz
end
for i=1:n-4
d(i,i+1)=(c(i,i+1)-c(i+1,i+2))/(x(i)-x(i+4));
e=d(i,i+1);
fprintf('
%f\n')
fprintf('%f\n', e);
end
En Küçük Kareler Yöntemi
Enterpolasyon fonksiyonu P(x) gerçek fonksiyon f(x) ‘i ancak
belirli bir aralıkta tanımlar. Bazı hallerde gerçek fonksiyon
ile enterpolasyon fonksiyonu verilen aralık dışında
birbirinden çok farklı olabilir. Enterpolasyon ile elde edilen
eğri, gerçek fonksiyonun değişimine çok yakın olmalıdır.
Meydana gelen fark ile gerçek fonksiyon değeri,
yi = P( x)+ε i
ifadesi ile verilebilir. ε i , hata miktarıdır.
Fiziksel olayların çoğunda iki veya daha fazla birbirine bağlı
değişken bulunur. Bir olayın deneysel sonucunun analitik
incelenmesi olayın formüle bağlanması ile mümkündür.
Örneğin, zamana göre değişen bir olayda çeşitli zamanlarda
yapılan ölçümlerde f(x) değerleri elde edilmiş olsun.
Gözlemlenen olayın doğrusal bir değişim göstermesi
bekleniyorsa beklenen doğru denklemi
y= A+Bx
olarak ifade edilir. Bu durumda j. inci gözlemdeki xj
değerinden hesaplanan y j = A+Bx j değeri ile gözlemden
Prof.Dr. Nurettin UMURKAN
43 / 89
2010/11
Güz
Nümerik Analiz
elde edilen gerçek y değeri arasındaki farkı minimum olacak
şekilde bir doğru denklemi bulmak istenirse, i. inci
gözlemdeki fark,
d i = yi − ( A + Bxi )
şeklinde ifade edilir.
Ancak bu fark (+) veya (–)
olabileceğine göre teorik fonksiyonun göstereceği doğru en
uygun doğru olmayabilir. Bu nedenle farklar yerine farkların
kareleri toplamının minimum olması şartını sağlayan
fonksiyonu belirlemek gerekir.
n
Si = ∑ d i2 = 0
i =1
Si = d12 + d 22 + d 32 + ... + d n2 = 0
n
Si = ∑ ( yi − ( A + Bxi )) 2 = 0
i =1
Bu ifade de S, A ve B ye bağlı olarak değişecektir. S ‘nin A ve
B ‘ye göre kısmi türevleri alınıp sıfıra eşitlenirse,
∂S
∂S
=0
=0
∂A
∂B
n
n
n
∂S n
= ∑ 2( A + Bxi − yi ) = 0 ⇒ ∑ A + ∑ Bxi = ∑ yi
∂A i =1
i =1
i =1
i =1
n
n
n
∂S n
2
= ∑ 2( A + Bxi − yi ) xi = 0 ⇒ ∑ Axi + ∑ Bxi = ∑ xi yi
∂B i =1
i =1
i =1
i =1
n


 n

A
n
x
y


∑
∑
i 
i 


i =1
i =1


= n
 n


n


 x
xi2   B  ∑ xi yi 
∑
∑
i
 i =1

 i =1

i =1
matrisi elde edilir ve
Prof.Dr. Nurettin UMURKAN
44 / 89
2010/11
Güz
Nümerik Analiz

 n
∆= n
 x
i
∑
i =1
n

 n

xi 
y
x
∑
∑
∑
i
i 

i =1
i =1
i =1
 ∆A =  n

n
n
 xy
xi2 
xi2 
∑
∑
∑
i i

 i =1

i =1
i =1
n


n
y
∑
i 

i =1
∆B =  n

n
 x
xi yi 
∑
∑
i
 i =1

i =1
∆A
A=
∆
∆B
B=
∆
şeklinde matris çözülerek A ve B katsayıları elde edilir.
n
ÖRNEK:
x
0
2 4 6 8 10
f(x) 1 5.1 9 13 17 21
Tablodan geçen doğru denkleminin A ve B katsayılarını en küçük
kareler yöntemiyle bulunuz.

 n
 n
 x
i
∑
i =1
xi
0
2
4
6

 n

A
x
y


∑
i 
∑ i 
i =1


=  ni =1 

n
 
xi2   B  ∑ xi yi 
∑

 i =1

i =1
n
yi
1
5.1
9
13
xi2
0
4
16
36
Prof.Dr. Nurettin UMURKAN
x i yi
0
10.2
36
78
45 / 89
Nümerik Analiz
8
+ 10
30
17
+ 21
66.1
64
+ 100
220
136
+ 210
470.2
2010/11
Güz
 6 30   A  66.1 
30 220  B  = 470.2

  

∆ = 420
∆A = 436
∆B = 838.2
A= 1.03809
B= 1.99571
y = 1.03809 + 1.99571 x
clc
n=6;
tx=0;
ty=0;
tx2=0;
txy=0;
x(1)=0;
x(2)=2;
x(3)=4;
x(4)=6;
x(5)=8;
x(6)=10;
y(1)=1;
y(2)=5.1;
y(3)=9;
y(4)=13;
y(5)=17;
y(6)=21;
for i=1:n
tx=tx+x(i);
ty=ty+y(i);
tx2=tx2+x(i)^2;
txy=txy+x(i)*y(i);
%
ty=sum(x);
%
tx=sum(y);
end
fprintf('\n
Ex= %6.3f',tx);
fprintf('\n
Ey= %10.3f',ty);
fprintf('\n
Ex2= %10.3f',tx2);
fprintf('\n
Ex2= %10.3f',txy);
a=(tx2*ty-txy*tx)/(n*tx2-tx^2);
Prof.Dr. Nurettin UMURKAN
46 / 89
2010/11
Güz
Nümerik Analiz
b=(n*txy-tx*ty)/(n*tx2-tx^2);
fprintf('\n
fprintf('\n
a= %10.6f',a);
b= %10.6f',b);
Ex= 30.000
Ey=
66.100
Ex2=
220.000
Ex2=
470.200
a=
1.038095
b=
1.995714
>>
En Küçük Kareler Yöntemiyle Polinom Yaklaşımı
Verilen noktalardan f(x)=A+Bx+Cx2 parabolü geçirilmek
istenirse hata kareleri toplamının minimum olması için
n
Si = ∑ (( A + Bxi + Cxi2 ) − yi ) 2 = 0
i =1
olmalı,
∂S n
= ∑ 2( A + Bxi + Cxi2 − yi ) = 0
∂A i =1
∂S n
= ∑ 2 xi ( A + Bxi + Cxi2 − yi ) = 0
∂B i =1
∂S n
= ∑ 2 xi2 ( A + Bxi + Cxi2 − yi ) = 0
∂C i =1
 n

 ∑ xi
∑ xi2

∑x ∑x
∑x ∑x
∑x ∑x
i
2
i
3
i
2
i
3
i
4
i
  A  ∑ yi 
  

B
=
x
y
   ∑ i i 
 C  ∑ xi2 yi 



ÖRNEK:
x
y
2
1
3
6
5 6 8
22 33 61
Prof.Dr. Nurettin UMURKAN
47 / 89
2010/11
Güz
Nümerik Analiz
Tablodan geçen f(x)=A+Bx+Cx2 denkleminin A, B ve C
katsayılarını en küçük kareler yöntemiyle bulunuz.
xi
2
3
5
6
+ 8
24
yi
1
6
22
33
+ 61
123
xi2
4
9
25
36
+ 64
138
xi3
8
27
125
216
+ 512
888
xi4
x i yi
xi2 yi
16
2
4
81
18
54
625
110
550
1296
198
1188
+ 4096 + 488 + 3904
6114
816
5700
24 138   A  123 
 5

  

24
138
888
B
=
816

  

138 888 6114  C  5700
A = -3
B=0
C=1
clc
n=5;
tx=0;
ty=0;
tx2=0;
txy=0;
tx2y=0;
tx3=0;
tx4=0;
x(1)=2;
x(2)=3;
x(3)=5;
x(4)=6;
x(5)=8;
y(1)=1;
y(2)=6;
y(3)=22;
y(4)=33;
Prof.Dr. Nurettin UMURKAN
48 / 89
Nümerik Analiz
y(5)=61;
2010/11
Güz
for i=1:n
tx=tx+x(i);
ty=ty+y(i);
tx2=tx2+x(i)^2;
tx3=tx3+x(i)^3;
tx4=tx4+x(i)^4;
txy=txy+x(i)*y(i);
tx2y=tx2y+x(i)^2*y(i);
end
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
Ex= %10.3f',tx);
Ey= %10.3f',ty);
Ex2= %10.3f',tx2);
Ex3= %10.3f',tx3);
Ex4= %10.3f',tx4);
Ex2= %10.3f',txy);
Ex2y= %10.3f',tx2y);
d=[n tx tx2;tx tx2 tx3;tx2 tx3 tx4];
aa=[ty txy tx2y;tx tx2 tx3;tx2 tx3 tx4];
bb=[n tx tx2;ty txy tx2y;tx2 tx3 tx4];
cc=[n tx tx2;tx tx2 tx3;ty txy tx2y];
d=det(d);
aa=det(aa);
bb=det(bb);
cc=det(cc);
a=aa/d;
b=bb/d;
c=cc/d;
fprintf('\n
fprintf('\n
fprintf('\n
a= %10.6f',a);
b= %10.6f',b);
c= %10.6f',c);
Ex=
24.000
Ey=
123.000
Ex2=
138.000
Ex3=
888.000
Ex4=
6114.000
Ex2=
816.000
Ex2y=
5700.000
a= -3.000000
b=
0.000000
c=
1.000000
Prof.Dr. Nurettin UMURKAN
49 / 89
2010/11
Güz
Nümerik Analiz
En Küçük Kareler Yöntemiyle Lineer Olmayan
Fonksiyonlar
Verilen değerlerden lineer bir fonksiyon geçirilemiyorsa
fonksiyonları f(x) = aebx veya f(x) = axb
gibi katsayılar
bakımından lineer olmayan şekilde tanımlanabilir. Lineer
olmayan
fonksiyonların
çözümü
güç
olduğundan
logaritmaları alınarak lineerleştirme işlemi yapılır.
ÖRNEK:
x
0
2
3
4
5
f(x) 5.2 56.628 186.872 616.679 2035.04
Tablodan geçen y = abx denkleminin a ve b katsayılarını en küçük
kareler yöntemiyle bulunuz.
y = abx
ln y = ln a + x ln b
Y = A + BX

 n
 n
 X
i
∑
i =1

 n

A
X
Y


∑
i 
 ∑ i 
i =1


=  ni =1


n


⇒
X i2   B  ∑ X iYi 
∑

 i =1

i =1
n
xi
0
2
3
4
+ 5
14

 n
 n
 x
i
∑
i =1

 n

xi   A  ∑ ln yi 
∑
i =1
   =  ni =1

n


xi2   B  ∑ xi ln yi 
∑

 i =1

i =1
n
yi
xi2 ln yi
5.2
0
1.649
56.628
4
4.037
186.872
9
5.230
616.679
16 6.424
+ 2035.04 + 25 +
7.618
54 24.958
Prof.Dr. Nurettin UMURKAN
x i lnyi
0
8.074
15.690
25.696
+
38.090
87.550
50 / 89
Nümerik Analiz
 5 14   A 24.958
14 54  B  = 87.550

  

∆ = 74
∆A = 122.032
A= 1.649081
∆B = 88.338
2010/11
Güz
B= 1.19392
a = e A a = 5.19999
b = e B b = 3.3
x
y ≅ 5.202 • 3.3
clc
n=5;
tx=0;
ty=0;
tx2=0;
txy=0;
x(1)=0;
x(2)=2;
x(3)=3;
x(4)=4;
x(5)=5;
y(1)=5.2;
y(2)=56.628;
y(3)=186.872;
y(4)=616.679;
y(5)=2035.04;
for i=1:n
k=y(i);
yy(i)=log(k);
tx=tx+x(i);
ty=ty+yy(i);
tx2=tx2+x(i)^2;
txy=txy+x(i)*yy(i);
end
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
EX= %10.3f',tx);
EY= %10.3f',ty);
EX2= %10.3f',tx2);
EXY= %10.3f',txy);
aa=(tx2*ty-txy*tx)/(n*tx2-tx^2);
bb=(n*txy-tx*ty)/(n*tx2-tx^2);
Prof.Dr. Nurettin UMURKAN
51 / 89
2010/11
Güz
Nümerik Analiz
fprintf('\n
fprintf('\n
A= %10.6f',aa);
B= %10.6f',bb);
a=exp(aa);
b=exp(bb);
fprintf('\n
fprintf('\n
EX=
EY=
EX2=
EXY=
A=
B=
a=
b=
a= %10.6f',a);
b= %10.6f',b);
14.000
24.958
54.000
87.553
1.648658
1.193922
5.199998
3.300000
>>
ÖRNEK:
x
f(x)
1
3
3
5
15.588 33.541
b
Tablodan geçen y = a x denkleminin a ve b katsayılarını en küçük
kareler yöntemiyle bulunuz.
b
y = ax
ln y = ln a + b ln x
Y = A + BX

 n
n
 X
i
∑
i =1

 n

A
X
Y
∑
∑
i  
i


i =1
  =  i =1


n
n
2  
 X Y ⇒
X
B
∑
i  
i i

∑

i =1
i =1
n
xi
1
3
5

 n
n
 ln x
i
∑
i =1

 n

A
ln
x


∑
i 
 ∑ ln yi 
i =1
   =  n i =1

n
2  

(ln xi )  B  ∑ ln xi ln yi 
∑

 i =1

i =1
yi
ln xi
ln yi
3
0
1.099
15.588 1.099 2.747
33.541 + 1.609 +
3.513
2.708 7.359
Prof.Dr. Nurettin UMURKAN
n
(ln xi)2 lnx i lnyi
0
0
1.208
3.019
+ 2.589
+ 5.652
3.797
8.671
52 / 89
Nümerik Analiz
2.708  A 7.359
 3
2.708 3.797  B  =  8.671

  

∆ = 4.057736
∆A = 4.461053
A= 1.099395
∆B = 6.084828
2010/11
Güz
B= 1.4995623
a = e A a = 3.0023491
b=B
b = 1.4995623
y ≅ 3 x 1.5
ÖRNEK:
x
0
1
2
f(x)
1
2
6
bx
Tablodan geçen y = a e
denkleminin a ve b katsayılarını en
küçük kareler yöntemiyle bulunuz.
bx
y = ae
ln y = ln a + bx ln e
Y = A + BX

 n
 n
 X
i
∑
i =1

 n

X i   A  ∑ Yi 
∑
i =1
   =  ni =1

n
⇒
2  
X i  B  ∑ X iYi 
∑

 i =1

i =1
n
xi
yi
xi2
0
1
+ 2
3
1
2
6
0
1
+ 4
5

 n
n
∑ xi
 i =1
 A  n

xi     ∑ ln yi 
∑
i =1
   =  ni =1

n
2  
xi  B  ∑ xi ln yi 
∑

 i =1

i =1
n
ln yi
x i lnyi
0
0
0.693147 0.693147
1.791759 3.583519
2.4849066 4.276666
Prof.Dr. Nurettin UMURKAN
53 / 89
2010/11
Güz
Nümerik Analiz
3 3  A 2.4849066
3 5  B  =  4.276666 

  

∆=6
∆A = −0.4054653
∆B = 5.3752795
A= -0.0675775
B= 0.8958797
a = e A a = 0.9346552
b =B b = 0.8958797
y ≅ 0.9346552 e
0.8958797x
En Küçük Kareler Yöntemiyle Trigonometrik Fonksiyonlar
y = a0 + a1 cos x + a2 cos 2 x + a3 cos 3x + ... + an cos nx + b1 sin x +
b2 sin 2 x + b3 sin 3x + ... + bn sin nx
Verilen noktalardan y = a0 + a1 cos xi + b1 sin xi trigonometrik
fonksiyonu geçirilmek istenirse hata kareleri toplamının
minimum olması için
n
S i = ∑ ((a0 + a1 cos xi + b1 sin xi ) − yi ) 2 = 0
i =1
olmalı,
n
∂S
= ∑ 2( a0 + a1 cos xi + b1 sin xi − yi ) = 0
∂a0 i =1
∂S n
= ∑ 2(a0 cos xi + a1 cos 2 xi + b1 sin xi cos xi − yi cos xi ) = 0
∂a1 i =1
∂S n
= ∑ 2(a0 sin xi + a1 cos xi sin xi + b1 sin 2 xi − yi sin xi ) = 0
∂b1 i =1
Prof.Dr. Nurettin UMURKAN
54 / 89
2010/11
Güz
Nümerik Analiz

n

∑ cos xi
 ∑ sin xi

∑ cos x
∑ sin x  a   ∑ y 
∑ cos x
∑ cos x sin x   a  = ∑ y cos x 
∑ cos x sin x
∑ sin x   b   ∑ y sin x 
i
i
i
0
2
i
i
i
1
i
i
1
i
i
2
i
i
i
ÖRNEK:
x
0
20
40
60
80
f(x) 2.5 3.526 4.428
5.098
5.454
y = a0 + b1 sin xi denkleminin a0 ve
Tablodan geçen
katsayılarını en küçük kareler yöntemiyle bulunuz.

n

∑ cos xi
∑ sin xi

b1
∑ cos x
∑ sin x  a   ∑ y 
 
∑ cos x
∑ cos x sin x   a  = ∑ y cos x 
∑ cos x sin x
∑ sin x   b   ∑ y sin x 
i
i
i
0
2
i
i
i
1
i
i
1
i
i
2
i
 n


∑ sin xi

xi
0
20
40
60
80
i
i
∑ sin x
  a0   ∑ yi 
  

=
  

2
∑ sin xi   b1  ∑ yi sin xi 
yi
2.5
3.526
4.428
5.098
+ 5.454
21.006
i
sinxi
sin2 xi yi sinxi
0
0
0
0.342 0.117 1.206
0.643 0.413 2.847
0.866 0.750 4.415
+ 0.985 +
+ 5.290
0.970
2.836
2.25 13.758
2.836 a0  21.006 
 5
2.836 2.25   b  = 13.758 

 1  

Prof.Dr. Nurettin UMURKAN
55 / 89
2010/11
Güz
Nümerik Analiz
a0 = 2.500 b1 = 2.999
y ≅ 2.500 + 2.900 sin x
clc
n=5;
tx=0;
ty=0;
tx2=0;
txy=0;
x(1)=0;
x(2)=20;
x(3)=40;
x(4)=60;
x(5)=80;
y(1)=2.5;
y(2)=3.526;
y(3)=4.428;
y(4)=5.098;
y(5)=5.454;
for i=1:n
k=x(i)*pi/180;
xx=sin(k);
tx=tx+xx;
ty=ty+y(i);
tx2=tx2+xx^2;
txy=txy+xx*y(i);
end
fprintf('\n
fprintf('\n
fprintf('\n
fprintf('\n
Esinx= %10.5f',tx);
Ey= %10.5f',ty);
Esin2x= %10.5f',tx2);
Eysinx= %10.5f',txy);
aa=(tx2*ty-txy*tx)/(n*tx2-tx^2);
bb=(n*txy-tx*ty)/(n*tx2-tx^2);
fprintf('\n
fprintf('\n
Esinx=
Ey=
ao= %10.6f',aa);
b1= %10.6f',bb);
2.83564
21.00600
Esin2x=
2.25000
Eysinx=
13.83837
Prof.Dr. Nurettin UMURKAN
56 / 89
2010/11
Güz
Nümerik Analiz
ao=
2.500004
b1=
2.999667
>>
Cebirsel Fonksiyon Köklerinin Bulunması
Newton-Raphson Yöntemi
Bir başlangıç noktası (x0) verilir. Eğer fonksiyonun tek bir
değeri var ve türevi kolay alınabiliyorsa bu yöntem tercih
edilir. Yöntemin esası seçilen başlangıç noktasından
fonksiyona bir teğet çizilerek teğet eğiminin o noktadaki
türeve eşit olduğunu kabul eden teoreme dayanır. Bulunan
değer birinci iterasyon olarak adlandırılır. Ardışık iki
iterasyon arasındaki fark verilen bir epsilon sayısından küçük
yada eşit oluncaya kadar iterasyona devam edilir. Bu şart
sağlandığında kök bulunmuş olur.
α
x2
x1
x0
teğet
f(x)
x1 = x0 −
f ( x0 )
f ′( x0 )
Prof.Dr. Nurettin UMURKAN
1. iterasyon
57 / 89
2010/11
Güz
Nümerik Analiz
x0 − x1 = ε
sağlanırsa kök x1 dir. Eğer bu şart
sağlanmıyorsa iterasyona devam edilir ve başlangıç noktası
olarak x1 alınır.
f ( x1 )
x2 = x1 −
2. iterasyon
f ′( x1 )
Şart sağlanana kadar iterasyona devam edilir, k iterasyon
sayısını göstermek üzere,
f ( xk )
xk +1 = xk −
f ′( xk )
ÖRNEK:
y = x 2 − sin x − 1 denkleminin kökünü başlangıç noktasını 1 ve
epsilon 10-6 alarak çözünüz.
x0
1
1.576469
1.422834
1.409720
1.409624
1.409624 kök olarak alınır.
x1
1.576469
1.422834
1.409720
1.409624
1.409624
EPS farkı
0.576469
0.153634
0.013114
0.000096
0.000000
clc
eps=1*10^-6;
n=100000;
x=1;
for i=1:n
y=x^2-sin(x)-1;
dy=2*x-cos(x);
a=x-(y/dy);
d=a-x;
delta=abs(d);
x=a;
fprintf('\n
fprintf('\n
x= %15.7f',x);
delta= %15.7f',delta);
Prof.Dr. Nurettin UMURKAN
58 / 89
2010/11
Güz
Nümerik Analiz
if delta<=eps
break
end
end
x=
delta=
x=
delta=
x=
delta=
x=
delta=
x=
delta=
1.5764694
0.5764694
1.4228349
0.1536345
1.4097207
0.0131142
1.4096240
0.0000966
1.4096240
0.0000000
>>
Regula-Falsi Yöntemi
b
a
a
f(a) > 0
f(b) < 0
b
f(a) < 0
f(b) > 0
Yöntemin esası, <eğer sürekli bir f(x) fonksiyonunun x=a ve
x=b noktalarında değerleri birbirinin ters işaretlisi ise f(x)
sürekli fonksiyonunun (a,b) aralığında en az bir kökü vardır>
Prof.Dr. Nurettin UMURKAN
59 / 89
2010/11
Güz
Nümerik Analiz
teoremine dayanır. Amaç f(a) ile f(b) yi birleştiren doğrunun
x eksenini kestiği noktayı bulmaktır. Bu nokta,
a
c1
c2
b
bf (a) − af (b)
f (c1 ) ≤ ε
f (a ) − f (b) ile hesaplanır. c1 kök ise
şartını sağlamalıdır. Eğer bu şart sağlanmıyorsa iterasyona
devam edilir. Kök aranan (a,b) aralığı daraltılır. Örneğin,
c1 =
f (a) < 0 
 a = c1
f (c1 ) < 0 
ise kök aranan yeni aralık (c1,b) olur. Đkinci iterasyonda
hesaplanacak c2,
bf (c1 ) − c1 f (b)
c2 =
ile hesaplanır.
f (c1 ) − f (b)
Şart sağlanmıyorsa, üçüncü iterasyona geçilir.
f (c 2 ) > 0 
 b = c2
f (c1 ) < 0 
Prof.Dr. Nurettin UMURKAN
60 / 89
Nümerik Analiz
2010/11
Güz
Đse aralık (c1,c2) olarak daraltılır. Şart sağlanana kadar
iterasyona devam edilir
ÖRNEK:
y = x 3 − 5 x − 7 denkleminin kökünü (2,3) aralığında
EPS= 0.001 alarak bulunuz.
f(a) = f(2)= -9 <0
f(b) = f(3)= 5 >0
c1 =
bf (a) − af (b)
= 2.642857
f (a ) − f (b)
f (c1 ) = − 1.754 ≤ 10 −3 şartı sağlanmadı c1 kök değil,
f (a) < 0 
 a = c1 alarak (c1, b) aralığında işleme devam
f (c1 ) < 0
edilir.
c2 =
bf (c1 ) − c1 f (b)
= 2.735606
f (c1 ) − f (b)
f (c2 ) = − 0.206 ≤ 10 −3 şartı sağlanmadı c2 kök değil,
f (c 2 ) < 0
 c1 = c2 alarak (c2, b) aralığında işleme devam
f (c1 ) < 0 
edilir.
c3 =
bf (c2 ) − c2 f (b)
= 2.746067
f (c2 ) − f (b)
Prof.Dr. Nurettin UMURKAN
61 / 89
Nümerik Analiz
2010/11
Güz
f (c3 ) = − 0.0225 ≤ 10 − 3 şartı sağlanmadı o halde c3 kök
değil,
f (c 3 ) < 0
 c 2 = c3 alarak (c3 ,b) aralığında işleme devam
f (c2 ) < 0
edilir.
bf (c3 ) − c3 f (b)
c4 =
= 2.747204
f (c3 ) − f (b)
f (c4 ) = − 0.0025 ≤ 10 −3 şartı sağlanmadı o halde c4 kök
değil,
f (c 4 ) < 0
 c 3 = c4 alarak (c4 , b) aralığında işleme devam
f ( c3 ) < 0 
edilir.
c5 =
bf (c4 ) − c4 f (b)
= 2.747330
f (c4 ) − f (b)
f (c5 ) = − 0.000291 ≤ 10 −3 şartı sağlandı o halde c5
kök.
clc
clear
eps=1*10^-3;
n=100000;
a=2;
b=3;
for i=1:n
for x=a:b
y=x^3-5*x-7;
if x==a
aa=y;
else
bb=y;
end
end
Prof.Dr. Nurettin UMURKAN
62 / 89
Nümerik Analiz
2010/11
Güz
pay=b*aa-a*bb;
payda=aa-bb;
c(i)=pay/payda;
x=c(i);
cc=x^3-5*x-7;
fprintf('\n
(a,b)= %15.7f',a,b);
if aa*cc>0
a=x;
else
b=x;
end
mcc=abs(cc);
fprintf('\n
c= %15.7f',x);
fprintf('\n
|f(c)|= %15.7f',cc);
if mcc<=eps
break
end
end
(a,b)=
(a,b)=
c=
|f(c)|=
(a,b)=
(a,b)=
c=
|f(c)|=
(a,b)=
(a,b)=
c=
|f(c)|=
(a,b)=
(a,b)=
c=
|f(c)|=
(a,b)=
(a,b)=
c=
|f(c)|=
2.0000000
3.0000000
2.6428571
-1.7547376
2.6428571
3.0000000
2.7356353
-0.2055015
2.7356353
3.0000000
2.7460718
-0.0224776
2.7460718
3.0000000
2.7472082
-0.0024400
2.7472082
3.0000000
2.7473315
-0.0002646
>>
Prof.Dr. Nurettin UMURKAN
63 / 89
2010/11
Güz
Nümerik Analiz
Yarıya Bölme Yöntemi
Yöntemin esası, <eğer sürekli bir f(x) fonksiyonunun x=a ve
x=b noktalarında değerleri birbirinin ters işaretlisi ise f(x)
sürekli fonksiyonunun (a,b) aralığında en az bir kökü vardır>
teoremine dayanır. Amaç a ile b nin orta noktasını
bulmaktır.
a+b
c1 =
ile hesaplanır. c1 kök ise f (c1 ) ≤ ε şartını
2
sağlamalıdır. Eğer bu şart sağlanmıyorsa iterasyona devam
edilir.
Kök aranan (a,b) aralığı daraltılır. Örneğin,
f (a) < 0 
 a = c1
f (c1 ) < 0 
ise kök aranan yeni aralık (c1,b) olur. Şart sağlanana kadar
iterasyona devam edilir.
ÖRNEK:
y = sinx − 0.75 denkleminin kökünü (0.7, 0.9) aralığında
EPS= 0.001 alarak bulunuz.
f(a) = f(0.7)<0
f(b) = f(0.9)>0
a+b
c1 =
= 0.8
f (c1 ) =
2
sağlanmadı o halde c1 kök değil,
− 0.03264 ≤ 10 − 3 şartı
Prof.Dr. Nurettin UMURKAN
64 / 89
2010/11
Güz
Nümerik Analiz
f (a) < 0 
 a = c1
f (c1 ) < 0
c2 = 0.85
(c1,b)
f (c2 ) = 0.00128 ≤ 10 −3
f (b) > 0 
 b = c2
f (c2 ) > 0
c3 = 0.825
(c1,c2)
f (c3 ) = − 0.15 ≤ 10 −3
f (c 3 ) < 0
 c1 = c3
f (c1 ) < 0 
c4 = 0.8375
f (c 3 ) < 0
 c 3 = c4
f (c4 ) < 0
c5 = 0.8437
f (c 5 ) < 0
 c 4 = c5
f (c4 ) < 0
(c3,c2)
f (c4 ) = − 0.007 ≤ 10 −3
(c4,c2)
f (c4 ) = − 0.0285 ≤ 10−3
(c5,c2)
c6 = 0.8468
f (c6 ) = − 0.0008 ≤ 10 −3 şartı sağlandı o halde c6 kök.
clc
clear
eps=1*10^-3;
n=100000;
a=0.7;
b=0.9;
for i=1:n
for x=a:b
Prof.Dr. Nurettin UMURKAN
65 / 89
Nümerik Analiz
y=sin(x)-0.75;
2010/11
Güz
if x==a
aa=y;
else
bb=y;
end
end
c(i)=(a+b)/2;
x=c(i);
cc=sin(x)-0.75;
fprintf('\n
(a,b)= %15.7f',a,b);
if aa*cc>0
a=x;
else
b=x;
end
mcc=abs(cc);
fprintf('\n
c= %15.7f',x);
fprintf('\n
f(c)= %15.7f',cc);
if mcc<=eps
break
end
end
(a,b)=
(a,b)=
c=
f(c)=
(a,b)=
(a,b)=
c=
f(c)=
(a,b)=
(a,b)=
c=
f(c)=
(a,b)=
(a,b)=
c=
f(c)=
(a,b)=
(a,b)=
c=
f(c)=
(a,b)=
(a,b)=
c=
f(c)=
0.7000000
0.9000000
0.8000000
-0.0326439
0.8000000
0.9000000
0.8500000
0.0012804
0.8000000
0.8500000
0.8250000
-0.0154522
0.8250000
0.8500000
0.8375000
-0.0070279
0.8375000
0.8500000
0.8437500
-0.0028591
0.8437500
0.8500000
0.8468750
-0.0007857
Prof.Dr. Nurettin UMURKAN
66 / 89
Nümerik Analiz
>>
2010/11
Güz
Regula-Falsi Yönteminde verilen örneğin Yarıya Bölme
Yöntemiyle çözülmesi
(a,b)=
2.0000000
(a,b)=
3.0000000
c=
2.5000000
|f(c)|=
3.8750000
(a,b)=
2.5000000
(a,b)=
3.0000000
c=
2.7500000
|f(c)|=
0.0468750
(a,b)=
2.5000000
(a,b)=
2.7500000
c=
2.6250000
|f(c)|=
2.0371094
(a,b)=
2.6250000
(a,b)=
2.7500000
c=
2.6875000
|f(c)|=
1.0266113
(a,b)=
2.6875000
(a,b)=
2.7500000
c=
2.7187500
|f(c)|=
0.4978333
(a,b)=
2.7187500
(a,b)=
2.7500000
c=
2.7343750
|f(c)|=
0.2274818
(a,b)=
2.7343750
(a,b)=
2.7500000
c=
2.7421875
|f(c)|=
0.0908055
(a,b)=
2.7421875
(a,b)=
2.7500000
c=
2.7460938
|f(c)|=
0.0220910
(a,b)=
2.7460938
(a,b)=
2.7500000
c=
2.7480469
|f(c)|=
0.0123606
(a,b)=
2.7460938
(a,b)=
2.7480469
c=
2.7470703
|f(c)|=
0.0048731
(a,b)=
2.7470703
(a,b)=
2.7480469
c=
2.7475586
|f(c)|=
0.0037418
(a,b)=
2.7470703
(a,b)=
2.7475586
c=
2.7473145
|f(c)|=
0.0005661
Prof.Dr. Nurettin UMURKAN
67 / 89
2010/11
Güz
Nümerik Analiz
>>
Lineer Cebirsel Denklem Sistemleri
a11 x1 + a12 x2 + ... + a1n xn = c1
a21 x1 + a22 x2 + ... + a2 n xn = c2
M
an1 x1 + an 2 x2 + ... + ann xn = cn
AX=C
A: katsayı matrisi
X: bilinmeyen matrisi
C: eşitlik matrisi
Gauss Eleminasyon Yöntemi
Bu yöntemde A katsayı matrisi kanonik forma getirilir.
 a11
a
 21
a31
a12
a 22
a32
a13 
a11
0
a 23 
>>> 
 0
a33 
a12
a22
0
a13 
 a11
a
a23 
21
veya 
a31
a33 
0
a 22
a32
0
0 
a33 
A katsayılar matrisi üst üçgen matrisi haline dönüştürülür.
Matris kullanılarak çözüme gidilir. Çözüme matrisin en son
satırından başlanarak yerine yazma işlemiyle geriye doğru
bilinmeyenler bulunur.
Prof.Dr. Nurettin UMURKAN
68 / 89
2010/11
Güz
Nümerik Analiz
a11 x1 + a12 x2 + ... + a1n xn = c1
a21 x1 + a22 x2 + ... + a2 n xn = c2
′ x2 + ... + a1′n xn = c1′
x1 + a12
x2 + ... + a2′ n xn = c2′
M
M
an1 x1 + an 2 x2 + ... + ann xn = cn
a′nn xn = cn′
xn = cn′ / a′nn ⇒ bulunur. n-1 inci denklemde xn yerine yazılır
xn-1 hesaplanır.
ÖRNEK:
3.6 x1 + 2.4 x2 − 1.8 x3 = 6.3
4.2 x1 − 5.8 x2 + 2.1x3 = 7.5
0.8x1 + 3.5 x2 + 6.5 x3 = 3.7
Denklem sistemini çözünüz.
3.6 2.4 − 1.8 6.3
4.2 − 5.8 2.1 7.5


0.8 3.5
6.5 3.7
Arttırılmış katsayılar matrisi düzenir.
1.Đşlem: Matrisin 1. satırı a11 ile bölünür.
 1 0.667 − 0.5 1.75
4.2 − 5.8 2.1 7.5 


0.8 3.5
6.5 3.7 
2.Đşlem: matrisin 1. satırı a21 ile çarpılır ve 2. satırdan
çıkartılır. matrisin 1. satırı a31 ile çarpılır ve 3. satırdan
çıkartılır.
Prof.Dr. Nurettin UMURKAN
69 / 89
Nümerik Analiz
1 0.667 − 0.5 1.75 
0 − 8.6 4.2 0.15


2.3 
0 2.966 6.9
2010/11
Güz
3.Đşlem: matrisin 2. satırı a22 ye bölünür. matrisin 2. satırı
a32 ile çarpılır ve 3. satırdan çıkartılır.
1.75 
1 0.667 − 0.5
0

1
−
0
.
489
−
0
.
017


0 2.966
6.9
2.3 
1.75 
1 0.667 − 0.5
0

1
−
0
.
489
−
0
.
017


0
0
8.35
2.35 
4.Đşlem: matrisin 3. satırı a33 e bölünür.
1.75 
1 0.667 − 0.5
0

1
−
0
.
489
−
0
.
017


0
0
1
0.281 
x3=0.281
x2+(-0.489)(0.281)=-0.017 ⇒ x2=0.12
benzer şekilde 1. denklemden x1=1.81
Prof.Dr. Nurettin UMURKAN
70 / 89
2010/11
Güz
Nümerik Analiz
clc
clear
n=3;
a=[3.6 2.4 -1.8 6.3; 4.2 -5.8 2.1 7.5; 0.8 3.5 6.5 3.7];
for j=1:n+1
aa(1,j)=a(1,j)/a(1,1);
b(1,j)=aa(1,j)*a(2,1);
aa(2,j)=a(2,j)-b(1,j);
b(1,j)=aa(1,j)*a(3,1);
aa(3,j)=a(3,j)-b(1,j);
end
for j=1:n+1
aaa(2,j)=aa(2,j)/aa(2,2);
bb(2,j)=aaa(2,j)*aa(3,2);
aaa(3,j)=aa(3,j)-bb(2,j);
a(1,j)=aa(1,j)
a(2,j)=aaa(2,j)
end
for j=1:n+1
a(3,j)=aaa(3,j)/aaa(3,3)
end
x3=a(3,4)
x2=a(2,4)-a(2,3)*x3
x1=a(1,4)-a(1,3)*x3-a(1,2)*x2
a =
1.0000
0.6667
-0.5000
1.7500
0
1.0000
-0.4884
-0.0174
0
0
1.0000
0.2817
x3 =
0.2817
x2 =
0.1201
x1 =
1.8108
>>
Prof.Dr. Nurettin UMURKAN
71 / 89
Nümerik Analiz
2010/11
Güz
Basit Đterasyon Yöntemi (Jacobi Đterasyonu)
x1 =
c1 − ( a12 x2 + a13 x3 + ... + a1n xn )
a11
x2 =
c2 − ( a21 x1 + a23 x3 + ... + a2 n xn )
a22
M
xn =
cn − ( an1 x1 + an 2 x2 + ... + ann −1 xn −1 )
ann
ÖRNEK:
2 x1 + 3x2 + 6 x3 = 31
8 x1 + 2 x2 + 3x3 = 30
x1 − 9 x2 + 2 x3 = 1
Denklem sistemini ε= 0.001 alarak çözünüz.
x1 = (30 − 2 x2 − 3x3 ) / 8
x2 = (1 − x1 − 2 x3 ) /(−9)
x3 = (31 − 2 x1 − 3x2 ) / 6
Prof.Dr. Nurettin UMURKAN
72 / 89
Nümerik Analiz
x1
x2
x3
0
3.7500
1.8402
1.8969
2.0710
1.9951
1.9949
2.0028
1.9998
1.9997
0
-0.1111
1.4537
0.9760
0.9499
1.0181
0.9997
0.9977
1.0007
1.0000
0
5.1666
3.9722
3.8263
4.0462
4.0013
3.9925
4.0018
4.0001
3.9996
x1 ≅ 2
x2 ≅ 1
X3 ≅ 4
2010/11
Güz
clc
clear
eps=0.001;
n=100000;
a=[8 2 3 30;1 -9 2 1;2 3 6 31];
x=0;
y=0;
z=0;
for j=1:n
xx(j)=(a(1,4)-a(1,2)*y-a(1,3)*z)/a(1,1);
yy(j)=(a(2,4)-a(2,1)*x-a(2,3)*z)/a(2,2);
zz(j)=(a(3,4)-a(3,1)*x-a(3,2)*y)/a(3,3);
d=abs(x-xx(j));
e=abs(yy(j)-y);
f=abs(zz(j)-z);
x=xx(j);
y=yy(j);
z=zz(j);
fprintf('%10.6f\n', x);
fprintf('%18.6f\n',
fprintf('%26.6f\n',
y);
z);
Prof.Dr. Nurettin UMURKAN
73 / 89
Nümerik Analiz
if d<=eps
if e<=eps
if f<=eps
2010/11
Güz
fprintf('%10.2f=iterasyon sayisi', j);
break
end
end
end
end
3.750000
-0.111111
5.166667
1.840278
1.453704
3.972222
1.896991
0.976080
3.826389
2.071084
0.949974
4.046296
1.995145
1.018186
4.001318
1.994959
0.999754
3.992525
2.002865
0.997779
4.001804
1.999879
1.000719
4.000156
1.999762
1.000021
3.999681
9.00=iterasyon sayisi
>>
Prof.Dr. Nurettin UMURKAN
74 / 89
2010/11
Güz
Nümerik Analiz
Gauss-Seidel Đterasyon Yöntemi
x
x
( k +1)
( k +1)
2
1
=
c1 − (a12 x2
(k )
(k )
(k )
+ a13 x3 + ... + a1n xn )
a11
c2 − (a21 x1( k +1) + a23 x3
=
a22
(k )
+ ... + a2 n x ( k ) n )
M
x
( k +1)
n
=
cn − (an1 x1
( k +1)
( k +1)
+ a n 2 x2
ann
+ ... + ann−1 xn( k−1+1) )
ÖRNEK:
x1 + 6 x2 + 3x3 = 20
2 x1 + x2 + 4 x3 = 14
5 x1 − 2 x2 + x3 = 8
Denklem sistemini ε= 0.001 alarak çözünüz.
x1 = (8 + 2 x2 − x3 ) / 5
x2 = (20 − 3x3 − x1 ) /(6)
x3 = (14 − 2 x1 − x2 ) / 4
Prof.Dr. Nurettin UMURKAN
75 / 89
Nümerik Analiz
x1
x2
x3
1.6000
2.4400
2.0260
2.0479
2.0097
2.0062
2.0019
2.0009
0
3.0666
1.9600
2.1006
2.0111
2.0117
2.0028
2.0016
2.0005
0
1.9333
1.7900
1.9618
1.9732
1.9921
1.9961
1.9986
1.9994
x1 ≅ 2
x2 ≅ 2
x3 ≅ 2
2010/11
Güz
clc
clear
eps=0.001;
n=100000;
a=[5 -2 1 8;1 6 3 20;2 1 4 14];
y=0;
z=0;
for j=1:n
xx(j)=(a(1,4)-a(1,2)*y-a(1,3)*z)/a(1,1);
x=xx(j);
yy(j)=(a(2,4)-a(2,1)*x-a(2,3)*z)/a(2,2);
y=yy(j);
zz(j)=(a(3,4)-a(3,1)*x-a(3,2)*y)/a(3,3);
d=abs(x-xx(j));
e=abs(yy(j)-y);
f=abs(zz(j)-z);
z=zz(j);
fprintf('%10.6f\n', x);
fprintf('%18.6f\n',
fprintf('%26.6f\n',
if d<=eps
if e<=eps
if f<=eps
y);
z);
Prof.Dr. Nurettin UMURKAN
76 / 89
Nümerik Analiz
2010/11
Güz
fprintf('%10.2f=iterasyon sayisi', j);
break
end
end
end
end
1.600000
3.066667
1.933333
2.440000
1.960000
1.790000
2.026000
2.100667
1.961833
2.047900
2.011100
1.973275
2.009785
2.011732
1.992175
2.006258
2.002870
1.996154
2.001917
2.001604
1.998641
2.000913
2.000528
1.999411
8.00=iterasyon sayisi
>>
Prof.Dr. Nurettin UMURKAN
77 / 89
2010/11
Güz
Nümerik Analiz
Sayısal Türev
Bir takım ayrık noktalarda değeri bilinen bir f(x)
fonksiyonunun bir noktadaki türevini yaklaşık olarak bulma
işlemidir.
yaklaşık
Q
P
gerçek
L+
L-
x0 -∆x
x0
x0 +∆x
x = x0 da f(x) ‘in birinci türevi,
f ′( x0 ) = lim
∆x →0
f ( x0 + ∆x ) − f ( x )
∆x
şeklinde tanımlanır.
f′(x0) , x0 ‘da ki eğrinin eğimine eşittir.
L+ doğrusunun eğimi =
f ( x0 + ∆x ) − f ( x )
∆x
L- doğrusunun eğimi =
f ( x0 − ∆x ) − f ( x )
− ∆x
2∆x = h
⇒ ∆x = h / 2
L+ + L−
P ve Q dan geçen doğru eğimi =
2
Prof.Dr. Nurettin UMURKAN
78 / 89
2010/11
Güz
Nümerik Analiz
f ′( x0 ) =
f ′′( x0 ) =
f ( x0 + h / 2 ) − f ( x0 − h / 2 )
merkezi farktan 1. türev
h
f ( x0 + h ) − 2 f ( x0 ) + f ( x0 − h )
h2
merkezi farktan 2.türev
ÖRNEK:
f(x)=2 x 2- 3 x + 4
x = 4 de h = 0.01 için Birinci Türevini
Merkezi Fark formülü ile hesaplayınız.
f ′( x ) =
f( x + h/ 2)− f( x −h/ 2)
h
f ′( 4 ) =
f ( 4 + 0.005 ) − f ( 4 − 0.005 )
= 13 (gerçek değer = 13 )
0.01
Sayısal Đntegral
y=f(x) fonksiyonu [a,b] aralığında sürekli olmak üzere,
fonksiyonun [a,b] aralığındaki integrali, f(x) eğrisinin altında
ve [a,b] aralığındaki bölgenin alanına eşittir.
Dikdörtgenler Yöntemi
Prof.Dr. Nurettin UMURKAN
79 / 89
2010/11
Güz
Nümerik Analiz
S3
S2
S1
S4
a
b
b
n −1
a
i =0
S = ∫ f ( x) dx ≅ ∑ f i ⋅ hi
hi =
b−a
n
Yamuklar Yöntemi
S1
S2
Sn
1
1
1
S1 = h( y0 + y1 ) a=x
, S2 = x h( y1 x+ y2...) , b=x
... , Sn −1 = h( yn − 2 + yn −1 )
0
2
n
2
21
2
Sn =
1
h( y n −1 + y n )
2
n −1
y + yn
S = h( 0
+
yi )
2
i =1
∑
ÖRNEK:
y=
1
1 + x2
denkleminin x0 = 0 , xn = 1 aralığında integral
değerini n=4 alarak Yamuklar Yöntemiyle hesaplayınız.
Prof.Dr. Nurettin UMURKAN
80 / 89
2010/11
Güz
Nümerik Analiz
hi =
b−a
n
xi
yi
0
1
0.25
0.94118
0.5
0.8
0.75
0.64
y0 + y4 3
S = h(
+ yi ) ⇒ ⇒ ⇒
2
i =1
∑
1
0.5
S= 0.782794
gerçek değer
1
1
∫1+ x
1
dx =arctg x
2
= arctg 1 − arctg 0 =
0
0
π
4
= 0.78539
Simpson Yöntemi
f ( x ) = ax 2 + bx + c
S
y0
a=-h
h
0
∫
S = ( ax 2 + bx + c )dx
y1
y2
b=+h
⇒ ⇒ ⇒
−h
3
S =(
2
ax
bx
+
+ cx )
3
2
h
S = ( 2 ah 2 + 6 c )
3
h
−h
(∗)
integralin çözümüdür.
a ve c katsayılarını bulmak için f(x)denklemi sınır koşulları
(-h, 0, +h) için düzenlenir.
Prof.Dr. Nurettin UMURKAN
81 / 89
2010/11
Güz
Nümerik Analiz
x = − h için
f(x) = ah 2 − bh + c = y0
x =0
f(x) = c = y1
için
x = h için
⇒ ⇒ (∗) ‘de yerine ve
f(x) = ah 2 + bh + c = y2
y0 + y2 = 2 ah 2 + 2c
⇒ ⇒
2ah2 çekilir ve (∗) ‘de yerine
yazılır.
h
S = ( y0 + 4 y1 + y2 )
3
h=
b−a
n
n çift aralık için;
S = S1 + S 2 + ... + S n
h
S1 = ( y0 + 4 y1 + y2 )
3
h
S2 = ( y2 + 4 y3 + y4 )
3
................
h
S n = ( yn − 2 + 4 y n − 1 + y n )
3
ÖRNEK:
f(x)=
Sin x
2
x +1
denkleminin ( 0 , 1 ) aralığında integral
değerini n=4 alarak Simpson Yöntemiyle hesaplayınız.
xi
yi
0
0.25
0.5
0.75
1
0 0.24549 0.45201 0.57164 0.59501
h
S = ( y0 + 4 y1 + 2 y2 + 4 y3 + y4 ) = 0.397297
3
Prof.Dr. Nurettin UMURKAN
82 / 89
2010/11
Güz
Nümerik Analiz
Diferansiyel Denklemlerin Sayısal Çözümü
Taylor Yöntemi
Bu yöntemin esası Taylor Serisine dayanmaktadır. Daha çok
birinci mertebe diferansiyel denklemlere uygulanır.
dy
= f ( x, y ) diferansiyel denkleminin çözümü y=y(x) olsun,
dx
y=y(x) çözümüne ilişkin başlangıç koşulları x=x0 için
y(x0)=y0 olur, x’ in her değerindeki artma sabit kabul
edilirse,
∆xi = xi +1 − xi = h
, i = 0, 1, 2, 3, …
bu durumda y = y(x) fonksiyonunun Taylor Serisine açılımı,
h2
h3
hn (n)
y ( x + h ) ≅ y ( x) + h y′( x ) +
y′′( x ) + y′′′( x ) + L +
y (x)
2!
3!
n!
dır. x yerine başlangıç değeri x0 yazıldığında ve dördüncü
mertebeden türevli terimden sonrası ihmal edildiğinde,
h2
h3
h 4 ( 4)
y ( x0 + h ) = y ( x1 ) ≅ y ( x0 ) + h y′( x0 ) +
y′′( x0 ) + y′′′( x0 ) +
y ( x0 )
2!
3!
4!
denklem x1 için yazıldığında,
Prof.Dr. Nurettin UMURKAN
83 / 89
Nümerik Analiz
2010/11
Güz
h2
h3
h 4 (4)
y ( x1 + h ) = y ( x2 ) ≅ y ( x1 ) + h y′( x1 ) +
y′′( x1 ) + y′′′( x1 ) +
y ( x1 )
2!
3!
4!
elde edilir. En genel halde xi için yazılırsa,
h2
h3
h 4 ( 4)
y ( xi + h ) = y ( xi +1 ) ≅ y ( xi ) + h y′( xi ) +
y′′( xi ) + y′′′( xi ) +
y ( xi )
2!
3!
4!
şeklinde elde edilir.
ÖRNEK:
dy
= x y1 3 şeklinde verilen diferansiyel denklemi başlangıç
dx
koşulları x0 = 1 ve y(x1) = 1 olduğuna göre h=0.1 alarak
y(1.1) değerini hesaplayınız.
Fonksiyonun türevleri,
y′( x ) = x y1 3
1
y′′( x ) = x 2 y −1 3 + y1 3
3
1
y′′′( x ) = − x3 y −1 + x y −1 3
9
1
2
y ( 4) ( x ) = x 4 y −5 3 − x 2 y −1 + y −1 3
9
3
olarak elde edilir.
y (1.1) = 1 + 0.1 +
2
(0.1)2 + 4 (0.1)3 + 1 (0.1)4 = 1.10682
3
27
54
Prof.Dr. Nurettin UMURKAN
84 / 89
Nümerik Analiz
2010/11
Güz
Euler Yöntemi
y′( x) =
dy
= f ( x, y ) diferansiyel denkleminin çözümü y=y(x)
dx
olsun, y=y(x) çözümüne ilişkin başlangıç koşulları x=x0 için
y(x0)=y0 olarak verildiğine göre
y′( x0 ) = f ( x0 , y0 )
olur ve Taylor Serisinin ilk iki teriminin kullanılmasıyla
y(x0+h) için bir yaklaşık değer bulunabilir.
y ( x0 + h) = y0 + h y′( x0 )
y ( x0 + h) = y ( x1 ) = y1
y1 = y0 + h f ( x0 , y0 )
olarak elde edilir. Benzer şekilde,
y ( x0 + 2h) = y ( x2 ) = y2
y2 = y1 + h f ( x1, y1 )
en genel hal için, n=0, 1, 2, . . .
yn +1 = yn + h f ( xn , yn )
olarak tanımlanır.
Prof.Dr. Nurettin UMURKAN
85 / 89
Nümerik Analiz
2010/11
Güz
ÖRNEK:
y ′ = − y diferansiyel denkleminin başlangıç değeri y(0)=1
olarak verildiğine göre h=0.01 için y(0.04) değerini
hesaplayınız.
y(0.01)=1+0.01(-1)=0.99
y(0.02)=0.99+0.01(-0.99)=0.9801
y(0.03)=0.9801+0.01(-0.9801)=0.9703
y(0.04)= 0.9703+0.01(-0.9703)=0.9606
Euler yöntemine ikinci bir yaklaşımda yamuk yöntemi
uygulanarak elde edilen Düzenlenmiş Euler Formülüdür.
Düzenlenmiş Euler Formülü
y′( x) =
dy
= f ( x, y ) diferansiyel denkleminin çözümü y=y(x)
dx
olsun, y=y(x) çözümüne ilişkin başlangıç koşulları x=x0 için
y(x0)=y0 olarak verildiğine göre,
f(x,y) fonksiyonunun x’e göre integrali alındığında
xi +1
xi +1
xi +1
dy
x
dx = ∫ dy = y xi +1 = y ( xi +1 ) − y ( xi )
∫ f ( x, y )dx = ∫
i
xi
xi dx
xi
Prof.Dr. Nurettin UMURKAN
86 / 89
2010/11
Güz
Nümerik Analiz
elde edilir. Buradan
xi +1
y ( xi +1) = ∫ f ( x, y )dx + y ( xi )
xi
buradaki integral ifadesine yamuk kuralı ile yaklaşım
sağlandığında,
y ( xi +1 ) = y1 = y0 +
y1(i +1) = y0 +
h
[ f ( x0 , y0 ) + f ( x1, y1)]
2
[
h
f ( x0 , y0 ) + f ( x1, y1(i ) )
2
]
i=0, 1, 2, . . .
Burada y1(i ) , y1için i’ nci yaklaşımdır. Yukarıdaki y1(i +1)
iterasyon formülündeki y1(0) değeri başlagıç koşulları için
Euler formülünden hesaplanır.
y1(0) = y0 + h f ( x0 , y0 )
ÖRNEK:
y′ = x 2 + y diferansiyel denkleminin başlangıç değeri y(0)=1
olarak verildiğine göre h=0.05 için y(0.1) değerini
hesaplayınız.
x0 = 0 ve y0 = 1.0 f(x0, y0)=1.0 alınır, önce y(0.05) bulunur,
ikinci iterasyonda y(0.1)değeri hesaplanır.
Euler formülünden
y1(0) = y0 + h f ( x0 , y0 )
Prof.Dr. Nurettin UMURKAN
87 / 89
2010/11
Güz
Nümerik Analiz
y1(0) = 1 + 0.05 (1) = 1.05
Bir sonraki adımda f ( x1, y1(0) ) verilen diferansiyel
denklemden hesaplanır.
f ( x1 , y1(0) ) = x 2 + y = 0.052 + 1.05 = 1.0525
Bulunan değerler Düzenlenmiş Euler Formülünde yerine
yazılırsa y(0.05) değeri,
[
]
h
f ( x0 , y0 ) + f ( x1 , y1(0) )
2
0.05
[1 + 1.0525] = 1.0513125
= 1+
2
olarak hesaplanır. y(0.1) değerinin hesaplanması için
işlemler ikinci iterasyon için tekrarlanır.
y1(1) = y0 +
Euler formülünden
[
]
y 2(1) = y1(1) + h y ′ = 1.0513125 + 0.05 0.05 2 + 1.0513125
y2(1) = 1.1040
Bir sonraki adımda f ( x2 , y 2(1) ) verilen diferansiyel
denklemden hesaplanır.
f ( x2 , y2(1) ) = x 2 + y = 0.12 + 1.1040 = 1.114
Bulunan değerler Düzenlenmiş Euler Formülünde yerine
yazılırsa y(0.1) değeri,
Prof.Dr. Nurettin UMURKAN
88 / 89
Nümerik Analiz
[
]
h
y ′( x2 ) + y ( x2 (1) )
2
0.05
[1.114 + 1.1040] = 1.05545
= 1+
2
y 2( 2) = y0 +
2010/11
Güz
olarak hesaplanır.
KAYNAKLAR
•
•
•
•
•
•
•
•
•
•
•
Sayısal Analiz, Behiç Çağal, Birsen Yayınevi,
http://merichrd.wordpress.com/2006/12/30/bilim-ve-teknolojinintarihsel-gelisim-oykusu/
http://www.batl.k12.tr/dokumanlar/ders_notlari/dokumanlar/bilgisayara
_giris/01bil_tanitimi.pdf
http://bilgibelge.humanity.ankara.edu.tr/ogrelfiles/ha/sunum2.ppt
http://www.teknolojide.com/teknoloji-nedir.aspx
Ana Britannica. 1987. Ankara: Ana Yayıncılık-Encyclopedia Britannica.
Basalla, George. 1996. Teknolojinin Evrimi. Ankara: TÜBİTAK.
”Abaküs(SayıBoncuğu)”,
http://olasilikuzayi.sitemynet.com/ist_dosyalar/abakus.HTM
Sayma
Tahtası
Abaküs.http://www.google.com.tr/search?q=cache:8dWVEZUZTsJ:www.turkiyeonline.com/teknoloji/uzay_ve_populer_bilim/abakus/
index.php+%22abak%C3%BCs%22&hl=tr&ie=UTF-8 [03.07.2003].
“William
Ougthred.”http://www.thocp.net/biographies/oughtred_william.htm
Taşçı, Cemalettin ve M. Emin Mutlu. 1991. Bilgisayar Tarihi. İstanbul:
Ağaç Yayıncılık.
•
Prof.Dr. Nurettin UMURKAN
89 / 89
Download