You are on page 1of 381

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta:ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

a12
a22
.
an 2

... a1m
... a2 m
... .

... anm

A 10x10

5 7.7
26 3

3
16
12
8
3

6 6.9 11.8 4 4.1 2

6 6 11 0
5
4

7
6 99 4 3 2

=
9.1 9 44.7 1 5 2

1
5
22 9 9 1

3
3.3 11 8 4

8 3 11 2

9 9 10

w
.e

A=

a11
a
21
.

an1

Bant matris

Matris

1
GR
Matrisler, tanmlar

1. GR: Matrisler, tanmlar

1. GR: Matrisler, tanmlar


Nmerik analiz nedir?

Nmerik analiz, ya da dier adyla saysal analiz, klasik matematiin bir daldr. Matematiin
analitik zm (forml) retemedii veya rettii zmn uygulama asndan ok
karmak olduu durumlarda veya deneye-lme dayal problemlerde nmerik analiz
yntemlerine bavurulur. Temel ilkeler

ri.
co

Karmak yerine basit


Dorusal olmayan yerine dorusal
Sonsuz bilinmeyen yerine sonlu bilinmeyen
Kesin zm yerine yaklak zm

ile yetinmekten ibarettir.


Birka rnek:

b b 2 4ac
b + b 2 4ac
, x2 =
2a
2a

sn
o

x1 =

tla

1. ax2+bx+c=0 ikinci derece polinomunun kkleri (denklemi salayan x deerleri) iki tane
ve

dir. nc ve drdnc derece polinomlarn zm iin de formller vardr, fakat


kullanszdr. n. dereceden olan a0+a1 x+a2x2++ an xn = 0 denkleminin n tane kk vardr.
Fakat n5 durumunda x1, x2, , xn kklerinin forml yoktur ve olamayaca Norveli
matematiki N. H. Abel1 tarafndan 1824 ylnda ispatlanmtr. zm sadece nmerik
yntemlerle bulunabilir.

x
e dx ,
2

Sin x
a x dx ,

Sin x dx ,

2
Sin x dx,

1
dx,
x

n
l

em
de
r

2. Klasik matematik integral hesab iin ok sayda yntem sunar, fakat


b

1 + x 4 dx,

dx
1+ x 4

gibi ok basit grnen baz fonksiyonlarn integrali bilinen klasik yntemlerle alnamaz. Tek
are nmerik zmdr.

w
.e

3. Sadaki ekilde grlen tarlann alann integral alarak bulmak iin


tarlay snrlayan evre erisinin fonksiyonunun bilinmesi gerekir. Fakat
byle bir fonksiyon yoktur. evre zerinde alnan noktalarn
koordinatlar llr ve alan nmerik olarak hesaplanr. Ne kadar ok
nokta llrse alan o denli geree yakn olur.
4. 2x1+6x2=-32
-7x1+4x2=37

gibi iki bilinmeyen ve iki dorusal denklemden oluan sistemi formllerle zerek x1=-7 ve
x2=-3 bulabiliriz. Bilinmeyen ve denklem says ok fazla ise, diyelim 1000000 denklem ve
1000000 bilinmeyen, forml kullanlamayaca gibi elle zm iin insan mr de yetmez.
5. naat, makina, elektrik, elektronik, kimya gibi mhendislik dallarnda, tpta ve
meteorolojide x, y, z koordinat eksenlerini ve t zaman deikenini ieren ksmi trevli
diferansiyel denklemlerin zlmesi (zamana bal olarak cismin yer deitirmesinin, ekil
deitirmesinin, i kuvvet dalmnn belirlenmesi) matematikte bilinen diferansiyel denklem
zm yntemleri ile yaplamaz. zm iin nmerik yntemler kullanlr. Modern
yntemler, problemin matematik modelinin kurulmasndan zmne kadar youn olarak
matrisler ile alr. Problem, bilinmeyen says ok byk olan bir dorusal denklem
sistemine dntrlr. Bu amaca ynelik nmerik yntemlerden biri, gnmzde hemen
her alanda yaygn olarak kullanlan, Sonlu Elemanlar Metodu dur.

Niels Henrik Abel (1802 1829) , Norveli matematiki


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

1. GR: Matrisler, tanmlar

.Nmerik

metotlarn dezavantajlar

1. Nmerik analiz saylar ile bir nevi oyun oynayarak zm retmektir, denilebilir. Oyun
genelde kazanlr, fakat kaybedilebilir de!
Sylenmek istenen udur: zm genelde
bulunur, ancak bulunamayabilir de.

tla

ri.
co

2. Nmerik metotlarn ou belli bir hesap kuralnn, belki yzlerce binlerce kez,
tekrarlanmas ile adm adm sonuca varrlar(iterasyon). Bir tek saynn hesaplanabilmesi iin
binlerce hatta milyonlarca drt ilem (toplama, karma, arpma, blme) gerekir. Bu
nedenle el hesaplarna uygun deildir. Bilgisayar, uygun yntem ve program kullanm
zorunludur. Direkt zmler bile milyarlarca drt ilem gerektirir. rnein, n=10000
bilinmeyenli bir denklem sisteminin Gauss indirgeme yntemi ile zmnde yaklak
2n3/37x1011 (700 milyar!) drt ilem vardr. Saylarn bu denli ok drt ileme tabi
tutulmas yuvarlama hatalarnn giderek bymesine neden olur. Peki, bu kadar byk
denklem sistemi uygulamada karmza kar m? Evet, hatta ok daha bykleri! Hemen
syleyelim n=374000000 ( yz yetmi drt milyon) bilinmeyenli denklem sistemi
gnmzde zlebilmitir. Hem de Trkiyede: http://www.cem.bilkent.edu.tr/world_record
3. Nmerik zm yaklaktr, bir miktar kabul edilebilir hata ierir.
4. Ayn problemin zmnde nmerik metotlarn bazlar
veremeyebilir.

sonu verebilir, bazlar

em
de
r

sn
o

5. Nmerik metotlar renmek ve zm retmek iin temel matematik ve mekanik bilgisi


yannda bilgisayar, programlama ve paket yazlm kullanma becerisi de gerekir. Hem
nmerik analiz hem de bilgisayar ve programlama dilleri youn olarak matrisler ile
altndan matris matematii renilmek zorundadr. Bir yapnn nmerik metotlar ile
hesab iin mukavemet, yap statii ve dinamii gibi bilgiler de gerekir. Ksacas nmerik
metotlar klasik bilgiler zerine ina edilmi pratik bir zm yoludur, temel bilgiler olmadan
bir ie yaramaz.

Tarihe

Bugnk bulgulara gre, nmerik analiz metotlarnn tarihi yaklak 3650 yl nce balar.
M.. 1650 yllarna ait bir papirs (Rhind (veya Ahmes) papirs) basit bir denklemin
kknn nmerik zmn aklamaktadr. Milat ncesinin en byk matematikisi kabul
edilen Arimet (Yaklak M. 287- M.. 212) erisel yzeyli cisimlerin alann, hacmini ve
saysn hesaplam, nmerik en kk kavramn kullanmtr.

w
.e

M.. 200 civarna ait Chiu Chang Suan Shu (aritmetik hakknda dokuz blm) adl ince
kitapta aadaki soru yer almaktadr: http://meyer.math.ncsu.edu/Meyer/PS_Files/GaussianEliminationHistory.pdf
demet iyi kalite ekin mahsul, iki demet orta kalite
ekin mahsul ve bir demet kt kalite ekin mahsul 39
douya satlyor. ki demet iyi, demet orta ve bir
demet kt 34 douya; ve bir iyi, iki orta ve kt 26
douya satlyor. Her bir iyi kalite, orta kalite ve kt
kalite ekin mahsul iin alnan fiyat nedir?

x iyi, y orta ve z kt kalitedeki mahsuln birim fiyat(dou) olmak zere, cevabn


bilinmeyenli denklem sisteminin zm olduu anlalyor:
3x+2y+z=39
2x+3y+z=34
X+2y+3z=26

zm: x=9.25, y=4.25, z=2.75 dou

O ada +, -, x, gibi drt ilem operatrleri, eitlik iareti, deiken kavram ve 0 rakam
henz yoktu2. inliler bu dorusal denklem sistemini, saylar bambu pleri ile temsil
ederek, zmlerdi. Gnmzde Gauss indirgeme yntemi veya benzeri birok yntem
zm iin kullanlmaktadr.

Sfr rakamn ilk kez 628 ylnda Hintli matematiki Brahmagupta (598-668 ) kullanmtr. + ve iareti 1489, = iareti 1557, x

iareti 1628,

iareti 1659 yllarnda kullanlmaya balamtr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

1. GR: Matrisler, tanmlar

Nmerik analizin temellerini atanlar


John Napier (1550-1617), Isaac Newton (1643-1727), Gottfried Leibniz (16461716), Leonhard Euler (1707-1783), JosephLouis Lagrange (1736-1813), Pierre-Simon-Marquis de Laplace(1749-1827), Karl Friedrich Gauss (1777-1855), James Joseph
Sylvester(1814 -1897).

Nmerik analiz yntemlerinde ad ska geenler

ri.
co

Niels Henrik Abel (1802-1829), Alexander Craig Aitken (1895 - 1967), Bernard Bolzano(1781-1848) George Boole(1815-1864),
Isaac Barrow(1630-1677), Leonard Bairstow(1880-1963), Augustin Louis Cauchy(1789-1857),
Pafnuty Lvovich Chebyshev(1821-1894) , Prescott Duran Crout (1907-1984), Mayric Hascall Doolittle(1830-1913), Andr-Louis
Cholesky(1875-1918), Gabriel Cramer(1704-1752), Roger Cotes(1682-1716), Arthur Cayley(1821-1895), Ferdinand Georg
Frobenius(1849-1917), Leonardo Fibonacci(1170-1250), Joseph Fourier(1768-1830), Jrgen Pedersen Gram(1850-1916),
Hermann Grassmann(1809-1877), Charles Hermite(1822-1901), David Hilbert(1862-1943), Alston Scott Householder(1904
1993), C. A. R. Hoare(1934 - ), Carl Gustav Jacob Jacobi(1804-1851), Marie Ennemond Camille Jordan(1838-1922), Wilhelm
Jordan(1842-1899), Martin Wilhelm Kutta(1867-1944) , Joseph-Louis Lagrange (1736 1813), Adrien Marie Legendre(17521833), Cornelius Lanczos(1893-1974), Richard Edler von Mises(1883-1953), David E. Mller(1924 ), Lewis Fry
Richardson(1881-1953), Carl David Tolm Runge(1856-1927), Werner Romberg(1909-2003), Thomas Simpson(1710-1761),
Ludwig von Seidel(1821-1896), Erhard Schmidt(1876-1959), Johan Frederik Steffensen (18731961), James Hardy
Wilkinson(1919-1986).

sn
o

tla

1930-1945 li yllarda ilk bilgisayarlarn ortaya kmasyla nmerik analiz yntemleri nem
kazanmaya balad. Modern nmerik analizin 1947 ylnda John Neumann ve Herman
Goldstine tarafndan yaynlanan Numerical Inverting of Matrices of High Order , Bulletin of the AMS, Nov.
1947 ile balad kabul edilir. Bu yaynda yuvarlama hatalar ilk kez aratrlmtr.
Gnmzde kullanlan nmerik analiz yntemlerinin ou 1950-1970 yllarnda
gelitirilmitir.
Bilgisayarlarn ve programlama dillerinin giderek gelimesi, devrim yaratan ve gnmz
vazgeilmez nmerik metodu olan, Sonlu Elemanlar Metodu-SEM nun 1960 l yllarda
domasna neden oldu. Bu konudaki ilk yayn: M. J. Turner, R. W. Clough, H. C. Martin and L. J.
Topp, "Stiffness and Deflection Analysis of Complex Structures," J. of Aero. Sci., 23 (9), Sept. 1956. Finite
Element Method(Sonlu Elemanlar Metodu) adnn ilk kullanld yayn: Clough, Ray W.: The

em
de
r

finite element method in plane stress analysis. Proceedings, 2nd Conference on Electronic Computation, A.S.C.E.
Structural Division, Pittsburgh, Pennsylvania, Sept. 1960. lk Sonlu elemanlar kitab: O. C. Zienkiewicz, The Finite
Element Method, 1967.

Sonlu Elemanlar Metodunun ilkleri

Lord Rayleigh(1842-1919), Boris Grigorievich Galerkin(1871-1945), Walther Ritz(1878-1909), Richard Courant(1888-1972),


Alexander Hrennikoff(1896-1984), John Argyris(1913-2004), James Hardy Wilkinson(1919-1986), Olgierd Cecil
Zienkiewicz(1921-2009), Ray W. Clough, 1920- ), William Prager( 1903-1980).

nat mhendislii yap statii dersinin bilgisayar ncesi vazgeilmez nmerik metotlar:
Cross metodu: Hardy Cross(1885-1959), Kani Metodu: Gaspar Kani(1910-1968),

Ders notunun kapsam ve amac

w
.e

naat mhendislii lisans ve lisansst programlarnda verilen derslerin birletirilmesi ve


gzden geirilmesiyle oluan bu ders notlar ncelikle inaat mhendislii dalnda okuyan
rencilere yneliktir. Bu bir kstlama ya da dier dallarn iine yaramaz anlamnda deildir.
Youn teori yerine z ve pratik bilgiler ierir: Matris cebiri, ters matris, denklem sistemi
zm, en kk kareler metodu, standart ve genel zdeer problemi. Ayrca, dorusal
olmayan fonksiyonlarn kkleri, Min-Max belirleme, eri uydurma, belirli integral, sralamaarama teknikleri konularnda yazarn hazrlad veya baka kaynaklardan edinilmi ok
sayda, BASIC programlama dilinde kodlanm programa ve test rneklerine yer verilmitir.
Ak kodlu bu programlarn bazlarn lisansst rencilerinin istedikleri bir gncel grsel
programlama diline evirmeleri, gerekli teorik bilgileri aratrmalar istenmektedir. Bunun
amac; renciyi aratrmaya, youn bilgisayar kullanmaya, grsel bir programlama dilini
renmeye ve nihayet her zaman kullanabilecei kendi eseri nmerik analiz kitapn
oluturmaya zorlamaktr. rencinin ayrca kendi sonularn, sadece bu ders notlarndaki
sonular ile deil, Mathematica, MATLAB, Mathcad, Maple, REDUCE, Sage gibi
profesyonel yazlmlardan biri ile de dorulamas istenmektedir. Bundan ama, rencinin
konuya ynelik profesyonel yazlmlar tanmasn ve kullanm becerisi edinmesini
salamaktr.
Ders notlarnda zaman zaman iyiletirme yaplmaktadr. Gncel olan aadaki adresten
indirilebilir: http://mmf2.ogu.edu.tr/atopcu/index_dosyalar/BilgisayarDestekliNumerikAnaliz.htm
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

1. GR: Matrisler, tanmlar

Gncel yaammzda tablolar veya izelgeler kullanrz. rnek: Satran


tahtas, ders izelgesi, yllk takvim, bir ayn gnleri, spor toto ve
saysal loto kuponu gibi. Tablonun satrlar ve kolonlar vardr. Bir satr
ve kolonun kesitii noktada bir nesne (eleman) vardr.

ri.
co

Satran tahtas 8 satrl ve 8 kolonlu bir tablodur, Her satr ve kolonun


kesitii noktada bir eleman (fil, kale, at, piyon, bo, ) vardr. Bu ve
benzeri tablolara matematikte matris ad verilir. Bu ders kapsamnda
matrislerin elemanlar genelde sabit saylardan ve deikenlerden
oluacaktr. O halde; matris birok saynn veya deikenin bir araya
getirildii bir tablodur, bir emadr, matrisin saysal bir deeri yoktur.

MATRSLER

tla

Bilgisayarlarn 1945 li yllardan itibaren geliimine paralel olarak, gerekte asrlar nce
temelleri atlm olan saysal yntemler, zellikle, 1960 l yllarda yeniden ele alnarak
gelitirilmilerdir. Bu yntemlerin gerektirdii milyonlarca verinin derli-toplu ifadesinin, teori
ve bilgisayarda ilenmesinin en modern ve kolay yolu matris3 notasyonunu kullanmaktr.

sn
o

Matris notasyonu

m bilinmeyen ve n denklemli dorusal bir denklem sistemi klasik matematikte

a11 x1 + a12 x 2 + ... + a1m x m = b1


a 21 x1 + a 22 x 2 + ... + a 2 m x m = b2
...

6 x1 + 22.5 x 2 + 5.6 x3 = 18.3

(1.1)

2.2 x1 2 x 2 + 15.4 x3 = 23.8

em
de
r

a n1 x1 + a n 2 x 2 + ... + a nm x m = bn

n = m = 3 iin rnek :

16 x1 2 x 2 + 1.5 x3 = 9.7

eklinde yazlr. Burada x1, x2, ..., xm bilinmeyenleri, b1, b2, ..., bn denklemlerin kar
tarafndaki terimleri, aij terimi i. denklemdeki xj bilinmeyeninin katsaysn gstermektedir.
Ayn trden olan byklkleri tablo(matris) olarak bir araya getirirsek

a11
a
21
aij katsaylarnn tablosu(matrisi):
.

a n1

a12

a 22
.

a n2

... a1m
... a 2 m
...
.

... a nm

16
rnek : 6
2.2

x1
x
Bilinmeyenlerin tablosu(matrisi): 2
.

xm

x1
rnek : x 2
x 3

w
.e

-2
1.5
22.5 5.6
- 2 15.4

b1
b
2
Kar taraftaki terimlerin tablosu(matrisi):
.

bn

- 9.7
rnek : 18.3
23.8

1.1 bants
Katsaylar matrisi

a11 a12
a
21 a22
.
.

a
a
n1 n 2

Bilinmeyenler
matrisi(vektr)

... a1m x1 b1
... a2 m x2 b2
=
... . . .

... anm xm bm

rnek :

Kar taraf
matrisi(vektr)

16
6

2.2

-2
1.5 x 1 - 9.7
22.5 5.6 x 2 = 18.3
- 2 15.4 x 3 23.8

(1.2)

Matris kelimesi ilk kez 1850 ylnda ngiliz James Joseph Sylvester (1814-1897) tarafndan kullanld.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

1. GR: Matrisler, tanmlar

10

eklinde yazlabilir. 1.1 ile 1.2 in ayn anlamda olabilmesi iin bir arpm kural koymak
gerekir: Katsaylar matrisinin bir satrndaki terimler bilinmeyenler matrisindeki terimler ile srasyla
arplp toplanacaktr. Bu toplam kar taraf matrisinin ayn satrndaki deere eitlenecektir.

a12
a 22
.
an2

... a1m
... a 2 m
,
... .

... a nm

x1
b1
x
b
2

x=
, b = 2
.
.


xm
bn

Bu tanmlamaya bal olarak 1.2 bants ksaca

(1.3)

tla

A x=b

ri.
co

a11
a
A = 21
.

a n1

1.2 bants 1.1 denklem sisteminin matris notasyonunda yazlm ak eklidir. Daha az yer
tutmas ve daha ksa yazlmas iin matrislere ad verilir:

(1.4)

sn
o

eklinde yazlr. Bu bant 1.1 bantsndaki dorusal cebirsel denklem sisteminin matris
notasyonunda yazlm en ksa eklidir. A denklem sisteminin katsaylar matrisi, x
bilinmeyenler matrisi(vektr), b kar taraf matrisi(vektr) adn alr. Dikkat edilirse; A, x
ve b byklklerinin alt izilidir. Bunun nedeni, matrisleri saysal byklklerden
ayrabilmektir. A bir matris, A ise bir saydr.

em
de
r

Matrisleri saysal byklklerden ayrabilmek iin kaynaklarda farkl farkl gsterim kullanlr.
Baz yazarlar matrislerin altn izer, bazlar koyu harf kullanr, bazlar keli parantez,
bazlar yuvarlak parantez kullanr. Aada ska kullanlan notasyonlar verilmitir:

A = A nxm = A = A nxm

a11
a
= [A] = 21
.

a n1

a12
a 22
.
an2

... a1m
a11

... a 2 m
a
= ( A) = 21
... .
.

... a nm
a n1

a12
a 22
.
an2

... a1m

... a 2 m
... .

... a nm

Matris tipleri
Herhangi bir matrisin elemanlar gerek(reel) ve karmak(kompleks) saylardan oluabilir.
Bu ders notu kapsamnda, aksi sylenmedike, sadece gerek elemanl matrisler ele
alnacaktr. Uygulamada ska karlalan matris tipleri ve zellikleri aada zetlenmitir.
Dikdrtgen matris: Satr ve kolon says farkl, nxm eleman olan matristir.

w
.e

nxm indisine matrisin boyutu denir. Matrisin n satrl, m kolonlu ve nxm elemanl olduunu
belirtir. aij, matrisin i. satr ve j. kolonundaki elemandr. Bu ders notunda, yazm ve izim
kolayl nedeniyle, matrisler alt izilerek ve keli parantez kullanlarak vurgulanacaktr.
Gerekli olduunda matrisin boyutu indis olarak yazlacaktr.

A nxm

a11
a
= 21
.

a n1

a12
a 22
.
an2

... a1m
... a 2 m
... .

... a nm

7 -5 -6.9
rnek: A =

6.1 0 13

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

10

1. GR: Matrisler, tanmlar

11

A nxn

a11
a
= 21
.

a n1

... a1n
... a 2 n
... .

... a nn

a12
a 22
.
an2

-5 6.9
7

rnek: A = 6.1 0 13
22.6 5.5 10

Kare matris: n satr, n kolon ve nxn elemanl matristir.

A1 xn = [a11

ri.
co

Satr matrisi veya satr vektr: Tek bir satr, n kolonu ve n eleman olan matristir. Satr
vektr de denir.

. a1n ]

a12

rnek: A = [-9.73 0.964 -5.55 8]

a 21

. a n1 }

46.32
9
= {46.32 9 -109.4 86}
rnek: A =
-109.4

86

sn
o

A nx1

a11
a
= 21 = {a11
.

a n1

tla

Kolon matris veya kolon vektr: Tek bir kolonu, n satr ve n eleman olan matristir.
Kolon vektr de denir. Yer kazanmak amacyla { ve } parantezleri kullanlarak satr
eklinde de yazlr. Burada dikkat edilmesi gereken nokta { ve } parantezleri kullanlarak
yazlm matrisin bir satr matrisi deil kolon matrisi olduudur.

em
de
r

Diyagonal (kegen) matris: Bir kare matrisin satr ve kolon numaralar eit olan a11, a22,
, ann elemanlarna diyagonal veya kegen eleman ve bu elemanlarn yer ald hatta ana
diyagonal veya ana kegen denir. Kegen elemanlar dndaki tm elemanlar sfr olan
matrise diyagonal veya kegen matris denir. Hepsi olmamak kaydyla, Kegen
elemanlardan bazlar da sfr olabilir. Yer kazanmak ve kegen dndaki sfrlar yazmamak
iin diag[] veya eklinde de yazlr. Kaynaklarda genellikle D harfi ile gsterilir.

D nxn

d 11
0
=
.

...

d 22

...
.

...

d 22

. d nn ] = d11 d22 dnn

Ana kegen

w
.e

0
0
= diag [d 11
.

d nn

0
-33.3 0
0
1
.
9
0
rnek: D =
0
0 72

0
0
0

0
0
= diag [-33.3 1.9
0

0.87

72

0.87 ] = -33.3 1.9 72 0.87

Alt gen matris: Diyagonalin stndeki tm elemanlar sfr olan kare matristir. Tm
olmamak kaydyla, diyagonal ve altndaki elemanlardan bazlar da sfr olabilir. Kaynaklarda
ounlukla L (Lower) harfi ile gsterilir.

L nxn

l11
l
= 21
.

l n1

0
l 22
l n2

0
... 0
... .

... l nn
...

0
0
3 0
5.5 13 0
0

rnek : L =
16 7 7 0

-4 22 0 13.2

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

11

1. GR: Matrisler, tanmlar

12

... u1n
... u 2 n
... .

... u nn

u12
u 22
.
0

3 5.5 16 - 4
0 13 7
22
rnek: U =
0 0 7 0

0 13.2
0 0

ri.
co

U nxn

u11
0
=
.

st gen matris: Diyagonalin altndaki tm elemanlar sfr olan kare matristir. Tm


olmamak kaydyla, diyagonal ve stndeki elemanlardan bazlar da sfr olabilir.
Kaynaklarda ounlukla U (Upper) harfi ile gsterilir.

Alt kegenler= alt bant

sn
o

tla

Bant matris: Matrisin sfrdan farkl elemanlar ana kegen civarnda toplanm matristir.
Ana kegenine paralel kegenlerine yan kegen denir. Ana kegenin altndakilere alt
kegen, stndekilere st kegen de denir. m1 alt ve m2 st kegeni olan bir matrisin
Ana bant genilii m=m1+m2+1 olur. m1 e alt bant m2 ye st bant genilii de denir. Ana
bant dndaki tm elemanlar sfr olan matrislere bant matris denir. Aadaki ekilde
10x10 boyutlu, m1=2 alt ve m2=3 st bant genilikli bir matris ve rnei grlmektedir.
Bant iindeki her bir eleman x ile gsterilmitir. Ana bant genilii m=m1+m2+1=2+3+1=6
ve i>j+m1 veya j>i+m2 iin aij=0 dr. Bant dndaki sfr elemanlar yazlmamtr.

st kegenler=st bant

m2=3

x
x

x
x

x
x

x
x

x
x

x
x
x

x
x
x

x
x
x

x
x
x

x
x

x
x
x

x
x

em
de
r

x
x
m1=2
x

A10 x10 =

Ana bant

rnek:

m=6

x
x
x
x

x
x
x
x

A 10 x10

3 5 7.7
26

3 16 12

8
3

6 6.9 11.8 4 4.1 2

6
11
0
5
4

7
6 99 4 3 2
=

9.1 9 44.7 1
5 2

1
5
22 9 9 1

3
3.3 11 8 4

8
3 11 2

9 9 10

w
.e

Ana kegen

l kegen matris: Bir alt ve bir st kegeni olan bant matristir. Uygulamada
dorudan karlalabildii gibi tam dolu matrisler bir takm ilemler sonucu bazen l
kegen matrise dntrlr. Aadaki rnekte gsterilmeyen elemanlar sfrdr.

x
x

Bant matris

A8 x8

x
x

x
x
x

x
x
x

x
x
x

x
x
x

x
x
x

x
x
x

rnek: A 8 x8

12 8

8 20 6

3 18 3

0 33 7

4 40 0

9 22 2.7

8 20 9.1

5 10

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

12

1. GR: Matrisler, tanmlar

13

ri.
co

Seyrek matris

tla

A10 x10

6
6

1 2

2
4
=

9
2

3 3
6

1
4

Seyrek matris: Uygulamada karlalan matrisler ok byk boyutlu, 1000000x1000000,


100000000 x100000000 gibi, fakat ou kez ok seyrek elemanl olurlar. Elemanlarn %9599 u sfrdr. Bu matrislere seyrek (ngilizce: Sparse) matris denir. Bu tr matrisler ile
allrken, ok zel yntemler kullanlarak, sfrlarn depolanmasndan ve sfr says ile
gereksiz drt ilem yapmaktan kanlr. Aadaki rnekte sfr elemanlar yazlmamtr.

Sfr matris

em
de
r

rnek:

0 0 0
O = 0 0 0
0 0 0

sn
o

Sfr matris ve birim matris: Tm elemanlar 0 (sfr) olan matrise sfr matris, diyagonal
elemanlar 1 (bir) olan kare matrise de birim matris denir. Genellikle, sfr matris O ile, birim
matris I ile gsterilir. Aadaki birim matrisin sfrlar yazlmamtr.

I=

Birim matris

Blnm matris ve alt matris: Bir Anxm matrisi yatay ve dey izgilerle daha kk
matrislere blnebilir. Bu durumda A matrisi elemanlar da matris olan bir matris olur. Bu
elemanlara alt matris, matrisin kendisine de blnm veya bloklanm matris denir.
rnek:

-1 0 0 0
a
A = 0 1 2 3 = 11
a
0 1 -2 3 21

a 12
a 22

a 13
a 23

Blnm matris

w
.e

Alt matris

Alt matrisler:

a 11 = [ 1] ,

a 12 = [0 0] ,

a 13 = [0]

0
1 2
3
a 21 = , a 22 =
, a 23 = 3
0
1

Matris neden blnr?

ok sayda sfrlar alt matrislere toplamak ve sfr


alt matrisler ile ilemleri nlemek iin.

Sfr alt matrisleri depolamamak iin.

Matris ilemlerini eleman- eleman deil, blok-blok


yapabilmek iin.

ok byk matrislerin ilemlerini taksit-taksit


yapabilmek iin.

ok byk matrisleri depolamak iin hibir bilgisayarn


ana bellei yetmez. Byk matris uygun alt matrislere
blnr, alt matrisler evre birimlerinde (hard disk)
depolanr. Ana bellee sacak kadar alt matris hard
diskten okunur, matris ilemleri taksit-taksit yaplr.
Yln gnlerini gsteren takvim blnm matrise ve alt
matrislere bir rnektir. Her ay bir alt matristir.

Blnm matris
Alt matris
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

13

1. GR: Matrisler, tanmlar

14

Byk matris nedir?

Basit bir tanmla, byk matris kullanlan bilgisayarn, iletim sisteminin ve programlama dilinin stesinden
gelemedii matristir(bilgisayarn ok bellei olmas tamamnn kullanlabilecei anlamna gelmez. letim sistemi
ve programa dili kullanlabilir bellek miktarn snrlar). 1950 li yllarda 20x20 boyutlu matris byk saylrd. 1960
l yllarda 100x100 boyutlu, 1970 li yllarda 1000x1000 boyutlu, 1980 li yllarda 10000x10000 boyutlu, 1990 l
yllarda 100000x100000 boyutlu matris byk idi. Gnmzde 1000000x1000000 boyutlu matris byk,
100000000x100000000 boyutlu matris ok byktr denilebilir.
Matris bydke bellek ve ilemci gc yetmez olur, yuvarlama hatalar byr, sonu gvensiz olur. ok byk
denklem sistemlerini zmek iin ok zel zm yntemlerine, ok zel(yzlerce-binlerce ilemcili, birka
terabyte ana bellekli) ve pahal(birka milyon dolar) bilgisayara gereksinim olur.

ri.
co

ok byk denklem sistemi ile ok zel alanlarda karlalr: uzay, fizik, tp, biyoloji, meteoroloji, askeri,
benzetim aratrmalar.
374 milyon bilinmeyenli denklem sistemi(matrisin boyutu: 374000000x374000000) Bilkent niversitesinde 2009
ylnda zlerek dnya rekoru krlmtr: http://www.cem.bilkent.edu.tr/world_record

tla

Kullanlabilir ana bellei 4 Gigabyte varsaymyla, 1000-2000 $ fiyatndaki bir dizst bilgisarla ka denklem
zlebilir? Yaklak bir hesap yapalm. Bir Gigabyte bellein donanm, iletim sistemi ve yazlmlar tarafndan
kullanldn varsayarsak, matrisi depolamak iin 3 Gigabyte bo ana bellek kalr. 1 Gigabyte=bir milyar byte
demektir, bo bellek=3 milyar byte=3x109 byte. Ondalk bir sayy bilgisayarda depolamak iin en az 8 byte
kullanlr. Depolanabilecek ondalk say says=3x109/8=375x106 adet olur. Depolanabilecek matrisin boyutu
nxn=375x106
n19000 civarnda olacaktr.

sn
o

19000x19000 boyutlu matrisin tamam ana bellekte depolanabilir. Matris simetrik ise, yarsnn depolanmas,
bant ve simetrik ise sadece yar bantn depolanmas yeterli olduundan matris ok daha byk olabilir. Blnm
ve alt matris teknii ve hard disk kullanlmas durumunda zlebilecek denklem says daha da artar. Ancak,
hatrlatmakta yarar var: Matris bydke ondalk say iin sadece 8 byte kullanmak yuvarlama hatalarn artrr,
azaltmak iin 10-16 byte kullanmak gerekecektir.
Her biri 100 m2 4 daireli ve 10 katl bir apartmann Sonlu Elemanlar Metodu ile statik hesaplar yaklak 500020000 bilinmeyenli bir denklem sisteminin zmn gerektirir, bir dizst ile rahatlkla zlebilir. Bundan u
sunuca varabiliriz. Gnmzde kullanlan 1000-2000 dolarlk dizst bilgisayar 1970-1980 l yllarn bir ka
milyon Amerikan dolarlk sper bilgisayarlarndan ok daha gldrler.

em
de
r

Simetrik matris ve ters simetrik matris: Bir kare matrisin tm elemanlar iin aij=aji ise
bu matrise simetrik matris denir. Bir kare matriste ij iin aij=-aji ise ve aii=0 ise bu matrise
ters simetrik matris denir.

rnek: A =

1
2

-3

2 3 -3
1 2 3 -3

1 0 0
1 0 0
=
,
Sim
0 5 -1
5 -1

0 -1 7
7

Ters simetrik matris

6 3
0

A = 6 0 5
3 5 0

Simetrik matris

w
.e

Simetrik bant matris: Uygulamada ska karlalan bir matris tipidir. Sonlu elemanlar
metodunun denklem sisteminin katsaylar matrisi bu trdendir. Bu nedenle ok nemlidir.
Alt bant
genilii

m2=2

st bant genilii

23 5 1
5 20 6 4
m1=2
1 6 18 3 3

4 3 42 11
A=

3 11 33

3
4

Ana bant genilii=5


2

Yar bant genilii

b=3

3
4
19
0
4

23




=

2

0
4 Sim
10 4

4 16

20

6
18

4
3
42

3
11
33

3
4
19

2
0
10

4
4

16

Simetrik bant matrisin st ve alt kegen says ayndr, m1=m2. Ana bant genilii
m=2m1+1 dir. b=m1+1 deerine zel olarak yar bant genilii denir. Yukardaki rnekte
m1=m2=2, bant genilii m=5 ve yar bant genilii b=3 tr. Simetrik bant matrislerin
sadece yar bant genilii iinde kalan elemanlar bilgisayarda depolanarak bellekten, ilem
saysndan ve hesap zamanndan tasarruf edilir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

14

1. GR: Matrisler, tanmlar

15

Baz nemli zellikler:

Bir kolon matrisin(kolon vektrn) transpozu satr matrisi, bir satr matrisin(satr
vektrn) transpozu kolon matrisidir.

7
A = 9.6
2
T

Anxm matrisin transpozunun transpozu yine ayn Anxm matrisidir (AT)T= A

-5 5.7
5 3 7.7
T

A = -3 3
5
.
7
3
2

7.7 2

rnek: A
2x3 =

5 3 7.7
T
( A ) T = A 2x3 =
2
5.7 3

Simetrik Anxn matrisinin tarnspozu gene Anxn matrisidir: AT = A

em
de
r

A 1x 3 = [ 7 9.6 2]

tla

rnek: A
3 x1

4.83
T
= -16.72 A = [4.83 -16.72 19.07] ,
19.07

sn
o

ri.
co

Transpoz matris: Anxm matrisinin satrlar yeni bir matrisin kolonlar olarak yazlrsa bu yeni
matrise A nn transpoz matrisi denir ve yeni matris AT ile veya A gsterilir. Transpoz
matrisin boyutu mxn olur. Baz Trke kaynaklar Tranpoz matrisi devrik matris olarak
isimlendirmektedirler.
- 3 6 9.4
3 7.1 0 5.5
7.1 3.3 2.9

rnek : A 3x 4 = 6 3.3 11 8 A T4x3 =


0 11 16
9.4 2.9 16 1

5.5 - 8 1

rnek:

A 3 x3

5 1 3
5 1 3
T

= 1 7 1 A 3 x 3 = A 3 x 3 = 1 7 1
3 1 4
3 1 4

Bu nedenle AT = A simetriklik koulu olarak kullanlr.

w
.e

Blnm matrisin transpozu: Elemanlar alt matris olan blnm bir matrisin
transpozu alt matrislerin de transpozu alnarak oluturulur.

T
a 11
-1 0 0 0
a 12 a 13
T
a
T
A = 0 1 2 3 = 11
, A = a 12

a
a 22 a 23
a T
0 1 -2 3 21
13
Alt matris

a21

Blnm matris

a22

-1
T
a 21
0
T
a 22 =
0
T
a 23

0
1
2
3

0
1
- 2

(1.5)

ki matrisin Eitlii: Bir A matrisi ile bir B matrisinin eit olabilmesi iin her iki matrisin
boyutlarn ayn olmas ve karlkl elemanlarnn eit olmas gerekir. Anxm=Bnxm ise aij=bij dir.

2
A=
9

0
4

1
,
0.25

x
B= 2
z

0
x

y
,
2t

A =B

olduu biliniyorsa x=4, y=1, z=3, t=-0.125 olmak zorundadr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

15

1. GR: Matrisler, tanmlar

16

Simetrik pozitif tanml matris: Simetrik bir A matrisi (A=AT ) ile elemanlarnn en az biri
sfrdan farkl olan, bunun dnda tamamen keyfi bir x 0 kolon vektr verilmi olsun.
P = xT A x

ri.
co

P>0 ise A pozitif tanmldr (positive definit)


P<0 ise A negatif tanmldr (negative definit)
P0 ise A yar pozitif tanmldr (positive semidefinit)
P0 ise A yar negatif tanmldr (negative semidefinit)

arpm sabit bir say olur. Eer

denir. Simetrik matrisler uygulamada ska grlr. Matrisin hem simetrik hem de pozitif
tanml olmas denklem sistemlerinin zmnde nemli rol oynar, kolaylk salar.

tla

Herhangi bir matrisin pozitif tanml olup olmadn anlamak genelde basit deildir. ou
kez matrisin fiziksel anlam yorumlanarak karar verilir. Fiziksel anlam nedir? lerleyen
konularda tekrar ele alnarak aklanacaktr. imdilik, iki basit rnek ile aklayalm.
rnekler:

1 0 x1
2
2
x 2 ]
x = x1 + x 2
0
1

sn
o

x
1 0
A=
, x = 1 , p = x T A x = [x1

0 1
x2

olduundan, x10 veya x20 olduu srece p>0 dr, dolaysyla A pozitif tanmldr.

x
0 1
B=
, x = 1 , p = x T B x = [x1

1 0
x2

0 1 x1
x 2 ]
= x1 x 2 + x1 x 2
1 0 x 2

em
de
r

dr. x1 0 ve x 2 0 iin p0 olacandan B pozitif tanml deildir.


Diyagonal arlkl(diagonal dominant) matris: Bir kare matrisin i. satrndaki diyagonal
elemannn mutlak deeri ayn satrdaki dier elemanlarn mutlak deerlerinin toplamna eit
veya bykse
n

a ii

ij

, (btn i = 1, 2, ..., n ve i j iin)

j=1

matris diyagonal arlkldr(ngilizce diagonal dominant: diyagonal arlkl, egemen, baskn)


denir. Eer
n

, (btn i = 1, 2, ..., n ve i j iin)

w
.e

a ii >

ij

j=1

salanyorsa matris kesin diyagonal arlkl (ng. strictly diagonal dominant: kesin
diyagonal arlkl, egemen, baskn) denir. Kesin diyagonal arlkl matrisin determinant4
sfrdan farkldr.
rnekler:
6
A = 4
1
7
B = 2
1

3
8
3
3
8
3

3
3
5

|-6|=|3|+|-3|
|8|>|4|+|-3|
|5|>|1|+|3|

olduundan A diyagonal arlkldr, det A0 veya det A=0 olabilir.

3
3
5

|-7|>|3|+|-3|
|8|>|-2|+|-3
|5|>|1|+|3|

olduundan B kesin diyagonal arlkldr, det B0 dr.

Determinant kavram bir sonraki blmde verilecektir.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

16

1. GR: Matrisler, tanmlar

Matrisin kesin diyagonal dominant


zmnde, nemli rol oynar.

olmas,

17

zellikle

iterasyon

ile

denklem

sistemi

Matrislerin bilgisayar belleinde depolanma biimleri

Bilgisayar bellei tek boyutlu bir dizidir, byte-byte i izler. Matrisler bu diziye, programlama tekniine bal olarak,
tek veya iki boyutlu olarak depolanabilir. Farkl tipte matrislerin depolama biimleri aada zetlenmitir.

Vektr:

[ a1 a2 ... an ]

Dikdrtgen veya kare matris:

Bilgisayarda iki boyutlu depolanr

teori

... a1m
a11 a12

a a
... a2m
21 22
.
... .
.

... anm
an1 an2

Diyagonal matris:

a11

a22
A=
.
.

[ a a ... a ]
11 22
1n
.

ann

Tek boyutlu ve satr-satr


depolama

[ a11 a12 ...a1m | a21 a22 ... a2 m | ... | an1 an 2 ... anm ]

veya

[ a11 a21 ...an1 | a12 a22 ... an 2 | ... | a1m a2 m ... anm ]
Tek boyutlu ve kolon-kolon
depolama

Bilgisayarda sadece diyagonal


elemanlar tek boyutlu depolanr

em
de
r

teori

... a1m
... a2m
... .

... anm

sn
o

a11 a12
a a
A = 21 22
.
.

an1 an2

ri.
co

Bilgisayarda tek boyutlu depolanr

tla

teori
a1
a
A = 2 veya A = [a1 a2 . an ]
.

an

Alt gen matris:

teori

w
.e

a11
a
a22
L = 21
.
.

an1 an 2

a11

a21 a22
.
. .
.

... ann an1 an 2

Bilgisayarda iki boyutlu depolanr


(gen depolama mmkn deil!)

... ann

[a11| a21 a22| ... |an1 an 2 ... ann ]

veya

[a11 a21 ...an1| a22 ... an 2|...| ann ]


Tek boyutlu ve kolon-kolon depolama

Tek boyutlu ve satr-satr

st gen matris:

a11 a12 ... a1n


a11 a12

a22 ... a2 n
a22
U =

.
.
.
.
.
.

a
nn

Tek boyutlu ve satr-satr depolama

... a1n
... a2 n
.
.

ann

[a11 a12 ...a1n| a 22 ... a 2 n|...| a nn ]


veya

[a11 |a12 a22| ... |a1n a 2 n ... ann ]


Tek boyutlu ve kolon-kolon depolama

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

17

1. GR: Matrisler, tanmlar

18

Simetrik olmayan bant matris:


teori

x
x

x
x

x
x

x
x

x
x

bant

bant

x
x
x

x
x
x

x
x
x

x
x
x

x
x
x

x
x
x

x
x

x x
x 0

x
x
x

x
x

x
x

0
0

Model

x 0 0

x
x

Sadece bant iindeki


elemanlar
depolanr

x
x

x
x

x
x

x
x

x
x

x
x

x
x

x
x

x
x

x
x

Model: Bant geniliini


eitlemek iin gsterilen sfrlar
varm gibi depolanr.

Bilgisayarda iki boyutlu


depolama

veya
veya

0
0

Tek boyutlu ve satr-satr depolama

[0 0 x x x x | 0 x x x x x | x x x x x x | ... | x x x x x x | x x x x x 0 | x x x x 0 0 | x x x 0 0 0]
[0 0 x x x x x x x x | 0 x x x x x x x x x | ... | x x x x x x x x x 0 | x x x x x x x x 0 0 | x x x x x x x 0 0 0]

em
de
r

0 0
0 x

x x

x x
x x

x x
x x

x x
x x

x x

x
x

ri.
co

tla

sn
o

x
x

A=

bant

Tek boyutlu kolon-kolon depolama

Simetrik bant matrisin st bant:


Simetrik bant matris:
teori

Yar bant

x
x
x

w
.e

x x x

x x

A=

Simetrik

x
x

x
x

x
x

x
x

x
x

x
x
x

Yar bant

x x x

x x

x
Simetrik

x
x
x

x
x

x
x

x
x

x
x

x
x

x
x
x

x
x 0

x 0 0
x 0 0

Sadece st yar bant iindeki


elemanlar depolanr

Model: yar bant geniliini


eitlemek iin gsterilen sfrlar
varm gibi depolanr.

Yar bant
Bilgisayarda iki boyutlu

depolama
x x x x
x x x x

tek boyutlu satr-satr depolama


x x x x

x x x x
[ x x x x | ... | x x x x | x x x 0 | x x 0 0 | x 0 0 0]
veya
x x x x

[ x x x x x x x x x | x x x x x x x x 0 | x x x x x x x 0 0 | x x x x x x 0 0 0]
x x x x
x x x 0
Tek boyutlu diyagonal - diyagonal depolama

x
x
0
0

x 0 0 0
TOPU, Bilgisayar

Ahmet
Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

18

1. GR: Matrisler, tanmlar

Simetrik bant matrisin alt bant:

x
x

x
x

x
x

x x

x x
x x

x
x

Simetrik

Yar bant

Yar bant

x
x
x

x
x

x
x

x
x

Bilgisayarda iki boyutlu


depolama

x
x

x
x

x
x

Simetrik

Tek boyutlu satr-satr depolama

veya

[ 0 0 0 x | 0 0 x x | 0 x x x | x x x x | ... | x x x x]

[ 0 0 0 x x x x x x | 0 0 x x x x x x x | 0 x x x x x x x x | x x x x x x x x x]
Tek boyutlu diyagonal - diyagonal
depolama

em
de
r

0 0 0
0 0 x

0 x x

x x x
x x x

x x x
x x x

x x x
x x x

Model

Sadece alt yar bant


iindeki elemanlar
depolanr

x
x

ri.
co

x
x

tla

teori

Model: yar bant geniliini eitlemek


iin gsterilen sfrlar varm gibi
modellenir.

sn
o

x
x

x
A=

19

Ufuk izgisi (Skyline depolama teknii): Sadece simetrik pozitif tanml matrisler iin kullanlabilir.

x
x

x
x 0
x x
x x
x

Simetrik

w
.e

A=

x
x
0
x 0
x x
x x
.

x
x

x
x

.
x

x x

x x

Simetrik

Ufuk izgisi(skyline)

x
0
x
x x
x

0
x
x 0
x

x x
x
x x x

. .
x

Kolonlarn, diyagonalden
balanarak ufuk izgisine
kadar olan elemanlar
depolanr

Bilgisayarda sadece tek


boyutlu depolanr

2. kolon

1. kolon
3. kolon

4. kolon

n. kolon

[x| x x |x x | x x 0 x|x x|xx|x x 0 0 x x|. x|x . x x x x]


kH [1 2 2 4 2 2 6 ]

A nn kolonlarnn tek boyutlu


matriste depolanmas

Kolon ykseklikleri(yardmc vektr)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

19

1. GR: Matrisler, tanmlar

20

Seyrek(sparse) matris(iterasyon yntemleri iin):

a14

a33

a34

a44

0
a25
0

0
a55

Seyrek matris: Sfrdan farkl eleman


ok az(%1 civarnda olan matris)
Sadece sfrdan farkl
elemanlar depolanr

A [a11 a13 a14 a 22 a 25 a 31 a 33 a 34 a 42 a 44 a 52 a 55 ]


ia [1 1 1 2 2 3 3 3 4 4 5 5]

Sfrdan farkl elemanlarn satr


numaralar ia vektrnde depolanr

Sfrdan farkl elemanlarn kolon


numaralar ja vektrnde depolanr

tla

ja [1 3 4 2 5 1 3 4 2 4 2 5]

Matrisin sadece sfrdan farkl


olan elemanlar tek boyutlu A
vektrnde depolanr

a13

ri.
co

a11 0
0 a
22

A = a31 0

0 a42
0 a52

sn
o

Ek bilgi: Seyrek ve ok byk matrisler uygulamada, zellikle sonlu elemanlar metodunun denge
denklemlerinde, karmza kar. Matris simetrik pozitif tanml ve bant yapsna sahiptir. Denklem sistemi
Cholesky(bant), Cholesky(Skyline) direkt veya CG(Conjugate Gradient) iterasyon metodu ile zlr(bu
metodlar ilerleyen konularda ele alnacak).
Cholesky(bant veya ufuk izgisi) direkt metodunda denklem sistemi zlrken bant iindeki veya ufuk izgisi
altndaki, balangta sfr olan, elemanlar sfrdan farkl olurlar. Bu nedenle ok byk sistemlerinde ok fazla
bellek gerekir, ayrca yuvarlama hatalar giderek byr.

em
de
r

CG metodunda matrisin sadece sfrdan farkl elemanlar, tercihen simetri dikkate alnmadan, depolanr. nk
programlama asndan daha uygundur. Denklem sistemi zlrken matrisin elemanlarnn deeri hi
deimez. terasyon says yaklak denklem says kadardr. Yuvarlama hatalar da Cholesky metoduna nazaran
daha azdr.

w
.e

Uygulamadan alnan aadaki A=Bcsstk17 seyrek matrisi iin bu metotlarn ana bellek gereksinimi
karlatrlacaktr:

Matrisin depolanabilmesi iin ana bellek gereksinimi:


Cholesky(Skyline) direkt metodu: 28483995x8=22787160 byte
Cholesky(bant) direkt metodu: 10974x522x8=45827424 Byte
CG itersayon metodu:
A iin: 219812x8=17296 byte
ia ve ja iin: 2x10974x2=43896 byte
ara deer vektrleri iin: 4x10974x8=351168 byte
toplam: 17296+43896+351168=412360 byte

Matris bilgileri:
Simetrik: evet
Pozitif tanml: evet
Diyagonal arlkl: Hayr
Boyutu: 10974x10974
Yar bant genilii: 522
Sfrdan farkl eleman says: 219812
Doluluk oran: 219812/109742=0.0018 % 0.2

Oran:
Skyline/CG=22787160/41236055
Cholesky/CG=45827424/412360111
A=Bcsstk17 matrisi
Grld gibi, CG iterasyon yntemi direkt zmlere nazaran 50-100 kat daha az ana bellek gerektirmektedir
Not:
1) Yukarda ele alnan matrisin kaynaklardaki ad Bcsstk17 dir, aratrmalarda kullanlmaktadr. Bu matrisin
tm bilgilerine (A , ia, ja dahil) http://math.nist.gov/MatrixMarket/data/HarwellBoeing/bcsstruc2/bcsstk17.html adresinden eriilebilir.
2) Yukarda verilen dnda baka seyrek matris depolama biimleri de vardr. Seyrek(sparse) matrisler iin
detayl bilgi: http://www-users.cs.umn.edu/~saad/books.html
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

20

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

tla

Ders notlar 2014

em
de
r

Ahmet TOPU

Determinant

Matris

w
.e

a11
a
det A = det 21
.

a n1

a12

...

a 22

...

...
...

an2

a1 n a11
a 2 n a 21
=
.
.

a nn a n1

a12

...

a1 n

a 22

...

a2n

...
...

an2

a nn

Cnxs=Anxm Bmxs

2
DETERMNAT VE MATRSLERLE DRT
LEM

22

2. DETERMNANT VE MATRSLERLE DRT LEM

2. DETERMNANT VE MATRSLERLE DRT LEM


Kare matrisin determinant

ri.
co

Matris ok sayda sayy barndran bir tablodur, kendi saysal deeri yoktur. Fakat her kare
matrise ait determinant1 denilen; pozitif, negatif veya sfr olabilen bir say vardr.
Determinantn bildiimiz matris hakknda nemli baz yorumlar yapabilir, karar verebiliriz.
Determinant kelimesi; belirleyen, tanmlayan, vurgulayan, egemen, karar veren
anlamndadr. Baz Trke kaynaklar matrisin determinantn matrisin belirteni olarak
tercme etmektedirler.
ki bilinmeyenli dorusal denklem sisteminin klasik cebir ve matris notasyonunda

a 21 x1 + a 22 x 2 = b2

a11
a
21

a12 x1 b1
=
a 22 x 2 b2

A x=b

eklinde yazldn biliyoruz. rnek:

4 9 x1 30

=
1 3 x 2 9

4 x1 + 9 x2 = 30
x1 + 3x2 = 9

A x=b

(2.1)

tla

a11 x1 + a12 x 2 = b1

sn
o

2.1 denklem sistemini zmeye, denklem sistemini salayan x1 ve x2 bilinmeyenlerini


hesaplamaya, alalm. Bu amaca ynelik ok sayda yntem vardr. Orta retimden bu
yana kullandmz deiken yok etme yntemini kullanalm.
2.1 in birinci denklemini a22 ile, ikinci denklemini a12 ile arpar ve her iki denklemi
toplarsak x2 bilinmeyeni yok olur, x1 i hesaplayabiliriz:
a 22 a11x 1 + a 22 a12 x 2 = a 22b1

em
de
r

- a12 a 21x 1 a12 a 22 x 2 = a12b 2

a 11 a 22 x 1 a 12 a 21 x 1 = a 22 b 1 a 12 b 2

x1 =

a 22 b1 a12 b2
a11 a 22 a12 a 21

2.1 in birinci denklemini -a21 ile, ikinci denklemini a11 ile arpar ve her iki denklemi toplarsak
x1 bilinmeyeni yok olur, x2 yi hesaplayabiliriz:
Eit

-a 21 a 11 x 1 a 21 a 12 x 2 = a 21 b1
a 11 a 21 x 1 + a 11 a 22 x 2 = a 11 b 2

-a 21 a 12 x 2 + a 11a 22 x 2 = a 21 b1 + a 11 b 2

x2 =

a11b2 a 21b1
a11 a 22 a12 a 21

Bu bantlar kullanarak yukardaki saysal rnein bilinmeyenlerini hesaplayalm:

x1 =

3 30 9 9 9
4 9 1 30 6
= = 3 , x2 =
= = 2
4 3 9 1 3
4 3 9 1 3

w
.e

x1 ve x2 deikenlerinin hesabnda kullanlan yukardaki bantlar incelenirse paydada ayn


say, a11a22-a12a21, vardr. Bu sabit say sadece A katsaylar matrisinin terimlerinden
olumaktadr. Saysal rnek iin bu say 4.3-9.1=3 tr.

n bilinmeyenli bir denklem sisteminin zmnde de benzer durum vardr: x1, x2, , xn
bilinmeyenlerinin hesabnda paydaya daima ayn sabit bir say blen olarak gelmektedir.
te bu sayya katsaylar matrisinin determinant denilmektedir. Determinant ile n
bilinmeyenli denklem sisteminin sistematik zmn ilk kez Cramer1 vermitir, Cramer
kural olarak bilinir.

Yukarda, 2.1 de verilen 2x2 boyutlu A matrisinin determinant a11a22-a12a21 diyagonal


elemanlarn arpmnn farkdr. Matris matematiinde 2x2 matrisin determinant
Determinat gsterimi

det A = A =

a 11

a 12

a 21

a 22

= a 11 a 22 a 12 a 21

(2.2)

eklinde gsterilir.
1

Determinat kavram matematikte matris kavramndan ok daha nce, M 300-200 civarnda inde denklem sistemi
zmnde kullanlmtr. Japon Shinsuke Kova Sekinin 1683 yl almalarnda ve Alman Leibnizin L Hospitale 1693 ylnda
yazd bir mektupta rastlanmaktadr. Determinant denklem sistemi zmnde sistematik olarak ilk kez svireli Cramer 1750
ylnda kulland. Determinant kelimesinin isim babas Fransz Cauchy dir(1812).
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

22

23

2. DETERMNANT VE MATRSLERLE DRT LEM

Determinant ok nemli bir saydr, nk ait olduu katsaylar matrisi ve denklem sistemi
hakknda yorum yapabilmemize olanak salar. Yukardaki bantlardan da anlald gibi,
katsaylar matrisi Anxn olan bir denklen sisteminin x1, x2, , xn bilinmeyenlerinin
hesaplanabilmesi iin det A0 olmaldr. Det A=0 durumunda, sfra blm yaplamayaca
iin, denklem sisteminin zm yoktur.

ri.
co

Byk boyutlu matrislerin determinantnn hesab 2.2 deki kadar basit deildir. Matris
bydke drt ilem says hzla artar. Kk boyutlu matrislerin determinant SARRUS
kural, CHIO metodu ve LAPLACE alm ile ve elle hesaplanabilir. Byk matrislerin
determinant GAUSS, CHOLESKY gibi metotlar ile ve bilgisayarda hesaplanr.
SARRUS kural1: Sadece 3x3 boyutlu matrisler iin geerlidir. Determinant hesaplanacak

3x3 matrisin ilk iki kolonu determinant iaretinin sa tarafna yazlr. Ana ve yan
diyagonaller ekilde grld gibi kesik ve srekli izgiler ile birletirilir. Her srekli izgi
stndeki elemanlar birbirleri ile arplp toplanr. Her kesik izgi zerinde olan elemanlar
birbirleri ile arplr, nceki toplamdan karlr.

a 32

rnek:

a 13 a 11
a 23 a 21

a 12
a 22 det A = a 11a 22 a 33 + a 12 a 23 a 31 + a 13 a 21a 32

a 32

a 33 a 31

a 32

- -

+ +

-1 3
2

2 - 2 det A = 3
3 1
4

a 12
a 22

a 13 a 22 a 31 a 11a 23 a 32 a 12 a 21a 33

(2.3)

-1 3 2
2 -2 3
3 1 4

-1
2
3

det A = 2 2 1 + (1) (2) 4 + 3 3 3

3 2 4 2 (2) 3 (1) 3 1 = 30

em
de
r

2
A = 3
4

tla

a13
a 11
a 23 det A = a 21
a 31
a 33

a12
a 22

sn
o

a11
A = a 21
a 31

CHIO2 metodu: nxn boyutlu matrisin determinant forml

A nxn

a11
a
= 21
.

a n1

a12

a 22
.

an2

... a1n
... a 2 n
1
det A = n 2
... .
a11

... a nn

a11
a 21
a11
a 31

a13
a 23
a13
a 33

a12
an2

a11
a n1

...
...

a11

a1 n

a 21
a11
a 31

a 2n
a1n
a 3n

...
a13
a n3

...

(2.4)

.
a11
a n1

a1n
a nn

ile verilir. Dikkatli incelenirse, 2x2 boyutlu n-1 adet alt determinant ierir ve dzenli bir
yaps vardr. rnekler:

w
.e

a11

a 21
a11
a 31

a11
a n1

a12
a 22
a12
a 32

2
det A = 3

1 3
1
2 2 = 3 2
2
3
1

1
det B =
4

3
0

1
2

det B =

1
2

1 1
4 (-6) 3- 2

3
2

2
1

3
2

3
5
1
=
1
( 2 )4 2
8

-6

-6

0
-6

0
1

0
-6

-2 -6

-2

3
2
1 7 13 1
=
= ( 7 ( 10 ) ( 13 10 )) = 30
3
2 10 10 2
1

1
2
4
2

3
0
0
0

1 1
2 1
4 2
2 1

1
2
4
2

5
6
3
1
=
0
1
4
2
3

13

14

- 13
14
1 0 84
1
=
=
(0 38 84) = 133
- 13 24 38 - 14 24
-2

Pierre Frdric SARRUS (1798-1861), Fransz.


F. CHIO (?-?) tarafndan 1853 ylnda yaynland.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

23

24

2. DETERMNANT VE MATRSLERLE DRT LEM

a11=0 durumunda CHIO dorudan uygulanamaz. 1. satr ile bir baka satr, a11=0 olacak
ekilde, deitirilir. Her satr deiiklii determinantn iaretini deitirdiinden sonu (-1)p
ile arplmaldr. Burada p satr deitirme saysdr.

yaplabilir.

det A =

(1) i + j a ij A ij ,

j. kolona gre alm:


n

(i sabit),

det A =

j=1

(1)
i =1

i+ j

a ij A ij ,

(j sabit)

(2.5)

ri.
co

i. satra gre alm:

LAPLACE1 alm: Bu ynteme gre determinantn alm bir satra veya bir kolona gre

Buradaki |Aij| terimi, aij elemannn bulunduu satr ve kolonun silinmesi ile oluan (n-1)x(n1) boyutlu alt matrisin determinantdr. Kaynaklarda |Aij| terimine aij nin minr, (-1)i+j|Aij|
terimine aij nin iaretli minr kofaktr da denilmektedir.

det A = 1
6

2 3
5
4

5 0
1 0
1 5
0 = (1)1+1 4
+ (1)1+ 2 (2)
+ (1)1+3 3
= 4(0 0) (2)(0 0) + 3(4 30) = 102
4 0
6 0
6 4
0

3. kolona gre alm rnei:


4
det A = 1
6

2 3
5
4

sn
o

tla

1. satra gre alm rnei:

-1 5
4 -2
4 -2
0 = (1)1+ 3 3
+ (1) 2 +3 0
+ (1) 3+3 0
= 3(-4 - 30) 0 (16 + 12) + 0 (20 2) = 102
6 4
6 4
-1 5
0

em
de
r

rneklerden grlebilecei gibi, ok sfrl satr veya kolona gre alm ilemleri azaltr. st
izili terimleri yazmaya gerek yoktu!
SARRUS, CHIO ve LAPLACE yntemleri kk
matrislerin determinantlarnn el hesabnda kullanlabilir, sadece tarihsel deeri vardr.
Programlamaya hi uygun deildirler. Bilgisayarda determinant hesab iin GAUSS ve
benzeri alternatif yntemler kullanlr.
Determinant zellikleri

1. Matrisin i. satr ile i. kolonu deitirilirse determinantn deeri deimez, dolaysyla


detA=det AT geerlidir.

w
.e

2. Matrisin iki satrnn veya iki kolonunun yerleri deitirilirse determinant iaret deitirir:
Hesap srasnda, rnein 2.4 e gre CHIO metodunda a11=0 ise 1. satr ile baka bir satra
yer deitirilir. Hesaplanan determinat -1 ile arplr.
3. Matrisin bir satrnn veya kolonunun tm elemanlar sfr ise determinant sfrdr.
4. Diyagonal ve gen matrislerin determinant diyagonal elemanlarn arpmna eittir.
rnekler:

A = 9

20

I = 1

3 7 0 8

5 1 2
C=

4 2

6 70 98
D = 2 14 E =
0
76
2 8 6

Det A=3.9.20=540, det I=1.1.1=1, det C=3.5.4. (-5)=-300, det D=2.14.6=168, det E=6.0.9=0
Gzlem: Diyagonal ve gen matrislerin diyagonal elemanlarndan biri sfr ise determinant sfrdr.

5. Diyagonal elemanlar kare alt matris olan blnm diyagonal matrisin determinant alt
matrislerin determinantlarnn arpmna eittir.
1

Pierre Simon Laplace(1749-1827), Fransz: 1772 de yaynland.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

24

25

2. DETERMNANT VE MATRSLERLE DRT LEM

det a11

det a 22
, det A = det

a nn

= det a det a ... det a


11
22
nn

det a nn

a11

a 22
A=

rnek:

2 1 3
4 9

= 3 2 2 6 1 1 = 30 6 (5) = 900
4 9 4 3
1

1 1

ri.
co

[6]

2 1 3

3 2 2

4 3

1
, det A = det

4 9

1 1

tla

2 1 3

3 2 2
4 3
1
A=

sn
o

6. Matrisin i. satr j. satrna eitse veya i. Kolonu j. Kolonuna eitse determinant sfrdr.
7. Matrisin i. satr j. satrn sabit bir c kat ise matrisin satrlar dorusal(lineer) bamldr
denir. Satr veya kolonlar dorusal baml matrisin determinant sfrdr. Dolaysyla;
determinant sfr olan matrisin satr veya kolonlar dorusal bamldr.
8. Matrisin bir satrnn veya kolonunun sabit bir c says ile arplarak baka bir satr veya
kolona eklenmesine satr veya kolonlarn dorusal birletirilmesi denir. Satr veya kolonlar
dorusal birletirilen matrisin determinant deitirmez.
9. Simetrik ve pozitif tanml matrisin determinant sfrdan fakldr.
10. Kesin diyagonal arlkl matrisin determinant sfrdan farkldr (bak:blm 1, sayfa 16).

em
de
r

rnek:

7
B = 2
1

8
3

3
3
5

|-7|>|3|+|-3|
|8|>|-2|+|-3| olduundan B kesin diyagonal arlkldr, det B=-2800 dr.
|5|>|1|+|3|

Kofaktr matrisi ve adjoint matris

w
.e

A kare matrisinin her aij elemanna ait iaretli minrnn= = (-1)i+j |Aij|, o elemann
olduu satr ve kolona yazlmas ile oluan matrise kofaktr matrisi; kofaktr matrisinin
transpozuna da adjoint(ek) matris denir. rnek:
~
A
4 2 3
11

~
A = 1 5 0 Kofaktr matrisi K = A 21
~
A
6
4 0
31

adj A = K T

0
= 12
15

~
A12
~
A 22
~
A32

~
A13
~
A 23 =
~
A33

5
4
2
4
-2
5

0
0
3
0
3
0

1
6
4
6
4

-1

0
0
3
0
3
0

1
5

6
4
4 2

6
4
4
-2
-1
5

(2.6)

0
34
12 15
0
18 28 = 0
18 3
34 28 18
3 18

Dzenli matris - dzensiz matris tanm


Determinant sfr olan matrise dzensiz, sfrdan farkl olan matrise dzenli matris denir.
Baka isimler de verilir. Dzensiz matris: tekil matris, singler matris. Dzenli matris: tekil
olmayan, regler, singler olmayan matris. zetle:

Det A0 ise tekil olmayan veya dzenli veya regler matris denir.
Det A=0 ise tekil veya dzensiz veya singler matris denir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

25

26

2. DETERMNANT VE MATRSLERLE DRT LEM

Dorusal bamllk ve rank tanm


Bir Anxm matrisinin kolonlarn m tane kolon vektr ile gsterelim:

a11

a12

... a 1m

... a 2m
= [ a 11
...
.

... a nm

a 12

3 1 1 3
1 1
... a 1m ] , rnek : A 2x3 =
=
0 1 2 0 1 2
a11

a 12
a 21
.
a n2

a12

a13

ri.
co

A nxm

a 11

a
= 21
.

a n1

a1m

En az biri sfrdan farkl olan, bunun dnda tamamen keyfi olan c1, c2, , cm sabit saylar ile
kolon vektrleri arplp toplandnda bir sfr vektr elde edilirse matrisin kolonlar dorusal
bamldr denir:
(2.7)

tla

c1a11+c2a12+ + cma1m=0

sn
o

Bu bant sadece ve sadece c1=0, c2=0, , cm=0 iin salanyorsa kolonlar dorusal
bamszdr. Yukarda verilen A2x3 matrisinin birinci kolonu 1, ikinci kolonu 2 ve son kolonu
-1 ile arplp toplanrsa
1
1
3 0
1 a 11 + 2 a 12 1 a 13 = 1 + 2 1 = = 0
0
1
- 2 0

sfr vektr bulunur. O halde matrisin kolonlar dorusal bamldr. Bunun nemli baz
anlam vardr:
Vektrlerden biri dierlerine baml olarak hesaplanabilir. Yukardaki ifadeden a13

em
de
r

1
1 3
1 a 11 + 2 a 12 1 a 13 = 0 a 13 = a 11 + 2a 12 = + 2 =
0
- 1 - 2

Kolonlar dorusal baml olan matrisin determinant sfrdr. 2.7 ifadesi aslnda

a11
a
21
.

a n1

a12
a 21
.

an2

... a1m c1 0
... a 2 m c 2 0
=
Ac = 0
... . . .

... a nm c m 0

w
.e

Dorusal denklem sistemi ile ayn anlamdadr. Bu denklem sistemi c=0 iin salanr. Ancak
c0 ve det A=0 durumunda da salanr. O halde ya det A=0 ya da c=0 olmak zorundadr.

Matrisin tm kolonlar dorusal baml olabilir veya tm bamsz olabilir ya da bazlar


bamsz bazlar da dierlerine baml olabilir. m vektrn r tanesi bamsz ise
0rm

dir ve r ye matrisin rank denir. d=m-r matrisin dorusal baml kolon saysdr ve rank
art denir.
Dorusal bamllk, rank ve rank art tanm matrisin kolon vektrleri iin yukarda verildi.
Ayn tanmlar matrisin satr vektrleri iin de geerlidir. O halde nxm boyutlu bir matrisin
hem satr hem de kolon rank vardr. Ancak, satr rank ve kolon rank birbirine eittir. Rank
n ve m den kk olanna eit veya daha kktr.
Verilen bilgiler nda r rankn yle de tanmlayabiliriz: nxm matrisinin rxr boyutlu yle
bir alt matrisi vardr ki bu alt matrisin determinant sfrdan farkldr. Uygulamada
karlalan denklem sistemlerinde katsaylar matrisi genelde kare matris, n=m dir. Denklem
sisteminin zm ancak ve ancak r=n=m ise mmkndr. Bunun anlam, hem satr hem

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

26

27

2. DETERMNANT VE MATRSLERLE DRT LEM

de kolon vektrlerinin dorusal bamsz olmas gerektiidir. nk aksi halde katsaylar


matrisinin determinant sfrdr, yani dzensiz bir matristir.

Daha nadir de olsa n<m (az denklem ok bilinmeyen) veya n>m (ok denklem az
bilinmeyen) olan denklem sistemleri ile de karlalr. n<m durumunda, normal olarak,
satrlar dorusal bamsz, kolonlar bamldr: r=n, d=m-n. n>m durumunda, normal
olarak, kolonlar dorusal bamsz, satrlar bamldr: r=m, d=n-m dir.

ri.
co

Bir matrisin kolon veya satrlarnn dorusal baml olup olmadn, bamlysa hangilerinin
olduu, yan r ranknn belirlenmesi nemlidir. Ancak, burada verilen bilgiler dorusal
bamlln ve rankn belirlenmesinde, ok basit matris yaplar hari, yetersiz kalr.

2 1 1

A = 4 , B = 0 , C = 1 4 1

2 5
3
3
3

tla

rnekler:

sn
o

Matrislerinden A iin r=3 tr, nk bu matrisin kolonlarn veya satrlarn c1=c2=c3=0 ile
arparsanz 0 bulursunuz, baka hibir ci0 iin bu arpm 0 olmaz, o halde det A0 dr. B
matrisinde r=2 dir, nk bu matrisin kolonlarn veya satrlarn c1=c2=c3=0 ile arparsanz,
veya c1=0, c20, c3=0 arparsanz 0 bulursunuz, o halde det B=0 dr.

em
de
r

C matrisinin ranknn belirlenmesi ise dierleri kadar kolay grnmyor, dolaysyla det C
hakknda hemen bir yorum yapmak mmkn deildir. Daha sonra, 4. 5. ve 6. blmlerde,
ele alnacak olan denklem sistemlerinin zm yntemlerinde rankn genel olarak nasl
belirlenecei tekrar ele aklanacaktr.

Matrislerle drt ilem

Aritmetikte a ve b saylarnn toplanmas karlmas, arplmas veya blnmesi sonucu


nc bir c says hesaplanr. Matris notasyonunda da benzer drt ilemler yaplarak a ve b
matrislerinden c matrisi hesaplanr. Aadaki tabloda aritmetik drt ilem ve matris
notasyonundaki karlklar zetlenmitir.
Aritmetik karl

Matris karl

Toplama
karma
arpma

c=a+b
c=a-b
c=a b
c=a/b
c=a:b
c=a(1/b)
c=a b-1

c=a+b
c=a-b
c=a b
Yok !
Yok !
Yok !

w
.e

Drt ilem:

Blme

c=a b-1

Bilindii gibi, b-1 says b saysnn tersidir. Benzer ekilde a-1 matrisi a matrisinin tersidir.
Dikkat edilirse, matrislerde blme ilemi sadece matrisin tersi ile tanmlanmaktadr.

Toplama ve karma:
ki matrisin toplanabilmesi veya karlabilmesi iin boyutlarnn ayn olmas gerekir. Anxm ve
Bnxm matrislerinin toplanmas veya karlmas sonucu oluan ayn boyutlu Cnxm matrisinin
Cnxm= Anxm Bnxm

(2.8)

Eit boyutlu
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

27

28

2. DETERMNANT VE MATRSLERLE DRT LEM

elemanlar A ve B nin karlkl elemanlarnn toplanmas veya karlmas ile bulunur:


cij=aijbij.
rnek:

ri.
co

3
3 2 0 1 3

D = 1 7 7
2 = 6 5
3 5 6
3 3 2
A
B
=
D

3 2 0 1 3 1
C = 1 7 + 7
2 = 8 9
3 5 6
3 9 8
A +
B
= C
Toplama ve karma zellikleri

arpma

ki matrisin arplabilmesi iin kurallar vardr:

tla

A B = B + A
A (B C) = (A B) C
(A B)T = A T BT

sn
o

A ve B matrislerini arparak bir C matrisini hesaplayabilmek iin A nn kolon says B nin


satr saysna eit olmaldr(uygunluk koulu):

Cnxs=Anxm Bmxs
Eit olmal

(2.9)

em
de
r

arplan matrislerin eit boyutlar atlr, kalan boyutlar C nin boyutudur: C nin satr says
A nn satr saysna, C nin kolon says B nin kolon saysna eittir.
C nin i. satr ve j. kolonundaki cij eleman A nn i. satrndaki elemanlarn B nin j.
Kolonundaki elemanlar ile karlkl arplp toplanmas ile bulunur:
m

c ij = a i1 b 1j + a i2 b 2j + ... + a im b mj = a ik b kj

(2.10)

k =1

El hesaplarnda, arpm anlalr klmak ve kolaylatrmak iin, FALK1 emas kullanlr:

w
.e

x
B3x7= x

x
x

x
a 33

A4x3=

x
x

a 31

x
x
a 32
x

x
x
x

x
x
x

x
x
x

c35

rnek:

A3 x 2

1 1
= 3 1 ,
2 0

b15
b25
b35

x
x
x

x
x
x

=C4x7

C=A B arpm iin A nn sana ve ste B matrisi izilir. A


nn sana A nn satrlar kadar satr, B nin altna B nn
kolonlar kadar kolon izilir. Oluan matris C nin boyutlardr.
A nn bir satrndaki saylar B nin bir kolonundaki saylarla
karlkl arplp toplanr, bu toplam o satr ve o kolonun C
de birletii hcreye yazlr. FALK emas ve c35 elemannn
hesab solda rnek olarak gsterilmitir:

c35=a31b15+ a32b25+ a33b35

2 0 0
B2x4 =
1 1 1
2 0
B2 x 4 =
1 1

0
1

1 1 1
3 C=A B nin FALK emas

A 3 x 2 = 3 1 5

2 0 4

3
2
5
11 =C3x4
6

Sigurd FALK (?,?), Alman. 1950 civarnda gelitirdi.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

28

29

2. DETERMNANT VE MATRSLERLE DRT LEM

Yukarda verilen kurallar veya daha ok matrisin arpm iin aynen uygulanr, rnek:
Uygunluk koulu:

A nn kolon says=B nin satr says olmal

B nn kolon says=C nin satr says olmal

Eit olmal

D nin boyutu=A nn satr says x C nin kolon saysdr.

Dnxt = Anxm Bmxs Csxt

Eit olmal
1
3

0
1
2

B4x2=

2
0
1

2
1
4
3

1
2

3
0

2
0
1

C2x5=

B4x2=

1
3

A 3x4= 1 2

0
1
2

12
15

11

1
2

1
2

4
1

3
0

2
2

4
1

1
=C 2x5
2

3
7
1

6
29

36
45

18
44

45
67

33

20

43

18
1 =D 3x5
13

sn
o

D=A B C nin FALK emas

1
4
3

2
2

ri.
co

4
2

tla

A 3x4=

2
1

A 3x4B4x2

Not: Burada nce A B hesaplanm, bulunan yeni matris C ile sadan arplarak D bulunmutur. nce B C

em
de
r

hesaplanarak bulunan yeni matris soldan A ile arplarak ayn D bulunabilirdi. Ancak bu durumun daha ok
ilem gerektirecei aktr.

Matris arpmnn zellikleri

1. A B C =(A B ) C =A (B C )
2. A (B + C ) = A B + A C

3. (A B C M N)T=NTMT CTBTAT

ka 11

ka
A + A + + A = k A = 21
.

k defa
ka n1

ka 12
ka 22
.
ka n2

w
.e

4.

... ka 1m

... ka 2m
...
.

... ka nm

Matrisin k defa toplanmas matrisin elemanlarnn k tam


say sabiti ile arpmdr.

Genelletirme: Matrisi bir sabit(gerek veya tam say)


ile arpmak iin tm elemanlar o sabit ile arplr.

Ak ifadesi, A kare matrisinin kendisiyle k defa


arpm anlamndadr( k pozitif tamsay):
A0=I, A2 =A A , A3 = A A A ,

5. A A A= Ak
k defa

arpmda matrislerin yeri deitirilemez. Aritmetikte


ab=ba dr, fakat matrislerde, ok zel durumlar hari,
matrisin arpmdaki yeri kesinlikle deitirilemez.
Deitirilirse, uygunluk koulu salanmayabilir,
salansa bile sonu farkl olur.

6. A B B A
rnekler:

2
A=
3

1
1

1
0

B = 2
2
1

4 8
AB =

3 18

4 10
CD =

7 15

4
0
3

C = 1 2 D = 2 0

2 3
1 5

14 3 8
B A = 4 2 0
11 2 6
2 4
DC =

11 17

2 1
E=

1 5

2
F = 1
3

Grld gibi, A B B A dr. Sonu matrislerin hem


boyutlar hem de elemanlar farkldr!

Grld gibi, boyutlar ayn olsa bile, C D D C dr!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

29

30

2. DETERMNANT VE MATRSLERLE DRT LEM

4 11
CE =

7 17

4 7
EC =

11 17

5
AF =
1

FA = ?

A F tanml, F A tanmsz!

7. ayn boyutlu iki kegen matrisin arpmda yerleri deitirilebilir.

a 22

...

a nn

b11

B=

b22

...

bnn

a11b11

AB = B A =

8. Birim matris ile arpm

I2 =

3 1 6
A = 2 7 4
2 1 5

ki alt genin arpm bir alt gendir.

ki st genin arpm bir st gendir.

0
0 ,
1

1 2 4 1 1 1 1 3 5
0 3 1 0 2 1 = 0 6 2

0 0 1 0 0 1 0 0
1

em
de
r

0 0 1 0
1 0 0 1
2 3 0 1
2 0 = 1 6

4 1 1 1 1 1 4 1

I1 A =A I1=A
I1 B= B
B I1= tanmsz!
B I2=B
I2 B= tanmsz!

sn
o

9. ki gen matrisin arpm

4 1
B = 1 3
2 1

tla

I 1 = 1

a 22 b22

...

a nn bnn

ri.
co

a11

A=

Matrisler simetrik olsa dahi C E E C dr!

1 0 0 1 1 1 1 1 1
2 3 0 0 2 1 = 2 4 1 ,

4 1 1 0 0 1 4 6 4

1 1 1 1 0 0 5 2 1
0 2 1 2 3 0 = 8 5 1


0 0 1 4 1 1 4 1 1
Bir st ve bir alt genin arpm dolu bir matristir.

Bir alt ve bir st genin arpm dolu bir matristir.

10. ki vektrn arpm

w
.e

4
6
2
2
1[1 2 3] = 1 2 3 ,

2
2 4 6
Kolon vektr ile satr vektrnn
arpm bir matristir.

2
[1 2 3] 1 = 6
2
Satr vektr ile kolon vektrnn arpm
bir saydr.

Genelletirme:

x = [x1

x2

x1 x1
x x
T
x x= 2 1
.

x n x1
x1 y 1
x y
T
x y= 2 1
.

x n y1

... xn ],
x1 x 2
x2 x2

.
xn x2
x1 y 2
x2 y2

.
xn y2

y = [ y1

y2

... y n ] iin

... x1 x n
y1 y1

y y
... x 2 x n
T
, y y= 2 1
.
.
.

... x n x n
y n y1

y1 y 2
y2 y2

... x1 y n
y1 x1
y x
... x 2 y n
T
, y x= 2 1
.
.
.

... x n y n
y n x1

y1 x 2
y2 x2

.
yn y2

.
yn x2

... y1 y n
... y 2 y n
.
.

... y n y n
... y1 x n
... y 2 x n
.
.

... y n x n

x x tanmsz!
y y tanmsz!
x y tanmsz!
y x tanmsz!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

30

31

2. DETERMNANT VE MATRSLERLE DRT LEM

x x tanmsz!

x x = x12 + x 22 + ... + x n2
T

y y tanmsz!

y y = y12 + y 22 + ... + y n2

x y tanmsz!

x y = y x = x1 y1 + x 2 y 2 + ... + x n y n

y x tanmsz!

x1
y1
x
y
x = 2 , y = 2
.
.


xn
yn

11. Kegen matrisin bir matris ile arpm

... a1m d11


... a 2 m
... .

... a nm

a 21
a 22
.
an2

a 21
a 22
.
an2

d 22

... a1m d 11a11


... a 2 m d 22 a 21
=
... . .

... a nm d nn a n1
d11 a11
d a
= 11 21
.
...

d nn d11 a n1

d11 a12
d 22 a 22
.
d nn a n 2
d 12 a12

... d11 a1m


... d 22 a 2 m
...
.

... d nn a nm

ri.
co

d 22

a11
a
21
.

a n1

ok az arpm gerektirir, sfr


saylar ile arpm yaplmaz.

... d nn a1m
... d nn a 2 m
...
.

... d nn a nm

tla

a11
a
21
.

a n1

...

d nn

d 22 a 22
.

d 22 a n 2

sn
o

d11

12. ki simetrik matrisin arpm simetrik deildir.

1 2
T
A= A =

2 3

em
de
r

Simetrik

1 4
T
B=B =

4 5
7 14
AB =

10 23

Simetrik deil!

w
.e

13. Matrisin izi: Anxn kare matrisinin kegen elemanlarnn toplamna matrisin izi denir, iz
A ile gsterilir: iz A=a11+a22++ann. Anxm Bmxn Bmxn Anxm olmasna ramen her iki arpmn
izi ayndr:

2
A=
1

1
4

3
2

iz A B=-8+14=6,

2
1

B = 1 5
3 2

8 15
AB =

1 14

9
1
0

B A = 7 19 13
8 5 13

iz B A =0+19-13=6

14. A B B A olmasna ramen, aadaki bant geerlidir (A ve B kare matris):


det (A B)=det (B A)=det A det B

2 1
A=

1 3

3 2
B=

2 3

8 1
AB =

9 7

8 9
BA =

1 7

det (A B)=-8.7-1.9=-65, det B A=-8.7-1.9=-65,

det A=2.3-1.1=5, det B=-3.3-2.2=-13

det (A B)= det (B A) = det A det B=-5.13=-65

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

31

32

2. DETERMNANT VE MATRSLERLE DRT LEM

15. det (A B) det A det B dir. Bir stteki matrislerden:

3 2
B=

2 3

-1 1
A+ B =

1 6

2 1
A=

1 3

det (A+B)=-1.6-1.1=-7 det A + det B=2.3-(-1)(-1)+(-3).3-2.2=-8

16. Sfrdan farkl A 0 ve B 0 gibi iki matrisin arpm sfr matris olabilir.

ri.
co

2 4
0 0
B = 3 6 matrisleri iin AB =
= 0 dr.
0 0
1 2
Fakat, ne A nede B sfrdr?

1 2 4
A=

2 3 5
A B=0
A B=A C

Bu zellik nedeniyle soldaki ifadelerde A matrisi, zel


durumlar dnda, ksaltlamaz.

zel durumlar: det A0 ise veya A matrisinin


kolonlar dorusal bamsz ise ksaltma yaplabilir.
Ters matris hesab sonras bu konuya dnlecektir.

tla

A (B+C)=0
A (B-C)=A (D+E)

2. satr ile 3. satr deitirilmi birim


matrisin soldan arpld matrisin de
ayn nolu satrlar yer deitirmi.

em
de
r

1 0 0 1 2 3 1 2 3
0 0 1 1 0 1 = 2 2 0

0 1 0 2 2 0 1 0 1

sn
o

17. i. satr j. satr ile deitirilmi birim matris bir A matrisi ile soldan arplrsa A nn i.
satr ile j. satr yer deitirir, sadan arplrsa i. Kolonu ile j. Kolonu yer deitirir.

1 2 3 1 0 0 1 3 2
1 0 1 0 0 1 = 1 1 0

2 2 0 0 1 0 2 0 2

2. satr ile 3. satr deitirilmi birim


matrisin sadan arpld matrisin de
ayn nolu kolonlar yer deitirmi.

18. Blnm matrislerin arpm

Byk matrislerin arpm iin matrisler blnmek zorunda kalnabilir. A ve B matrisleri


arplarak C=A B hesaplanacaksa, A ve B dey ve yatay dorularla alt matrislere blnr:

w
.e

A nn satrdaki alt matris says B nin kolondaki alt matris saysna eit olmal (uygunluk
koulu).

A nn alt matrisleri ile B nin alt matrisleri uygunluk koulunu salamal.


a11

a11
A = a 21
a 31

a12
a 22

a13
a 23

a14
a 24

a 32

a 33

a 34

a21

b11
b
21
B = b31

b41
b51

a12

a22

b12

b13

b22
b32

b23
b33

b42
b52

b43
b53

a13

a15
a
a 25 = 11
a
a 35 21

a 12
a 22

a 13
a 23

b14
b24 b 11
b34 = b 21

b44 b 31
b54

b 12
b 22
b 32

a11
a 21

A=

a23

Matrisler amaca uygun ve


arpm uygunluk koulunu
salayacak ekilde alt
matrislere blnr.
Bolnm matrislerin alt
matrisleri arplarak sonu
matrisin alt matrisleri hesaplanr

a12
a 22

b11

B= b 21
b 31

a13 c11
a 23 c 21

b12

b 22
b 32
c12
=A B= C
c 22

c11=a11b11+a12b21+a13b31
c12=a11b12+a12b22+a13b32
c21=a21b11+a22b21+a23b31
c22=a21b12+a22b22+a23b32

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

32

33

2. DETERMNANT VE MATRSLERLE DRT LEM

rnek:
0 1
3
a 12

a
A = 5 2
4 = 11
a
a 22
2 6 3 21
2
1
b

B = 3 4 = 11
b
2
1 21
Alt matrislerin arpm:
2 3
6
=

4 - 11 - 2

- 2 - 1
1] =

8 4

a 22 b 21 = [3] [2 1] = [6 3]

c 11
c =A B= C
21

c11=a11b11+a12b21
c21=a21b11+a22b21

a 12
a 22

6 - 2 - 1 1 5
3
c 11 =
+
=

- 11 - 2 8 4 - 3 2

1
C = 3
22

5
2
25

c 21 = [16 28] + [6 3] = [22 25]

sn
o

1 2
- 6]
= [16 28]
- 3 4

a 21 b11 = [- 2

a 11
a
21

ri.
co

- 1
a 12 b 21 = [2
4

A=

tla

3 0 1
a 11 b 11 =

5 2 3

b11

b 21

B=

19. Diyagonal elemanlar alt matris olan iki matrisin arplmasyla bulunan yeni matrisin de
diyagonal elemanlar alt matris olur.
0
0 ,
a 33

0
b11 0

B = 0 b 22 0
0
0 b33

0
a11 b11

, AB = 0
a 22 b 22
0
0

em
de
r

a11 0
A = 0 a 22
0
0

0
0
a 33 b33

rnek:

w
.e

0
1 2
2 4

1 2 1

0
1 1 2

A=

1 2 3

0
0

2
4
3

3
0
0
1

1 2

3 1 1

, B=0
1 1
2 0 ,

2 2 3

2
0

0
1

0
0
1 1
6 14

3 3
6

0
2
2
3
0

AB =

5 3 4

0
0
10

Ters matris
Ters matris kavram aritmetikteki blme ileminin karldr. Ancak, matris ilemlerinde
hibir zaman blme ileminden bahsedilmez. Aritmetikte bir a0 gerek saysnn tersi
a

1
1
= aa 1 = 1 ile tanmlanr. aa = 1 ifadesinin matris ilemlerinde karl
a

A A-1=I

(2.11)
-1

eklindedir. Burada A matrisi A matrisinin tersi, I birim matristir. Matris kendine ait ters
matrisi ile arpldnda birim matris bulunur. Bilindii gibi bir saynn tersinin olmas iin o
say sfrdan farkl olmaldr. Benzer ekilde, bir matrisin tersinin olmas iin o matrisin
determinant sfrdan farkl olmaldr. Bu nedenle ters matris sadece determinant sfrdan
farkl (dzenli) kare matrisler iin tanmldr.
Verilmi bir Anxn matrisinin tersinin hesab iin farkl yntemler vardr. Burada 2x2 boyutlu
matris iin basit bir forml ve ve nxn matris iin adjoint(ek) matris yntemi aklanacaktr.
Bu yntemin sadece teorik nemi vardr, bilgisayar programlar iin hi uygun
deildir(uygulamada kullanlan yntemler iin bak: Blm 8).
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

33

34

2. DETERMNANT VE MATRSLERLE DRT LEM

2x2 boyutlu matrisin tersi iin forml:

a
A = 11
a 21

a12
,
a 22

A =

1 a 22
det A a 21

a12
,
a11

1.
2.
3.
4.

A nn ana diyagonal elemanlarnn yerini deitir.


Tali diyagonalin iaretlerini deitir.
Det A y hesapla
Her eleman det A ya bl.

det A = a11 a 22 a 21 a12 0

7 3 3.5 1.5
1
=
1
2 ( 7 ) 4( 3 ) 4 2 2

ri.
co

2 3
A=
,
4 7

rnek:

(2.12)

Adjoint matris yntemi: Bu ynteme gre Anxn matrisinin tersi

A 1 =

adj A
,
det A

(2.13)

det A 0

tla

forml ile hesaplanr. Kofaktr ve Adjoint matrisin tanm sayfa 19 da verilmiti.

1
A = 1
1

3
1 ,
1

1
0
2

A =?

sn
o

rnek:

SARRUS kuralna gre, det A= 1.0.1+1.1.(-1)+1.2.(-3)-(-3).0.(-1)-1.1.1-1.2.1=-10,


olduundan matrisin tersi vardr.

det A 0

Kofaktrler matrisi

2
2 2 2
1
= 7 2 3 ,

2
1 4 1
1
0

em
de
r

0 1

2 1
1 3
K =
2 1
1 3
0
1

1 1
1 3
1 1
1 3

1
1

1
1

1
1
1

Ters matris A

2 7 1
Adj A = K = 2 2 4
2 3 1
T

2 7 1 0.2 0.7 0.1


1
=
2 2 4 = 0.2 0.2 0.4
10
2 3 1 0.2 0.3 0.1

w
.e

A A-1=A-1A=I olduu kontrol edilebilir.

Ters matrisin zellikleri

A A-1=A-1A=I
(A-1)-1=A
(AT)-1=(A-1)T
(Not: (A-1)T ifadesi bazen basite A-T eklinde de yazlr)
T
-1 T
-1
A=A ise (A ) =A dir.
(A B C M N)-1=N-1M-1 C-1B-1A-1
1
6. (k A) 1 = A 1
(k0 olmak zere herhangi bir sabit say)
k

1.
2.
3.
4.
5.

7. det A 1 =

1
det A

8. 2x2 matris iin forml:

a
A = 11
a 21

a12
,
a 22

1 a 22

det A a 21

a12
,
a11

det A = a11 a 22 a 21 a12 0 olmal!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

34

35

2. DETERMNANT VE MATRSLERLE DRT LEM

9. Kegen matrisin tersi:

...

a nn

a 22

A nxn

rnek:
2

A=

1
1
1

1
22

a22

3
1
1

1
0
2

1
a 11
= [ 0.5]

4
1

0.2 0.7 0.1


1
= 0.2 0.2 0.4
a 22
0.2 0.3 0.1
1 3

1
=
a 33

1 4

...
1
a nn

det aii 0 olmal.

0.5

02

0.2
=
0.2

sn
o

a11

1
a 11

tla

A nxn

a 11

ri.
co

d
dii 0 olmal.
d11

11
1

d22
1
,
Dnxn =
Dnxn =

d22

...

.
..

d
1
nn

dnn
10. Kegen elemanlar kare alt matris olan kegen matrisin tersi alt matrislerin tersi
alnarak ayn kegene yazlmasyla hesaplanr:

a33

A 1

0.7
0.2
0.3

0.1
0.4
0.1
1
1

em
de
r

11. Alt gen matrisin tersi gene bir alt gen, st gen matrisin tersi gene bir st
gendir. rnek:
3

1 4

,
L=
2 2 6

1 1 5 8

w
.e

1
3 1 2

4 2 1
U =
,

6
5

Noktadan sonra sadece


hane verilmi, nc
hane yuvarlatlmtr.

0.333

0.083 0.25

=
0.083

0.083 0.167

-0.021 0.021 -0.104 0.125


0.333 0.083 0.083 -0.021

0.25
0.083 0.021
=

0.167 -0.104

0.125

12. Bant matrislerin tersi tamamen doludur. rnek:

1
1

A=

1
2

1
2

0
1

1
1

2 2
3 0

1
1

1
1

1
2

0
1

1
2

3
2
2

1
3

217
- 432

484

- 134
A 1 = 10 3
54

109
- 115

78

172
296

611 127 176


- 136 - 25
0

102
37

- 362
- 25

76
48

561
- 86

332
- 229

529
- 353

- 233
168

38
300

13
26

68
135

28
57

176
353

46
92

264
- 473

- 68

- 182

20

- 412

264

138

59

137

- 39

294

- 294

20

455
37
- 292

- 126
- 307

386
87

118

13. Ksaltma: matris bantlarnda ksaltma ilemi belli koullar salanmadka yaplamaz!
det A0 ise, her iki taraf A-1 ile soldan arplr ve A-1 A=I olduu hatrlanrsa, aadaki
ifadelerde A matrisi ksaltlabilir:
A
A
A
A

B=0
B=A C
(B+C)=0
(B-C)=A (D+E)

A-1 A B= A-1 0
A-1 A B= A-1 A C
A-1A (B+C)= A-10
A-1 A (B-C)= A-1A (D+E)

B=0
B= C
B+C=0
B-C= D+E

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

35

36

2. DETERMNANT VE MATRSLERLE DRT LEM

Anxm

F=A

T
nxm

dikdrtgen

matrisinin

kolonlar

dorusal

bamsz

ise,

yani

A nxm matrisi mxm boyutlu dzenli bir matris olur, yani F

rank=m

= (A

T
nxm

ise,

A nxm ) 1

tanmldr, det F0 dr. Bu nedenle aadaki ifadeler yazlabilir:


(Anxm)T Anxm Bmxs=(Anxm)T 0

F matrisi, det F 0, F-1


var. Dolaysyla bu
matris ksaltlabilir.

Bmxs= 0

Sfr matris
F matrisi, det F 0, F-1 var.
Dolaysyla bu matris
ksaltlabilir.

Sonu mxs boyutlu bir matris olur

ri.
co

Anxm Bmxs=0

Anxm(Bmxs-Cmxs)=(Dnxs+Enxs) (Anxm)TAnxm (Bmxs-Cmxs)=(Anxm)T(Dnxs+Enxs)

Bmxs-Cmxs=(Anxm)T(Dnxs+Enxs)

det A =0 durumunda A B=A C ifadesinde A ksaltlamaz:

1 4 2
3 2 6

B = 6 5 9 , C = 2 3 7
3 6 5
4 1 9

matrisleri iin

7 6 10
A B = AC = 3 5 7
17 17 27

dir.

tla

1 2 2
A = 3 1 2 ,
5 3 2

A B= C A ifadesinde, det A0 olsa dahi, A ksaltlamaz, nk:


A-1A B= A-1 C A

B= A-1 C A veya A B A-1= C A-1

A B A-1= C dir

A B= C A D ifadesinde, det A0 olsa dahi, A ksaltlamaz, nk:


A-1A B= A-1C A D

B= A-1C A D dir

A kare matris ve r, s kolon matrisleri olsun:

em
de
r

sn
o

Burada A ksaltlarak B=C dir denilemez, neden? nk aka grld gibi BC dir.
det A=0 dr, yani A-1 yoktur. A y ksaltmamz sfra blme yaptmz anlamna gelir.

a=

r r
T

Burada r vektrlerinden hi
biri ksaltlamaz! a sabit bir
saydr.

r Ar
T

r As
a= T
s As
T

Burada r vektrlerinden
hi biri ksaltlamaz! a bir
matristir.

w
.e

rr
a= T
r r

Burada ne s ne de A s
ksaltlabilir! a sabit bir
saydr.

Matris eitliinde, yukarda aklanan koullar salanmadka, keyfi ksaltma


yaplamayaca gibi eitliin solu ve sa keyfi bir matris ile de arplamaz. Aksi halde
eitlik bozulur. Eitliin her iki taraf sadece ve sadece arpldktan sonra, gerekirse,
ksaltlabilen bir matris ile arplabilir. rnein, determinant sfrdan farkl herhangi bir
matris ile veya kolonlar dorusal bamsz bir matris ile arplabilir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

36

37

2. DETERMNANT VE MATRSLERLE DRT LEM

Ortogonal matris
1) Anxn kare matrisi kendi transpozu ile soldan veya sadan arpldnda birim matris
oluuyorsa Anxn ortogonaldr denir:
T
T
1
1
A nxn A nxn = A nxn A nxn = I . Ters matris tanm A A = A A = I ile karlatrlrsa A ortogonal1

Sin
Cos
0

0
T
0 A A =
1

Cos
Sin

Sin

0 Cos
0 Sin
1 0

Cos
0

Sin
Cos
0

0
0 =
1

T
= A nxn . rnek :

Cos
1 AT = A1 = Sin

0
1

Sin
Cos
0

ri.
co

Cos
A = Sin
0

matrisinin transpozunun ayn zamanda A nn tersi olduu anlalr: A

0
0
1

2) Anxm dikdrtgen matrisi kendi transpozu ile soldan arpldnda birim matris oluuyorsa
T
Anxm ortogonaldr denir: A nxm A nxm = I . rnek:
0
Cos2

Cos
SinCos
0
0

Sin

2
0
Cos

Sin

0
0

Sin

Cos

Sin

0
0
T

AA =
=
2
0
Cos 0
0
Cos Sin
0
0
Cos
SinCos

Sin
0
0
SinCos
Sin 2

tla

0
Cos
Sin
0
1 0
T
A=
A A=
= I,
0
Cos
0 1

Sin
0

sn
o

Dikkat: Anxm dikdrtgen ortogonal matrisinin tersi tanml olmad gibi A nxm A nxm A nxm A nxm
dir.

Matrislerin analitik trev ve integrali

em
de
r

Nmerik analizde, nadiren de olsa, analitik trev ve integral almak gerekir. zet bilgiler
aada verilmitir.

Analitik trev

Elemanlar bir x deikeninin fonksiyonu olan matrisin x e gre trevi her elemann trevi
alnarak bulunur:

... a n ]

a2

dA d
=
[a1
dx dx

a2

da
... a n ] = 1
dx

da 2
dx

...

da n
dx

w
.e

A = [a1

da1
a1
a1 dx

a

d A d a 2 da 2
A= 2
=
= dx
.
dx dx .

.
a n
a n da n
dx

a11
a
A = 21
.

a n1

a12
a 22
.
an2

... a1m
a11

... a 2 m
d A d a 21

=
...
.
dx dx .

... a nm
a n1

a12
a 22
.
a n2

da11
... a1m dx

... a 2 m da 21
= dx
...
.
.
... a nm da n1
dx

da12
dx
da 22
dx
.
da n 2
dx

da1m
dx
da 2 m

...
dx
...
.
da nm
...
dx
...

Baz kaynaklar ortogonal yerine ortonormal olarak adlandrmaktadr, standart bir kavram yoktur.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

37

38

2. DETERMNANT VE MATRSLERLE DRT LEM

rnek: Aadaki A matrisinde a ve b sabit gerek saylar, x deikendir. A nn x e gre 1.

ve 2. trevi?

Sin( 2 x) 6ax 2
,
5
2e 2 x

0
d 2 A
b
=
dx 2 2
x

2Cos ( 2 x) 12ax

0
4e 2 x

1
Sin 2 ( x) 2ax 3
d A 0
A=

=
b

dx
5x
e 2x
bLog ( x)
x

ySin 2 ( x) 2ayx 3
A 0

=
by

dx
5 xy
ye 2 x
x

1
A= 2
by
Log
( x)

ri.
co

rnek: Aadaki A matrisinde a ve b sabit saylar, x ve y deikendir. A nn x e ve y ye


gre 1. trevi?

y Sin(2 x) 6ayx 2
,
5y
2 ye 2 x

0
Sin 2 ( x) 6ax 2
A
=

dy 2byLog ( x)
5x
e 2x

sn
o

em
de
r

d
dA
(c A) = c
dx
dx
d
dA dB
( A + B) =
+
dx
dx dx
d
dA
dB
( AB) =
B+
A
dx
dx
dx

tla

c bir sabit, A ve B matrislerinin terimleri x in fonksiyonu olmak zere aadaki bantlar


geerlidir:

Trev vektr:

x1, x2, , xn bilinmeyenlerinden oluan kolon vektr

x = [x1

T
x2 ... xn ] olsun.

ksmi trev operatrlerinin vektrne trev vektr veya trev


,
, ...,
x1 x 2
x n

vektrnn

operatr veya diferansiyel operatr denir:


x
1


= x
x 2
.

xn

w
.e

Trev operatr

Vektrn vektre gre trevi


a)

x = [x1

x2 ... xn ]

olan y = [ y1

kolon vektr ve elamanlar x1,, xn bilinmeyenlerinin fonksiyonu

T
y 2 ... y m ] kolon vektr verilmi olsun. y vektrnn x vektrne gre

trevini almak isteyelim:


x
1

1)
y = x 2
x
.

x n

y
1
y2

.
y m

trevi yoktur, nk bu iki vektrn matris arpm tanmszdr!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

38

39

2. DETERMNANT VE MATRSLERLE DRT LEM

y 2
x1
y 2
x 2
.
y 2
x n

y m
x1 x1

y m
...
x 2 = x 2
...
. .
y m

...
x n x n
...

Bu matrise Jacobian denir


ve genellikle J ile gsterilir.

rnek:

sn
o

x1 Sin( x 2 ) e 2 x1 + x 2

3x 2
5 = 2
6 x1 x 2

em
de
r

b) x

= [x1

Diferansiyel operatr
matrisi

y nin x vektrne gre trevi?

2
3x1 x 2

x x Sin( x ) tanmsz!
1)
2
y = 1 1x
1

x
e
+
x

x 2
5


x
2) T
y = 1 3x1 x 22
x

x 2


x1 y1

y
...
2
x 2
.
...
.

y
m
...

x n
...

tla

x1
x = ,
x 1

y1 3x1 x 22

y
x Sin(x2 ) ,
y = 2 = 1x
y3 e 1 + x2

y 4

x1

x 2
.

x n

y2

y1
x
1
y1
... y m ] = x
.2
y
1
x n

ri.
co


x
1
2) T
y = x 2 [ y1
x
.

x n

Jacobian

Sin( x 2 ) 2e 2 x1
x1Cos( x 2 )
1

T
x2 ... xn ] kolon vektrnn x1,, xn bilinmeyenlerine gre trevi:


x x
1 1
x tanmszdr!
1)
x = x 2 2
x
. .
x n

x n

w
.e


x
1
2) T
x = x 2 [x1
x
.

x n

x2

x1
x
1
x1
... x n ] = x
2
.
x
1
x n

c) Birbirinin fonksiyonu olmayan

x 2
x1
x 2
x 2
.
x 2
x n

x = [x1

...
...

...
...

Jacobian=birim matris

x n
x1 1 0 ... 0

x n 0 1 ... 0

x 2 = . . ... .

x n 0 0 ... 1

x n

T
x2 ... xn ] ve y = [ y1

T
y 2 ... y m ] kolon vektrleri

verilmi olsun:


x y
1 1
1)
y 2 tanmszdr!
y = x 2
x
. .
y m

x n

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

39

40

2. DETERMNANT VE MATRSLERLE DRT LEM

y 2
x1
y 2
x 2
.
y 2
x n

Jacobian=sfr matris. nk

y m
x
x1

y m
x 2 = 0
.
y m

x n

...
...
...
...

nin elemanlar

in elemanlarndan bamszdr.

y2

y1
x
1
y1
... y m ] = x
2
.
y
1
x n

ri.
co


x
1

2) T
y = x 2 [ y1
x
.

x n

3) Benzer ekilde:

x tanmsz!
y

x
=0
y

tla

=0 (sfr matris)

=0 (sfr matris)
T
y
T
x
x y=
y+
x= y
x
x
x

y
T
x
y x=
x+
y=y
x
x
x
T

sn
o

T
x x = 2x
x

=I (birim matris)

=I (birim matris)

em
de
r

d) Ska karlalabilecek matris trev formlleri aada verilmitir. x ve

A sabit gerek saylar ieren bir matristir.

x ve

y kolon vektr,

birbirinden bamszdr. Matris

arpmlarnn tanml olduu varsaylmtr:


x
1


= x
x 2
.

xn

w
.e

T
x =I
x

T
Ax = A
x

T
x A= A
x

T
T
x Ax = Ax + A x
x

2
x

x Ax = A + A
T

T
x Ay = Ay
x

T
x =0
y

T
x x = 2x
x

T
x y=y
x

T
y x=x
y

T T
T
x A =A
x

A AT, yani A
simetrik deildir!

T
x Ax = 2 Ax
x

x
T
T
y Ax = A y
x

A= AT, yani A
simetriktir!

x Ax = 2 A
T

T
T
x Ay = A y
y

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

40

41

2. DETERMNANT VE MATRSLERLE DRT LEM

zel uygulama: Sonlu elemanlar metodunda bir sistemin toplam potansiyeli

1 T
T
x Ax x b
2
T
ile verilir. Burada x yer deitirme kolon vektr, b d yk kolon vektr, A = A
toplam potansiyelidir.
A, b sabit saylardan oluur ve bilinir, x hesaplanmak

minimumdur.

deeri

istenir. Sistemin denge

in fonksiyonudur. Sistemin denge konumunda

=0
x

olmaldr:

ri.
co

1 T
T
T
T
x Ax
x b = Ax b = 0
=
( x A x x b) =
x
x 2 x
x

konumunda

sistem rijitlik matrisi,

Ax = b

bulunur. Bu bant sistemin denge kouludur ve dorusal bir denklem sistemidir. Denklem sistemi zlerek

tla

bilinmeyen yer deitirme vektr hesaplanr.

Analitik integral

A = [a1

sn
o

Bir matrisin tek veya ok katli integrali, her elemann integrali alnarak bulunur, rnekler:

... a n ] Adx = [a1

a2

a1 dx

a 21 dx
. ,

a n dx

[ a dx

w
.e

a1
a
2
A
dx
dy
dz
=

. dx dy dz =

a n

a11
a
A = 21
.

a n1

a12
a 22
.

an2

... a1m
a11

a
... a 2 m
Adx = 21
.
...
.

... a nm
a n1

dx ...

a1
a
2
A
dx
dy
=

. dx dy =

a n

em
de
r

a1
a1
a
a
A = 2 Adx = 2 dx =
.
.


a n
a n

... a n ]dx =

a2

a12
a 22
.
an2

dx

a1 dxdy

a 21 dxdy

a n dxdy

a1 dx dy dz

a 21 dx dy dz

a n dx dy dz

a11 dx
... a1m

... a 2 m
a dx
dx = 21
...
.
.

... a nm
a n1 dx

dx

...
22 dx
2 m dx
.
...
.

a
dx
...
a
dx
n
2
nm

a
a

12

dx ...

a
a

1m

Matris arpmnn integrali

B A dx dy dz

tipinde integraller ile teoride karlalr. A nn elemanlar x, y ve z nin fonksiyonu, B ise


gerek saylardan oluur. AT B A matris arpm yaplmadan integral alnamaz. nce, arpm
yaplarak, D = AT B A matrisi, sonra

D dx dy dz

integrali hesaplanr.

D matrisinin elemanlar genelde ok karmak fonksiyonlar ierir, bu durumda analitik


integrasyon yerine nmerik integrasyon metotlar kullanlr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

41

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

tla

Ders notlar 2014

em
de
r

sn
o

Ahmet TOPU

Klasik notasyon

a11 x1 + a12 x 2 + ... + a1m x m = b1

a 21 x1 + a 22 x 2 + ... + a 2 m x m = b2

a12
a 22
.
an 2

... a1m x1 b1
... a 2 m x 2 b2
=
... . . .

... a nm x m bn

Matris
notasyonu

A x=b

w
.e

...
a n1 x1 + a n 2 x 2 + ... + a nm x m = bn

a11
a
21
.

a n1

Matris notasyonu

3
OK BLNMEYENL DORUSAL
DENKLEM SSTEM TRLER
zmn varl, yokluu, okluu ve zm metotlar

43

3. OK BLNMEYENL DORUSAL DENKLEM SSTEM TRLER

3. OK BLNMEYENL DORUSAL DENKLEM SSTEM TRLER

Karmak ve analitik zm mmkn olmayan diferansiyel denklemler sonlu farklar ve


sonlu elemanlar gibi yntemler ile dorusal denklem sistemlerine dntrlrler. Hemen
her bilim dalnda problemlerin tahminen %75 i en az bir bilinmeyenli bir dorusal denkleme,
genellikle de ok bilinmeyenli dorusal denklem sistemine indirgenir. Klasik ve matris
nosyonunda yazlm dorusal denklem sistemlerine rnekler:

Klasik: a11x1=b1

matris: [a11][x1]=[b1]

ki bilinmeyenli iki denklemli sistem:

Klasik:

ri.
co

Bir bilinmeyenli bir denklem:

a11 x1 + a12 x 2 = b1

a11
a 21

matris:

a 21 x1 + a 22 x 2 = b2

a11 x1 + a12 x 2 + ... + a1m x m = b1


Klasik: a 21 x1 + a 22 x 2 + ... + a 2 m x m = b2

a11
a
21
Matris:
.

a n1

a12
a 22
.

sn
o

a12 x1 b1
=
a 22 x 2 b2

tla

m bilinmeyenli n denklemli sistem:

a n1 x1 + a n 2 x 2 + ... + a nm x m = bn

A x=b

an2

A x=b

... a1m x1 b1
... a 2 m x 2 b2
=
... . . .

... a nm x m bn

A x=b

em
de
r

A ve b bilinir x hesaplanr. aij ve bi sabit saylar, xi bilinmeyendir. A ya katsaylar matrisi, x e


bilinmeyenler vektr ve b ye kar taraf vektr denir. Denklemler sabit saylar ve birinci
dereceden bilinmeyenleri ierdii iin bu tr denklem sistemlerine dorusal denklem
x
.
2
sistemleri ad verilir, nk x1 x2, x1 , Sin(x2), Log (x1), e 1 , 1/(x1+x2) gibi veya benzeri
terimler iermezler.

Denklem sistemi trleri:

1. Denklem saysnn bilinmeyen saysna eit olduu sistem:

a12

a 22
.
an2

... a1n x1 b1
... a 2 n x 2 b2
=
... . . .

... a nn x n bn

w
.e

a11
a
A x = b 21
.

a n1

1 x1 11.2
6 3 3
3 8 2 1 x 6.6
2 =

rnek:
2
4
9
2 x 3 0.3


3
5 x 4 12.8
1 3

n=m

Denklem says bilinmeyen saysna eittir: n=m. Uygulamada


ounlukla karlalan denklem sistemi trdr. Katsaylar
matrisi A tam dolu, seyrek dolu, simetrik, bant, simetrik ve
bant, l kegenmatris olabilir.

det A0 ise tek zm vardr, det A = 0 durumunda zm


yoktur veya sonsuz zm vardr.

2. Denklem saysnn bilinmeyen saysndan ok olduu sistem:

a11 a12
a
a 22
A x = b 21
.
.

an1 an2

rnek:

... a1m x1 b1
... a 2m x 2 b 2
=
... . . .

... anm x m bn

3.1 6.6
0.58

2.9 4.2 x

1 = 2.01
2.7
5.8 x2 4.43

2.3
1.8
3.39

n>m

Denklem saysnn bilinmeyen saysndan ok olmas durumudur:


n>m. Genellikle lme ve deneye dayal problemlerde ortaya kar.
lme ve deney yoluyla belirlenen veri hatalarn en aza indirgemek
iin bilinmeyen saysndan daha ok denklem oluturulur. zm
yaklaktr ve minimum hata olacak ekilde bulunmaya allr.

A katsaylar matrisi genelde ok seyrek doludur. Bu tr denklem


sistemini zebilmek iin A nn kolonlar dorusal bamsz olmal,
yani rank A=m olmaldr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

43

44

3. OK BLNMEYENL DORUSAL DENKLEM SSTEM TRLER

3.Denklem saysnn bilinmeyen saysndan az olduu sistem:

Denklem saysnn bilinmeyen saysndan az olmas durumudur:


n<m. Elektronik devre analizi, corafi bilgi sistemi, istatistik,
optimizasyon ve mekanik gibi alanlarn baz problemlerinde bu tr
sistemler ile karlalr.

rnek:

... a1m x1 b1
... a 2m x 2 b 2
=
... . . .

... a nm x m bn

A katsaylar matrisi genelde ok seyrek doludur. Bu tr denklem


sistemini zebilmek iin A nn satrlar dorusal bamsz olmal,
yani rank A=n olmaldr. Tek deil, sonsuz zm vardr.

x1

2 x 2 22
4 2 1
1 6 3 2 x = 41


x4

4. Birden ok kar tarafl sistem:

... a1m x11 x12 ... x1s b11 b12


... a 2m x 21 x 22 ... x 2s b 21 b 22
=
...
. .
. ... . .
.


... anm x m1 x m2 ... x ms bn1 bn2

6 -3 -3
-3 9 1
rnek:
2 3 9

- 2 -1 -1

1 x11
2 x 21
2 x 31

7 x 41

x 22
x 32
x 42

x13 - 22 3
x 23 42 -9
=
x 33 16 -12

x 44 9
5

1.6
3.9

Ayn katsayl s tane denklem sisteminin tek


bir denklem sisteminde yazlm eklidir.

Kar tarafta s tane vektr vardr. Her kar


taraf vektr iin bir zm vektr
gerektiinden x matrisinin de s tane
vektr vardr.
zm s tane denklem sisteminin zm
ile edeerdir. zmn varl yukarda
aklanan
n=m,
n>m
veya
n<m
durumlarndan biri gibidir.

sn
o

x12

... b1s
... b 2s
... .

... bns

tla

a11 a12
a
a 22
A x = b 21
.
.

a
a
n1
n2

ri.
co

a11 a12
a
a 22
A x = b 21
.
.

a
a
n1
n2

n<m

8.3

4.1

5. Kar taraf sfr olan sistem(homojen denklem sistemi):

... a1m x1 0
... a 2m x 2 0
=
... . . .

... anm xm 0
x1
2 x2 0
rnek: 4 2 1
1 6 3 2 x = 0

3


x
4

Kar taraf sfr olan sisteme homojen denklem sistemi denir.


n=m veya nm olabilir. x=0 iin bu bantnn saland
aktr. Ancak burada x 0 zm nemli olur.

em
de
r

a11 a12
a
a22
A x = 0 21
.
.

an1 an2

x 0 zmnn olabilmesi iin:


1. ya det A=0 olmal, veya
2. A nn satrlar veya kolonlar dorusal baml olmal.

Her durumda denklemi salayan birden ok x vardr.

6. Kar taraf bilinmeyen vektrnn sabit bir kat olan sistem(zdeer problemi):

w
.e

a11 a12
a
a22
21
Ax = x
.
.

an1 an 2

... a1n x1
x1

x
... a2 n x2
2
=
.
... . .


... ann xn
xn

a11 a12
a
a22
21
Ax I x = 0
.
.

a
a
n2
n1

a11 a12
a
a22
21
( A I ) x = 0 (
.
.

a
a
n2
n1

a12
a11
a
a
22
21
.
.

an 2
an1

Soldaki bantlarn hepsi de ayn bantdr, fakat


farkl ekillerde yazlmlardr.

... a1n x1 1
... a2 n x2 1

... . .

... ann xn
... a1n 1
... a2 n 1

... .

... ann

x1 0
x 0
2 =
. . .

1 xn 0

)
.

x1 0
x 0
2 =
. .

xn 0

nxn boyutlu denklem sisteminin kar taraf


bilinmeyen vektrnn sabit bir katdr. Bu tr
denklem sistemi ile dinamik, deprem, stabilite
problemlerinde karlalr ve zdeer problemi
ad verilir. Denklemi salayan bir sabiti ve buna
ait x vektr aranr. Sabitine zdeer, x
vektrne de ya ait zvektr denir.
Homojen bir denklem sistemi olduundan x0
zmleri ancak ve ancak det (A-I) =0 iin
vardr.
zm zorca olan bu problem titreim yapan
cisimlerin periyot, frekans ve modlarnn hesabna
zdetir.

a1n x1 0
a2 n x2 0
=
...
. . .

... ann xn 0

...
...

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

44

45

3. OK BLNMEYENL DORUSAL DENKLEM SSTEM TRLER


Tek zm var, zm yok, sonsuz zm var ne demektir? Bir bilinmeyenli bir denklem iin aklamaya alalm:

ax=b denkleminde a ve b sabit x bilinmeyendir. a0 durumunda zm x=b/a dr, zm vardr ve tektir. a=0 ve b0
durumunda 0x=b ifadesi matematik kurallara ters der, nk, b0 olduu bilinmektedir. Ayrca bu ifadeden x=b/0 yazlamaz!
Demek ki denklem uyumsuzdur, zm yoktur. a=0 ve b=0 durumunda 0x=0 bantsn salayan sonsuz x vardr, sonsuz
zm vardr.

Tek zm var, zm yok, sonsuz zm var ne demektir? ki bilinmeyenli denklem sistemleri iin aklamaya alalm:
1. denklem sistemi:
2x - y=2
x + y=4

veya

y=2x - 2
y=-x + 4

ri.
co

x2

ki farkl dorunun denklemidir. Bu dorular x-y koordinat sisteminde izersek x=2 ve y=2
noktasnda kesitiklerini grrz. O halde bu nokta her iki doru zerindedir, x=2 ve y=2 deerleri
her iki denklemi de salar, baka kesien nokta yoktur. zm vardr ve tektir.

y=
2

Kesime
noktaszm

Ayn denklem sistemini matris notasyonunda yazar ve katsaylar matrisinin determinantn


hesaplarsak

y=

2 1 x 2
Ax = b
= , det A = 2 1 (1) 1 = 3
1 1 y 4

+
-x

Det A 0 olduunu grrz.

Tek zm var

tla

Sonu: determinant sfrdan fakl denklem sisteminin zm vardr ve tektir.


2. denklem sistemi:
2x - y=2
x - y=0

veya

y=2x - 2
y=2x

y
5
4

Ayn denklem sistemini matris notasyonunda yazar ve katsaylar matrisinin determinantn hesaplarsak

sn
o

ki farkl dorunun denklemidir. Bu dorular x-y koordinat sisteminde izersek birbirine paralel olduklarn
grrz, kesimezler. O halde her iki doru zerinde olan hibir ortak nokta yoktur. Her iki denklemi de
salayan x ve y deer ifti bulunamaz. zm yoktur.

2 1 x 2
1
Ax = b
=
, det A = 2 ( 0.5) ( 1) 1 = 0
1 y 0

x
1

-1

-2

Det A = 0 olduunu grrz. 1. satr -1/2 ile arparak 2. satr ile toplarsak

em
de
r

3
2

zm yok

2 1 x 2
0 0 y = 1

zm yok

A nn ikinci satr sfr olur, yani A nn satrlar dorusal bamldr, rank<2 dir. b nin ikinci satr sfr deildir. kinci denklemi
ak yazarsak 0.x+0.y=-1 yani 0=1 dir. Bu ise matematik kurallara ters der. Demek ki denklemler uyumsuzdur.

Sonu: Katsaylar matrisinin bir satr sadece sfr elemanlar ieriyor fakat ayn satrn kar taraf sfrdan farkl ise:
1. determinant sfrdr. 2. satrlar dorusal bamldr. 3. denklemler uyumsuzdur. 4. denklem sisteminin zm yoktur.
3. denklem sistemi:
2x - y=2
x - y=1

birbirinden farkl gibi grnen bu iki denklemi

w
.e

y=2x-2
y=2x-2

eklinde yazarsak, gerekte birbirinin ayn iki doru olduunu grrz. Bu dorular x-y koordinat
sisteminde izersek st ste derler. Her iki doru zerinde sonsuz ortak nokta vardr. O halde her iki
doru zerindeki her nokta her iki denklemi de salarlar. Bu nedenle sonsuz zm vardr.
Ayn denklem sistemini matris notasyonunda yazar ve katsaylar matrisinin determinantn hesaplarsak

2 1 x 2
1 = , det A = 2 ( 0.5) ( 1) 1 = 0
Ax = b
1 2 y 1

Det A = 0 olduunu grrz. 1. satr -1/2 ile arparak 2. satr ile toplarsak

y
5
4
3
2
1
0
-1

x
1

-2

Sonsuz zm var

2 1 x 2
0 0 y = 0


A nn ve b nin ikinci satr sfr olur, yani A nn satrlar dorusal bamldr, rank<2 dir. kinci denklemi ak yazarsak 0.x+0.y=0
yani 0=0 dr. Bu ise matematik kurallara ters dmez. Demek ki denklemler uyumludur. y deikenine istediimiz herhangi
deer verebilir, x i buna bal hesaplayabiliriz: y=c gibi bir sabit olsun, x=[2-(-1).c]/2=1+0.5c olur. zm vektr

x 1 + 0.5c dr ve denklem sistemini her c deeri iin salar. Sonsuz c deeri olabilecei iin sonsuz zm vardr.
x= =

y c
Sonu: Katsaylar matrisinin bir satr sadece sfr elemanlar ieriyor ve ayn satrn kar taraf da sfr ise:
1. determinant sfrdr. 2. satrlar dorusal bamldr. 3. denklemler uyumludur. 4. denklem sisteminin sonsuz zm vardr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

45

46

3. OK BLNMEYENL DORUSAL DENKLEM SSTEM TRLER

Tek zm var, zm yok, sonsuz zm var ne demektir? bilinmeyenli denklem sistemi iin aklamaya alalm:

Denklem sistemi:
3 adet dzlem
denklemi

Matris notasyonunda

a 11
A x = b, a 21
a 31

a 12
a 22
a 32

a 13 x b 1
a 23 y = b 2
a 33 z b 3

a11x+a12y+a13z=b1
a21x+a22y+a23z=b1
a31x+a32y+a33z=b3

ri.
co

denklem sisteminin her bir denklemi bir dzlemin denklemidir. x, y, z uzay eksen takmnda; dzlem bir noktada kesiirse
tek zm vardr. Bir doru boyunca kesiirlerse veya st ste derlerse sonsuz zm vardr. Kesimezler veya birbirine
pararlel iseler zm yoktur.
Kesime
dorusu sonsuz zm var

Dzlemler bir doru


boyunca kesiiyor: Sonsuz
zm var

Dzlemler st ste
dyor: Sonsuz zm var

em
de
r

sn
o

Dzlemler bir noktada


kesiiyor: Tek zm var

tla

Kesime noktas
tek zm var

Dzlemler birbirine
paralel: zm yok

Dzlemler kesimiyor:
zm yok

Genelletirme: Tek zm var, zm yok, sonsuz zm var ne demektir? n denklem ve m bilinmeyenli

a 11 x 1 + a 12 x 2 + ... + a 1m x m = b1

a 21 x 1 + a 22 x 2 + ... + a 2m x m = b 2

a n1 x 1 + a n2 x 2 + ... + a nm x m = b n

a11 a12
a
21 a 22
.
.

a n1 a n2

... a1m x1 b1
... a 2m x 2 b 2
=
Ax = b
... . . .

... a nm x m b n

w
.e

Denklem sistemi x1, x2, , xm eksenli uzayda tanmldr. izim yoluyla zm gsteremeyiz. 2x2 ve 3x3 denklem sistemleri iin
yukarda verdiimiz ilkeleri genelletirebiliriz: Aranan zm, m eksenli uzayda koordinatlar x1, x2, , xm olan bir noktadr. Bu
nokta bulunabilir, bulunamayabilir veya sonsuz tane bulunabilir. O halde nxm denklem sisteminin

Tek zm olabilir.
zm olmayabilir.
Sonsuz zm olabilir.

Denklem sistemine bakarak zm vardr, yoktur ya da sonsuz zm vardr demek mmkn deildir. Yukardaki
irdelemelerden anlald gibi, zm katsaylar matrisinin determinantnn deerine, satr veya kolonlarn dorusal baml olup
olmadna, ranka ve denklemlerin uyumlu olup olmadna baldr.
Byk bir denklem sisteminin determinant nasl hesaplanacak? Satr veya kolonlarn dorusal baml olup olmad nasl
belirlenecek? Denklemlerin uyumlu veya uyumsuz olduu nasl anlalacak? Rank nasl hesaplanacak?
Zor gibi grlen bu sorularn cevab aslnda ok basittir. Denklem sistemi zlrken bu sorularn tmnn cevab da
kendiliinden ortaya kar. Blm 4 de denklem sistemlerinin zm yntemleri incelenirken bu sorular saysal rneklerle
cevaplanacaktr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

46

47

3. OK BLNMEYENL DORUSAL DENKLEM SSTEM TRLER

Dorusal denklem sistemlerinin zm yntemleri


Katsaylar matrisi kare olan, n denklem ve n bilinmeyenli
(3.1)

A x=b

ri.
co

denklem sistemininde A ve b nin elemanlarnn sabit saylardan olutuu, det A 0 ve b 0


olduu varsaylmaktadr. Denklem sistemini salayan x vektrnn hesaplanmas
amalanmaktadr. Bilindii gibi, sralanan koullar nedeniyle, zm vardr ve tektir.
Bilinen ilk sistematik zm metodu Cramer kuraldr1. Determinant hesabna dayal bu
zm metodu, dier zm metotlarna kyasla, ok fazla ilem(100 bilinmeyenli denklem
sistemi iin yaklak 70 milyon ilem!) gerektirdiinden gnmzde kullanlmamaktadr.
Cramer kuralnn sadece tarihsel deeri vardr.

tla

Gnmzde 3.1 dorusal denklem sistemi direkt veya iterasyon yntemlerinden biri ile
zlr:
Direkt yntemler:

terasyon yntemleri:

sn
o

Belli sayda zm adm ve ilem says olan zm yntemleridir. Gerekli adm says ve
drt ilem says zm ncesi bellidir. GAUSS indirgeme metodu, GAUSS-JORDAN teknii,
LU veya LDU arpanlara ayrma yntemleri, CHOLESKY metodu ve dier benzerleri bu gruba
girer.

em
de
r

Gerekli adm ve drt ilem says zm ncesi bilinemez. Hatta zmn bulunacann
garantisi de her zaman yoktur. zme bir balang zm tahmin edilerek balanr, bir
sonraki admda hesaplanan zm gerek zme daha yakndr. Birbirini izleyen iki zm
arasndaki fark yeter derecede kk oluncaya kadar hesap tekrarlanr. JACOBI, GAUSSSEIDEL metodu, CG (Conjugate Gradient method) metodu, SOR(Successive Overrelaxation
Method) metodu ve dier benzerleri bu gruba girer.
ok sayda direkt ve iterasyon yntemi vardr. 1953 ylnda yaplan bir sayma gre 450 den
ok zm yntemi vard. Temelleri asrlar nce atlm olmakla birlikte, asl gelimeler
1960-1970 l yllarda olmutur. Bugn saysn bilmek mmkn deildir. En genel yntem
GAUSS indirgeme metodudur. Dierleri bu yntemin zel durumlar iin az ya da ok
deitirilmi eklidir. Yukarda ad geen yntemler en ok kullanlanlardr.

w
.e

Tm zm yntemlerinin temel dayana vardr:

Denklem sisteminin bir denkleminin sfrdan farkl bir sabit ile arplmas zm deimez.
Denklem sisteminin iki satrnn yerleri deitirilirse zm deimez.
Denklem sisteminin iki kolonunun yerleri deitirilirse zm deimez, ancak deikenlerin sras
deiir.
Denklem sisteminin bir denklemi sfrdan farkl sabit bir say ile arplr ve baka bir satr ile
toplanrsa(veya karlrsa) zm deimez.

Direkt zm metotlar bu ilkelerden yararlanarak 3.1 denklem sisteminin katsaylar


matrisini

Bir st gen matrise, veya


Bir alt ve bir st gen matrisin arpmna veya
Bir alt gen bir diyagonal ve bir st gen matrisin arpmna

dntrrler. Bu nedenle, yukarda ad geen yntemlere, indirgeme veya arpanlara


ayrma yntemi ad da verilir. Katsaylar matrisi genletirilmi sistemin zm gerek
sistemin zmn verir.

lk sistematik denklem zmn svireli Cramer(1704-1752), 1750 ylnda yaynlad.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

47

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

13
PROGRAMLAR:

Basit GAUSS indirgeme metodu

13. PROGRAMLAR: Dorusal denklem sistemi zm- basit GAUSS indirgeme metodu

131

13. PROGRAMLAR: Dorusal denklem sistemi zm- basit GAUSS indirgeme metodu1
.
.

.
.

a1n x11
a2 n x21
.

.
.

ann xn1

x12
x22

.
.

.
.

.
.

xn 2

x1n b11 b12


x2 n b21 b22
.
=
.
.

xnn bn1 bn 2

.
.

.
.

.
.

b1n
b2 n

bnn

.
.

ri.
co

a11 a12
a
21 a22
.

.
.

an1 an 2

A x =b bantsnda A ve b verildiinde x bilinmeyenler matrisi, det A, A nn kondisyon says


ve rank hesaplanr. m=n ve kar taraf matrisi b

1
.
.
.

tla

b = I =

sn
o

birim matris olarak verilirse A nn ters matrisi, A-1 hesaplanr. Hesaplanan x veya A-1 matrisi
b matrisinde depolanr. Bu nedenle x matrisi iin programda boyut almamtr. Hesap
sonras A ve b nin ilk deerleri kaybolur.
Determinat: A nn determinant det A, nemli bir sabit saydr. det A=0 ise zm yoktur.

Determinant

em
de
r

Det A = d. 2k

dr. GAUSS program det A y deil d ve k saylarn hesaplar. Bunun nedeni say tamasn
nlemektir. Kullanc det A deerini yukardaki bantdan hesaplayabilir.
Kondisyon says(Hadamard):

Kon( A ) h =

det A
V

le tanmlanan bir dier nemli saydr. A matrisinin hasta (ill-conditiond) bir matris olup
olmad hakknda bir fikir verir. Kon A<10-3 durumunda A matrisinin hasta bir matris
olduu, zmn hatal olabilecei phesi vardr.

w
.e

Rank: A matrisinin lineer bamsz satr saysdr. Rank A<n ise matris tekildir. det A0
durumunda daima rank A=n olur.

rnek:

6 2
12 8
Ax = b
3 13

6 4

x11
x
21
x31

1 18 x41

2
6
9

4
10
3

x12 16
1

x22 26 2
=

x32 19 9

x42 34 4

x =?

GAUSS sonucu

1. zm vektr
2. zm vektr

Teori ve saysal rnekler iin bak: blm 5


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

131

13. PROGRAMLAR: Dorusal denklem sistemi zm- basit GAUSS indirgeme metodu

132

zm:

ri.
co

3 15.26
1
32.96
x=
2 48.58

15.33
1
Det A=d.2k=0.5625.28=144
Kon(A)h=|det A|/ V=144/45666=0.003

'---------------- Ana program Gauss---------------' Ax=b Denklem sistemi zm


' arlan alt programlar: Gauss
'-------------------------------------------------DATA 4,2: ' n,m
A(n,n ve B(n,m)
'A matrisi:
matrislerinin boyutlar
DATA 6, -2,2, 4
DATA 12, -8,6, 10
DATA 3,-13,9, 3
A nn satrlar
DATA -6, 4,1,-18

DEFINT I-N
DEFDBL A-H, O-Z

tla

sn
o

' B matrisi:
DATA 16,26,-19,-34
DATA 1,-2,9,-4

Ana program

B nin kolonlar

Alt programn ana programa tantm

em
de
r

DECLARE SUB Gauss (n, a(), m, b(), rank, d, k, v)


CLS

A ve B nin boyutlar DATA satrlarndan okunuyor

READ n, m
DIM a(n, n), b(n, m): 'A ve B iin bellekte yer ayr

w
.e

' A y oku:
FOR i = 1 TO n
FOR j = 1 TO n
READ a(i, j)
NEXT j
NEXT i
' b yi oku:
FOR i = 1 TO m
FOR j = 1 TO n
READ b(j, i)
NEXT j
NEXT i

A ve B matrisleri tanmlanyor

A nn satrlar DATA satrlarndan okunuyor

B nin kolonlar DATA satrlarndan okunuyor

CALL Gauss(n, a(), m, b(), rank, d, k, v)

GAUSS alt program arlyor

PRINT "Determinant ve kondisyon hesab iin katsaylar:"


PRINT "Rank="; rank; "d="; d; "k="; k; "V="; v
IF rank < n THEN PRINT "Matris tekil, zm yok !": END
PRINT
PRINT "Denklem sisteminin zm (Gauss):"
FOR i = 1 TO m
FOR j = 1 TO n
PRINT b(j, i);
NEXT j
PRINT : PRINT
NEXT i
END

Sonular yazdrlyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

132

ri.
co

sn
o

' Zero: sfr saylacak say


rank = 0: v = 1: Zero = 0
FOR i = 1 TO n
d=0
FOR j = 1 TO n
IF ABS(a(i, j)) > Zero THEN Zero = ABS(a(i, j))
d = d + a(i, j) * a(i, j)
NEXT j
d = SQR(d): v = v * d: 'HADAMARD hacmi
NEXT i
Zero = Zero * Eps

GAUSS alt program

tla

SUB Gauss (n, a(), m, b(), rank, d, k, v)


'-----------------------------------------------------------' Dorusal denklem sistemi zm (Gauss)
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' a(n,n)*x(n,m)=b(n,m) denklem sisteminden x(n,m) hesaplanr.
' a ve b aran programda depolanm olmaldr.
' x(n,m) zm b(n,m) matrisinde depolanr.
' n=m ve b(n,n)=I (birim matris) olarak verilirse
' b(n,n) zmden sonra a(n,n) nin tersi olur.
' Programn verdii d, k ve V saylar yardmyla
' det a=d*2^k ile hesaplanabilir.
' a tekil ise d=0 dner, zm yoktur.
' a nn kondisyon says Kon a=ABS(det a)/V ile
' hesaplanarak matrisin hasta (ill-conditioned) olup
' olmad incelenebilir.
'-----------------------------------------------------------' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps

133

13. PROGRAMLAR: Dorusal denklem sistemi zm- basit GAUSS indirgeme metodu

em
de
r

IF n = 1 THEN
' n=1 durumu
IF ABS(a(1, 1)) <= Zero THEN GOTO 100
FOR i = 1 TO m
b(1, i) = b(1, i) / a(1, 1)
NEXT i
rank = 1: d = a(1, 1): k = 0
EXIT SUB
END IF

FOR i = 1 TO n - 1
' Kolonda Pivot ara
T = 0: d = 1: k = i
FOR j = i TO n
IF ABS(a(j, i)) > T THEN T = ABS(a(j, i)): k = j
NEXT j

w
.e

IF T <= Zero GOTO 100


IF k > i THEN
d = -d: ' Determinantn iaretini dei
' i ve k satrlarn dei
FOR j = i TO n
T = a(i, j)
a(i, j) = a(k, j)
a(k, j) = T
NEXT j
FOR j = 1 TO m
T = b(i, j)
b(i, j) = b(k, j)
b(k, j) = T
NEXT j
END IF
' ndirge
rank = i
FOR j = i + 1 TO n
T = a(j, i) / a(i, i)
FOR k = i + 1 TO n
a(j, k) = a(j, k) - T * a(i, k)
NEXT k
FOR k = 1 TO m
b(j, k) = b(j, k) - T * b(i, k)
NEXT k
NEXT j
NEXT i
IF ABS(a(n, n)) <= Zero GOTO 100
rank = n

' Yukar doru hesap


FOR j = 1 TO m
FOR i = n TO 1 STEP -1
T=0
FOR k = i + 1 TO n
T = T + a(i, k) * b(k, j)
NEXT k
b(i, j) = (b(i, j) - T) / a(i, i)
NEXT i
NEXT j

' Determinat iin d ve k yi belirle (WILKINSON)


k=0
FOR i = 1 TO n
d = d * a(i, i)
200 k = k + 4
IF ABS(d) >= 1 THEN d = d * .0625: GOTO 200
300 k = k - 4
IF ABS(d) < .0625 THEN d = d * 16: GOTO 300
NEXT i
EXIT SUB
100 ' Matris tekil
d = 0: k = 0
END SUB ' Gauss

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

133

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

Ahmet TOPU

tla

Ders notlar 2014

em
de
r

n=m

Yukardan aa doru hesap

Alt gen matris

l 22
l 32

l 33

...

l n2

l n3

ln4

...

w
.e

l11
l
21
l 31

.
l n1

x1 b1
x b
2 2
x 3 = b3

. .
l nn x n bn

x1 = b1 / l11
x 2 = (b2 l 21 x1 ) / l 22
x 3 = (b3 l 31 x1 l 32 x 2 ) / l 33
...
x n = (bn l n1 x1 l n 2 x 2 l n3 x 3 l n 4 x 4 .... l n ( n 1) x n 1 ) / l nn

4
DENKLEM SSTEM ZM, DREKT
METOTLAR
Katsaylar matrisi gen sistemler

49

4. KATSAYILAR MATRS GEN OLAN DENKLEM SSTEMNN ZM

4. KATSAYILAR MATRS GEN OLAN DENKLEM SSTEMNN ZM

Katsaylar matrisi alt veya st gen olan denklem sistemi ile uygulamada karlalmaz.
Ancak, arpanlara ayrma yntemlerinde ortaya kar. Bu yntemlerin anlalabilmesi
asndan gen katsayl sistem zm iyi kavranmaldr.

ri.
co

Aadaki gen matrislerde diyagonal elemanlarn sfrdan farkl olduu varsaylmaktadr


(determinant0 anlamnda).
Alt gen katsayl sistem:

+ l 22 x 2

l 31 x1

+ l 32 x 2

+ l 33 x 3

...

l n1 x1

+ ln2 x2

+ l n3 x 3

+ l n4 x4

...

l 33
.
l n3

.
ln4

H
e
s
a
p

= b3

3. Adm: x1 ve x2 yi yerine koy x3 hesapla

2. Adm: x1 i yerine koy, x2 yi hesapla

+ l nn x n = bn

1. Adm:

n. Adm: x1, x2 , x3 , , xn-1 i yerine koy xn i hesapla

H
e
s
a
p
y

x1 = b1 / l11

sn
o

l 22
l 32
.
l n2

x1 b1
x b
2 2
x 3 = b3

. .
l nn x n bn

1. Adm: x1 i hesapla: x1=b1/l11

Denklem sistemi matris notasyonunda L x=b


l11
l
21
l 31

.
l n1

= b1
= b2

tla

l11 x1
l 21 x1

...
...

2. Adm:

x 2 = (b2 l 21 x1 ) / l 22

3. Adm:

x 3 = (b3 l 31 x1 l 32 x 2 ) / l 33

...

n. Adm:

x n = (bn l n1 x1 l n 2 x 2 l n3 x 3 l n 4 x 4 .... l n ( n 1) x n 1 ) / l nn

em
de
r

eklini alr. 1. denklemde 1, ikinci denklemde 2, 3. denklemde 3, , n. denklemde n


bilinmeyen vardr. Hesap 1. denklemden n. denkleme doru yaplr: 1. denklemden x1
hesaplanr. 2. denklemde x1 yerine konur ve x2 hesaplanr. 3. denklemde x1, x2 yerine konur
ve x3 hesaplanr. n. denklemde x1, x2, x3, , xn-1 yerine konur ve xn hesaplanr. Grld
gibi zm ok basittir. Hesap yn yukardan aaya dorudur. ematik hesap:
l11
.
.
.
li1
.

.
.
.

li 2
.

.
.
.
.

w
.e

li(i 1 )
.

rnek:

6
x1 3
1 3
x 7

2 =
2 4 7 x3 4


3 5 2 4 x 4 5

lii
.

x1 b1


x2 .
. .

=
xi 1 .
x b .
i i
. . .

x1 = b1 /l11

xi bilinmeyenini hesaplamak iin: L nin i diyagonalinin solundaki


saylar x in i. satrnn stndeki saylar ile arplr, bi den kartlr,
bulunan deer L nin diyagonal eleman lii ye blnr.
i. Adm:

x i = (bi l i1 x1 l i 2 x 2 ... l i(i 1 ) x i 1 )/l ii

Hesaplarda noktadan sonra 3 hane


yrtlmtr, 3. hane yuvarlatlmtr.
H
e
s
a
p
y

1. Adm:

x1 = 3 / 6 = 0.500

2. Adm:

x 2 = (7 (1) 0.500) / 3 = 2.167

3. Adm:

x 3 = (4 2 0.500 (4) (2.167)) / 7 = 0.810

4. Adm:

x 4 = (5 (3) 0.500 5 (2.167) 2 (0.810)) / 4 = 4.739

Gzlem:

Diyagonal elemanlar lii 0 dr.

Katsaylar matrisinin determinant det L

1. Adm:

= l11 l 22 ... l nn = 6 3 7 4 = 504 0

0.500
2.167

x=
0.810

4.739

dr.

L dzenli(regler) bir matristir, satr ve kolonlar dorusal baml deildir, rank=n=4 tr.
Tek zm vardr ve bulunmutur.

Bu koullardan biri salanmasayd zm bulanamayacakt!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

49

50

4. KATSAYILAR MATRS GEN OLAN DENKLEM SSTEMNN ZM

st gen katsayl sistem:


+u13 x 3

...

+u1( n 1) x n 1

u 22 x 2

+ u 23 x 3

...
...

+ u 2( n 1) x n 1
.
u ( n 1)( n 1) x n 1

+u1n x n

n. Adm: x2, x3, xn i yerine koy x1 i hesapla

= b1

n-1. Adm: x3, x4, xn i yerine koy x2 yi hesapla

+ u 2 n x n = b2
.
.
+ u ( n 1) n x n = bn 1
u nn x n

2. Adm: xn i yerine koy, xn-1 i hesapla

= bn

1. Adm: xn i hesapla: xn=bn/unn

Matris notasyonunda U x=b


u13 ...

u1( n 1)

u23 ...
. ...

u2( n 1)
.
u( n 1)( n 1)

u1n x1 b1

u2 n x2 b2
. . = .

u( n 1) n xn 1 bn 1
unn xn bn

H
e
s
a
p
y

n. Adm:

x1 = (b1 u12 x2 u13 x3 ... u1( n 1) xn 1 u1n xn ) / u11

n-1. Adm:

x2 = (b2 u23 x3 ... u2( n 1) xn 1 u2n xn ) / u22


...

2. Adm:

xn 1 = (bn 1 u( n 1) n xn ) / u( n 1)( n 1)
xn = bn / unn

tla

u11 u12

u22

H
e
s
a
p

+u12 x 2

ri.
co

u11 x1

1. Adm:

.
uii
.

.
ui (i +1)
.

.
ui (i + 2)
.

.
.
.

.
.

.
uin
.

. .


xi bi
xi +1 .

=
xi + 2 .
. .


.xn bn

em
de
r

sn
o

eklini alr. n. denklemde 1, n-1. denklemde 2, , 2. denklemde n-1 ve 1. denklemde n


bilinmeyen vardr. Hesap n. denklemden 1. denkleme doru yaplr: n. denklemden xn
hesaplanr. n-1. denklemde xn yerine konur ve xn-1 hesaplanr. 2. denklemde x3, , x4,, xn
yerine konur ve x2 hesaplanr. 1. denklemde x2, x3, , xn yerine konur ve x1 hesaplanr.
Grld gibi zm ok basittir. Hesap yn aadan yukar dorudur. ematik hesap:

.
.

unn

i. Adm:

x i = (bi u i (i +1) x i +1 u i (i + 2) x i + 2 ... u in x n ) / u ii

xi bilinmeyenini hesaplamak iin: U nun i diyagonalinin sandaki


saylar x in i. satrnn altndaki saylar ile arplr, bi den kartlr,
bulunan deer U nun diyagonal eleman uii ye blnr.
1. Adm:

x n = b n / u nn

rnek:

w
.e

6 1 2 3 x1 3

3 4 5 x2 7

7
2 x3 4


4 x4 5

H
e
s
a
p
y

4. Adm:

x1 = (3 (1)(4.131 2 0.214 (3) 1.250) / 6 = 2.191

3. Adm:

x2 = (7 (4) 0.214 5 1.250) / 3 = 4.131

2. Adm:

x3 = (4 2 1.250) / 7 = 0.214

1. Adm:

x4 = 5 / 4 = 1.250

Gzlem:

Diyagonal elemanlar uii0 dr.

Katsaylar matrisinin determinant det

U = u11 u 22 ... u nn = 6 3 7 4 = 504 0

2.191
4.131

x=
0.214

1.250

dr.

U dzenli(regler) bir matristir, satr ve kolonlar dorusal baml deildir, rank=n=4 tr.
Tek zm vardr ve bulunmutur.

Bu koullardan biri salanmasayd zm bulanamayacakt!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

50

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

Ahmet TOPU

tla

Ders notlar 2014

m=n

em
de
r

st gen matris

a12
a 22

a13
a 23

a 32

a 33

.
a n2

.
a n3

... a1n x1 b1
... a 2 n x 2 b2
... a 3n x 3 = b3

... . . .
... a nn x n b n

a11 a12

(1)
a22

a13
(1)
23
( 3)
33

a
a

a1n x1 b1
... a2(1n) x2 b2(1)
... a3( 2n ) x3 = b3( 2 )


...
. . .
( n 1)
( n 1)
ann
xn bn
...

w
.e

a11
a
21
a 31

.
a n1

Carl Friedrich GAUSS (1777 1855)

5
DENKLEM SSTEM ZM, DREKT
METOTLAR
Basit GAUSS indirgeme metodu

5. BAST GAUSS1 NDRGEME METODU

52

5. BAST GAUSS1 NDRGEME METODU


n bilinmeyenli n denklemli A x=b sisteminde A ve b verilmi olsun. x in hesaplanmas
istenmektedir. det A0 ise zm vardr ve tektir.

a n1 x1

+ an2 x2

+ a13 x 3 + ... + a1n x n


+ a 23 x 3 + ... + a 2 n x n
+ a 33 x 3 + ... + a 3n x n
.

...
.
+ a n 3 x 3 + ... + a nn x n

= b1
= b2
= b3
.
= bn

a11
a
21
a 31

.
a n1

a12

a13

a 22
a 32
.
a n2

a 23
a 33
.
a n3

... a1n x1 b1
... a 2 n x 2 b2
... a 3n x 3 = b3

... . . .
... a nn x n bn

+ a12 x 2
+ a 22 x 2
+ a 32 x 2

(5.1)

ri.
co

a11 x1
a 21 x1
a 31 x1

Basit GAUSS indirgeme metodu bu denklem sistemini n-1 admda katsaylar matrisi bir st
gen olan edeer denklem sistemine indirger:

+ a13 x3 + ... + a1n xn


(1)
+ a23
x3 + ... + a2(1n) xn
( 2)
+ a33
x3 + ... + a3( 2n) xn

...

.
a

( n 1)
nn
n

= b1
= b2(1)
= b3( 2 )
.
= bn( n 1)

a11

a12

a13

(1)
22

(1)
23
( 2)
33

a
a

a1n x1 b1
... a 2(1n) x 2 b2(1)
... a 3( 2n) x 3 = b3( 2 )

...
. . .
( n 1)
( n 1)
a nn
x n bn
...

tla

a11 x1 + a12 x2
(1)
a22
x2

sn
o

(5.2)
Burada aij(k ) ve bi(k ) saylar k. admda A nn deien saylarn gstermektedir. Bu denklem
sisteminden aadan yukar doru hesap yaplarak x vektrnn tm elemanlar belirlenir.

em
de
r

ndirgeme metodunun ana ilkesi udur: 1. admda A nn 1. kolonunun diyagonalinin


altndaki saylar sfrlanr. 2. admda A nn 2. kolonunun diyagonalinin altndaki, 3. admda A
nn 3. kolonunun diyagonalinin altndaki, , n-1. admda A nn n-1. kolonunun diyagonalinin
altndaki saylar sfrlanr.

1. kolonun diyagonali altndaki saylar sfrlamak iin A nn 1. satr zenle seilmi baz
saylar ile arplr ve 2., 3., , n. denklemden karlr. 2. kolonun diyagonali altndaki
saylar sfrlamak iin A nn 2. satr zenle seilmi baz saylar ile arplr ve 3., 4., , n.
denklemden karlr, v.s. Bu ilemin nasl yaplaca aada adm adm aklanacaktr.
1. Adm:

zenle seilmi saylar

w
.e

1. satr l21=a21/a11 ile arplr 2. satrdan karlr. Bunun sonucunda a21 sfr olur.
1. satr l31=a31/a11 ile arplr 3. satrdan karlr. Bunun sonucunda a31 sfr olur.

1. satr ln1=an1/a11 ile arplr n. satrdan karlr. Bunun sonucunda an1 sfr olur.

zenle seilen saylarda blen olarak grnen a11 saysna pivot eleman denir. 1.adm
sonunda x1 bilinmeyeni son n-1 denklemden indirgenmi olur. 5.1 denklem sistemi

a11x1 + a12 x2
(1)
0
+ a22
x2
(1)
0
+ a32 x2
.
.
0
+ an(12) x2

+ a13 x3 +
(1)
+ a23
x3 +
(1)
+ a33 x3 +
.
(1)
+ an 3 x3 +

+ a1n xn
+ a2(1n) xn
+ a3(1n) xn
.
(1)
+ ann xn

...
...
...
...
...

= b1
= b2(1)
= b3(1)
.
= bn(1)

a11 a12
0 a (1)
22

(1)
0 a32

.
.
0 a (1)
n2

a13 ... a1n x1 b1


(1)
a23
... a2(1n) x2 b2(1)
(1)
a33 ... a3(1n) x3 = b3(1)

. ... . . .
(1)
(1)
an(13) ... ann
xn bn

ndirgenen bilinmeyen

(5.3)

Sfrlanan saylar

eklini alr.

Burada

a ij(1)

ve

bi(1) saylar 1. admda A nn deien yeni saylarn gstermektedir.

Genelletirilirse, bu saylar
l i1 = a i1 / a11 ,

a ij( 1 ) = a ij l i1 a1 j

ve b i(1) = b i l i1 b1 ,

i = 2 , 3 , ..., n , j = 1, 2 , ..., n

ile hesaplanmaktadr.
1

Carl Friedrich GAUSS (1777 1855), Alman: 1798 civar


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

52

5. BAST GAUSS1 NDRGEME METODU

53

2. Adm:

1. adm sonunda oluan 5.3 sisteminin 1. denklemi hari geriye kalan n-1 denkleminden x2
bilinmeyeni benzer ekilde yok edilir.

(1)
(1)
(1)
2. satr l 32 = a 32 / a 22 ile arplr 3. satrdan karlr. Bunun sonucunda a 32 sfr olur.
(1)
(1)
(1)
2. satr l 42 = a 42 / a 22 ile arplr 4. satrdan karlr. Bunun sonucunda a 42 sfr olur.

zenle seilmi saylar

ri.
co

(1)
(1)
(1)
2. satr l n 2 = a n 2 / a 22 ile arplr n. satrdan karlr. Bunun sonucunda a n 2 sfr olur.

(1)
saysna pivot eleman denir. 2.adm
zenle seilen saylarda blen olarak grnen a 22
sonunda x2 bilinmeyeni son n-2 denklemden indirgenmi olur. 5.3 denklem sistemi

+ a13 x3 + ... + a1n xn


(1)
+ a23
x3 + ... + a2(1n) xn

= b1
= b2(1)

+0
.

( 2)
+ a33
x3 + ... + a3( n2 ) xn
.
...
.

= b3( 2 )
.

+0

( 2)
+ an( 23) x3 + ... + ann
xn

= bn( 2 )

a13 ... a1n x1 b1


(1)
a23
... a2(1n) x2 b2(1)
( 2)
a33
... a3( 2n) x3 = b3( 2)

.
...
. . .
( 2)
( 2)
an( 23) ... ann
xn bn

sn
o

0
.

a11 a12
0 a (1)
22

0
0

.
.
0
0

ndirgenen bilinmeyenler

tla

a11 x1 + a12 x2
(1)
0
+ a22
x2

(5.4)

Sfrlanan saylar

eklini alr.

Burada aij( 2) ve bi(2) saylar 2. admda A nn deien yeni saylardr.

Genelletirilirse, bu saylar
(1 )
l i 2 = a i(21) / a 22
,

a ij( 2 ) = a ij( 1 ) l i 2 a 2( 1j )

em
de
r

ile hesaplanmaktadr.

ve b i( 2 ) = bi(1) l i 2 b 2(1) ,

i = 3, 4 , ..., n , j = 2 , 3 , ..., n

Dier admlar:

2. adm sonunda oluan 5.4 sisteminin 1. ve 2. denklemi hari, geriye kalan n-2
denklemindeki x3, x4, , xn-1 bilinmeyenleri benzer ekilde yok edilir. n-1. adm sonunda
katsaylar matrisi bir st gen olan 5.2 edeer denklem sistemine dnr. Bu denklem
sisteminden aadan yukar doru hesap ile x1, x2, , xn bilinmeyenleri srayla bulunur:

+ a13 x3 +

w
.e

a11x1 + a12 x2
(1)
a22
x2

(1)
+ a23
x3 +
( 2)
+ a33 x3 +

...

+ a1n xn

= b1

...
...
...

+ a2(1n) xn
+ a3( 2n) xn

= b2(1)
= b3( 2)

( n 1)
ann
xn

= bn( n 1)

a11 a12

(1)
a22

ndirgenen bilinmeyenler

x1 b1
x b (1)
2 2
x3 = b3( 2)

...
. . .
( n 1)
( n 1)
ann
xn bn

a13 ...
(1)
a23
...
( 3)
a33
...

Sfrlanan saylar

a1n
a2(1n)
a3( 2n)

x1 = (b1 a12 x2 a13 x3 ... a1n xn ) / a11


H
e
s
a
p
y

(1)
(1)
x2 = (b2(1) a23
x3 ... a2(1n) xn ) / a22
( 2)
x3 = (b3( 2) ... a3( 2n) xn ) / a33

...
( n 1)
xn = bn( n 1) / ann

(1) ( 2)
( n 1) diyagonal elemanlarna pivot eleman denir.
a11, a22
, a33 ,..., ann

Gzlem:

A katsaylar matrisi n-1 adm sonunda bir st gen matrise dntrlmektedir.

Oluan yeni denklem sistemi verilen denklem sistemi ile edeerdir.

Tm ilemler A, b ve x matrisi zerinde yaplmaktadr. A ve b nn ilk deerleri kaybolmaktadr.

Pivot elemanlar 0 olmaldr, aksi halde zme devam edilemez.


(n 1)

Kasaylar matrisi A nn determinant indirgenmi sistemin determinantna eittir: det A = a11 a (1) a ( 2) .. ann
22 33

Pivot elemanlardan biri sfr ise det A=0 olur. Bu ise A nn satr veya kolonlarnn dorusal baml olduu anlamna gelir.

det A=0 ise A tekildir, zm yoktur veya tek deildir. Rank A <n dir.

det A 0 ise zm vardr ve tektir. A dzenlidir (reglerdir). Rank A =n dir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

53

5. BAST GAUSS1 NDRGEME METODU

54

rnek:
12 x1 8 x 2 + 6 x 3 + 10 x 4 = 26
3 x1 13 x 2 + 9 x3 + 3 x 4 = 19
6 x1 + 4 x 2 + x 3 18 x 4 = 34

2
6
12 8

3 13

4
6

4 x1 16
6 10 x 2 26
=
A x = b,
9
3 x 3 19

1 18 x 4 34
2

x =?

6 x1 2 x 2 + 2 x 3 + 4 x 4 = 16

ri.
co

Tm ilemler A matrisi zerinde yaplacaktr. Diyagonal altndaki saylarn sfr olaca


bilindiinden bu hcrelere lij deerleri saklanacaktr.
1. Adm:
Pivot eleman

l31=3/6=0.5
l41= - 6/6= -1

4 x1 16

2
2 x2 6
=
8 1 x3 27

3 14 x4 18
2

l21=2 says 1.satr ile arpld, 2.satrdan kartld.

l31=0.5 says 1.satr ile arpld, 3.satrdan kartld.

tla

l21=12/6=2

6 2

2 4
0.5 12

2
1

l41= -1 says 1.satr ile arpld, 4.satrdan kartld.

2. Adm:

l32=-12/(-4)=3

2
6

4
2
0 .5
3

1 0.5

4 x1 16

2
2 x2 6
=
2 5 x3 9

4 13 x 4 21
2

l32=3 says 2.satr ile arpld, 3.satrdan kartld.


l42= -0.5 says 2.satr ile arpld, 4.satrdan kartld.

em
de
r

l42=2/(-4)=-0.5

Pivot eleman

sn
o

1. diyagonal altndaki elemanlar pivot elemana blnd

2. diyagonal altndaki elemanlar pivot elemana blnd

3. Adm:

l43=4/2=2

Pivot eleman

2
6

4
2
0 .5
3

1 0 .5

4 x1 16

2 2 x2 6
=
2 5 x3 9

2 3 x4 3
2

l43= 2 says 3.satr ile arpld, 4.satrdan kartld.

w
.e

3.diyagonal altndaki elemanlar pivot elemana blnd

ndirgenmi denklem sistemi ve aadan yukarya doru hesap:

6 2 2 4 x1 16
4 2 2 x 6

2 =

2 5 x 3 9


3 x4 3

H
e
s
a
p
y

x1 = (16 (2) 1 2 (2) 4 1) / 6 = 3


x 2 = (6 2 (2) 2 1) /( 4) = 1
x3 = (9 (5) 1) / 2 = 2
x 4 = 3 /( 3) = 1

Gzlem:

Tm ilemler A , b ve x matrisi zerinde yaplmtr. A ve b nn verilmi ilk deerleri kaybolmutur.

A katsaylar matrisi n-1=4-1=3 adm sonunda bir st gen matrise dnmtr.

Oluan yeni denklem sistemi verilen denklem sistemi ile edeerdir.

Pivot elemanlar 0 dr.

Katsaylar matrisi A nn determinant indirgenmi sistemin determinantna eittir. det A = 6 ( 4) 2 ( 3)

3
1
x=
2

1

= 144 0

dr.

det A 0 olduundan A dzenli(regler) bir matristir, satr ve kolonlar dorusal baml deildir, rank A=n=4 tr.
Tek zm vardr ve bulunmutur.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

54

5. BAST GAUSS1 NDRGEME METODU

55

Pivot eleman seimi ve satr deitirme

1 1 1 x1 2
0 1 1 x = 1 ,

2
2 1 1 x3 3

2 1 1 x1 3
1 1 1 x = 2

2
0 1 1 x3 1

ri.
co

0 1 1 x1 1
1 1 1 x = 2,

2
2 1 1 x3 3

( n 1) saylarna pivot eleman, bu


lij saylarnn hesabnda blen olarak karmza kan a11, a (1) , a ( 2) ,..., ann
22 33
elemanlarn bulunduu satr ve kolona pivot satr ve pivot kolonu denir. Pivot kelimesi kilit, rol oynayan,
ynlendiren olarak tercme edilebilir. Pivot eleman hesabn kaderini belirler. nk, indirgemenin
srdrlebilmesi iin pivot elemanlarn sfrdan farkl olmas gerekir, aksi durumda hesaba devam edilemez.
rnein

denklem sistemlerinin nn de zm ayn; x1=1, x2=3, x3=-2 dr. nk farkl gibi grlen her denklem
sistemi gerekte birbirinin ayndr, sadece satrlarnn yerleri deitirilmitir. Satrlarn yer deitirmesi zm
deitirmediinden zm de ayn kalr.

tla

Ancak; birinci denklem sistemi zlmek istenirse, daha ilk admda, kmaza girilir. nk 1. diyagonal
eleman(yani pivot), sfrdr. kinci denklem sisteminde 1. diyagonal eleman(pivot) sfrdan farkldr,
indirgemenin ilk adm sorunsuz yrtlebilir. nc denklem sisteminde de ilk adm sorun yaratmaz.
Pivot elemann sfr olmas halinde, rnein k. Admda, akk=0 ise; A matrisinin k. Kolonunda diyagonalin
altndaki saylar arasnda pivot eleman aranr ve k. satr ile sonraki satrlardan biri deitirilir, pivot elemann
sfrdan farkl olmas salanr ve hesaba devam edilir.

sn
o

Sfrdan farkl pivot elemann bulunamamas durumunda; rnein k. Admda diyagonal ve diyagonalin altndaki
tm elemanlar sfr ise, akk= a(k+1)k=,, = ank=0; satr deitirmek de bir ie yaramaz. Bunun anlam; A
matrisinin tekil, yani det A=0 olduu, zmn bulunmad veya saysz zmn olduudur.

em
de
r

Pivot elemann sfrdan farkl fakat mutlak deerce ok kk olmas da nmerik sorun yaratr. lij saylar A nn
elemanlar pivot elemana blnerek hesaplandndan, pivot elemann ok kk olmas blmn ok byk bir
say olmasna, bununla arplan/toplanan saylarn daha da bymesine ve yuvarlama hatalarna neden olur.
Byk denklem sistemlerinde bu ilemler milyonlarca defa yapldndan, yuvarlama hatalar birike birike
sonucun tamamen yanl hesaplanmasna neden olur.
Yuvarlama hatalarn azaltmak iin, gerekirse her admda, satrlara yer deitirilir. Mutlak deerce en byk say
diyagonal ve diyagonalin altndaki saylar arasnda aranr, bu saynn bulunduu satr ile pivot satr deitirilir.
rnek: yukardaki 1. denklem sistemi zlrken 1. admda 1. diyagonal ve diyagonalin altnda mutlak deerce
en byk say 3. satrdadr: |-2|. Bu nedenle 1. denklem ile 3. denkleme yer deitirilir ve indirgemeye devam
edilir. Bylece pivot elemanlarn en byk say olmas, olas yuvarlama hatalarnn en az olmas salanm olur.
Determinant:

ndirgeme sonras oluan yeni denklem sistemi verilen denklem sistemi ile edeerdir. Bu nedenle katsaylar
matrisi A nn determinant indirgenmi sistemin determinantna eittir. Satrlara yer deitirmek determinantn
deerini deitirmez fakat iaretini deitirir. Pivot arama nedeniyle indirgeme srasnda p defa satr
deitirilmi ise determinant da p defa iaret deitireceinden
(5.5)

w
.e

(1)
( 2)
( n 1)
det A = (1) p a11 a22
a33
.. ann

olur.

ndirgeme tamamlanabilmi, n-1 adm sonra denklem sisteminin katsaylar matrisi st gen olan edeer
denklem sistemine dntrlebilmi ise determinant (5.5) den hesaplanr ve det A 0 dr. Ancak, indirgeme
tamamlanamam ise; rnein k. Admda pivot eleman bulunamam ise, indirgeme ilemine devam edilemez,
det A=0 dr.
det A 0 ise: A matrisi tekil deildir, dzenlidir(reglerdir) denir. zm vardr ve tektir.

det A=0 ise: A matrisi tekildir(singlerdir), dzensizdir denir. zm yoktur veya sonsuz zm vardr.
Denklemler uyumlu ise sonsuz zm vardr, uyumsuz ise zm yoktur.
Rank:
ndirgeme tamamlanabilmi ise rank A=n dir. A nn satr ve kolonlar dzenlidir. k.admda sfrdan farkl pivot
eleman bulunamam ise, A nn rank r=k-1 dir. A nn r satr dorusal bamszdr geriye kalan d=n-r satr veya
kolonlar dorusal bamldr; d ye rank art denir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

55

5. BAST GAUSS1 NDRGEME METODU

56

rnek:

2 4 x1 16

6 10 x 2 26
=
,
9
3 x3 19

1 18 x 4 34

x =?

6 2
12 8

3 13

6 4

ri.
co

zm iin her admda pivot arama yaplacak, gerekirse satrlar deitirilecektir. El


hesabnda ondalk iaretinden sonra 6 hane yrtlecektir.
1. Adm: 1. diyagonal ve altndaki mutlak deerce en byk say 2. satrda |12| dir. 1. ve 2.
satrlar deitirilecek ve indirgeme yaplacaktr.

Pivot eleman

l21=6/12=0.5
l31=3/12=0.25
l41=-6/12=-0.5

1. ve 2.satr deitirildikten sonra.

tla

6 10 x1 26

2 4 x 2 16
=
9
3 x3 19

1 18 x 4 34

sn
o

12 8
6 2

3 13

6 4

8 6
10 x1 26
12

0 .5
1 1 x 2 3
2

=
0.25 11 7.5 0.5 x 3 25.5

4 13 x 4 21
0 .5 0

l21= 0.5 says 1.satr ile arpld, 2.satrdan kartld.


l31= 0.25 says 1.satr ile arpld, 3.satrdan kartld.

l41= -0.5 says 1.satr ile arpld, 4.satrdan kartld.

em
de
r

1. diyagonal altndaki elemanlar pivot elemana blnd

2. Adm: 2. diyagonal ve altndaki mutlak deerce en byk say 3.satrda|-11|dir. 2. ve 3.


satrlar deitirilecek ve indirgeme yaplacaktr.

w
.e

8 6
10 x1 26
12
0.25 11 7.5 0.5 x 25.5

2 =

0 .5
2
1 1 x3 3

4 13 x 4 21
0 .5 0

l32=2/(-11)= -0.181818
l42=0/(-11)=0

2. ve 3.satr deitirildikten sonra.

Pivot eleman

8
6
10
26
12
x1


0.25

11
7.5
0 .5

x 2 = 25.5
0.5 0.181818 0.363635 0.909091 x 3 1.636359

0
4
13 x 4 21
0.5

l32= -0.181818 says 2.satr ile arpld,


3.satrdan kartld.
l42= 0 olduundan ilem gerekmez.

2. diyagonal altndaki elemanlar pivot elemana blnd

3. Adm: 3. diyagonal ve altndaki mutlak deerce en byk say 4. satrda |4| tr. 3. ve 4.
satrlar deitirilecek ve indirgeme yaplacaktr.

6
10
26
8
12
x1


0.25

7.5
0 .5
11

x 2 = 25.5
0.5
0
4
13 x 3 21

0.5 0.181818 0.363635 0.909091 x 4 1.636359

3. ve 4.satr deitirildikten sonra.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

56

5. BAST GAUSS1 NDRGEME METODU

57

Pivot eleman

l43= 0.090909 says 3.satr ile arpld, 4.


satrdan karld.

Aadan yukar doru hesap:

ri.
co

3. diyagonal altndaki eleman pivot elemana blnd

x1 = (26 (8) 1.000034 6 (1.999951) 10 1.000015) / 12 = 2.999986


x 3 = (21 (13) 1.000015) / 4 = 1.999951
x 4 = 0.272730 / 0.272726 = 1.000015
Gerek zm: x={3 1 -2 1} dir.

3 2.999986 0.000014
1 1.000034 0.000034

=

2 1.999951 0.000049

1 1.000015 0.000015

sn
o

Hata vektr:

2.999986
1.000034

x=
1.999951

1.000015

tla

x 2 = (7.5 (1.999951) 0.5 1.000015) /(11) = 1.000034

l43=0.363635/4=
0.090909

8
6
10 x1 26
12

0.25
11
7 .5
0.5 x 2 25.5

=
0.5
13 x3 21
0
4


0.5 0.181818 0.090909 0.272726 x 4 0.272730

em
de
r

Grld gibi, pivot arama yaplmasna, 6 ondalk hane yrtlmesine ramen, az da olsa
hata vardr. Bilgisayarda ondalk say hesabnda genelde 15-16 hane kullanlr. Denklem
sistemi 15-16 hane kullanarak bilgisayarda zlrse hata ok azalacak, fakat belki gene de
tam sfr olmayacaktr.
Bu rnein gerek zmn bildiimiz iin hata vektrn de hesaplayabildik. Uygulamada
ise gerek zm bilinmez(bilinseydi hesaplamaya gerek kalmazd).
Gerek zm bilinmediine gre aadaki sorular gndeme gelmektedir:
Hesaplanan zm doru mudur?
Hata nasl llecektir?
Hata ne kadardr?
Hata kayna nedir?

w
.e

Bu sorularn cevab verilemeyen zm doru varsaylamaz. zleyen sayfalarda bu sorular


irdelenecektir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

57

5. BAST GAUSS1 NDRGEME METODU

58

Nmerik hesaplarda hata kaynaklar, hatann ls


Fiziksel bir problemin saysal olarak zmnde aadaki nedenlerle az ya da ok hatalar oluur.
1. Modelleme hatas: Fiziksel problemin zlebilmesi iin oluturulan matematik model gerek problemi tam
olarak yanstamyordur. Varsaylan geometri ve snr deerler farkldr.

2. zm ynteminden doan hatalar: Nmerik zm iin seilen metot fiziksel problem veya onun
modeline uygun deildir.

ri.
co

3. Program veya programlama hatalar: zmde kullanlan program kod hatalar ieriyordur veya problemin
zmne uygun deildir.
4. Bilgisayar hatalar: Bilgisayarda saylar yuvarlatlarak depolanr, sonsuz terimli serilerden hesaplanan
deerler iin sonlu terim kullanlr. Nadiren de olsa, donanm hatal olabilir. Voltajda ani deiimler farknda
olunamayan hatal sonular dourabilir.
5. nsani hatalar: Program kullanan kii program yeterince tanmyordur, gerekli n ayarlar yapmam veya
hatal yapmtr. Verileri hatal girmitir veya yuvarlatarak vermitir. Sonular yanl yorumlamtr.
Basit bir fiziksel problem rnei ile yukarda saylan hatalarn bazlarna aklk getirmee alalm.

tla

Fiziksel problem: Dnya yzey alannn hesab

Matematik model: Fiziksel problemin matematik modeli ncelikle a) Geree en yakn olmal b) basit olmal
c) Hesaplanabilir olmal

em
de
r

sn
o

Dnyann ideal bir geometrisi yoktur. Yuvarlaktr deriz, kre olduunu kastederiz. Uzaydan ekilmi fotorafa
baktmzda kre gibi grnmektedir. Fakat biliyoruz ki; yksek dalar ve derin ukurlar vardr, kutuplarda
bask, ekvatorda iik bir geometriye sahiptir(geoid) .

Fiziksel problem: przl yzey,


dzgn olmayan geometri

Daha gerek model: Geoid

Kre model: uzaydan grn

Basitlii nedeniyle, dnyay kre olarak modelleyelim:


Krenin yzey alan: A=4 r2

r yarapn ve saysn ne alalm? Ekvatorda r=6378.1 km, kutuplarda r=6356.8 km dir. Yar ap ortalama
deer alarak modelleyelim, r=(6378.1+6346.8)/2=6367.5 km alalm.
=3.14 alalm.
.

w
.e

A=4 3.14 6367.52=509245907 km2 olur.

Bulduumuz bu deerin tam doru olmad, yaklak olduu aktr. Doru deerin hesaplanamayaca da
aktr. Hata kayna: a) Kre varsaym doru deildir. b) Ekvator ve kutupta llm yaraplar lm hatas
ierir. c) Yarap ortalama deer alarak bir hata daha oluturduk. d) =3.14 deerini yuvarlatarak hata
oluturduk. e) Hesaplanan A deerinin yuvarladk, virglden sonraki hanelerini attk.
Hata ne kadardr? Gerek deeri bilemediimize gre, hatann ne kadar olduunu da bilememekteyiz. Daha
gereki modellerle (geoid) hesaplanm deer kaynaklarda A=510072000 km2 olarak verilmektedir. Bu deer de
matematik anlamda doru olamaz, nk gene bir takm varsaymlar yaplarak hesaplanmtr. Ancak, burada
kullandmz kre modelinden daha dorudur. A=510072000 km2 deerini doru kabul ederek hata analizi
yapabiliriz. nce hata ls tanm yapalm.
Tanm: bir x fiziksel byklnn hesaplanm deeri

x hesap

ve gerek deeri

x gerek olsun.

Bu iki deer

arasndak farka hata veya mutlak hata denir.


Hata(mutlak):

x = x hesap x gerek

Mutlak hatann gerek deere oranna hata yzdesi veya bal hata denir.
Hata yzdesi(bal hata):

x
x gerek

x hesap x gerek
x gerek

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

58

5. BAST GAUSS1 NDRGEME METODU

Hata yzdesi (bal hata) gerek deerin birim hatas olarak da yorumlanabilir:

59

x
x = x gerek
x gerek

Hata(mutlak):

A = Ahesap Agerek = 509245907 510072000= -826093km2

Hata yzdesi(bal hata):

A
Agerek
A
826093
= hesap
=
0.0002
Agerek
Agerek
510072000

imdi dnyann yzey alan ile ilgili hesabmza dnelim, hata analizi yapalm: Agerek=510072000 km2 ve
Ahesap=509245907 km2 alarak:

ri.
co

Buradaki eksi iareti hesaplanan alann gerek alandan 826093 km2 daha kk kaldn gsterir, Hata %0.02
kadardr. 826093 km2 deeri hatann ok byk olduunu dndrebilir. Fakat hata yzdesi sadece %0.02
(on binde 2) olduundan, kk kabul edilmelidir.

Bu basit rnekte de grld gibi, hata yzdesi(bal hata) daha iyi fikir vermektedir. Nmerik hesaplarda
hata yerine hata yzdesi(bal hata) ile almak daha uygun olacaktr.
Gerek deerin bilinmedii fiziksel problemlerde hata kontrol

tla

Nmerik analiz problemlerinde genelde gerek zm bilinmez. Fakat hesaplanan deerin veya deerlerin
salamas gereken bir koul veya koullar vardr. Hesaplanan deerin bu koullar salayp salamadna
baklarak hesaplanan deerin veya deerlerin doruluu veya hatas kontrol edilir. Basit bir rnek verelim:

sn
o

3x2 - 1=0 denklemini salayan x nedir? x1= 0.5774 olarak hesapladmz varsayarak hatay hesaplayalm. Bu
deer 3x2 - 1=0 denklemini salamak zorundadr: 3(0.5774)2 - 1=0.0001720 olduundan, salamyor. Hata
0.000172 dir.
Yuvarlama hatasnn nedeni nedir, nasl azaltlabilir?
Hesap makineleri ve bilgisayarlar bir sayy depolamak iin belli sayda hane kullanrlar, 8, 10 veya 16 hane
gibi. Makineye verilen saynn hane says makinenin depolayabilecei hane saysndan daha fazla ise, saynn
sonundaki baz rakamlar kaybolur. rnekleyelim: kullandnz el hesap makinesine 1234567890 saysn yazn
ve eit tuuna basn.
Makineniz 10 hane gsterebiliyorsa ekranda 1234567890 greceksiniz. imdi
123456789012345 yazn ve eit tuuna basn. Muhtemelen 1.23456789.1014 greceksiniz. Makineye verdiiniz
say bu deildi, son haneleri kayboldu!

em
de
r

Verdiiniz: 123456789012345
Makinenin depolad: 1.23456789.1014 =123456789000000
Hata: 123456789012345 123456789000000=12345
Hata yzdesi: 12345/123456789012345=10-10

0.123456789012345 saysn yazp eit tuuna basn, sonu: 0.123456789 olacaktr. Son haneler gene
kayboldu!
1/3 yazn eit tuuna basn, sonu: 0.333333333 olacaktr. Halbuki 1/3=0.33333333333333
tr. Ondalk iaretinden sonra sonsuz sayda 3 rakam vardr. Makinenizin sonsuz hanesi
depolayabildiinden daha fazla haneyi kesmektedir.

yoktur,

saysn makineniz muhtemelen =3.141592654 olarak gsteriyordur, son hane yuvarlatlmtr. 30 haneli
deeri =3.14159265358979323846264338328 dir, gerek deeri bugne kadar hesaplanamamtr!
Yukardaki rnekleri, varsa, cep telefonunuzun veya saatinizin hesap makinesi ile de deneyiniz!

w
.e

Bilgisayara 10 tabanl saylar veririz. Bilgisayar ise iki tabanl saylarla (sfr ve bir ile) alr. Verilen ondalk
saylar iki tabanl (binary) sayya evirir ve depolar. rnek: 2010 says bilgisayarda 11111011010 olarak
depolanr. evirme nedeniyle hane (bit ) kayb olur. Buna ynelik arpc bir rnek verelim: 0.1 ondalk
saysnn 10000 defa toplam
Toplam =

10000

0.1 = 0.1 10000 = 1000


i =1

olmas gerektii aktr. Kullandnz programlama dili ile bu toplam bilgisayara yaptrarak artc sonucu
grnz! Qbasic kodunu verelim:

Qbasic sonucu
Bilgisayarn verdii sonu 999.9029 hataldr! Bilsayar 0.1 saysn hatal depolamtr. Demek ki bilgisayar
saylar hatasz depolayamyor, yuvarlyor ve kesiyor. Yuvarlama hatalarn tamamen nlemek mmkn deildir.
Milyarlarca say drt ileme tabi tutulduunda bu hatalarn giderek byyebilecei, belki de hesaplanmak
istenen sonucun tamamen yanl olmasna neden olaca aktr. Yuvarlanm bir say hataya neden olurken
yuvarlanm bir say ile hesaplanan bir dier say yuvarlandnda hata byyebilir de azalabilir de.
Hatalar elden geldiince azaltmak iin:
1.Makine veya bilgisayarda mmkn olduunca ok haneli hesap yaplmal: El hesap makinelerinde
hane saysn deitirmek mmkn deildir, fakat satn alrken ok haneli olan seilebilir. Bilgisayarda hane
saysn, kullanlan yazlma bal olarak, ayarlama imkn vardr: Tek hassasiyet(4 Byte SINGLE precision)
yerine ift hassasiyet(8 Byte DOUBLE precision) hatta drtl hassasiyet (16 Byte QUAD precision, EXTENDED)
kullanarak.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

59

5. BAST GAUSS1 NDRGEME METODU

60

2.Byk saylar ile dier byk saylarn arpm nlenmelidir:


Byk denklem sistemlerinin zmnde uygun pivot eleman seilerek bunu gerekletirmek mmkndr.

a, b, c saylarndan d=ab/c hesaplanacak varsayalm. Saylarn byk veya kk olduuna bal olarak
hesabn aadaki ekilde yaplmas say tama ve yuvarlama riskini azaltr:
|a| ve |b| saylarndan biri byk ve dierleri kkse d=(ab)/c
|b| ve |c| saylarnn her ikisi de byk veya her ikisi de kkse d=a(b/c)
|a| ve |c| saylarnn her ikisi de byk veya her ikisi de kkse d=(a/c)b

Bilgisayar nce parantez iindeki ifadeyi hesapladndan, parantez ii 1 saysna yakn kacaktr.

ex gibi ifadeler yuvarlama ve say tamas asndan risklidir, uygun hesap sras seilmelidir, rnek:
a=ex/et yerine a=e(x-t) , a=yn/enx yerine a=(y/ex)n kullanlmaldr.

ri.
co

Yksek dereceden polinomlar say tamas ve yuvarlama hatalar asndan risklidir, rnek:

y=a1x5+ a2x4+ a3x3+ a4x2+ a5x+ a6 yerine y=((((a1x+a2)x+a3)x+a4)x+a5)x+a6 daha uygundur.

Vektr ve matris normlar, kondisyon says kavram

Norm bir saydr ve

iareti ile gsterilir. Mesala x vektrnn normu

Vektr normlar:

x2

x ile gsterilir. Uygulamada ska

sn
o

kullanlan vektr ve matris normlar aada verilmitir.

x = [x1

tla

Denklem sistemlerinin zmnde hata analizi iin norm ve kondisyon saylar kullanlr. Norm ve kondisyon
says zmn ne denli salkl olduu bilgisini verebilir.

... x n ] vektrnn normlar:

x 1 = x1 + x2 + ... + xn (l1 normu denir)

em
de
r

T
x 2 = x x = x12 + x22 + ... + xn2 (l2 normu veya klid normu veya x in uzunluu denir)

x = max xi

(l normu veya maximum norm denir)

rnek: x gerek = 2

3 0 1 4] vektrnn hesaplanm vektr

x hesap = 2.0001 2.9998 106 0.9999 4.0002 olsun.


Normlar:

x gerek

= 2 + 3 + 0 + 1 + 4 = 10

= 4 + 9 + 0 + 1 + 16 = 5.477226

w
.e

x gerek

x gerek

= 2.0001 + 2.9998 + 10 6 + 0.9999 + 4.0002 = 10.000001

x hesap

x hesap

x hesap

= max( 2,3,0,1,4) = 4

= 2.000012 + 2.9998 2 + 0 2 + (10 6 ) 2 + 0.9999 2 + 4.0002 2 = 5.477289


= max(2.00001,2.9998,0,0.9999,4.0002) = 4.0002

Normlarn oranlar:

x gerek

x hesap

x gerek

x hesap

x gerek
x hesap

10
= 0.9999999
10.000001

5.477226
= 0.9999885
5.477289

4
= 0.99995000
4.0002

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

60

5. BAST GAUSS1 NDRGEME METODU

61

x hesap tam doru olsayd bu normlarn hepsi de 1 olurdu. Demek ki herhangi bir normun oran 1 e ne denli

Dr.

yakn ise x hesap o denli dorudur. rneimizde oranlar 1 e ok yakn olduundan x hesap doru kabul edilebilir.
Burada verilenler dnda baka vektr normlar da vardr. Uygulamada l2 (klid) normu veya basitlii nedeniyle
l (maksimum) normu genelde tercih edilir.

Hata vektr:

h = 0. 0001 0.0002 10

0.0001 0.0002

Hata vektrnn uzunluu (klid normu)0 olmaldr:

hh = 0.00012 + 0.00022 + (106 )2 + 0.00012 + 0.00022 = 108 0


T

Olduundan

x hesap doru varsaylabilir.

ri.
co

h = x hesap x gerek = 2. 0001 2.9998 106 0.9999 4.0002 [2 3 0 1 4]

Yukardaki x hesap vektrnn doruluu hata vektr kullanlarak da yaplr:

Hemen unu da belirtelim: Hata vektrnn terimlerinin veya

Matris normlar:

A max = max aij

sn
o

a11 a12 ... a1n


a
a
... a2 n matrisinin normlar:
A = 21 22
.
.
.
.

an1 an 2 ... ann

tla

normunun kk olmas zmn doru olduunun nemli bir bir gstergesidir, fakat yeterli bir koul deildir.
zleyen rneklerde bu durum aklk kazanacaktr.

(matrisin mutlak deerce en byk eleman)


(

Aj

j. Kolonun l1 normu)

A = max Ai

Ai

i. Satrn l1 normu)

em
de
r

A 1 = max A j

Matris kondisyon says:

w
.e

a11 a12 ... a1n


a
a
... a2 n matrisinin kondisyon says k(A):
A = 21 22
.
.
.
.

an1 an 2 ... ann

k ( A) = A

ile tanmlanr.

k(A)1 ise A iyi kondisyonludur denir, A-1 hatasz hesaplanm anlamna gelir.
Bir dier kondisyon says Hadamard1 kondisyon saysdr:

kh ( A) =

det A

V
V = a1a2 ...an
ai = ai21 + ai22 + ... + ain2

(i. satrn klid normu)

0kh(A)1 arasndadr. kh(A)=0 ise det A=0 matris tekildir. kh(A) deeri 1 e ne denli yakn ise matris o denli
iyi kondisyonlu, 0 ra ne denli yaknsa o denli kt kondisyonludur. kh(A)<0.01 ise kt kondisyonlu,
kh(A)>0.1 iyi kondisyonlu varsaylabilir. 0.01 kh(A)0.1 aralnda ise ne kt ne de iyi kondisyonludur,
durum phelidir.
Ters matris hesab ok ilem gerektirdiinden ve denklem sistemi zmnde det A ara deer olarak zaten
hesaplanabildiinden, Hadamard kondisyon saysn kullanmak daha pratiktir.

------------------------------------1

Jacques Salomon Hadamard (1865-1963), Fransz

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

61

5. BAST GAUSS1 NDRGEME METODU

62

rnek:

10 2 Matrisinin norm ve kondisyon saylarn belirleyelim


A=

1 9

0.097826 0.021739
=

0.010870 0.108696

max

= 0.108696, A1 = max(0.108696,0.130435) = 0.130435, A


1

k ( A) max = A
k ( A)1 = A
k ( A) = A

max

1
1

= 10 0.108696 = 1.09

= 11 0.130435 = 1.43

max

= 12 0.119565 = 1.43

ri.
co

= max(0.119565,0.119540) = 0.119565

tla

A max = 10 , A 1 = max(11, 11) = 11, A = max(12, 10) = 12

HADAMARD kondisyon says:

sn
o

det A = 92

a1 = 102 + 22 = 10.20, a2 = 12 + 92 = 9.06, V = 10.2 9.06 = 92.41


kh ( A) =

92
= 0.9956
92.41

em
de
r

Yorumlanrsa, kondisyon saylar 1 e yakn olduundan A matrisi iyi kondisyonludur. rnek olmas asndan
burada tm norm ve kondisyon saylar hesaplanmtr. Uygulamada sadece bir norm ve kondisyon says ile
yetinilir.
Hasta matris(ill-conditioned matrix) ve hasta denklem sistemi

Kt kondisyonlu matrise hasta matris(ng.: ill-conditioned) denir. Bu tr matrislerin determinantlar ok


kktr, matris tekile yakndr. Matrisin elemanlarndaki ok kk bir deiiklik(yuvarlama hatas nedeniyle)
matrisin tersinin tamamen yanl hesaplanmasna neden olur. Dolaysyla Hasta matris katsayl denklem
sisteminin zm de hatal olacaktr.

rnek:

x =?

w
.e

1.2969 0.8648 x1 0.8642


Ax = b
=
,
0.2161 0.1441 x 2 0.1440

nce A nn HADAMARD kondisyon saysn bulalm: k ( A) =


h

det A
V

Det A=10-8

Determinant ok kk! A nn hasta matris olduunun ilk iaretini alm olduk.

a1 = 1.29692 + 0.86482 = 1.56, a2 = 0.21612 + 0.14412 = 0.26, V = a1a2 = 1.56 0.26 = 0.62, kh ( A) =

108
= 1.6 108
0.62

Kh(A)=1.6.10-8 0 olduundan A matrisi kt kondisyonludur, hasta bir matristir. A x=b denklem sistemi de
hasta bir denklem sistemidir, zm yaparsak hatal sonu alacamza iaret etmektedir. Gauss ile zerek
sonucu grelim:
Basit Gauss indirgemesi:

0.8648 x1 0.8642
1.2969
0.166628 1.06 10 7 x = 0.82 10 7

x1 = (0.8642 0.8648 0.773585) / 1.2969 = 0.150516


x2 = 1.06 10 7 / 0.82 10 7 = 0.773585

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

62

5. BAST GAUSS1 NDRGEME METODU

63

0.150516
x=

0.773585
Hata vektr:

0.8642 1.2969 0.8648 0.150516 5.08 107


h = b Ax =

=
7
0.1440 0.2161 0.1441 0.773585 1.06 10

ri.
co

Hata vektrnn klid normu :

h 2 = h h = (5.08 107 ) 2 + (1.06 107 ) 2 = 5.2 107


T

2
x=
2
dir, yerine koyarak hata var m? Grelim:

sfr hata ile salanyor.

sn
o

0.8642 1.2969 0.8648 2 0


h = b Ax =

=
0.1440 0.2161 0.1441 2 0

tla

Yorum:
Hata vektrnn terimleri kk grnyor. Normu da yle. O halde x vektr dorudur diyebilir miyiz?. HAYIR!
x vektrnn tek bir rakam dahi doru deil! Gerek zm:

O halde hesapladmz x=[0.150516 0.773585]T zm, hata vektr kk olmasna ramen, tamamen
yanltr. Bunun nedeni: A matrisinin, dolaysyla denklem sisteminin hasta olmasdr.

em
de
r

ZET:
A x=b dorusal denklem sisteminde

A kt kondisyonlu (hasta) ise A-1 (A nin tersi), byk bir olaslkla, hataldr.
Dorusal denklem sistemi de hastadr
x zm, byk bir olaslkla, hataldr.
|det A| <<1 hasta matrise iaret eder.

w
.e

Hasta matris ile yaplan nmerik hesaplarn sonucuna gvenilmez. ncelikle alnacak nlem, matrisin neden
hasta olduunu aratrmaktr. Modelleme hatalar, uygun olmayan nmerik yntem, uygun olmayan birim
kullanlmas ve veri hatalar hasta matris olumasnn genel nedenleri arasnda saylabilir. Matrisin kurulmasnda
bu hatalar yaplmamsa, bilgisayar zmnde mutlaka ift hassasiyet (8 Byte-DOUBLE PRECESI0N) hatta,
programlama dili izin veriyorsa, drtl hassasiyet (16 Byte-QUAD precision, EXTENDED) kullanlmaldr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

63

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

tla

Ders notlar 2014

sn
o

Ahmet TOPU

m=n

em
de
r

LU=A

st gen matris

l11
l
21 l 22
l 31 l32

.
.
l n1 l n 2

u11

...

... l nn

l33
.

l n3

u13 ... u1n a11


u 23 ... u 2 n a 21
u 33 ... u 3n = a31

... . .
u nn a n1

a12
a 22

a13
a 23

a 32

a 33

an2

a n3

... a1n
... a 2 n
... a 3n

... .
... a nn
Kare matris

Alt gen matris

w
.e

u12
u 22

DENKLEM SSTEM ZM,


ARPANLARA AYIRMA YNTEMLER
DOOLITTLE
CROUT
CHOLESKY
Mayric Hascall
Doolittle(1830-1913)

Prescott Duran
Crout (1907-1984)

Andr-Louis
Cholesky (1875 1918)

65

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

5. blmde verilen indirgeme yntemi GAUSSun orijinal zmdr, bazen basit GAUSS
yntemi de denir. Basit GAUSS yntemi hem katsaylar matrisini hem de kar taraf
vektrn ayn anda deitirerek katsaylar matrisi st gen olan edeer bir denklem
sistemine dntrr. Uygulamada ise, ou kez, kar taraf vektrnn indirgeme srasnda
deitirilmesi uygun olmaz. Katsaylar matrisi belli iken kar taraf vektr henz bilinmiyor
veya zaman zaman deiiyor olabilir.

u11

...

... l nn

l 22
l 32

l 33

l n2

l n3

u13
u 23
u 33

... u1n a11


... u 2 n a 21
... u 3 n = a 31

... . .
u nn a n1

U st gen

a12

a13

a 22

a 23

a 32

a 33

... a1n
... a 2 n
... a 3n

... .
... a nn

(6.1)

an2

a n3

A katsaylar matrisi

sn
o

L alt gen

u12
u 22

tla

LU = A

l11
l
21
l 31

.
l n1

ri.
co

arpanlara ayrma yntemleri A x=b denklem sisteminin A katsaylar matrisini A=L U


salanacak ekilde, bir L (Lower) alt gen ve bir U (Upper) st gen matrisin arpmna
dntrrler. arpanlara ayrma ilemi srasnda kar taraf vektr b nin bilinmesine gerek
yoktur. Bu yntemlere gre A belli ise L ve U gen matrisleri A nn elemanlarndan

eitlii salanacak ekilde hesaplanrlar. L ve U belirlendikten sonra b de belli olunca zm


iin A x =b yerine
x bilinmeyenler vektr
b kar taraf vektr
l 22
l 32

l 33

...

... l nn

u11

u12

u13

u 22

u 23
u 33

em
de
r

LU x= b

l11
l
21
l 31

.
l n1

ln2

l n3

L alt gen

... u1n
... u 2 n
... u 3n

... .
u nn

x1 b1
x b
2 2
x 3 = b3

. .
x n1 bn1

(6.2)

U st gen

Edeer denklem sistemi kullanlr. Bunun iin 6.2 bantsnda U x = y dnm yaplr:

L U x = b U x = y, L y = b

w
.e

l11
l
21
l 31

.
l n1

l 22
l 32

l 33

ln2

l n3

u11

...

... l nn

u12

u13

u 22

u 23
u 33

... u1n x1 b1
... u 2 n x 2 b2
... u 3n x 3 = b3

... . . .
u nn x n1 bn1

(6.3)

Ux= y

Bu dnm sonucu katsaylar matrisi gen olan aadaki iki denklem sistemi oluur:
L y = b den y hesaplanr, U x = y de yerine konur ve x hesaplanr.
l11
l
21
L y = b l 31

.
l n1

l 22
l 32

l 33

ln2

l n3

...

... l nn

y1 b1
y b
2 2
y 3 = b3

. .
y n1 bn1

Yukardan aa doru hesap yaplarak

y bulunur

y burada yerine konur

(6.4)
u11 u12 u13

u22 u23

Ux = y
u33

... u1n x1 y1
... u2 n x2 y2
... u3n x3 = y3

... . . .
unn xn1 yn1

Aadan yukar doru hesap yaplarak

bulunur

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

65

66

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

lk bakta bir yerine iki denklem sisteminin zlecei, ilem saysnn da katlanaca
sanlabilir. Bu doru deildir. arpanlara ayrma yntemi ile basit GAUSS yntemi arasnda
gerekte ilem says asndan hibir fark yoktur. Tek fark, arpanlara ayrma srasnda b
vektrne gerek olmamasdr. arpanlara ayrma yntemleri, basit GAUSS indirgeme
ynteminin biraz deiik eklidir, ok az fark ile birbirlerine ok benzerler. Uygulamada
tercihan kullanlan DOOLITTLE, CROUT ve CHOLESKY yntemleri burada ele alnacak,
verilmi bir A matrisinin L ve U gen arpanlarna nasl ayrlaca aklanacaktr.

DOOLITTLE1 LU metodu

1
.
ln 3

u11 u12

u22

...
U
... 1

u13 ... u1n


u23 ... u2 n
u33 ... u3n =

... .
unn

a11 a12
a
21 a22
a31 a32

.
.
an1 an 2

a13
a23
a33
.
an 3

sn
o

LU = A

1
l
21 1
l31 l32

.
.
ln1 ln 2

tla

A verilmi olsun, det A 0 olmak ve lii=1 alnmak kaydyla

ri.
co

DOOLITTLE, metodunda L matrisinin btn diyagonal elemanlar lii=1 alnr, satrda pivot
eleman aranr, gerekirse, kolonlara yer deitirilir, uii 0 olmas salanr.
CROUT metodunda U matrisinin btn diyagonal elemanlar uii=1 alnr, kolonda pivot
eleman aranr, gerekirse, satrlara yer deitirilir, lii 0 olmas salanr.
CHOLESKY metodu sadece simetrik ve pozitif tanml matrisler iin zel bir yntemdir,
diyagonal elemanlar lii = aii , u ii = a ii alnr ve L=UT dur, pivot arama yaplmaz.

...
...
...
...
...

a1n
a2 n
a3n

.
ann

bants salanacak ekilde n admda hem L hem de U nun tm elemanlar belirlenebilir.


Matris arpm kuralndan yararlanarak, her admda nce U nun bir satr sonra L nin bir
kolonu hesaplanr.

em
de
r

1.Adm:

1 u11 = a11 u11 = a11

1 u12 = a12 u12 = a12


1 u13 = a13 u13 = a13

U nun 1.satrnn hesab:


L nin 1. satr ARPI
U
nun1., 2.,,n. kolonlar=A
nn 1.satrdr

l21 u11 = a21 l 21 = a 21 / u11


l31 u11 = a31 l31 = a31 / u11
...
ln1 u11 = a n1 ln1 = a n1 / u11

...
1 u1n = a1n u1n = a1n

l 21 u12 + 1 u 22 = a 22 u 22 = a22 l 21 u12

l31 u12 + l32 u 22 = a32 l32 = (a32 l31 u12 ) / u 22

l 21 u13 + 1 u 23 = a23 u 23 = a 23 l21 u13

l41 u12 + l42 u 22 = a42 l42 = (a 42 l41 u12 ) / u 22

w
.e

L nin 2.kolonunun hesab:


L nin 3.,4.,..,n. satrlar ARPI U nun
2.kolonu=A nn 2.kolonudur

U nun 2.satrnn hesab:


L nin 2.satr ARPI U nun 2., 3.,, n.
kolonlar=A nn 2.satrdr

2.Adm:

L nin 1.kolonunun hesab:


L nin 2., 3.,..,n. satrlar
ARPI U nun 1.kolonu=A nn
1.kolonudur

...
l 21 u1n + 1 u 2 n = a 2n u 2n = a2 n l21 u1n

3.Adm:

...
ln1 u12 + ln 2 u 22 = a n 2 ln 2 = (a n 2 l n1 u12 ) / u 22

U nun 3.satrnn hesab:


L nin 3.satr ARPI U nun 3.,, n.
kolonlar =A nn 3.satrdr

L nin 3.kolonunun hesab:


L nin 4.,..,n. satrlar ARPI U nun
3.kolonu=A nn 3.kolonudur

l31 u13 + l32 u 23 + 1 u33 = a33 u33 = a33 l31 u13 l32 u 23

l41 u13 + l42 u 23 + l43 u33 = a 43 l43 = (a 43 l 41 u13 l 42 u 23 ) / u33

...

...

l31 u1n + l32 u 2 n + 1 u3n = a3n u3n = a3n l31 u1n l32 u 2 n

ln1 u13 + ln 2 u 23 + ln3 u33 = an 3 l n 3 = (a n 3 l n1 u13 l n 2 u 23 ) / u33

n.Adm:
U nun n.satrnn hesab:
L nin n.satr ARPI U nun n.kolonu=A nn n.satrdr

l n1 u1n + l n 2 u 2 n + l n3 u 3n + ... + 1 u nn = a nn u nn = a nn l n1 u1n l n 2 u 2 n l n 3 u n 3 ...

L nin n.kolonunun hesab:

lnn = 1

Mayric Hascall Doolittle(1830-1913), Amerikal: 1878 de yaynland


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

66

67

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

Genel formller:
1. adm:

l11 = 1 ,

u11 = a11 , u12 = a12 , ..., u1n = a1n

U nun 1. satr A nn
birinci satr ile ayn

U nun i. satr: u ij = a ij

i 1

ik u k j

i. adm:

j = i,i + 1,..., n

L nin i.kolonu: l ii = 1,

l ji = (a ji

i 1

jk u ki ) / u ii

ri.
co

k =1

, j = i + 1, i + 2, ..., n,

k =1

i. adm ematik hesap:


Kolon deitirme
vektr

tla

U nun 1., 2,, i-1.


admlarda
hesaplanm satrlar

u ii 0

U nun i. satrnn hesab:

sn
o

uij=aij - diyagonalin solundaki saylar ARPI aij


nin stndeki saylar

em
de
r

uij yi hesaplamak iin:


Renkli satr ve kolondaki saylar birbiri ile arp, topla, aij
den kar ve sonucu aij nin olduu yere yaz.

L nin 1., 2,, i-1. admlarda


hesaplanm kolonlar

Kolon deitirme
vektr

U nun 1., 2,, i.


admlarda
hesaplanm satrlar

Pivot aday

w
.e

U nun i. satrnda
pivot ara

Satrda pivot arama:


uii 0 olmaldr. uii nin mutlak deerce
ok kk olmas da istenmez. Gerekirse
kolonlara yer deitirilerek uii nin mutlak
deerinin mmkn olan en byk say
olmas salanr. Bunun iin; satrda pivot
ara, uii, ui,i+1,, uin elemanlarndan
mutlak deerce en byk olan bul. Bu
eleman k. kolonda ise i. kolon ile k.
kolonu
deitir.
Kolon
deitirme
vektrnn ayn nolu kolonlarn da
deitir. Kolon deitirme saysnn
depoland deikenin, ad p olsun,
deerini 1 artr: p=p+1.

Kolon deitirme
vektr

U nun 1., 2,, i.


admlarda
hesaplanm satrlar

Pivot

L nin i. kolonunun hesab:


lji=(aji - diyagonalin stndeki saylar ARPI aji
nin solundaki saylar) BL uii

L nin i. admda hesaplanacak


kolonu

lji yi hesaplamak iin:


Renkli satr ve kolondaki saylar birbiri ile arp, topla,
aji den kar, uii diyagonal elemanna bl ve sonucu aji
nin olduu yere yaz.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

67

68

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

L nin diyagonal elemanlar, lii=1, depolanmaz.

L ve U gen matrisleri A nn zerine depolanr. Diyagonalin altndaki elemanlar L ye,


diyagonal ve stndeki elemanlar U ya aittir.

tla

ri.
co

Kolon deitirme
vektr

sn
o

Kolon deitirme vektr arpanlara ayrma ilemi srasnda hangi kolonlarn yerlerinin
deitii bilgisini ierir. Ayrca, her kolon deiiklii determinantn iaretini
deitireceinden, ka defa kolon deitirildii de p gibi bir deikende depolanr.
u11, u22, , unn
elemanlardr.

elemanlar arpanlara ayrma ilemi srasnda seilmi pivot

Det A=det L.det U dur. det L=1 ve det U= (-1)p.u11.u22. . unn olduundan
Det A= (-1)p.u11.u22. . unn dir.

em
de
r

arpanlara ayrma ileminin herhangi bir admnda, rnein i. admnda, pivot eleman
bulunamazsa, yani uii=0 ise, Det A=0 dr. A tekildir, rank r=i-1 dir, r satr ve kolonu
dorusal bamsz geriye kalan d=n-r satr ve kolonu dorusal bamldr.

rnek:

8
13

6
9

w
.e

6
12
A=
3

4
10
,
3

18

L=?,

U=?

Matrisi DOOLITTLE metodu ile L ve U gen arpanlarna ayrlacaktr. arpanlara ayrma


ilemine balamadan nce kolon deitirme vektr 1, 2, 3, 4 ile doldurulur ve kolon
deitirme saysnn saklanaca p deikeni sfrlanr.

6
12
A=
3

2
8
13
4

2
6
9
1

4
10
3

18

Kolon deitirme
vektr balang
deerleri

p=0 (kolon deitirme says balang deeri)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

68

69

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

1.Adm:

Pivot

Kolon deiiklii yaplmad, p=0

6
2

0 .5

2
8

2
6

13
4

9
1

4
10
3

18

U nun 1. satr A nn 1. satr ile ayn


Satrdaki mutlak deerce en byk say |6| zaten
diyagonalde olduundan kolon deitirmee gerek yoktur.

ri.
co

L nin 1. kolonu: diyagonal altndaki saylar


pivot elemana blnd

2.Adm:

6
2

2
4

2
2

0 .5
1

3
0.5

9
1

4]
4
2
3

18

Kolon deiiklii yaplmad, p=0

tla

Pivot

U nun 2.satr: Diyagonalin solundaki say buradaki saynn


stndeki say ile arpld, buradaki saydan kartld.
Satrdaki mutlak deerce en byk say |-4| zaten diyagonalde
olduundan kolon deitirmee gerek yoktur.

sn
o

L nin 2.kolonu: Diyagonalin stndeki say buradaki


saynn solundaki say ile arpld, buradaki saydan
kartld, sonu pivot elemana blnd

3.Adm:

6
2

2
4

2
2

0 .5
1

3
0.5

2
1

4]

Kolonlar deitirilecek

em
de
r

Pivot

4
2
5

18

U nun 3.satr: Diyagonalin solundaki saylar buradaki saynn stndeki


saylar ile arpld, buradaki saydan kartld.
Satrdaki mutlak deerce en byk say |-5| pivot adaydr. 3. kolon ile
4.kolona yer deitirilecek.

L nin 3.kolonu: henz hesaplanmad

6
2

Pivot

0 .5
1

2
4

4
2

3
0 .5

5
18

3]

2
2
2

3. kolon ile 4. kolona


yer deitirildi, p=1

Kolon deiiklii
sonras U nun3.satr

6
2

2
4

4
2

0.5
1

3
0 .5

5
2.6

3]
2
2
2

Pivot

L nin 3.kolonu: Diyagonalin stndeki saylar buradaki


saynn solundaki saylar ile arpld, buradaki saydan
kartld, sonu pivot elemana blnd

4.Adm:

w
.e

[
L

6
2

2
4

4
2

0 .5
1

3
0 .5

5
2 .6

3]
2
2
2

1 .2

U nun 4.satr: Diyagonalin solundaki saylar buradaki saynn


stndeki saylar ile arpld, buradaki saydan kartld.

Pivot

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

69

70

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

Sonu:

Kolon deitirme vektr:

3]

Kolon deitirme says: p=1

1
2
0.5

1
3

0.5

2.6

U =

1. .

2
5

2
2
2

1.2

ri.
co

L=

L ve U matrisleri:

tla

Determinant: Det A=(-1) 6 (-4) (-5) (-1.2)= 144


Rank A: r=4
Dorusal bamsz kolon ve satr says: 4
Dorusal baml kolon ve satr says(Rank art): d=n-r=4-4=0

DOOLITTLE ile denklem sistemi zm:

sn
o

A matrisinin L ve U arpanlar bilindiinden farkl kar taraf vektrl denklem sistemleri


dorudan yukardan aaya doru ve aadan yukarya doru hesap yaplarak zlebilir.
Aada iki rnek verilmitir.
rnek 1:
2
8
13

2
6
9

x1 16
x 26
2 =
,
x3 19


18 x 4 34
4
10
3

x =?

em
de
r

6
12
Ax = b
3

A katsaylar matrisi yukarda L ve U arpanlarna ayrlmt: Ancak; kolonlara yer


deitirildii de unutulmamaldr. Kolon deiimi bilinmeyenlerin yerini deitirmek
2
4
3]
vektr
3.
ve
4.kolonlarn
deitirildiini
[ 1
anlamndadr.
gstermektedir. Bu nedenle denklem sistemi L ve U cinsinden yazlrsa

Ax = b

LU x = b
'

w
.e

'

1
2
0.5

1
3

0.5

2.6

2
4

4
2
5

x1 16
x 26

2 =
x 4 19

1.2 x 3 34
2
2
2

olur. Burada x vektr hesaplanmak istenen x bilinmeyenler vektrnn 3. ve 4.


bilinmeyenlerinin yerleri deitirilmi eklidir. y = U x' denirse, L y = b bantsnda, yukardan
aa doru hesap ile, y bulunur, U x' = y bantsnda da, aadan yukar doru hesap ile, x

bulunur. 3. ve 4. deikenlerin yerleri deitirilerek aranan x vektr oluturulur. Bu


admlar aada uygulanmtr:

Ly = b

1
2

0.5

0.5

2.6

y1 16
y 26
2 =

y 3 19

1 y 4 34

y1 16
y 6
y 2 = 26 2 16 = 6
2 =
y3 = 19 0.5 16 3 (6) = 9
y 3 9

y 4 = 34 ( 1)16 (0.5)(6) 2.6(9) = 2.4
y 4 2.4
y1 = 16

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

70

71

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

2
4

U x' = y

x1 = (16 2( 2) 4 1 (2) 1) / 6 = 3
2 x1 16
2 x 2 6 x2 = (6 2(2) 2 1) /(4) = 1
=
x4 = (9 2 ( 2)) /(5) = 1
2 x 4 9

x3 = 2.4 /( 1.2) = 2
1.2 x 3 2.4

4
2

2
6
9

'
'
Ax = b LU x = b

x1 24.68
x 64.20
2 =
,
x3 56.51

18 x4 33.31
4
10
3

1
2
0.5

1
3

0.5

2.6

0.5
1

3
0.5

1
2.6

2
4

4
2

y1 24.68
y 64.20

2 =
y3 56.51

1 y4 33.31

4
2
5

x1
x
2 =
x4

1.2 x3
2
2
2

2 x1 24.68
2 x 2 14.84
=

2 x 4 0.35

1.2 x 3 0.3

24.68
64.20

56.51

33.31

y1 24.68
y 14.84

2 =
y3 = 56.51 0.5 24.68 3 14.84 = 0.35
y 3 0.35
y4 = 33.31 (1) 24.68 (0.5) 14.84 2.6(0.35) = 0.3

y 4 0.3
y2 = 64.20 2 24.68 = 14.84

x1 = ( 24.68 2 0.25 4 0.17 (2)(3.5)) / 6 = 2.75


x2 = (14.84 2 0.25 2 0.17) /(4) = 3.50
x4 = (0.35 2 0.25) /(5) = 0.17
x3 = 0.3 /(1.2) = 0.25

x1 2.75
x 3.50

2 =
x3 0.25

x4 0.17

w
.e

U x' = y

2
4

y1 = 24.68

em
de
r

1
2

x =?

tla

2
8
13

sn
o

6
12
Ax = b
3

ri.
co

rnek 2:

Ly = b

x1 3

x2 = 1
x3 2

x4 1

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

71

72

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

CROUT1 LU metodu
A verilmi olsun, det A 0 olmak ve uii=1 alnmak kaydyla

u13 ... u1n a11


u 23 ... u 2 n a 21
1 ... u 3n = a 31

... . .
1 a n1

a12
a 22

a13
a 23

a 32
.
an2

a 33
.
an3

... a1n
... a 2 n
... a 3n

... .
... a nn

l33
.
l n3

1 u12

...

... l nn
U

ri.
co

l11
l
21 l 22
L U = A l31 l 32

.
.
L
l n1 l n 2

bants salanacak ekilde n admda hem L hem de U nun tm elemanlar belirlenebilir.


Matris arpm kuralndan yararlanarak, her admda nce L nin bir kolonu sonra U nun bir
satr hesaplanr.
1.Adm:

...
ln1 1 = an1 ln1 = an1

l11 u12 = a12 u12 = a12 / l11

tla

l31 1 = a31 l31 = a31

L nin 1.kolonunun hesab:


L nin 1., 2.,,n.satrlar
ARPI U nun1. kolonu=A nn
1.kolonudur

l11 u13 = a13 u13 = a13 / l11

...
l11 u1n = a1n u1n = a1n / l11

U nun 2.satrnn hesab:


L nin 2.satr ARPI U nun 3., 4.,
, n.kolonu=A nn 2.satrdr

L nin 2.kolonunun hesab:


L nin 2., 3.,, n. satrlar ARPI U
nun 2. kolonu=A nn 2.kolonudur

2.Adm:

l21 u12 + l22 1 = a22 l22 = a22 l21 u12


l31 u12 + l32 1 = a32 l32 = a32 l31 u12

l21 u13 + l22 u23 = a23 u23 = (a23 l21 u13 ) / l22

l21 u14 + l22 u24 = a24 u24 = (a24 l21 u14 ) / l22

em
de
r

...
ln1 u12 + ln 2 1 = an 2 ln 2 = an 2 ln1 u12

3.Adm:

U nun 1.satrnn hesab:


L nin 1.satr ARPI U nun
2., 3, , n.kolonu=A nn
1.satrdr

sn
o

l11 1 = a11 l11 = a11


l21 1 = a21 l21 = a21

...
l21 u1n + l22 u2n = a2 n u2 n = (a2 n l21 u1n ) / l22

L nin 3.kolonunun hesab:


L nin 3, 4., , n satrlar ARPI U nun
3.kolonu =A nn 3.kolonudur

U nun 3.satrnn hesab:


L nin 3.satr ARPI U nun 4., ..., n.
kolonu=A nn 3.satrdr

l31 u13 + l32 u23 + l33 1 = a33 l33 = a33 l31 u13 l32 u23

l31 u14 + l32 u24 + l33 u34 = a34 u34 = (a34 l31 u14 l32 u24 ) / l33

...

...

ln1 u13 + ln 2 u23 + un3 1 = a3n ln 3 = an3 ln1 u13 ln 2 u23

l31 u1n + l32 u2 n + l33 u3n = a3n u3n = (a3n l31 u1n l32 u2 n ) / l33

w
.e

n.Adm:

L nin n.kolonunun hesab:


L nin n.satr ARPI U nun n.kolonu=A
nn n.satrdr:

u nn = 1

l n1 u1n + l n 2 u 2 n + l n3 u n3 + ... + l nn 1 = a nn l nn = a nn l n1 u1n l n 2 u 2 n l n3 u 3n ...

U nun n.satrnn hesab:

Prescott Duran Crout (1907-1984), Amerikal: 1941 de yaynland


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

72

73

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

Genel formller:

u11 = 1 ,

l11 = a11 , l 21 = a 21 , ..., l n1 = a n1

L nin 1. kolonu A nn
birinci kolonu ile ayn

i. adm:

L nin i.kolonu: l ii = 1,

l ji = a ji

i 1

jk u k i

j = i, i + 1,..., n

U nun i.satr: u ij = (a ij

i 1

ik u kj ) / l ii

, j = i + 1, i + 2, ..., n,

ri.
co

k =1

1. adm:

l ii 0

k =1

i. adm ematik hesap:


Satr deitirme
vektr

tla

U nun 1., 2,, i-1.


admlarda
hesaplanm satrlar

sn
o

L nin i. kolonunun hesab:

lji=(aji - diyagonalin stndeki saylar ARPI aji nin


solundaki saylar)
lji yi hesaplamak iin:

topla, aji

L nin i. admda
hesaplanacak kolonu

em
de
r

L nin 1., 2,, i-1.


admlarda hesaplanm
kolonlar

Renkli satr ve kolondaki saylar birbiri ile arp,


den kar ve sonucu aji nin olduu yere yaz.

Satr deitirme
vektr

w
.e

U nun 1., 2,, i-1.


admlarda
hesaplanm satrlar

Pivot aday

Kolonda pivot arama:


lii 0 olmaldr. lii nin mutlak deerce ok
kk olmas da istenmez. Gerekirse
satrlara yer deitirilir lii nin mutlak
deerinin mmkn olan en byk say
olmas salanr. Bunun iin; kolonda pivot
ara, lii, li,i+1,, lin elemanlarndan mutlak
deerce en byk olan bul. Bu eleman k.
satrda ise i. satr ile k. satr deitir. Satr
deitirme vektrnn ayn nolu satrlarn
da deitir. Satr deitirme saysnn
depoland deikenin, ad p olsun, deerini
1 artr: p=p+1.

L nin i.kolonunda
pivot ara

U nun 1., 2,, i-1.


admlarda
hesaplanm satrlar

U nun i. satrnn hesab:


uij=aij - diyagonalin solundaki saylar ARPI aij nin
stndeki saylar BL lii
Pivot

Pivot

uij yi hesaplamak iin:


Renkli satr ve kolondaki saylar birbiri ile arp, topla, aij den
kar, lii diyagonal elemanna bl ve sonucu aij nin olduu
yere yaz.

L nin 1., 2,, i. admlarda hesaplanm kolonlar

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

73

74

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

U nun diyagonal elemanlar, uii=1, depolanmaz.

L ve U gen matrisleri A nn zerine depolanr. Diyagonal ve altndaki elemanlar L ye,


diyagonalin stndeki elemanlar U ya aittir.

tla

ri.
co

Kolon deitirme
vektr

sn
o

Satr deitirme vektr arpanlara ayrma ilemi srasnda hangi satrlarn yerlerinin
deitii bilgisini ierir. Ayrca, her satr deiiklii determinantn iaretini
deitireceinden, ka defa satr deitirildii de p gibi bir deikende depolanr.
l11, l22, , lnn elemanlar arpanlara ayrma ilemi srasnda seilmi pivot elemanlardr.

Det A=det L . det U dir. det L= (-1)p.l11.l22. . lnn ve det U=1, olduundan
Det A= (-1)p.l11.l22. . lnn dir.

em
de
r

arpanlara ayrma ileminin herhangi bir admnda, rnein i. admnda, pivot eleman
bulunamazsa, yani lii=0 ise, Det A=0 dr. A tekildir, rank r=i-1 dir, r satr ve kolonu
dorusal bamsz geriye kalan d=n-r satr ve kolonu dorusal bamldr.

rnek:

8
13
4

6
9
1

w
.e

6
12
A=
3

4
10
A = LU L = ?, U = ?
3

18

Matrisi CROUT metodu ile L ve U gen arpanlarna ayrlacaktr. arpanlara ayrma


ilemine balamadan nce satr deitirme vektr 1, 2, 3, 4 ile doldurulur ve satr
deitirme saysnn saklanaca p deikeni sfrlanr.
Satr
deitirme
vektr balang
deerleri

1
2
,
3

4

6
12
A=
3

8
13

6
9

4
10
3

18

p=0 (satr deitirme says balang deeri)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

74

75

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

1.Adm:
L nin 1. kolonu: A nn 1. kolonu ile ayn. Pivot
aday 2. satrda, 1.ve 2. satrlar deitirilecek

2
6

13

1. kolonda
pivot ara

4
10
3

18

Satrlar
deitirilecek

12
6

8
2

6
2

13

10
4
3

18

Satr deitirildikten
sonra, p=1

Pivot aday

Pivot

2

1
3 ,

4

2

1
3 ,

4

2
8

ri.
co

6
12

12 0.666667 0.5 0.833333


6

2
2
4

13
9
3

4
1
18
6

U nun 1. satr: Diyagonalin


sandaki
saylar
pivot
elemana blnd

tla

1

2
3 ,

4

Pivot

sn
o

2.Adm:

Pivot

2

3
1 ,

4

12 0.666667 0.5 0.833333 Satrlar


6
deitirilecek
2.000002
2
4

3 10.999999 9

18
6 0.000002 1
Pivot aday

em
de
r

2

1
3 ,

4

L nin 2.kolonu: Diyagonalin stndeki say buradaki saynn


solundaki say ile arpld, buradaki saydan kartld. Pivot
aday 3. satrdadr, 2. ve 3.satrlar deitirilecek

12 0.666667 0.5 0.833333


3 10.999999 9

2.000002
2
4

18
6 0.000002 1
Satr deitirildikten
sonra, p=2

Pivot

0 .5
0.833333
12 0.666667
3 10.999999 0.181818 0.045455

2.000002
2
4

1
18
6 0.000002

w
.e

2

3
1 ,

4

U nun 2.satr: Diyagonalin solundaki say buradaki


saynn stndeki say ile arpld, buradaki saydan
kartld ve pivot elemana blnd

3.Adm:

2

3
1 ,

4

0 .5
0.833333
12 0.666667
3 10.999999 0.181818 0.045455

2.000002
0.363637
4

4
18
6 0.000002

L nin 3.kolonu: Diyagonalin stndeki saylar


buradaki saynn solundaki saylar ile arpld,
buradaki saydan kartld. Pivot eleman
4.satrda, 3.ve 4.satrlar deitirilecek

2

3
4 ,

1

2

3
4 ,

1

0 .5
0.833333
12 0.666667
3 10.999999 0.181818 0.045455

6 0.000002
4
18

2.000002
0.363637
4
6

Satr deitirildikten
sonra, p=3

Pivot

Pivot aday

0 .5
0.833333
12 0.666667
3 10.999999 0.681818 0.045455

6 0.000002
4
3.25

2.000002
0.363637
4
6

U nun 3.satr: Diyagonalin solundaki saylar buradaki


saynn stndeki saylar ile arpld, buradaki
saydan kartld ve pivot elemana blnd

Pivot

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

75

76

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

4.Adm:

0 .5
0.833333
12 0.666667
3 10.999999 0.681818 0.045455

6 0.000002
4
3.25

2.000002
0.363637
0.272733
6

2

3
4 ,

1

L nin 4.kolonu: Diyagonalin solundaki saylar


buradaki saynn stndeki saylar ile arpld,
buradaki saydan kartld.

Sonu:

tla

2

3
Satr deitirme vektr:
4 , Satr deitirme says: p=3

1

ri.
co

L ve U matrisleri:

0.5
0.833333
1 0.666667

0
.
681818

0.0454555
U =

1
3.25

sn
o

12

3 10.999999

,
L=
6 0.000002

6
2
.
000002
0
.
363637
0
.
272733

em
de
r

Determinant: Det A=(-1)3.12.(-10.999999).4.0.272733= 144.003001


Rank A: r=4
Dorusal bamsz kolon ve satr says: 4
Dorusal baml kolon ve satr says(rank art): d=n-r=4-4=0

CROUT ile denklem sistemi zm:

A matrisinin L ve U arpanlar bilindiinden katsaylar matrisi A olan farkl kar taraf


vektrl denklem sistemleri dorudan yukardan aa ve aadan yukar hesap yaplarak
zlebilir. Aada iki rnek verilmitir.
rnek 1:

w
.e

6
12
Ax = b
3

2
8
13
4

2
6
9
1

4 x1 16

10 x 2 26
=
,
3 x 3 19

18 x 4 34

x =?

A katsaylar matrisi yukarda L ve U arpanlarna ayrlmt: Ancak; satrlara yer deitirildii


de unutulmamal, zme balamadan nce sa taraf vektrnn satrlar deitirilmelidir.
Satr deitirme vektr= [ 2

b = [ 16

26

- 19 - 34]T yerine b' = [ 26

1 ]T olduundan, sa taraf vektr


- 19

- 34

16 ]T alnmaldr. Bu nedenle denklem

sistemi L ve U cinsinden yazlrsa

0.5
0.833333 x1 26
12
1 0.666667

3 10.999999

0
.
681818

0.0454555 x2 19

Ax = b' LU x = b'
=
6 0.000002

4
1
3.25 x3 34

2.000002 0.363637 0.272733


1
6
x4 16
U

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

76

77

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

olur. y = U x denirse, L y = b' bantsndan, yukardan aa doru hesap ile, y bulunur,

U x = y den

de,

aadan

yukar

doru

hesap

ile,

bulunur.

Bu

admlar

aada

y1 = 26 / 12 = 2.166667

ri.
co

12
y1 26
3 10.999999
y 19
2 =

Ly = b
6 0.000002
y 3 34
4

2.000002 0.363637 0.272733 y 4 16


6

uygulanmtr.

y1 2.166667

y2 = ( 19 3 2.166667) /( 10.999999) = 2.318182


y2 = 2.318182
y3 5.249998
y3 = ( 34 (6) 2.166667 (0.000002) 2.318182) / 4 = 5.249998

y4 = (16 6 2.166667 2.000002 2.318182 0.363637 ( 5.249998)) / 0.272733 = 0.999963


y4 0.999963

tla

0.5
0.833333 x1 2.166667
1 0.666667

1
0.681818 0.0454555 x 2 2.318182
Ux = y
=

1
3.25 x 3 5.249998

x 4 0.999963

sn
o

x1 = 2.166667 0.833333 0.999963 0.5 (2.000118) (0.666667) 0.999919 = 3.000037


x2 = 2.318182 (0.0454555) 0.999963 (0.681818) ( 2.000118) = 0.999919
x3 = 5.249998 ( 3.25) 0.999963 = 2.000118

em
de
r

x4 = 0.999963

x1 3.000037
x

0.999919
2 =
x3 2.000118

x4 0.999963

rnek 2:

6
12
Ax = b
3

2
8
13

2
6
9

x1 24.68
x 64.20
2 =
,
x3 56.51


18 x 4 33.31
4
10
3

Satr deitirme vektr= [ 2

b = [ 24.68

64.20

56.51

x =?

1 ]T olduundan, sa taraf vektr

- 31.31]T yerine b' = [ 64.20

56.51

- 33.31

24.68 ]T alnmaldr. Bu

w
.e

nedenle denklem sistemi L ve U cinsinden yazlrsa


0 .5
0.833333 x1 64.20
12
1 0.666667
3 10.999999

1
0.681818 0.0454555 x 2 56.51

Ax = b' LU x = b'
=
6 0.000002

4
1
3.25 x 3 33.31

2.000002 0.363637 0.272733


1
6
x 4 24.68

12
y1 64.20
3 10.999999
y 56.51
2 =

Ly = b
6 0.000002
y 3 33.31
4

2.000002 0.363637 0.272733 y 4 24.68


6
y1 = 64.20 / 12 = 5.35

y1 5.35

y 2 = 3.678182
y3 0.302498
y3 = (33.31 (6) 5.35 (0.000002)(3.678182) / 4 = 0.302498

y4 = (24.68 6 5.35 2.000002 (3.678182) 0.363637(0.302498) / 0.272733 = 0.170023


y 4 0.170023

y2 = (56.51 3 5.35) /(10.999999) = 3.678182

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

77

78

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

x 1 = 5.35 0.833333 0.170023 0.5 0.250077 ( 0.666667 )( 3.499937 = 2.749983


x 2 = 3.678182 ( 0.0454555 ) 0.170023 ( 0.681818 ) 0.250077 = 3.499937

x1 2.749983

x2 = 3.499937
x3 0.250077

x4 0.170023

ri.
co

x 3 = 0.302498 ( 3.25 ) 0.170023 = 0.250077

0.5
0.833333 x1 5.35
1 0.666667

1
0.681818 0.0454555 x 2 3.678182
Ux= y
=

1
3.25 x 3 0.302498

x 4 0.170023

x 4 = 0.170023

CHOLESKY1 UUT metodu

tla

CHOLESKY metodu sadece simetrik ve pozitif tanml matrisler iin zel bir yntemdir.
Basit, nmerik adan stabil, bellek gereksinimi dk ve programlanmas kolaydr. Pivot
aramak, satr veya kolon deitirmek gerekmez.

Matematik tanm:

sn
o

Simetrik pozitif tanml matris nedir? Mekanik tanm

Simetriklik koulu A=AT dir. Elemanlarnn en az biri sfrdan farkl olan, bunun dnda tamamen keyfi bir x 0
kolon vektr olsun.
P = xT A x

em
de
r

arpm sabit bir say olur. Eer

P>0 ise A pozitif tanmldr (positive definit)


P<0 ise A negatif tanmldr (negative definit)
P0 ise A yar pozitif tanmldr (positive semidefinit)
P0 ise A yar negatif tanmldr (negative semidefinit)

denir. Herhangi bir matrisin pozitif tanml olup olmadn genelde matrisin grnmnden anlamak basit deildir.
ou kez matrisin mekanik anlam yorumlanarak karar verilebilir. rnein, sonlu elemanlar metodunun denge
denklemlerinin katsaylar matrisinin ve en kk kareler metodunun katsaylar matrisinin daima pozitif tanml
olduu bilinmektedir.

rnekler:

w
.e

x
1 0
A=
, x = 1 , p = x T A x = [x1

0 1
x2

1 0 x1
2
2
x 2 ]
x = x1 + x 2
0
1

olduundan, x10 veya x20 olduu srece p>0 dr, dolaysyla A pozitif tanmldr.

x
0 1
0 1 x1
B=
, x = 1 , p = x T B x = [x1 x 2 ]

= x1 x 2 + x1 x 2
1 0
x2
1 0 x 2
dr. x1 0 ve x 2 0 iin p0 olacandan B pozitif tanml deildir.

Mekanik tanm:
P = () xT A x
bants mekanikte depolanm ekil deitirme enerjisidir. ekil deitirme enerjisi daima pozitif olduundan p>0
dr. rneklemek gerekirse, sonlu elemanlar metodunda x sistemin global dm yer deitirme vektr
(deplasman vektr), A sistemin global rijitlik matrisidir. A daima simetrik, yani A=AT dir. P sistemde depolanm
ekil deitirme enerjisi(i kuvvetlerin ii) anlamndadr ve daima pozitiftir. Dolaysyla A matrisi de daima pozitif
tanmldr. Bunun pratik anlam udur. A nn diyagonal elemanlar daima pozitiftir ve CHOLESKY metodu ile gen
arpanlara ayrma ilemi srasnda daima pozitif kalrlar. Diyagonal elemanlardan biri negatif veya sfr olursa
sistem ya labildir ya da rijitlik matrisi hatal kurulmutur, zm bulunamaz anlamna gelir.
1
Andr-Louis Cholesky (1875 1918), Polonya asll Fransz: almasn 1905-1913 civarnda hazrland sanlmaktadr. 1.
Dnya savanda ld. almas lmnden sonra, 1924 de yaynland.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

78

79

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

CHOLESKY metodunda A=L U gen arpanlarnn diyagonal elemanlar lii = aii , u ii = a ii


alnr. Simetriden dolay L=UT veya U=LT dur. Simetrik ve pozitif tanml A matrisi
A=UTU

UT U = A

UT

u11
u
12 u22
u13 u23

.
.
u1n u2 n

u33
.
u3n

...

... unn

u11 u12 u13

u22 u23

u33

ri.
co

salanacak ekilde gen arpanlarna ayrlr1. n admda U nun tm elemanlar belirlenebilir.


Matris arpm kuralndan yararlanarak, her admda U nun bir satr hesaplanr.

... u1n a11 a12


... u2 n a21 a22
... u3n = a31 a32

... . .
.

unn an1 an 2

a13
a23

a33
.

an 3

... a1n
... a2 n
... a3n

... .
... ann

tla

1. adm

u11u12 = a12 u12 = a12 / u11


u11u13 = a13 u13 = a13 / u11
...

em
de
r

u11u1n = a1n u1n = a1n / u11

U nun 1.satrnn hesab:


UT nin 1..satr ARPI U nun 1.,2. ,, n.kolonlar =A
nn 1.satrdr

sn
o

u11u11 = a11 u11 = a11

2. adm

u12 u12 + u 22 u 22 = a 22 u 22 = a 22 u12 u12

u12 u13 + u 22 u 23 = a 23 u 23 = (a 23 u12 u13 ) / u 22

U nun 2.satrnn hesab:


UT nin 2..satr ARPI U nun 2., 3. ,, n.kolonlar =A
nn 2.satrdr

...

u12 u1n + u 22 u 2 n = a 2 n u 2 n = ( a 2 n u12 u1n ) / u 22

3. adm

w
.e

u13 u13 + u 23 u 23 + u 33 u 33 = a 33 u 33 = a 33 u13 u13 u 23 u 23


...

u13 u1n + u 23 u 2 n + u 33 u 3n = a 3n u 3n = (a 3n u13 u1n u 23 u 2 n ) / u 33

U nun 3.satrnn hesab:


UT nin 3.satr ARPI U nun 3. ,,
n.kolonlar =A nn 3.satrdr

n. adm

U nun n.satrnn hesab:


UT nin n.satr ARPI U nun n.kolonu
=A nn n.satrdr

u1n u1n + u 2 n u 2 n + u 3n u 3n + ... + u nn u nn = a nn u nn = a nn u1n u1n u 2 n u 2 n u 3n u 3n ...

Kaynaklarda A=UTU, A=U UT, A=LTL, A=L LT eklin de de gsterilir, hepsi de ayn anlamdadr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

79

80

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

Genel formller:

u12 = a12 / u11 , u13 = a13 / u11 ,..., u1n = a1n / u11 ,

i.adm:

Diyagonal eleman: u ii = a ii

i 1

ik u i k

(a11>0)

ri.
co

u11 = a11 ,

1.adm:

(kk iindeki ifade>0 olmal)

k =1

Diyagonalin sandaki elemanlar: uij = ( aij

i 1

ik u kj ) / uii

k =1

tla

i. adm ematik hesap:

, j = i + 1, i + 2 , ..., n

sn
o

U nun 1., 2,,


i-1.
admlarda hesaplanm
satrlar

U nun i. diyagonalinin hesab:

uii= (aii -

diyagonalin stndeki saylarn KARES)

em
de
r

uii yi hesaplamak iin:


Renkli kolondaki saylarn karesini aii den kar, sonucun
karekkn al ve sonucu aii nin olduu yere yaz.

U nun i. satrnn hesab:

uij= (aij - diyagonalin stndeki saylar ARPI aij nin


stndeki saylar) BL uii

w
.e

uij yi hesaplamak iin:

Renkli blgedeki saylar arp, aii den kar, diyagonal elemana bl


ve sonucu aij nin olduu yere yaz.

A nn sadece diyagonali ve stndeki saylar depolanr.


U gen matrisi A nn zerine depolanr.
arpanlara ayrma ileminin herhangi
bir admnda, rnein i. admnda

UT depolanmaz

aii

i 1

ik ui k

k =1

ise, karekk alnamaz, ileme devam


edilemez. Bu durum, A nn pozitif tanml
olmad anlamndadr.

Det A=det UT . det U dur.


det A= u112. u222. . unn2 olur.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

80

81

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

rnek:
6

26
7
11

7
9
7

12
11
T
, A =U U U =?

65

26

7
9

Diyagonal
altndaki
saylar
kullanlmayaca iin yazlmad

12
11
7

65

A nn sadece diyagonali
ve stndeki saylar ile
allacak

ri.
co

9
3
A=
6

12

1.Adm:

U11 in hesab: a11 in


karekk alnp buraya yazld

2.Adm:

26

7
9

4
11
7

65

4
1 3
9
7

65

em
de
r

U22 nin hesab: diyagonalin


stndeki
saylarn
kareleri
buradaki
a22
den
kartld,
karekk alnd ve buraya yazld

U1j nin hesab: Buradaki


aij saylar u11 e blnd

sn
o

tla

Simetrik matrisi CHOLESKY metodu ile UT ve U gen arpanlarna ayrlacaktr. A nn pozitif


tanml olduunun bilindii varsaylmaktadr.

U2j nin hesab: diyagonalin stndeki say a2j nin


stndeki say ile arpld, a2j den kartld, u22 ye
blnd ve sonu buraya yazld

3.Adm:

w
.e

U33 n hesab: diyagonalin


stndeki
saylarn
kareleri
buradaki
a33
den
kartld,
karekk alnd ve buraya yazld

4
1 3
2
6

65

U2j nin hesab:

diyagonalin stndeki saylar a3j


nin stndeki saylar ile arpld, a3j den kartld,
u33 e blnd ve sonu buraya yazld

4.Adm:

U44 n hesab:

diyagonalin
stndeki saylarn kareleri
buradaki a44 den kartld,
karekk alnd ve buraya
yazld

1
5

4
1 3
2
6

Sonu:

1 2 4
3

3
1 5

5 1 3
T
T

A = U U,
U =
U =
-2 -1 2

2
6

2
4 -3 6 2

A Pozitif tanmldr: nk uii diyagonal elemanlar hesaplanrken karekk alnacak saylar


pozitif kalmtr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

81

82

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY


2. 2. 2. 2

T.

Determinant: Det A=Det U det U=3 5 2 2 = 3600

CHOLESKY ile denklem sistemi zm:

rnek:

Ax = b ,

9
3

12

6
7

3
26
7
11

9
7

12 x1

11 x 2
=
7 x3

65 x 4

72
34

,
22

326

x =?

UT

2
6

2 4 x1
1 3 x 2
=
2
6 x3

2 x4

1
5

y1
y
2 =
y3

2 y4

y1 = 72 / 3 = 24
24
72
y 2 = (34 1 24) / 5 = 2
2
34

=
y 3 = (22 (2) 24 (1) 2) / 2 = 36
36
22

y 4 = (326 4 24 (3) 2 6 36) / 2 = 10


10
326

Ux = y

2 4 x1 24
1 3 x 2 2
=

2
6 x3 36

2 x 4 10

w
.e

em
de
r
6

1
5

x =?

3
1 5
T
U y=b
- 2 -1

4 -3

72
34

,
22

326

sn
o

3
1 5
T
Ax = b U U x = b
- 2 -1

4 -3

tla

ri.
co

A matrisinin UT ve U arpanlar bilindiinden katsaylar matrisi A olan farkl kar taraf


vektrl denklem sistemleri dorudan yukardan aa ve aadan yukar hesap yaplarak
zlebilir. Aada bir rnek verilmitir.

x1 = (24 4 5 (2) 3 1 4) / 3 = 2
x 2 = (2 (3) 5 (1) 3) / 5 = 4
x 3 = (36 6 5) / 2 = 3
x 4 = 10 / 2 = 5

2
4
x=
3

5

Determinant hesab

Bir Anxn matrisinin determinantnn tanm, klasik hesap metotlar(Sarrus, Chio, Laplace) ve
determinant zelliklerine blm 2 de yer verilmiti. Ayrca, blm 6 da verilen A = L U
arpanlara ayrma metodlarnda (Doolittle, Crout, Cholesky) det A nn
p

Doolittle metodunda: det A= (-1) .u11 u22 unn


p.
.
.
.
Crout metodunda: det A= (-1) l11 l22 lnn
2.
2.
.
2
Choleky metodunda det A= u11 u22 unn

(6.5)

ile hesaplanaca gsterilmiti. Burada p satr veya kolon deitirme saysdr.


Determinantn deeri zmn var olup olmadna iaret eder. Det A0 ise zm vardr,
det A=0 zm yoktur veya birden ok zm vardr (bak: blm 3, sayfa 45).
Determinant matrise ait ilgin bir saydr. Hem ok nemlidir hem de
hesaplamaktan zenle kanrz. Genellikle denklem sistemini zerken sadece kontrol
amacyla kullanrz. Bu kontrol 6.5 ifadelerindeki lii veya uii diyagonal elemanlarndan
herhangi birinin sfr olup olmad kontrol edilerek yaplr. Herhangi biri sfr ise determinant
sfrdr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

82

83

6. ARPANLARA AYIRMA YNTEMLER: DOOLITLE, CROUT VE CHOLESKY

Determinant hesaplanacaksa nmerik sorun kabilecei bilinmelidir. Denklem sistemi ok


byk ise 6.5 deki diyagonal elemanlarn birbiri ile arpm say tamasna(saynn bilgisayar
birim belleine smamas) neden olabilir! Basit bir rnek verelim: Crout metodunda
denklem saysnn n=100, p=2, L nin tm diyagonal elemanlarn birbirine eit ve 5 olduunu
varsayalm. 6.5 den:
det A=(-1)2.5. 5. .5=5100=7888609052210118054117285652827862296732064351090230047702789306640625

ri.
co

gibi ok byk bir say olur(yuvarlanm det A=7.88860905.1069). Uygulamada karlalan


byk denklem sistemlerinde n=100000, n=100000000 olabildiine gre, 6.5 deki
ifadelerden determinantn hesaplanmasnn say tamasna neden olaca (programn
kmaza girecei, beklide bilgisayarn kilitlenecei) aktr.

Determinantn hesaplanmas zorunlu olan bir durumda, det A y dorudan 6.5 deki ifadelerden deil
Det A =(-1)p . s . 2t

tla

bantsna gre sadece s ve t saylarn hesaplamak say tamasn nler. Burada s gerek say, t tamsay
deikenidir. s ve t deerlerini hesaplayan basit bir BASIC program paras verilmitir.

em
de
r

sn
o

REM Determinant iin s ve t yi belirle (Wilkinson1)


s=1
t=0
Basit Gauss, Doolittle, Crout metotlarnda alt veya st gen matrisin
diyagonal elemanlar A matrisinin diyagonalinde depolanmtr.
FOR i = 1 TO n
Cholesky metodunda da durum ayndr, ancak Cholesky metodunda
s = s * a(i, i)
bu satr s = s * a(i, i)^2 olarak deitirilmelidir.
1930
t=t+4
IF ABS(s) >= 1 THEN s = s *0.0625 : GOTO 1930
1950
t=t-4
IF ABS(s) <0.0625 THEN s = s * 16 : GOTO 1950
NEXT i
Uyar: s ve t deerleri yerine konularak programda det A =(-1)p . s . 2t deeri hesaplanmamaldr. Aksi halde
gene say tamas olacaktr. s ve t programda belirlendikten sonra, det A=(-)p. s . 2t deeri program dnda,
Mathematica veya MATLAB ile ya da zel bir program ile, hesaplanabilir.
-----------------------------------

James Hardy Wilkinson (1919 1986), ngiliz

UTDU veya LTDL arpanlara ayrma yntemi

w
.e

UTDU (veya LTDL) yntemi simetrik matrisler iin ve Cholesky metodunun biraz farkl
eklidir. Matrisin pozitif tanml olmas gerekmez. Simetrik A matrisi
A=UTD U

olacak ekilde diyagonal elemanlar 1 olan st gen U ve D diyonal matrisine dntrlr.


U ve D aadaki bant salanacak ekilde belirlenir.
1
u
12
T
U DU = A u13

.
u1n

1
u 23
.
u 2n
UT

1
.
u 3n

d 11

...
... 1

d 22
d 33

1 u12

...

d nn
U

u13
u 23
1

... u1n a11


... u 2 n a 21
... u 3n = a 31

... . .
1 a n1

a12
a 22

a13
a 23

a 32
.
an2

a 33
.
a n3

... a1n
... a 2 n
... a 3n

... .
... a nn

UTDU yntemi baz problemlerin zmnde daha uygun olmaktadr. Yntemin detaylar
burada verilmeyecektir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

83

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz
Ahmet TOPU

sn
o

tla

Ders notlar 2014

m=n

X1
0
0.2500
0.1250
0.1875
0.1563
0.1719
0.1641
0.1680
0.1660
0.1670
0.1665
0.1668
0.1666
0.1667

X2
0
0.5000
0.3750
0.4375
0.4063
0.4219
0.4141
0.4180
0.4160
0.4170
0.4165
0.4168
0.4166
0.4167

X3
0
0
-0.1250
-0.0625
-0.0938
-0.0782
-0.0860
-0.0821
-0.0840
-0.0830
-0.0835
-0.0833
-0.0834
-0.0833

x4
0
0.2500
0.1250
0.1875
0.1563
0.1719
0.1641
0.1680
0.1660
0.1670
0.1665
0.1667
0.1666
0.1667

Balang deerleri

Max | xik xik 1 |=| x42 x14 |=| 0.1250 0.2500 |= 0.1250 > = 0.0001
olduundan iterasyona devam!

w
.e

em
de
r

k
0
1
2
3
4
5
6
7
8
9
10
11
12
13

| 0.1660 0.1680 |= 0.0020 > = 0.0001, iterasyona devam!

| 0.1668 0.1665 |= 0.0003 > = 0.0001, iterasyona devam!


| 0.1667 0.1667 |= 0.0001 = = 0.0001, iterasyon durduruldu !

zm

terasyon no

| 0.1875 0.1250 |= 0.0625 > = 0.0001, iterasyona devam!

DENKLEM SSTEM ZM, TERASYON


YNTEMLER:
Jacobi
Gauss-Seidel
GG(Conjugate Gradient)
Carl Gustav
Jakob JACOBI
(1804-1851 )

Philipp Ludwig
von SEIDEL
(18211896)

85

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG


a11 x1 + a12 x 2 + a13 x 3 + ... + a1n x n = b1
.

A x=b

(7.1)

a 21 x1 + a 22 x 2 + a 23 x 3 + ... + a 2 n x n = b 2
a n1 x1 + a n 2 x 2 + a n 3 x 3 + ... + a nn x n = bn

ri.
co

A x=b dorusal denklem sistemi, n ok byk ise ve A ok seyrek ise iterasyon yntemleri
ile zlr. nk direkt metodlar ok fazla bellek, drt ilem ve hesap sresi gerektirirler.
Biriken yuvarlama hatalar zm tehlikeye sokar. terasyon yntemlerinde A nn
elemanlar deimez, bu nedenle A nn sadece sfrdan farkl elemanlar depolanr, sfr ile
drt ilem yaplmaz. Hem bellek hem hesap sresi hem de yuvarlama hatalar nemli
miktarda azalr. Uygulamada karlalan A matrisi genelde ok seyrektir, sfrdan farkl
eleman oran yaklak %1-5 civarndadr.

tla

terasyon (kelime anlam: tekrarlama, yenileme) yntemleri A x=b denklem sisteminin


zmn aadaki ilkeye gre zmeye alrlar:
Balang: x bilinmeyenler vektr iin bir balang deeri tahmin edilir, rnein: x =x(0)=[0 0 0]T

sn
o

terasyon:
1 adm: hata vektr h=b-A x klecek ekilde yeni bir yaklam bulunur: x=x(1)
2.adm: hata vektr h=b-A x klecek ekilde yeni bir yaklam bulunur: x=x(2)

k.adm: hata vektr h=b-A x klecek ekilde yeni bir yaklam bulunur: x=x(k)

terasyonu durdurma koulu salanncaya kadar tekrarlanr.

em
de
r

Ka adm sonunda zme varlabilecei, k nn st snr, nceden kestirilemez. terasyonu durdurma kouluna
gerek vardr. Durdurma koulu iin farkl yaklamlar vardr, baz rnekler:
1. iterasyon saysnn st snr, max k
2. h =b-A x(k) olmak zere,

3. h =xk - x(k-1) olmak zere,

4.

max | xik xik 1 | ,

h Th

h Th

i=1, 2, , n

Burada kabul edilebilir hata deeridir, x vektrnn fiziksel anlamna bal olarak, =0.1 - =10-14 gibi tipik bir
deer olabilir.

w
.e

ok sayda iterasyon metodu vardr. Burada JACOBI, GAUSS-SEIDEL ve CG (Conjugate


Gradient) metotlarna yer verilecektir. JACOBI ve GAUSS-SEIDEL metodlar katsaylar
matrisi simetrik veya simetrik olmayan denklem sistemlerinde kullanlabilir. CG Metodu ise
sadece katsaylar matrisi simetrik ve pozitif tanml denklem sistemleri iin kullanlr.
JACOBI metodu1:

terasyona balamadan nce, 7.1 denklem sistemi diyagonal elemanlar aii0 olacak ekilde
yeniden dzenlenir. Bunun iin gerekirse satrlarn yerleri deitirilir. 7.1 sisteminden x1, x2,
, xn ekilerek
x1 =

1
(b1 -a12 x 2 a13 x 3 -...-a1n x n )
a11

x2 =

1
(b2 -a 21 x1 a 23 x 3 - ... a 2n x n )
a 22

(7.2)

.
xn =

1
(bn -a n1 x1 a n 2 x 2 a n3 x 3 -...)
a nn

eklinde yazlr.
1

Carl Gustav Jakob JACOBI (1804 - 1851 ), Alman: 1845 de yaynland.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

85

86

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

terasyona x1, x2, x3, , xn bilinmeyenleri iin, fiziksel anlamna gre, bir balang deeri
tahmin edilerek balanr. Herhangi bir tahmin yaplamyorsa x1= x2= = xn=0 veya

x1 =

b
b1
b
, x 2 = 2 ,..., x n = n
a11
a 22
a nn

alnabilir. Bu xi deerleri 7.2 in sa tarafnda yerine konur,

ri.
co

soldaki yeni xi deerleri hesaplanr. terasyonu durdurma koulu kontrol edilir, salanyorsa
iterasyon durdurulur. Salanmyorsa yeni xi deerleri 7.2 nin sa tarafnda yerine konur ve
soldaki yeni xi deerleri hesaplanr. terasyonu durdurma koulu salanncaya kadar bu
ilem tekrarlanr.
rnek:

Ax = b

1 1 0 x1 1
4 0 1 x 2 2
=
, x =?
0 4 1 x 3 0

1 1 4 x 4 1

tla

4
1

1
(1 x 2 x 3 )
4
1
x 2 = (2 x1 x 4 )
4
1
x3 = ( x1 x 4 )
4
1
x 4 = (1 x 2 x3 )
4

em
de
r

x1 =

sn
o

Denklem sisteminin direkt yntemlerle zm xT=[0.1667 0.4167 -0.0833 0.1667] dir.


zmde ondalk saydan sonra 4 hane verilmitir. Ayn denklem sistemini JACOBI
iterasyonu ile zelim. Denklem sistemini

eklinde yazalm. i. bilinmeyenin k. Ve k-1. admda hesaplanan iki deerinin fark x ik x ik 1


olmak zere, Max | xik xik 1 | koulu salannca iterasyonu durduralm.

=0.0001 seelim.

zmde 4 ondalk hane kullanalm. Balang iin x =x =[0 0 0 0] alalm.


X1
0
0.2500
0.1250
0.1875
0.1563
0.1719
0.1641
0.1680
0.1660
0.1670
0.1665
0.1668
0.1666
0.1667

X2
0
0.5000
0.3750
0.4375
0.4063
0.4219
0.4141
0.4180
0.4160
0.4170
0.4165
0.4168
0.4166
0.4167

w
.e

k
0
1
2
3
4
5
6
7
8
9
10
11
12
13

terasyon no

X3
0

0
-0.1250
-0.0625
-0.0938
-0.0782
-0.0860
-0.0821
-0.0840
-0.0830
-0.0835
-0.0833
-0.0834
-0.0833

x4
0
0.2500
0.1250
0.1875
0.1563
0.1719
0.1641
0.1680
0.1660
0.1670
0.1665
0.1667
0.1666
0.1667

(0)

Balang deerleri

Max | xik xik 1 |=| x42 x14 |=| 0.1250 0.2500 |= 0.1250 > = 0.0001
olduundan iterasyona devam!

| 0.1875 0.1250 |= 0.0625 > = 0.0001, iterasyona devam!

| 0.1660 0.1680 |= 0.0020 > = 0.0001, iterasyona devam!

| 0.1668 0.1665 |= 0.0003 > = 0.0001, iterasyona devam!


| 0.1667 0.1666 |= 0.0001 = = 0.0001, iterasyon durduruldu !

13. iterasyon sonunda bulunan zm

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

86

87

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

zm:

x1 0.1667
x

2 = 0.4167
x3 0.0833

x4 0.1667

GAUSS-SEIDEL metodu1:

x1 =

1
(b1-a12 x 2 a13 x 3 -...-a1n x n )
a11

x2 =

1
(b2 -a 21 x1 a 23 x 3 - ... a 2 n x n )
a 22

ri.
co

terasyona balamadan nce, 7.1 denklem sistemi diyagonal elemanlar aii0 olacak ekilde
dzenlenir. Bunun iin gerekirse satrlarn yerleri deitirilir. 7.1 sisteminden x1, x2, , xn
ekilerek

(7.3)

xn =

1
(bn -a n1 x1 a n 2 x 2 a n3 x 3 -...)
a nn

sn
o

eklinde yazlr.

tla

terasyona x1, x2, x3, , xn bilinmeyenleri iin, fiziksel anlamna gre, bir balang deeri
tahmin edilerek balanr. Herhangi bir tahmin yaplamyorsa x1= x2= = xn=0 veya

x1 =

b
b1
b
, x 2 = 2 ,..., x n = n alnabilir.
a11
a 22
a nn

em
de
r

xi deerleri 7.3 n 1. denkleminin sa tarafnda yerine konur, x1 in yeni deeri bulunur. x1 in


yeni deeri ve x3, x4, , xn nin nceki deerleri 2. denklemin sa tarafnda yerine konur, x2
nin yeni deeri bulunur. x1 ve x2 nin yeni deeri ile x4, , xn nin nceki deerleri 3.
denklemin sa tarafnda yerine konur, x2 nin yeni deeri bulunur. x1, x2, , xn-1 in yeni
deerleri n. denklemin sa tarafnda yerine konur, xn nin yeni deeri bulunur.
terasyonu durdurma koulu kontrol edilir,
Salanmyorsa son xi deerleri ile ilem tekrarlanr.

salanyorsa

iterasyon

durdurulur.

GAUSS-SEIDEL metodu ile JACOBI metodu temelde ayndr. Tek fark udur: GAUSS-SEIDEL
metodunda xi nin her yeni deeri hemen kullanlr.

w
.e

rnek:

A x = b,

4
1

1 1 0 x1 1
4 0 1 x 2 2
=
, x =?
0 4 1 x 3 0

1 1 4 x 4 1

Denklem sisteminin direkt yntemlerle zm xT=[0.1667 0.4167 -0.0833 0.1667] dir.


zmde ondalk saydan sonra 4 hane verilmitir. Ayn denklem sistemini GAUSS-SEIDEL
iterasyonu ile zelim. Denklem sistemini

Philipp Ludwig von SEIDEL (1821 1896), Alman: 1874 ylnda yaynland.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

87

88

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

1
(1 x 2 x 3 )
4
1
x 2 = ( 2 x1 x 4 )
4
1
x 3 = ( x1 x 4 )
4
1
x 4 = (1 x 2 x 3 )
4

ri.
co

x1 =

eklinde yazalm. i. bilinmeyenin k. ve k-1. admda hesaplanan iki deerinin fark x ik x ik 1


olmak zere, Max | xik xik 1 | koulu salannca iterasyonu durduralm.

=0.0001 seelim.

zmde 4 ondalk hane kullanalm. Balang iin x =x =[0 0 0 0] alalm.


(0)

terasyon
admlar

X3
0
-0.0625
-0.0782
-0.0821
-0.0830
-0.0833
-0.0833
-0.0834

x4
0
0.1563
0.1641
0.1660
0.1665
0.1666
0.1667
0.1667

Balang deerleri

Max | xik xik 1 |=| x12 x12 |=| 0.1563 0.2500 |= 0.0937 > = 0.0001
olduundan iterasyona devam!

| 0.1641 0.1563 |= 0.0078 > = 0.0001, iterasyona devam!


| 0.1667 0.1666 |= 0.0001 = = 0.0001 , iterasyonu durdur!

7. iterasyon sonunda bulunan zm

x1 0.1667

x 2 = 0.4167
x 3 0.0834

x 4 0.1667

w
.e

em
de
r

zm:

X2
0
0.4375
0.4219
0.4180
0.4170
0.4168
0.4167
0.4167

tla

X1
0
0.2500
0.1563
0.1641
0.1660
0.1665
0.1666
0.1667

sn
o

k
0
1
2
3
4
5
6
7

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

88

89

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

Aitken iterasyon hzlandrcs


Yukardaki rneklerden grld gibi, iterasyon gerek zme olduka yava yaknsamaktadr. JACOBI ve
GAUSS-SEIDEL iterasyonlar dorusal yaklam sergilerler. Dorusal yaklaml iterasyon metotlarnda AITKEN1
hzlandrcs kullanlarak iterasyon hzlandrlabilir. Herhangi bir xi bilinmeyenin birbirini izleyen iterasyon

x ik xik

deerleri kullanlarak x i

( xik x ik 1 ) 2
xik 2 x ik 1 + x ik 2

nn deeri iyiletirilebilir. AITKENe gre

dir.

Bu forml kullanarak aadaki rnei JACOBI metodu ile zelim:

1
(1 x 2 x3 )
4
1
x2 = (2 x1 x4 )
4
1
x3 = ( x2 x 4 )
4
1
x4 = (1 x 2 x3
4

k
0
1
2
3

X2
0
0.5000
0.3750
0.4375
(0.4167)
0.4063
(0.4167)

X1
0
0.2500
0.1250
0.1875
(0.1667)
0.1563
(0.1667)

0
-0.1250
-0.0625
(-0.0833)
-0.0938
(-0.0834)

x4
0
0.2500
0.1250
0.1875
(0.1667)
0.1563
(0.1667)

Max | xik xik 1 |=| 0.1250 0.2500 |= 0.1250 > = 0.0001


olduundan iterasyona devam!
Aitken

4. iterasyon sonunda bulunan zm

0.1875

(0.1875 0.1250) 2
= 0.1667
0.1875 2 0.1250 + 0.2500

| 0.0834 (0.0833 |= 0.0001 = = 0.0001


iterasyonu durdur!

em
de
r

terasyon
admlar

X3
0

Alexander Craig
Aitken(1895-1967)

Balang deerleri

sn
o

A x = b,

1 1 0 x1 1

4 0 1 x2 2
=
, x=?
0 4 1 x3 0

1 1 4 x4 1

tla

x1 =

4
1

x ik

nn iyiletirilmi deeri

xik 2 , xik 1 , xik

ri.
co

adm sonunda bulunan

Parantez iinde koyu yazlm deerler AITKEN forml ile iyiletirilmi deerlerdir. Grld gibi yaknsama
hzlanm, 13 iterasyon yerine sadece 4 iterasyon yeterli olmutur.
AITKEN hzlandrcs, formln yaps gerei, en erken 3. adm sonunda uygulanabilir. Ancak, ilk admlarda
deerler ok kaba olduundan, byk denklem sistemlerinde 5.-10. admdan sonra uygulanmas daha uygun
olur. terasyonun son admlarnda da yarar salamaz, nk sadece son hanelerde ok kk deiiklikler
olmaktadr. Max | xik xik 1 | 10 olduunda AITKEN hzlandrcsnn devre d braklmas uygun olur.
AITKEN hzlandrcsnn tek sakncal yn, ardak iterasyon vektrnn bellekte tutulmas zorunluluudur.

__________________________________

A. C. AITKEN (1895 - 1967), Yeni Zelandal matematiki, nl forml 1926 da yaynlad.

CG (Conjugate Gradient) metodu1


A simetrik ve pozitif tanml, yani x A x > 0 olmak zere
T

A x=b

(7.4)

denklem sisteminin

w
.e

f ( x) =

1 T
x Ax x T b
2

(7.5)

fonksiyonunu minimum yapacak x zm aranr. f(x) in minimum olma koulu


f ( x)
f ( x) 1
= 0 dr:
= 2 A x b = 0 dan A x=b denklem sistemi olur.
x
x
2

Magnus R. HESTENES(1906-1991), Amerikal ve Eduard L. STIEFEL(1909-1978), svireli: 1952 ylnda yaynladlar.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

89

90

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

zme x0 balang vektr tahmin edilerek balanr. Genellikle x0 = 0 alnr. Toplam k


iterasyon admnda yle x1, x2, x3, , xk vektrleri belirlenir ki son bulunan xk vektr 7.5
ifadesini minimum yapar. Maksimum iterasyon says teorik olarak bilinmeyen says
kadardr: kn. Bu nedenle CG metodunu direkt metot olarak gren yazarlar da vardr.
Ancak, yuvarlama hatalar nedeniyle k>n olabilir.
CG Metodunun iterasyon admlar:

Balang vektr seilir: x0=0


Kabul edilebilir hata snr seilir.

ri.
co

zlecek denklem sistemi: A x=b

Hazrlk: r0=b, s1=b alnr (yardmc balang vektrleri).


1.adm:

2.adm:
T

s1 r 0

2 =

s 1 As 1

s2 r1

3 =

s 2 As 2

s3 r 2

k.adm:

tla

1 =

3.adm:

s 3 As 3

k =

s k r k 1
T

s k As k

x1 = x 0 + 1 s1

x 2 = x1 + 2 s 2

x3 = x 2 + 3 s3

r 1 = r 0 1 As 1

r 2 = r 1 2 As 2

x k = x k 1 + k s k

r 3 = r 2 3 As 3

r k = r k 1 k As k

1 =

r 2 r 2 ise durdur!

r 1 As 1

2 =

s 1 As 1

sn
o

r 1 r 2 ise durdur!

3 =

s 2 As 2

s3 = r 2 + 2 s2

r 3 As 3
T

s 3 As 3

s 4 = r 3 + 3 s3

em
de
r

s 2 = r 1 + 1 s1

Not:
Her admn formllerinde 4 kez grlen

As k arpm her admda bir kez yaplr.

s Tk As k deeri her admda bir kez hesaplanr.

Her admn formllerinde 2 kez grlen

rk

r k r k ise durdur!
T

r 2 As 2
T

r 3 r 3 ise durdur!

(kalan) hata vektrdr. Teorik olara

k =

r k As k
T

s k As k

s k +1 = r k + k s k

r k =0 olduunda iterasyon sona erer. Ancak, saysal hesaplarda tam

sfr genelde yakalanamaz, hatalarn karelerinin karekk kabul edilebilir hata snr altnda kalnca iterasyonu
durdurmak daha iyi bir yoldur:

r Tk r k . Dier bir seenek: r k nin elemanlarndan mutlak deerce en

by< olunca iterasyon durdurulur.

i k iin

ri

ve

rk

ortogonaldr,

r i r k = 0 olmaldr.
T

Bu koul yardmyla iterasyonun, yuvarlama hatalar

w
.e

nedeniyle, tehlikeye girip girmedii kontrol edilebilir.

rnek:

A x = b,

4
1

1 1 0 x1 1
4 0 1 x 2 2
=
, x =?
0 4 1 x 3 0

1 1 4 x 4 1

Balang vektr seilir: x0=[0 0 0 0]T alalm.


Kabul edilebilir hata snr seilir: =0.0001 olsun.
Hazrlk, yardmc vektrler: r0=[1 2 0 1]T,

s1=[1 2 0 1]T

Hesaplarda ondalk saydan sonra 4 hane yrtelim.


1. adm:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

90

91

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

s1 r 0
T
1

s As1

6
= 0.1875
32

0.1875
0.3750
,
x 1 = x 0 + 1 s1 =
0

0.1875
r 1 r 1 = 0.1875,
T

r 1 A s 1 = 1,
T

1 =

s1 A s 1 = 32

0.1250
0.1250

r 1 = r 0 1 A s1 =
0.3750

0.1250

ri.
co

0.1875 = 0.4330 > = 0.0001 olduundan iterasyona devam edilecek!

1 =

r As1
s A s1

1
= 0.0313,
32

0.0937
0.1876

s 2 = r 1 + 1 s1 =
0.3750

0.0937

sn
o

2. adm:

T
1
T
1

tla

s 1 r 0 = 6,

6
10
A s1 = ,
2

6

em
de
r

0.5622
0.5630
, sT As = 0.8438
sT2 r1 = 0.1875, As 2 =
2
2
1.6874

0.5622
0.1667
0.4167
T
s r
0.1875
,
= 0.2222, x 2 = x1 + 2 s 2 =
2 = T2 1 =
0.0833
s 2 As 2 0.8438

0.1667
r T2 r 2 0.,

0.0001
0.0001

r2 =
0.0001

0.0001

0 = 0 < = 0.0001 olduundan iterasyon durduruldu !

w
.e

0.1667
0.4167

zm: x =
0.0833

0.1667
Sadece 2 admda zm bulunmutur. Ayn rnek iin JACOBI 13, GAUSS-SEIDEL 7,
AITKEN hzlandrcl JACOBI 4 iterasyon adm gerektirmiti. CG metodunun dier iterasyon
metotlarna gre stnl bu kk rnek ile dahi grlmektedir. Ancak, CG metodunun
sadece simetrik ve pozitif tanml A zel durumu iin geerli olduunu hatrlatalm. Genel
olarak, GAUSS-SEIDEL metodu JACOBI metodundan, CG metodu da her ikisinden ok daha
abuk yaknsar. JACOBI metodu uygulamada hemen hi kullanlmaz.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

91

92

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

Not:
CG (Conjugate Gradient) iterasyon metodu 1952 ylnda M. R. HESTENES ve E. STIEFEL tarafndan
yaynland. Bak: Hestenes, M. L., Stiefel, E., 1952. Methods of Conjugate Gradients for Solving Linear
Systems.
J.
of
Research
of
the
National
Bureau
of
Standards
49
(6).
http://nvl.nist.gov/pub/nistpubs/jres/049/6/V49.N06.A08.pdf.

CG (Conjugate Gradient) iterasyon metodu sadece A katsaylar matrisi simetrik ve pozifif tanml sistemlerin
zmnde kullanlabilir. A x=b denklem sisteminde A simetrik deilse, AT A x= AT b dnm yaplarak CG
metodu AT A x= AT b sistemine uygulanabilir. nk AT A x= AT b sisteminde AT A katsaylar matrisi simetrik ve
pozitif tanmldr.

Eduard L. STIEFEL(1909-1978)

w
.e

em
de
r

Magnus R. HESTENES(1906-1991)

sn
o

tla

ri.
co

CG (Conjugate Gradient) iterasyon metodu 20. yzyln en iyi algoritmalarndan biri seilmitir. Bak:
http://www.cs.duke.edu/courses/fall06/cps258/references/topten.pdf
http://www.bilisimdergi.com/20-Yuzyilin-En-iyi-10-Algoritmasi-3-10.html

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

92

93

7. TERASYON YNTEMLER: JACOBI, GAUSS-SEIDEL, CG

terasyon yntemlerinin avantajlar

ri.
co

A x=b denklem sistemi direkt metodlar ile zlemeyecek kadar byk ise ve A seyrek bir matris ise
iterasyon yntemleri ile zlebilir. terasyon yntemleri ile zlebilecek denklem sisteminin bykl
gnmzde 1-2 milyara dayanmtr.
A seyrek matris ise ok az bellek gerektirir.
A seyrek matris ise ok az drt ilem, ok daha az hesap sresi gerektirir.
Optimizasyon gibi tekrarlanan problemlerin zmne uygundur. nk bir nceki zm bir sonraki
zmn balang vektr olarak alnabilir, zm ok abuk yaknsar.
terasyon metotlarnda A x=b denklem sisteminin A katsaylar matrisi deiiklie uramaz. Buna karn;
direkt metotlarda A nn elemanlar deiir, sfr elemanlar sfrdan farkl olurlar. Seyrek matrisler giderek dolu
matris olurlar.
terasyon metotlarnda yuvarlama hatalar direkt metotlara nazaran ok daha az sorun yaratr.
Birka iterasyon adm sonunda olduka yaklak bir ara zm oluur. Kabaca bir zmn yeterli olduu
problem trlerinde birka iterasyon adm yeterli olur. Direkt metotlarda ara zm bulmak mmkn deildir.
Tm ana bellekte depolanamayacak kadar byk denklem sistemlerinde A nn hard diskte depolanmas ve
zmn taksit-taksit yaplmas ok daha basittir.
terasyon yntemlerinin dezavantajlar

tla

Katsaylar matrisi tam dolu ise, yani seyrek deil ise, iterasyon metotlar kullanmak uygun olamaz (ok fazla
bellek, ok fazla ilem yk, biriken yuvarlama hatalar).

Kar taraf vektrnn iterasyon balamadan nce bilinmesi zorunludur.

Birden ok her kar taraf vektr iin itarasyonun tekrarlanmas gerekir.

terasyonun ka admda sona erecei, dolaysyla hesap sresi nceden kestirilemez.

sn
o

Baz zel durumlar hari, her denklem sisteminde iterasyonun yaknsayaca garantisi yoktur. zm
yaknsayabilirde, raksayabilirde. Ayn denklem sisteminin iin iterasyon metotlarndan biri yaknsarken bir
dieri raksayabilir. Ancak; katsaylar matrisi kesin diyagonal arlkl veya simetrik pozitif tanml ise
JACOBI ve GAUSS-SEIDEL metodu mutlaka yaknsar. CG metodu ise sadece simetrik ve pozitif tanml
matrisler iin daima yaknsar.

em
de
r

zmn yaknsamamas durumunda iterasyon, teorik olarak, sonsuza kadar devam eder. Bu nedenle
iterasyon says maksimum iterasyon says ile snrlandrlmak zorundadr. Maksimum iterasyon saysnn ne
olmas gerektiinin net bir cevab yoktur. ok kk tutulursa doru sonuca ulalamaz, ok byk tutulursa
gereksiz yere hesap sresi uzar.
terasyonun yaknsamamas durumunda sorunun kullanlan metottan m yoksa denklem sisteminin
yapsndan m kaynaklandn belirlemek zordur. rnein denklem sistemi hatal kurulmu ise, katsaylar
matrisinin determinant sfr ise zm yaknsamaz. terasyon metotlarnda determinant hesab mmkn
olmadndan hata kayna belirlenemez.
Hatrlatma:

Kesin diyagonal arlkl matris tanm iin bak: blm 1 , sayfa 15.
Simetrik pozitif tanml matris tanm iin bak : : blm 1, sayfa 15 ve blm 6 sayfa 78.

Hangi zm yntemi daha iyi?

w
.e

n bilinmeyenli A x=b dorusal denklem sisteminin zm iin hangi metot daha uygundur? Cevab olduka zor
bir sorudur bu! nk ok sayda etken vardr: Denklem sisteminin bykl, A nn yaps, zm sresi,
zmden beklenen hassasiyet, kullanlacak bilgisayarn zellikleri, paket program var m veya programlanacak
m? Bir fikir vermek zere aadaki yorumlar yapabiliriz:

Denklem sistemi kk ise direkt metotlardan (GAUSS, DOOLITTLE, CROUT, CHOLESKY) birini kullanmak
uygundur. Ancak kk nedir? Sorusu kar karmza. A tam dolu ise, gnmz bilgisayarlar iin n 10000
bilinmeyen kk saylabilir. A bant matris ise n 20000, bant ve simetrik ise n 40000 bilinmeyen kk
saylabilir.

Denklem sistemi byk ve A seyrek bir matris ise; iterasyon yntemi kullanlmak zorundadr. Ancak, saysz
denilecek kadar, az yada ok birbirinden farkl, iterasyon metodu vardr. En uygun iterasyon metodunun seimi
zordur.
Yuvarlama hatalarnn sorun yarataca sistemlerde iterasyon yntemleri uygun olur. A nn simetrik ve
pozitif tanml olduu biliniyorsa CG metodu en uygun iterasyonyon yntemidir.
terasyon yntemlerinden, elden geldiince, kanmak gerekir. Uygun bir iterasyon yntemi aramak yerine
direkt metotlar ile zmn yaplabilecei uygun bir bilgisayarn aranmas belki de daha doru bir yoldur.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

93

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

tla

Ders notlar 2014

sn
o

Ahmet TOPU

em
de
r

m=n

Kare matrisin tersi

a 11 a 12
a
21 a 22
.
.

a n1 a n2

... a 1n x 11
... a 2n x 21
... . .

... a nn x n1

x 12
x 22
.

x n2

Birim matris

... x 1n 1
...

... x 2n 1 ...
=
... . . . ... .

... x nn
... 1

A A-1=I

w
.e

Kare matris

8
TERS MATRS HESABI
GAUSS-JORDAN teknii

Wilhelm Jordan (1842-1899)

8. TERS MATRS HESABI

94

8. TERS MATRS HESABI


Blm 2 sayfa 27 de ters matrisin tanm, zellikleri ve adjoint matris yntemiyle saysal bir
1
hesap rnei verilmiti. A nxn matrisi ve tersi A nxn tanm gerei
1

A nxn A nxn = I nxn

(8.1)

bantsn salar. Ters matrisi x nxn = A nxn ile gsterirsek

A nxn x nxn = I nxn


A-1

a 11
a
21
.

a n1

a 12
a 22
.
a n2

... a 1n x 11
... a 2n x 21
... . .

... a nn x n1

x 12
x 22
.
x n2

... x 1n 1
...

... x 2n 1 ...
=
... . . . ... .

... x nn
... 1

(8.3)

tla

ri.
co

(8.2)

sn
o

ifadesinden hesaplanacak x matrisi A nn tersi olur. Bu ifade n kar tarafl ve n bilinmeyen


vektrl bir denklem sistemidir. A matrisi GAUSS, DOOLTTLE, CROUT veya CHOLESKY
metodlarndan biri ile gen arpanlarna ayrlarak x in her bir vektr hesaplanabilir. Ancak
bu tarz hesap yolu iyi deildir. nk hem A nn hem de tersi olan x in ayn anda bilgisayar
belleinde tutulmas gerekir. Gerekli bellek 2n2 dir.

em
de
r

Ters matrisin hesab iin GAUSS, DOOLTTLE, CROUT veya CHOLESKY metotlar yerine
GAUSS-JORDAN1 metodu kullanlr. GAUSS-JORDAN metodunda tm ilemler A nn zerinde
yaplr, ters matris A nn stne depolanr. Dolaysyla, dier metotlarn yars kadar, sadece
n2 bellek gerekir. Bu nedenle, dier metotlara nazaran daha ok ilem gerektirmesine
ramen, GAUSS-JORDAN metodu tercih edilir. Ters matris hesab iin iterasyon metotlar
uygun deildir, nk A seyrek veya bant matris olsa bile tersi daima tam dolu bir matristir.

GAUSS-JORDAN teknii ile ters matris hesab


GAUSS-JORDAN tekniine gre Anxn dzenli(tekil olmayan) matrisinin tersi birbirini izleyen
transformasyonlar ile hesaplanr. Anxn matrisi, her admda bir tane olmak zere, n admda
belirlenebilen T1, T2, , Tn transformasyon matrisleri ile soldan ardk arplarak birim
matrise dntrlr. nxn boyutlu transformasyon matrisleri yle seilirler ki

w
.e

Tn T2 T1 A=I

olur. Buradan, Ters matrisin tanm gerei


A-1=Tn T2 T1
olduu anlalr.

Transformasyon matrislerinin belirlenmesi:

A nxn

a 11 a 12
a
a 22
= 21
.
.

a n1 a n 2

... a 1n
... a 2n
... .

... a nn

verilmi olsun. T1, T2, , Tn transformasyon matrislerinin nasl hesaplanaca adm adm
aklanacaktr.
1

Wilhelm Jordan (1842 1899), Alman: 1887 de yaynland.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

94

8. TERS MATRS HESABI

95

0 0 ... 0

1 0 ... 0

,
0 1 ... 0

. . ... .

0 0 ... 1

1
0

B = T 1 A = 0

.
0

b12
b22

b13
b23

b32
.
bn 2

b33
.
bn 3

... b1n
... b2 n
... b3 n ,

... .
... bnn

(a11 0 )

ri.
co

1
a
11
a21
a11
T 1 = a31

a11
.
an1

a11

1. adm: A matrisinin 1. kolonunun elemanlar yardmyla oluturulan nxn boyutlu T1 matrisi


Anxn matrisi ile soldan arplarak B matrisine dntrlr:

Grld gibi, T1 yle seilmitir ki arpm sonras B=T1A matrisinin birinci kolonu birim
matrisin birinci kolonuna dnmtr. T1 in zellii nedeniyle B nin elemanlar

a1 j
a11

ve bij = a ij -

a i1
a1 j ,
a11

(i 1 )

tla

b1 j =

ile hesaplanmaktadr.

sn
o

Aklama: Bu formllerden anlalaca gibi, B nin 1. kolonunun hesaplanmas gerekmez. bij elemann
hesaplamak iin T1 matrisinin i. satrndaki tm elemanlarn A nn j. kolonundaki elemanlar ile arplp
toplanmas da gerekmez. T1 in i. satrndaki ilk eleman -a i1 /a 11 , A nn j. kolonundaki ilk elemanla arplr ve
bulunan deer aij ile toplanrsa bij bulunur. Gerekte nxn boyutlu olan T1 in, yaps incelendiinde, tamamnn
oluturulmasna gerek olmad, sadece 1. kolonunun bir vektr olarak hesaplanmasnn yeterli olduu anlalr.
Ayrca, B nin 1. kolonu sonraki hesaplarda kullanlmayaca iin, B=T1A hesaplandktan sonra T1 in 1. kolonu B
nin 1. kolonuna yazlarak saklanabilir. Bu aklamann amac, gereksiz drt ilemin nlenmesine yneliktir.

2. adm: B matrisinin elemanlar yardmyla T2 hesaplanr, B ile soldan arplr C matrisi

em
de
r

oluur:

b12

1 - b
22

1
0

b22
T2 =
b
0 - 32
b22

.
.

bn 2
0

b22

b2 j

ve cij = bij -

w
.e

c2 j =

0 ... 0

0 ... 0

,
1 ... 0

. ... .

0 0 1

b22

1
0

B = T 2 T 1 A = 0

.
0

bi 2
a1 j ,
b22

0 c13
1 c23
0 c33
.

0 cn 3

... c1n
... c2 n
... c3n ,

... .
... cnn

(b22 0 )

(i 2 )

n. adm: Bu admdan bir nceki admda hesapland varsaylan N=Tn-1 T2 T1A matrisinin
elemanlarndan Tn belirlenir ve N ile soldan arplrsa birim matris oluur.

Tn = .

n1n
nnn

n
1 ... 0 2 n
nnn
. ... .
. ,
nn 1

0 ... 1
nnn
1
0 ... 0

nnn
0 ... 0

1
0

I = T n ....T 2 T 1 A = .

0
0

0 0 ... 0
1 0 .. 0

. . ... . ,

0 0 1 0
0 0 0 1

(nnn 0 )

Bylece A y birim matrise dntren transformasyon matrisleri bulunmu olur. Tanm


gerei, A nn tersi
A-1=Tn T2 T1
arpmndan hesaplanr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

95

8. TERS MATRS HESABI

96

a11, b22, , nnn saylarna pivot eleman, bu elemanlarn bulunduu satr ve kolona pivot
satr ve pivot kolonu denir. Pivot kelimesi kilit, rol oynayan, ynlendiren olarak tercme

ri.
co

edilebilir. Pivot eleman hesabn kaderini belirler. nk, transformasyon matrislerinin


hesabnda geen pivot elemanlarn a110, b220, , nnn0 olmas gerekir, aksi durumda
hesaba devam edilemez. Pivot elemann sfr olmas halinde, rnein b22=0 ise, B matrisinin
2. satrnda pivot eleman aranr ve 2. kolon sonraki kolonlardan biri ile deitirilir, pivot
elemann sfrdan farkl olmas salanr ve hesaba devam edilir. Hangi kolonun hangi kolon
ile deitirildii bir yere kaydedilir. nk iki kolonun yerinin deitirilmesi sonuta
hesaplanan ters matrisin ayn nolu satrlarnn deitirilmesini gerektirir.
Sfrdan farkl pivot elemann bulunamamas durumunda; rnein T2 nin hesaplanmas
srasnda b22=b23==b2n=0 ise; kolon deitirmek bir ie yaramaz. Bunun anlam; A
matrisinin tekil, yani det A=0 olduu, A nn tersinin hesaplanamayaca, A-1 in tanmsz
olduudur.

sn
o

tla

Pivot elemann sfrdan farkl, fakat mutlak deerce ok kk olmas da nmerik sorun
yaratr. Transformasyon matrislerinin elemanlar pivot elemana blnerek hesaplandndan,
pivot elemann ok kk olmas blmn ok byk bir say olmasna, bununla
arplan/toplanan saylarn daha da bymesine ve yuvarlama hatalarna neden olur. Byk
matrislerde bu ilemler milyonlarca defa yapldndan, yuvarlama hatalar birike birike
sonucun yanl hesaplanmasna neden olur.
Yuvarlama hatalarn azaltmak iin her admda pivot aranr. Mutlak deerce en byk say
satrda aranr, bu say pivot olacak ekilde kolonlarn yeri deitirilir.

rnek:

em
de
r

2 1 4
A = 2 2 2, A 1 = ?
1 2 0

1. adm: T1 i oluturmadan nce 1. satrdaki mutlak deerce en byk say aranr. nc


kolondaki 4 says pivot adaydr. 1. kolon ile 3. kolona yer deitirilir, a11=4 pivot eleman
olur. Sonra T1 oluturularak A ile soldan arplr B matrisi hesaplanr. B nin 1. kolonu birim
matrisin birinci kolonuna dnr.
1. ve 3. kolonun
yerleri deitirildi!

w
.e

0 0

4
4 1 2
1 0.25 0.5
2
0.25 0 0

A = 2 2 2,
T1 =
1 0 = 0.5 1 0, B = T1 A = 0 1.5
1
4

0 2 1
0
0 1
2
1
0
0

0
1
4

2.adm: B nin 2. satrndaki mutlak deerce en byk say aranr. b22=1.5 pivot elemandr.
Kolon deitirilmesi gerekmez. T2 oluturulur B ile soldan arplr, C matrisi hesaplanr. C nin
2. kolonu birim matrisin ikinci kolonuna dnr.
0.25

1 - 1.5

1
T 2 = 0
1.5

0 1.5

0
1 - 0.166667 0
0 = 0 0.666667 0,

0 - 1.333333 1
1

1 0 0.333333
C = T 2 B = 0 1 0.666667
0 0 - 0.333333

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

96

8. TERS MATRS HESABI

97

3. adm: b33=-0.333333 pivot elemandr. T3 oluturulur, C ile soldan arplrsa I birim


matrisi oluur:

1 0 0
I = T 3 C = 0 1 0
0 0 1

-1

Ters matrisin hesab: A =T3 T2 T1 den hesaplanr:

0 0
1 1.5 1
2
1 0 = 1
2

4
3
2
0 1

1. ve 3. satrlarn
yerleri deimeli!

tla

A 1

0.333333
0.25 1

1 0 - 0.333333 1 - 1.5 0 4

2
0.666667
1
0
= T3 T 2 T1 = 0 0 0
- 0.333333
1.5

4
1
2

0
0 0 - 0.333333 0 1.5 1 4

1 0 1
0 1 2 ,

0 0 - 3

ri.
co

0.333333

1 0 - 0.333333

0.666667
=
T3 = 0 0 - 0.333333

0 0 - 0.333333

4
3
2

= 1
2
2
1 1.5 1
-1

em
de
r

Kontrol: A A =I olmal:

sn
o

1. ve 3. kolonun yerleri deitirildiinden 1. ve 3. satrn yerleri deitirilmelidir:

AA

4
3 1 0 0
2 1 4 2

= 2 2 2 1
2
2 = 0 1 0
1 2 0 1 1.5 1 0 0 1

Aklama: Teoriyi aklamak amacyla T1, T2, , Tn, A, B, C, , N gibi ok sayda matris gerekli olmakla
birlikte, programlama iin bu matrislerin hemen hibirine gerek yoktur. Tm transformasyon matrisleri iin
sadece n elemanl bir vektr, kolon deiimlerini saklamak iin n elemanl bir vektr ve nxn boyutlu A matrisi
yeterlidir. i. transformasyon sonras A nn i. vektrnn birim matrisin i. vektrne dnecei bilindiinden ve
i. kolon sonraki hesaplarda gerekli olmadndan, Ti nin i. kolonu A nn i. kolonuna depolanabilir. Tm ilemler A
matrisi zerinde yaplabilir, bellek harcanmam olur.

w
.e

Ters matris hesab fazla drt ilem( yaklak 6n3) gerektirir, zorunlu olmadka hesabndan kanlr. Zorunlu
durumda GAUSS-JORDAN teknii tercih edilir. nk tm dier yntemler iki kat daha fazla bellek gerektirir.
Ayrca, varsa, A nn bant ve simetrisinden yararlanlamaz; nk ters matris daima tam doludur.

Yukarda verilen yntemin i. admnda pivot eleman i. satrda aranmakta, gerekirse, kolonlara yer
deitirilmektedir. Buna satrda pivot arama denir. Satrda pivot arama yerine, i. kolonda da pivot aranabilir ve
gerekirse satrlara yer deitirilebilir. Buna kolonda pivot arama denir. Hatta, i. satr ve kolon ile n. satr ve
kolonun snrlad matris iinde pivot eleman aranarak, gerekirse hem satrlara ve hem de kolonlara yer
deitirilir. Buna da tam pivot arama denir.
Tam pivot arama kullanlrsa yuvarlama hatalar en aza indirgenir, ancak hesap sresi ok uzar, genelde tercih
edilmez.

Ters matris ile denklem sistemi zm


1
A x = b denklem sisteminin zm ters matris hesaplandktan sonra, teorik olarak, x = A b

arpmndan da bulunabilir. Ancak, ok fazla ilem gerektirdiinden ve

tam dolu

olduundan, bu zm yolu hi bir zaman tercih edilmez.


Nmerik hesaplarda, zorunlu olmadka, ters matris hesabndan kanlr!
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

97

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

Ahmet TOPU

tla

Ders notlar 2014

n>m

1
3 .3

5 .3
1

7 .4
1

1
6 .9
1 a 9.0

1 b 8.6
10.8
1

1
12.4
12.0
1

1
13.2

w
.e

em
de
r

4
6

10
12
Ax = b
14
16

18
20

22

8 10 12 14 16

2 4

y=0.52x+2.10

2 4

x
6

8 10 12 14 16 18 20 22 24

DENKLEM SAYISININ BLNMEYEN SAYISINDAN OK OLDUU


DENKLEM SSTEMLER: DENGELEME HESABI
En kk kareler metodu
QR arpanlara ayrma metodu

9. DENGELEME HESABI: EN KK KARELER METODU

99

9. DENKLEM SAYISININ BLNMEYEN SAYISINDAN OK OLDUU DENKLEM


SSTEMLER: DENGELEME HESABI

ri.
co

Denklem saysnn bilinmeyen saysndan ok olmas durumudur. Gzlem, lm ve deneye


dayal problemlerde ortaya kar. lmler hata ierir. Mesela jeodezik lmlerde; okuma
hatas, alet hatas, atmosferik koullar(n krlmas, hava basnc, scakl gibi) gerek
deerlerin belirlenmesini imknsz klar. lme ve deney yoluyla belirlenen veri hatalarn en
aza indirgemek iin gereinden ok lm yaplr ve bilinmeyen saysndan daha ok
denklem oluturulur. Kesin zm yoktur, zm yaklaktr ve minimum hata olacak
ekilde bulunmaya(dengelenmeye) allr.
A x b genel denklem sistemi n denklem ve m bilinmeyen ierir ve n>m dir:

a 12
a 22
.
a n2

... a 1m
x 1 b1
... a 2m
x
b
2 = 2
. .
... .
xm
bn
... a nm

3.1 6.6
0.58
2.9 4.2 x

rnek:
1 2.01
2. 7
5.8 x 2 4.43

2. 3
1. 8
3.39

(9.1)

tla

a 11
a
21
A x b,

.
a n1

sn
o

b kar taraf vektr hata(lme hatas) ierir. A kolon dzenlidir, yani rank A=m dir. Ancak,
denklemler uyumlu olmadndan, denklemlerin hepsini de tam olarak salayan x vektr
bulmak mmkn deildir. Elden geldiince iyi bir zm bulmaya allr. Elden geldiince
iyi bir zm nedir? x yle hesaplanmal ki denklem sisteminde yerine konulduunda, ki
denklemi salamayacaktr, oluacak h fark vektrnn
(9.2)

em
de
r

h= A x - b

elemanlarnn karelerinin toplam minimum olsun:


f(h)=hTh

min

(9.3)

Bu koulu salayacak farkl zm yntemleri vardr. Bunlardan ilki, En kk kareler


metodu,
LEGENDRE1 tarafndan 1806 ylnda yaynland. En kk kareler metodunu
GAUSSun 1794-1795 yllarnda gelitirdii fakat yaynlamadna inanlr. Metot LEGENDRE
tarafndan yaynlanmasna ramen onun adyla deil GAUSS ad ile anlr. Bir dier metot QR
arpanlara ayrma metodudur.

w
.e

En kk kareler metodu

9.3 koulu 9.2 de yerine konarak

f ( h) = h h = ( A x b) T ( A x b) = x A A x x A b b A x + b b
T

Bu ifade artk h nn deil x in fonksiyonudur.

f ( x) = x A A x 2 x A b + b b min
T

Minimum olma koulu

f ( x)
T
= 0 dr. A A simetrik ve kare bir matristir.
x

Adrien-Marie
Legendre(1752-1833)

f ( x)
T
T
= 2 A Ax 2 A b = 0
x

A Ax = A b
T

(9.4)

olur2.
1

Adrien-Marie Legendre (1752-1833), Fransz

Matris ifadelerin trevinin alnmas ile ilgili temel kurallar iin bak: Blm 2.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

99

9. DENGELEME HESABI: EN KK KARELER METODU

100

T
B = A A ve c = A b

(9.5)

ile ksaltlrsa

Bx = c

(9.6)

olur. Bu bantdan hesaplanan x minimum hata ierir. 9.4 ve karl olan 9.5 bantsna
T
en kk kareler metodunun normal denklemleri ad verilir. A A veya karl B simetrik,

ri.
co

pozitif tanml kare matristir, det B0 dr. 9.6 denklem sistemi CHOLESKY ile zlerek x
bulunur. Bu ekilde hesaplanan x minimum hata ierir ve 9.3 koulunu salar. Ancak 9.1
genel denklemini tam olarak salamaz, yani x elden geldiince iyi bir zmdr, hatalar
elden geldiince dengelenmitir.

rnek 1:

1
1000.3
1
1000.1

Ax b x
1
998

1
1000.15
olur. 3.4.5 ve 3.4.6 ya gre

1000.3
1000.1
T
= 3998.55
c = A b = [1 1 1 1]
998

1000.15

em
de
r

1
1
T
B = A A = [1 1 1 1] = 4
1

sn
o

tla

Bir altn kle 4 kez tartlyor ve 1000.3, 1000.1, 998, 1000.15 gram geliyor. Muhtemelen
hibiri doru deil. Klenin minimum hata ieren ktlesi ne kabul edilmelidir. Ktlesini x ile
gsterelim. Matris notasyonunda denklem sistemi

Minimum hata koulu:


B x = c 4x=3998.55 x=999.6375 gramdr (ortalama deer olduuna dikkat ediniz).

rnek 2:

noktasnda
noktasnda
noktasnda
noktasnda
noktasnda

durularak
durularak
durularak
durularak
durularak

h3

h23= -6.492 m
-2 .
41

3=

8. 0
53

4=

0m

h1

w
.e

1 ve 2 nolu nirengi noktalarnn ykseklikleri


bilinmektedir: h1=153.625 m, h2=168.177 m.
3 ve 4 noktalarnn yksekliklerini belirlemek
iin noktalarn ykseklik farklar aadaki gibi
llmtr:

1
1
2
2
3

h2=168.177 m

.65
h 14=5

=
h 24

2
2m
91
-8 .

2m

h1=153.625 m

1-3
1-4
2-3
2-4
3-4

ykseklik
ykseklik
ykseklik
ykseklik
ykseklik

fark
fark
fark
fark
fark

llm,h13=8.053 m
llm, h14=5.652 m
llm, h23=-6.492 m
llm, h24=-8.912 m
llm, h34=-2.410 m

3 ve 4 noktalarnn en az hata ieren h3 ve h4 yksekliklerini bulunuz?


Denklemler:
h1+h13= h3 153.625+8.053= h3

h3=161.678 m

h1+h14= h4 153.625+5.652= h4

h4=159.277 m

h2+h23= h3 168.177-6.492= h3

h3=161.685 m

h2+h24= h4 168.177-8.912= h4

h4=159.265 m

h3+h34= h4

h3- h4=- h34

h3- h4=-(-2.410)=2.410 m

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

100

9. DENGELEME HESABI: EN KK KARELER METODU

101

Bu denklemler matris notasyonunda yazlrsa


161.678
159 .277

161.685

159.265
2.410

h
3
A x b 1

h
1 4

1 1

161.678
159.277

325.773
1
1
1

T
161.685 =
c=A b

1 1
316.132
1
159.265
2.410

ri.
co

3 1
1
1
1

T
1
=
B=A A

,
1 1
1 3
1
1

1 1

Minimum hata koulu:

tla

h 161.681
3 1 h3 325.773
Bx = c
Cholesky x = 3 =
h =

m
h
1 3 4 316.132
4 159.271

bulunur.

sn
o

Hata vektrn ve hatalarn karelerinin toplamn bulalm:

em
de
r

0.003
1

161.678

1
159.277 0..006

161.681

h = A x b h = 1
161.685 = 0.004 ,

159.271

1
0.006

159.265

1 1
2.410 2.4869 10 14

h h = 0.000097
T

rnek 3:

yi ordinatlar deneysel olarak belirlenen 10 noktann


koordinatlar aadaki tabloda verilmitir.
Nokta no
xi
yi

2
6
5.3

3
8
7.4

4
10
6.9

5
12
9.0

6
14
8.6

7
16
10.8

8
18
12.4

9
20
12.0

10
22
13.2

Bu noktalar x-y dzleminde iaretlendiinde sadaki grafik


oluuyor. Noktalar neredeyse bir doru zerindeymi gibi
grnyor. Bu noktalar en iyi temsil edecek bir doru
uydurmak istiyoruz.

w
.e

1
4
3.3

x
0

2 4

8 10 12 14 16 18 20 22 24

Doru denklemi y=ax+b dir. En uygun a ve b saylarn belirlememiz gerekiyor. Tablodaki


koordinatlar bu denklemde yerine konarak bulanan 10 denklem ve matris notasyonundaki
karl:
4 1
3 .3
3.3=4a+b
6 1
5 .3

5.3=6a+b
8 1
7 .4
7.4=8a+b

6.9=10a+b
10 1
6 .9
12 1 a 9.0
9.0=12a+b
Ax b

8.6=14a+b
14 1 b 8.6
10.8=16a+b
16 1
10.8

12.4=18a+b
18 1
12.4
12=20a+b
20 1
12.0
13.2=22a+b

22 1
13.2
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

101

9. DENGELEME HESABI: EN KK KARELER METODU

102

Normal denklem ve zm:

2020 130
1328
T
T
B= A A=
, c= A b=

130 10
88.9

a0.52 ve b2.10 alnarak y=ax+b dorusunun


denklemi:

ri.
co

2020 130 a 1328


a 0.522121
Bx = c
=
Cholesky x = =

130 10 b 88.9
b 2.10242

8 10 12 14 16

Minimum hata koulu:

2 4

y=0.52x+2.10
olur. Bu doru sada grlen x-y dzleminde izilmitir.

h = A x b ,

tla

Hata vektrn ve hatalarn karelerinin toplamn 2. rnekteki yolla bulalm:


h h = 4.66762

Hatalarn karelerinin toplam olduka byktr. Noktalar bir doru


denklemi yerine, daha yksek dereceden bir eri ile modellenirse hatann
azalaca beklenir.

rnek 4:

sn
o

yi ordinatlar deneysel olarak belirlenen 6 noktann koordinatlar aadaki tabloda verilmitir.

4
10
5

5
12
3

6
14
2

Bu noktalar x-y dzleminde iaretlendiinde sadaki grafik


oluuyor. Noktalar bir eri gibi grnyor. Bu noktalar en iyi
temsil edecek bir eri uydurmak istiyoruz. Erinin derecesini
tam olarak bilemiyoruz, ama ikinci derece bir polinom
(parabol) gibi grnyor. Bir parabol uydurmaya alalm.

3
7
5

2
4
4

1
2
1

em
de
r

xi
yi

Nokta no

kinci derece polinomun(paraboln) genel denklemi y=a0+a1x+a2x2 dir. En uygun a0, a1, a2
saylarn bulmak istiyoruz. Tablodaki koordinatlar y=a0+a1x+a2x2 fonksiyonunda yerine
konarak:

4
1 2
1
1 4 16

a0 4
1 7 49 5
Ax b
a1
1 10 100 a 5
1 12 144 2 3


1 14 196
2

w
.e

1= a0+2a1+2 a2
4= a0+4a1+42a2
5=a0+7a1+72a2
5=a0+10a1+102a2
3=a0+12a1+122a2
2=a0+14a1+142a2

Normal denklem ve zm:

509
20
T

5887 , c = A b = 167
1637
71825

49
6

B = A A = 49 509
509 5887
T

Minimum hata koulu:

49
6

B x = c 49 509
509 5887

509 a 0 20
a 0 1.59881

5887 a1 = 167 Cholesky x = a1 = 1.67906


a 2 0.1035
71825 a 2 1637

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

102

9. DENGELEME HESABI: EN KK KARELER METODU

a0 -1.5988, a1 1.6791 ve a2=-0.1035 alnarak


y=a0+a1x+a2x2 erisinin denklemi:

103

2 4

y=-1.5988+1.6791x-0.1035x2

olur. Bu eri sada grlen x-y dzleminde izilmitir.

h h = 1.0013
T

rnek 5:

sn
o

Bir doru zerinde bulunan 4 noktann


aralarndaki mesafeler llmtr. Ayrca,
lm hatalarn azaltmak iin, 1 -3 aras
ve 1-4 aras da llmtr. llen
deerler sadaki ekilde gsterilmitir.
lm hatalarn dengeleyiniz.

tla

h = Ax b

ri.
co

Hata vektrn ve hatalarn karelerinin toplamn 2. rnekteki yolla bulalm:

lmler: L1=156 m, L2=229 m, L3=284 m, L4=384, L5=670 m

em
de
r

Ayrca, noktalar bir doru zerinde olduundan, u ek koullarn da salanmas gerekir:


L4-L1-L2=0
L5-L1-L2-L3=0
L5-L3-L4=0
Denklem sistemi ve zm:

2
1 1 1
3
2
3
1 1 1

T
1
1
3
1 2 c = A b =

3 1
1 1 1
1 1 2 1 3

156
229

284

384
670

w
.e

156

L 229

1 284
1

L2
1

L 384 B = AT A =
Ax b
3

1 670

L4

1
1 1
L 0
5
1 1 1
1 0

1 1 1

Minimum hata koulu:


2
1 1 1 L1 156
L1 155.914
3
L 228.914
2
L 229
3
1
1
1

Bx = c 1
1
3
1 2 L3 = 284 Cholesky x = L3 = 284.514 metre

3 1 L4 384
L4 384.600
1 1 1
L5 669.486
1 1 2 1 3 L5 670

Hata vektrn ve hatalarn karelerinin toplamn 2. rnekteki yolla bulalm:


h = A x b h h = 1.11429
T

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

103

9. DENGELEME HESABI: EN KK KARELER METODU

104

rnek 6:

llen deerler:
x1=75 kg.
x2=100 kg.
x3=50 kg.
x4=178 kg.
x5=122 kg.
x6=156 kg.
x7=227 kg.

Denklem sistemi ve zm:

sn
o

tla

Ayrca, u ek koullarn da salanmas gerekir:


x4 - x1 - x2=0
x5 - x1 - x3=0
x6 - x2 - x3=0
x7 - x1 - x2 - x3=0

ri.
co

kii ayn teraziyi kullanarak tartlyorlar. Her biri nce tek tek tartlyor, 75, 100, 50 kg
geliyorlar. Sonra 1. ve 2. kii beraber tartlyor, 178 kg geliyorlar. Sonra 1. ve 3. kii
beraber tartlyor, 122 kg geliyorlar. Sonra 2. ve 3. kii beraber tartlyor, 156 kg geliyorlar.
Son olarak birden tartlyor ve 227 kg geliyorlar. Her birinin ktlesi nedir?

em
de
r

75
1

100
1

x1 50
2 2 1 1 0 1
1
4
75

100
1
178
4
2
1
0
1
1
x

x3 122
2
50
2 4 0 1 1 1
1

T
T
Ax b
1 x4 156 B = A A 1 1 0
2 0
0
0 c = A b 178

1 0 1 0
122
2 0
0
1 x5 227

x
1
1
1
0
0
1
1
0
0
2
0

156

x 0
1
1 1 1 0
227
0
0
2
1
1

7
0

1
1 1

1
0
1 1 1

Minimum hata koulu:

w
.e

2
2 1 1 0 1 x1
x1 74.3333
4
75
x 102.3330
2
x
100

4
2
1
0
1
1
2

x3 50.3333
2
50
2
4 0 1 1 1 x3

B x = c 1 1 0
2 0
0
0 x4 = 178 Cholesky x = x4 = 177.3330 kg
x5 123.3330
1 0 1 0
122
2 0
0 x5

0
2 0 x6
x6 154.3330
0 1 1 0
156
x 227.000
1 1 1 0
227
0
0
2 x7

1. kii 74 kg, 2. kii=102 kg, 3. kii=50 kg.


Hata vektrn ve hatalarn karelerinin toplamn 2. rnekteki yolla bulalm:
h = A x b h h = 16.0
T

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

104

9. DENGELEME HESABI: EN KK KARELER METODU

105

rnek 7:

Bir genin alar = 410 , = 113 0 , = 27 0 olarak llmtr.


Dengelenmi alar bulunuz.

= 180 ( + ) = 27 + = 153

ri.
co

olmaldr. Bu durumda problemin iki bilinmeyeni vardr: ve

Alar birbirinden bamsz deildir. asn dierleri cinsinden yazarsak

Denklemler ve zm:

= 410
= 113 0

tla

+ = 153 0

Minimum hata koulu:

sn
o

1
41

2 1
194
T
T

A x b 1 113 B = A A
, c = A b 266
1
2

1 1 153

2 1 194
40.6667
Bx = c
=
Cholesky x = =

1 2 266
112 .667

em
de
r

Dengelenmi alar:

= 40.66671 0

= 112 .6667 0

= 180 ( + ) = 180 40.6667 112 .6667 = 26.6666 0


Hata vektrn ve hatalarn karelerinin toplamn bulalm:
h h = 0.333333
T

w
.e

1
41 0.333333
40.6667

h = A x b h = 1

113 = 0.333333 ,
112
.
667

153 0.333333
1 1

NOT:
Uygulamada genellikle A nxm matrisinin satr says ok fazla (n ok byk), buna karn kolon says azdr (m
kk).
T
A A veya karl olan B matrisinin elemanlarnn bazlar ok byk, bazlar da ok kk olabilmektedir

(4.rnee baknz). Bu tr matrisler tekile yakndr, nmerik zorluk yaratr. Denklem sisteminin zmnde
yuvarlama hatalar fazla olur, hatta zm bulunamayabilir. Dolaysyla, en kk kareler metodunun
istikrarsz(instabil) olduu sylenebilir.

QR arpanlara ayrma metodu1


Yukardaki nedenlerle dengeleme hesabnda En kk kareler metodu yerine QR arpanlara ayrma
metodu tercih edilir. QR arpanlara ayrma metodu A nxm matrisini, Q ortogonal matris ve R
tekil olmayan st gen matris olmak zere

A = QR
1

1961 ylnda, birbirinden bamsz olarak, ngiliz John G. F. Francis(1934-) ve Rus V. N. Kublanovskaya(1920- tarafndan
gelitirildi. 20. yzyln en iyi 10 algoritmasndan biri seildi. Bak: http://amath.colorado.edu/resources/archive/topten.pdf
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

105

9. DENGELEME HESABI: EN KK KARELER METODU

106

eklinde apanlarna ayrr. Q ortogonal matrisi Gram-Schmidt, Householder veya givens

A matrisinden hesaplanr. Q ortogonal, yani

ortogonalletirme metotlarndan biri ile

Q Q = I , olduundan A x b dengeleme problemi


T

Ax b Q R x b Q Q R x = Q b I R x = Q b R x = Q b
T

ri.
co

olur. R st gen matrisinin tersi tanml olduundan, x bilinmeyenler vektr geriye doru
hesap ile veya teorik olarak

x=R Q b
T

ile hesaplanr.

tla

lem says fazla olmasna ramen, QR metodu istikrarl(stabil) ve programlanmas ok


basit bir metottur.
Bu metodun teorik detaylar iin bak: http://tutorial.math.lamar.edu/Classes/LinAlg/QRDecomposition.aspx

w
.e

em
de
r

sn
o

Bu blmn programlar iin bak: Blm 20

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

106

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

tla

Ders notlar 2014

sn
o

Ahmet TOPU

em
de
r

n<m

Katsaylar matrisi

w
.e

a11
a
21
.

a n1

a12
a 22
.

a n1

x1
. ... a1m 0
x2
. ... a 2 m 0
. = Ax = 0
. ...
. .
.

. ... a nm 0
x m

Bilinmeyenler
Kar taraf

10
GENEL DORUSAL DENKLEM SSTEMLER:
Denklem says bilinmeyen saysndan az olan homojen ve
inhomojen denklem sistemleri

10. GENEL DORUSAL DENKLEM SSTEMLER

108

10. GENEL DORUSAL DENKLEM SSTEMLER

ri.
co

Anxm xm =bn genel denklem sisteminin n=m durumu iin, zm yntemleri blm 4-7 de
verilmiti. n>m, denklem saysnn bilinmeyen saysndan ok olmas, durumu da blm 9 da
ele alnmt. Bu blmde n<m, denklem saysnn bilinmeyen saysndan az olmas, durumu
ele alnacaktr. Uygulamada nadiren karlalan bu tr denklem sistemlerinde kar taraf
vektrnn sfr olmas veya sfrdan farkl olmas gibi iki farkl durum sz konusu olur. bn =
0 ise homojen denklem sistemi, bn 0 ise inhomojen denklem sistemi ad verilir.

Homojen denklem sistemi

Kar taraf vektr sfr olan denklem sistemlerine homojen denklem sistemi denir.
A x = 0 homojen denklem sistemi n denklem ve m bilinmeyen ierir ve n<m dir:

a 22
.
a n1

x1
. ... a1m 0
x2
. ... a 2 m 0
. =
. ... . .
.

. ... a nm 0
x m

x1

3 7 4 4 2 x2 0
rnek:
9 1 0 x3 = 0
2 3

6
6 6 3 3 x4 0
x5

tla

a12

(10.1)

sn
o

a11
a
A x = 0, 21
.

a n1

Katsaylar matrisi A satr dzenlidir, yani satrlar dorusal baml deildir, rank A=n dir.
n<m olduundan A nn d=m-n kolonu dorusal bamldr. Bu tanma uygun homojen
denklem sistemleri ile teknik dallarda, mesela yap statii kuvvet metodunda, karlalr.

em
de
r

x=0 vektr 10.1 homojen denklem sisteminin bir zmdr, 10.1 i salar. x=0 zmne
trivial(nemsiz, deersiz) zm denir ve uygulama asndan hibir nem tamaz. nemli
olan 10.1 denklemini salayan x 0 zm bulmaktr. A x = 0 sistemi

[a 0

x
a1 ] 0 = 0
x1

eklinde alt matrislere blnm olsun. Burada a0 nxn ve a1 nxd boyutlu alt matrislerdir. Bu
alt matrisler yle oluturulmu olsun: A nn m kolonundan n tane dorusal bamsz
olanlar belirlenir, gerekirse kolonlara yer deitirilir, bir araya toplanr a0 oluturulur. Geriye
kalan d=m-n kolon da bir araya toplanarak a1 oluturulur. a0 alt matrisi nxn kare matristir,
1
hem satrlar hem de kolonlar dorusal bamsz olduundan tekil deildir, yani tersi, a 0 ,

w
.e

(10.2)

vardr. 10.2 den

a 0 x 0 + a 1 x1 = 0
1

x 0 = a 0 a 1 x 1

(10.3)
(10.4)

yazlabilir. 10.4 bants 10.3 de yerine konursa


1

a 0 a 0 a 1 x 1 + a 1 x 1 = a 1 x 1 + a 1 x 1 = 0

(10.5)

I (birim matris)

Bu son bantdan u anlalr: x1 vektr ne olursa olsun 10.5 daima salanr. O halde x10
1
ve tamamen keyfi bir vektr seilir ve x 0 = a 0 a 1 x 1 olduu dikkate alnrsa

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

108

10. GENEL DORUSAL DENKLEM SSTEMLER

x 0 a 1 a x
x = = 0 1 1
x1
x1

109

(10.6)

ri.
co

olur. Bu genel zm 10.2 denklem sistemini salar fakat 10.1 genel homojen denklem
sistemini salamaz.
nk 10.2 bants oluturulurken A nn kolonlarna yer
deitirilmitir. Kolonlarn yerinin deitirilmesi bilinmeyenlerin srasnn deitirildii
anlamndadr. 10.6 zmnn 10.1 bantsn salamas iin, 10.6 bants hesaplandktan
sonra, x vektrnn de ayn nolu satrlarnn yerleri deitirilmelidir.
10.6 zmne temel zm ad verilir. x1 vektr tamamen keyfi seilebildiinden temel
zmn herhangi bir kat da zmdr. c herhangi bir sabit olmak zere:

a 1 a x
x
x = c 0 = c 0 1 1
x1
x1

(10.7)

a 1 a x
1
a 1 ] c 0 1 1 = 0 c a 0 a 0 a 1 x 1 + c a 1 x 1 = c a 1 x 1 + c a 1 x 1 = 0
x

sn
o

[ a0

tla

vektrnn 10.2 ifadesini

salad grlr. c sonsuz farkl deer alabileceinden, denklem sisteminin sonsuz zm


olduu anlalr.

em
de
r

Genelletirilirse:

n<m ve d=m-n dorusal baml kolonu olan homojen denklem sisteminin d temel zm vardr. Temel
zmlerin herhangi bir kat veya temel zmlerin herhangi bir birleimi de zmdr, yani sonsuz zm
vardr.
Herhangi keyfi bir deer alabildiinden x1 e serbest deiken denir. x0 ise x1 e bamldr.

Temel zmlerin belirlenmesi

w
.e

zm iin basit GAUSS, GAUSS-JORDAN veya DOOLITLE metodu kullanlabilir. zme


balamadan nce A matrisinin hangi kolonlarnn dorusal bamsz olduu bilinmediinden
a0 alt marisi dorudan oluturulamaz. Bu i, rnein basit GAUSS indirgeme metodu ile
zm aranyorsa, yle yaplr: ndirgeme, satrda pivot arama ve gerekirse kolonlara yer
deitirme ile yaplr. ndirgemenin i. admnda pivot eleman bulunamazsa i. kolon sonraki
i+1., i+2.,, m. kolonlardan biri ile, pivot eleman sfrdan farkl olacak ekilde, deitirilir ve
indirgemeye devam edilir. n-1 adm sonra denklem sistemi aadaki ematik forma
dnr:

Burada U indirgeme sonucu a0 n st gene dnen ksmdr ve a0 n alt geni


sfrlanmtr. 1 ise a1 in deimi eklidir. x1 herhangi bir keyfi deer alabilecei iin x10
seilerek 1 x1 vektr kar tarafa atlabilir. Bu aamada denklem sistemi katsaylar matrisi
st gen olan normal bir denklem sistemine dnm olur. Bilinmeyen sadece x0
vektrdr. Yukar doru hesap ile x0 belirlenir. Aadaki saysal rnekler zmn
kavranmasn salayacaktr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

109

10. GENEL DORUSAL DENKLEM SSTEMLER

110

rnek 1:

Basit GAUSS indirgeme metodu ile:


2.adm

pivot

x0

ri.
co

1. adm:

x1
1 3 5 4 0
2 3 4 2 x 2 = 0 bantsn salayan ve sfrdan farkl x vektrn bulunuz.

x
3 2 3 2 3 0
x 4

pivot

tla

x1
1 3 5 4 0
0 3 6 6 x 2 = 0

x
0 0 2 0 3 0
x4

x
4 1 0
1 3 5
x
0 3 6
6 2 = 0

x
0 7 12 14 3 0
x4

x1

sn
o

4. kolon nceki kolona dorusal bamldr, x0=[x1 x2 x3]T ve x1=x4 dr. x4 iin herhangi
bir(sfrdan farkl) keyfi bir deer seilebilir. x1=x4=1 seilir ve yerine konursa:

x1
x1 = ( 4 (5) 0 3(2)) / 1 = 2
1 3 5 4 0 1 3 5 x1 4
0 3 6 6 x 2 = 0 0 3 6 x = 6 x = (6 6 0) /(3) = 2
2

x
2
3
x
0 0 2 0 0 0 0 2 x 3 0
3 = 0 /( 2) = 0
1
x0

em
de
r

-1 x1

x1 2
x1 2
x 2
x
x 0 = x 2 = 2, x 1 = [x 4 ] = [1] x = 0 = 2 = temel zm bulunur. Bu temel
x 1 x3 0
x 3 0

x4 1
zm denklem sisteminde yerine konarak doruluu kantlanabilir:

Yorum:
rnek denklem sisteminde d=m-n=4-3=1 dorusal baml kolon olduundan sadece tek bir temel zm
bulunmutur. Bu temel zmn herhangi bir c kat da zm olacandan sonsuz zm vardr.

w
.e

2
1 3 5 4 0
2 3 4 2 2 = 0

0
3 2 3 2 0
1

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

110

10. GENEL DORUSAL DENKLEM SSTEMLER

111

rnek 2:

x1

1 3 5 4 1 x 2 0
2 6 4 2 1 = 0, x = ?

x 3
3 9 3 2 1 x 4 0
x 5

ri.
co

1.adm:

x1
4
1 x 2 0
1 3 5
0 0 6
6 1 x 3 = 0


0 0 12 14 2 x 4 0
x 5

tla

pivot

2.adm:
Pivot=0, kolon deitirilecek

sn
o

x1
x1
x1

1 x 2 0 1 1 5 4
3 x 5 0 1 1 5 4 3 x 5 0
1 3 5 4
0 0 6 6 1 x = 0 0 1 6
6 0 x 3 = 0 0 1 6 6 0 x 3 = 0

3


0 0 12 14 2 x 4 0 0 2 12 14 0 x 4 0 0 0
0 2 0 x 4 0
x 5
x 2
x 2

em
de
r

3.adm:

x0

Pivot=0, kolon deitirilecek

x1
x1

4 5 3 x5 0
1 1 5 4 3 x5 0 1 1
0 1 6 6 0 x = 0 0 1 6 6 0 x = 0

3
4
0 2 0 x4 0 0 0 2 0 0 x3 0
0 0
x2
x2
U

x1

w
.e

4. ve 5. kolon nceki kolona dorusal bamldr, x0=[x1 x5 x4]T ve x1=[x3 x2 ] dr.


Dorusal baml kolon says d=m-n=5-3=2 olduundan 2 temel zm vardr. x1 iin
herhangi sfrdan farkl keyfi bir deer

x 1
x 0
x 1 = 3 = ve x1 = 3 = seilerek 2 temel zm bulunur.
x 2 0
x 2 1
1.temel zm, x1=[1 0]T iin:
x0

x0

x1
x1 = (5 4 0 1 6) / 1 = 1
4 5 3 x5 0 1 1
4 x1 5
1 1

0 1 6 6 0 x = 0 0 1 6 x = 6 x = ( 6 (6) 0) /( 1) = 6
5

4
5
x4 = 0 /(2) = 0
0 0 2 0 0 1 0 0 0 2 x4 0
0
U

U
x1

-1 x1

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

111

10. GENEL DORUSAL DENKLEM SSTEMLER

1. temel zm

Kolon deiikliinin
karl olarak satrlara yer
deitirilir

x1 1
x 0
2
x = x3 = 1

x4 0
x 5 6

ri.
co

x1 1
x 6
5
x0
x = = x4 = 0
x1
x3 1
x2 0

112

2.temel zm, x1=[0 1]T iin:


x0
x0

x1

Kolon deiikliinin
karl olarak satrlara yer
deitirilir

x1 3
x 1
2
x = x3 = 0

x4 0
x 5 0

2. temel zm

em
de
r

x1 3
x 0
5
x

x = 0 = x4 = 0
x1 x 0
3
x 2 1

-1 x1

sn
o

tla

x1
x1 = (3 4 0 1 0) / 1 = 3
4 5 3 x 5 0 1 1
4 x1 3
1 1

0 1 6 6 0 x = 0 0 1 6 x = 0 x = (0 (6) 0) /( 1) = 0
5

4
5
x
0 0 2 0 0 0 0 0 0 2 x 4 0
4 = 0 /( 2) = 0
1

Her iki temel zm homojen denklem sistemini salar:

w
.e

1 3

1 0 0
1 3 5 4 1 0
2 6 4 2 1 1
0 = 0 0

3 9 3 2 1 0
0 0 0
6
0
1. temel zm

2. temel zm

Temel zmlerin herhangi keyfi bir birleimi de homojen denklemi salar. Mesela
toplamlar:

4

1 3 5 4 1 1 0
2 6 4 2 1 1 = 0


3 9 3 2 1 0 0
6
1. ve 2. temel
zmn toplam

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

112

10. GENEL DORUSAL DENKLEM SSTEMLER

113

zel uygulama: zostatik sistemin ve birim yklemelere ait i kuvvetlerin otomatik hesab

ri.
co

Yap statii kuvvet metodunda temel ilke, izostatik bir temel sistemin seilmesi, hiperstatik
bilinmeyenlerin birim ykle yklenmesi ve bu yklemelerden oluan i kuvvetlerin hesabdr.
zostatik sistemde d yk sfrdr. Bu u anlama gelir: Sistemin denge denklemlerinde kar
taraf vektr sfrdr(yk yok!), yani denklem sistemi homojen bir denklem sistemidir.
zostatik bilinmeyenler 1 (birim yk) seilir. Bu da u anlama gelir, izostatik bilinmeyenler
serbest deikendir. O halde, izostatik bilinmeyenler homojen denklem sisteminde karmza
kan serbest deikenler ile ayn anlamdadr ve temel zmler de birim yklemelerden
oluan i kuvvetlerdir. Yukarda aklanan homojen denklem sistemi zmnde serbest
deikenler kendiliinden ortaya kt iin, bu zm metodu herhangi bir hiperstatik
sistemin izostatik sisteminin otomatik seimi ve birim yklemelere ait i kuvvetlerin
hesabnn da otomatik belirlenmesinde kullanlabilir. Aadaki basit rnek konuya aklk
getirecektir.

tla

rnek 3:

sn
o

Aada verilen kafes sistemin iten hiperstatiklik derecesi 1 dir (2 veya 4 nolu ubuk
olmasayd 1 ve 2 nolu dmn denge denklemleri ile tm ubuk kuvvetleri
hesaplanabilirdi). Homojen denklem sistemi zm kullanlarak izostatik sistemin seimi ve
birim yklemeden oluan i kuvvetlerin hesab otomatik olarak yaplacaktr.

em
de
r

1 noktasnda denge:

2 noktasnda denge:

Cos 45=0.7071
S1+0.7071S2=0
0.7071S2+S3=0

0.7071S4+ S5=0
S3+0.7071S4 =10

Matris notasyonunda sistemin denge denklemi:

ubuk kuvvetleri Bilinmeyenler

Denge matrisi

w
.e

1 0.7071
0 0.7071
AS = P,
0
0

0
0

S1
0 0
S2
1
0
0 0
S 3 =
0 0.7071 1 0
S4

1 0.7071 0 10
S 5
0

D yk vektr

zostatik sistemin denge denklemi(d yk yok):

1 0.7071
0 0.7071
AS = 0,
0
0

0
0

S1
0 0
S2
1
0
0 0
S3 =
0 0.7071 1 0
S4

1 0.7071 0 0
S 5
0

Homojen denklem sistemi

Homojen denklem sisteminin zm: zm iin basit GAUSS indirgeme metodu uygulanacaktr.
1.ve 2.admlar: 1 ve 2 kolonun diyagonali altndaki saylar kendiliinden sfr olduundan bu
admlarda denklem sistemi deimez.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

113

10. GENEL DORUSAL DENKLEM SSTEMLER

S1
0 0 1 0.7071
S2
1
0
0 0 0 0.7071
S 3 =

0 0.7071 1 0 0
0
S 4
1 0.7071 0
0
0
0
S 5
0

S1
0 0
S2
0
0
1 0
S 5 =
1 0.7071 0 0
S4

0 0.7071 1 0
S 3
0

ri.
co

1 0.7071
0 0.7071

0
0

0
0

x0

Pivot=0, kolon deitirilecek

3.adm:

114

x1=S3Hiperstatik bilinmeyen

S3 serbest deikenHiperstatik bilinmeyen olarak karmza kmtr. 3 nolu ubuk kesilmitir.


S3 serbet deikenini=1 seelimbirim ykleme:
3

tla

1m

S
0 1 0
S
0
0
1 2 0
S5 =
1 0.7071 0 0
S

0 0.7071 1 4 0
1
0

em
de
r

S
0
0
0 1 0 1 0.7071
S
0
0
1 2 0 0 0.7071
S =

1 0.7071 0 5 0 0
0
S 4
0 0.7071 1
0
0
0
1
1

S3=1 (birim ykleme)

1 0.7071
0 0.7071

0
0

0
0

S3=1 (birim ykleme)

S3=1

sn
o

1 0.7071
0 0.7071

0
0

0
0

5
1m

0
0 S1 0
0
0 S 2 1
=
1 0.7071 S 5 0

0 0.7071 S 4 1

S3=1 (birim ykleme)

-1S3=-1 1

S 1 = ( 0 .7071 ( 1.4142 )/ 1 = 1.0 kN


S 2 = 1/ 0.7071 = 1.4142 kN

S 5 = ( 0 0.7071 ( 1.4142 )/ 1 = 1.0 kN

S3=1
2
4

-1
.4
14
2

Homojen denklem sisteminin zm birim


yklemeden izostatik sistemde oluan i kuvvetler

1m

S1 1.0
S 1.4142
2

S = S 3 = 1.0

S 4 1.4142
S 5 1.0

1.0

42

S 3 = 1.0 kN (seilmi serbest deiken birim ykleme)

1
.4
-1

w
.e

S 4 = 1/ 0.7071 = 1.4142 kN

1.0
5

1m

NOT:
A x=0 homojen denklem sisteminin d=m-n adet temel zm olduu yukarda aklanmt. Bu temel
zmlerden oluan d vektrl x matrisine A nn ekirdei (ng.: Kernel veya Nullspace) denir.
A nn ekirdei x, GAUSS, DOOLITLE, GAUSS-JORDAN veya SVD (Singular value decomposition) metotlar ile
belirlenir. Byk denklem sistemlerinde SVD metodu tercih edilir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

114

10. GENEL DORUSAL DENKLEM SSTEMLER

115

nhomojen denklem sistemi


Kar taraf vektr sfrdan farkl olan denklem sistemlerine inhomojen denklem sistemi ad
verilir. A x = b homojen denklem sistemi n denklem ve m bilinmeyen ierir ve n<m dir:

a 22
.
a n1

x1

3 7 4 4 2 x 2 2
rnek:

9 1 0 x3 = 10
2 3

6
6 6 3 3 x 4 3
x5

x1
. ... a1m b1
x2
. ... a 2 m b2
. =
. ... . .
.

. ... a nm bn
x m

a12

(10.8)

ri.
co

a11
a
A x = b 21
.

a n1

[ a0

tla

Katsaylar matrisi A satr dzenlidir, satrlar dorusal baml deildir, rank A=n dir. n<m
olduundan A nn d=m-n kolonu dorusal bamldr. A x = b sistemi A nn kolonlarna yer
deitirilerek

x
a1 ] 0 = b
x1

(10.9)

sn
o

eklinde yazlabilir. Burada a0 dzenli bir matristir, det a00 dr, tersi vardr:

a 0 x 0 + a1 x1 = b
1

x 0 = a 0 (b a1 x1 )

em
de
r

olur. x1 keyfi deerler alabilen serbest deikenlerin vektrdr. Genel zm

a 01 (b a1 x1 )
x0 =

x1

(10.10)

olur.

rnek 4:

w
.e

rnek 3 de verilen kafes sitemin izostatik sisteminde d ykten oluan i kuvvetleri hesaplayalm.
Hiperstatik sistemin denklem sistemi

1 0.7071
0 0.7071
AS = P,
0
0

0
0

S1
0 0
S2
1
0
0 0
S 3 =
0 0.7071 1 0
S4

1 0.7071 0 10
S 5
0

D yk

idi. Bu denklem sistemi basit GAUSS ile indirgenirse

1 0.7071
0 0.7071

0
0

0
0
U

S1
0 0
S2
0
0
1 0
S 5 =
1 0.7071 0 0
S4

0 0.7071 1 10
S 3
0

x1=S3 Hiperstatik bilinmeyen

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

115

10. GENEL DORUSAL DENKLEM SSTEMLER

116

S3 serbest deikenHiperstatik bilinmeyen olarak karmza kmtr. 3 nolu ubuk kesilmitir.


zostatik sistemde d yk varken birim ykleme yoktur. S3 serbet deikeni=0 seilmelidir:

S
0 1 0
S
0
0
1 2 0
S 5 =
1 0.7071 0 0
S

0 0.7071 1 4 10
0

S3=0
Birim yk yok!

S3=0
2

S3=0 (birim ykleme yok)

ri.
co

1 0.7071
0 0.7071

0
0

0
0

1m

10 kN

Son kolonun 0 ile arplp kar tarafa atld dnlrse:

S
0 1 0 1 0.7071
S
0
0
1 2 0 0 0.7071
S 5 =

1 0.7071 0 0 0
0
S 4
0 0.7071 1
10
0
0
0
0

S1 0
0
0 S 2 0
=
1 0.7071 S 5 0

0 0.7071 S 4 10
0

tla

Yukar doru hesap ile:

S1 = 0

S3=0 (birim ykleme yok!)

em
de
r

S2 = 0

sn
o

1 0.7071
0 0.7071

0
0

0
0

S 5 = (0 0.7071 14 .142 ) / 1 = 10.0 kN


S 4 = 10 / 0.7071 = 14 .142 kN

S 3 = 0 (seilmi olan serbest deiken)

1m
4

0.
0

w
.e

S3=0

-10.0
5

1m
10.0 kN

nhomojen denklem sisteminin zm D


ykten izostatik sistemde oluan i kuvvetler

4
.1
14

S1 0
S 0
2

S = S3 = 0

S 4 14.142
S 5 10

0.0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

116

10. GENEL DORUSAL DENKLEM SSTEMLER

117

Kare katsayl homojen ve inhomojen denklem sistemi


a)Homojen denklem sistemi:

a12
a 22
.
an2

... a1n x1 0
... a 2 n x 2 0
=
... . . .

... a nn x n 0

ri.
co

a11
a
A x = 0 21
.

a n1

Sayfa 93 de denklem says bilinmeyen saysndan az, n<m olan homojen denklem
sisteminin zm tartlmt. Uygulamada denklem says bilinmeyen saysna eit, n=m
olan homojen denklem sistemleri ile dinamik ve stabilete problemlerinde karlalr ve ok
daha byk nem tar. A x = 0 homojen denklem sistemi n denklem ve n bilinmeyen ierir:

1 2 1 x 1 0
3 x 2 = 0

1 3 2 x 3 0

rnek: 1 4

(10.11)

tla

Katsaylar matrisi A kare matristir. zm iin iki farkl durum vardr: det A0 ve det A=0
durumu.
det A0 durumu: A nn tersinin tanml olduu anlamndadr. A x=0 homojen denklemi A
-1

A x=A 0

-1

ile

x= 0 olmak zorundadr(trivial zm), bu zm nemsenmez.

sn
o

arplrsa A

-1

em
de
r

det A=0 durumu: A nn satrlarnn dorusal baml olmas, yani rank A<n, olmas halinde
mmkndr. ndirgeme sonucunda A nn en az bir satrnn tm elemanlar sfra dnr.
Ayn denklemin kar taraf da zaten sfrdr. Neticede denklemlerden en az biri yok olur. Bu
da kare katsayl denklem sisteminin dikdrtgen katsayl denklem sistemine dnt, en
az bir serbest deikenin bulunaca anlamndadr. Dolaysyla en az bir temel zm vardr.
93. sayfada verilen zm teknii ile temel zm veya zmler bulunabilir.

rnek 5:

1 2 1 x1 0
1 4 3 x = 0 zm?
2

1 3 3 x 3 0
Basit GAUSS ile indirgeme:

w
.e

1 2 1 x 1 0 1 2 1 x 1 0
0 2 2 x = 0 0 2 2 x = 0 det A = 1 (2) 1 = 2

2
2
0 1 2 x 3 0 0 0 1 x 3 0

Det A0 olduundan sadece sfr(trivial) zm vardr, x=0 dr.

rnek 6:

1 2 1 x 1 0
1 4 3 x = 0 zm?

2
1 3 2 x 3 0
Basit GAUSS ile indirgeme:

1 2 1 x 1 0 1 2 1 x 1 0
0 2 2 x = 0 0 2 2 x = 0 det A = 1 (2) 0 = 0

2
2
Sfrlanan satr.
0 1 1 x 3 0 0 0 0 x 3 0
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

117

10. GENEL DORUSAL DENKLEM SSTEMLER

118

det A=0 olduundan x0 zm vardr. ndirgenmi katsaylar matrisi incelenirse:


3. satrn tm elemanlar sfr olmu, 3. denklem yok olmu, sadece iki denklem
kalmtr.
x3 bilinmeyeni serbest deiken olarak ortaya kmtr.
Bir serbest deiken olduundan bir temel zm vardr.
x3 serbest deikenine herhangi bir deer verilerek, mesela x3=1 seilerek, dier
deikenler hesaplanabilir.

1 2 1 x 1 0
0 2 2 x = 0 1 2 x 1 = 1

2 0 2 x 2
2
0 1 1 1 0

ri.
co

x3=1 seilirse:

x1 = (1 (2 1) / 1 = 1
x 2 = 2 /(2) = 1

x1 1
x = x2 = 1
x3 1

a12
a 22
.
an2

... a1n x1 b1
1 2 1 x 1 6
... a 2 n x 2 b2 rnek:
1 4 3 x 2 = 10
=

... . . .

1 3 2 x 3 7
... a nn x n bn

(10.2)

em
de
r

a11
a
A x = b, 21
.

a n1

sn
o

b)nhomojen denklem sistemi:

tla

Homojen denklem sisteminin temel zm x=[1 1 1]T olarak bulunur.

nhomojen denklen sisteminde det A0 ise, bilindii gibi, zm vardr ve tektir. Blm
5-6 de verilen yntemlerden biri (Basit GAUSS, DOLITTLE, CROUT, CHOLESKY,) ile
zm bulunur.
det A=0 ise zm, ya yoktur veya birden ok zm vardr. det A=0 durumu A nn
satrlarnn dorusal baml olduu anlamndadr. Bu nedenle indirgeme sonucunda, A
nn en az bir satrnn tm elemanlar sfra dnr. Ayn satrn kar taraf sfr veya
sfrdan farkl olabilir.
Ayn satrdaki kar taraf sfrdan farkl ise:
sfr=bir say gibi bir denklem var
demektir. Bu, matematik anlamda bir elikidir, denklemlerin kuruluunda bir hata
vardr, denklemler tutarszdr, zm yoktur.

w
.e

Ayn satrdaki kar taraf da sfr ise: en az bir serbest deiken var demektir. Denklem
sistemi sayfa 101 de verilen yolla zlr.

rnek 7:

1 2 1 x 1 6
1 4 3 x = 10 zm?

1 3 3 x 3 7

det A=-20 dr (yukardaki rnek 5 e baknz). Bu nedenle zm vardr ve tektir, GAUSS ile
bulunabilir: x=[-1 3 1]T dir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

118

10. GENEL DORUSAL DENKLEM SSTEMLER

119

1 2 1 x 1 6
1 4 3 x = 10 zm?

1 3 2 x 3 8
Basit GAUSS ile indirgeme:

Ayn satrn kar taraf sfrdan farkl:


.
0 x3= -3 matematik elikidir.

tla

A nn sfrlanan satr.
det A=0

ri.
co

1 2 1 x 1 6 1 2 1 x 1 6
0 2 2 x = 4 0 2 2 x = 4 det A = 1 (2) 0 = 0

2
2
0 1 1 x 3 14 0 0 0 x 3 12

rnek 8:

rnek 9:

sn
o

det A=0 ve A nn nc satrnn tm elemanlar sfr olmu, fakat 3. satrn kar taraf 12
olmu. 3. denklem 0.x3=12 dir. Matematik olarak byle bir eitlik olamaz. Demek ki zm
istenen denklem sisteminin denklemleri elikilidir, denklem sisteminin kuruluunda bir hata
vardr. Netice olarak bu denklem sisteminin zm yoktur.

em
de
r

1 2 1 x 1 6
1 4 3 x = 10 zm?

1 3 2 x 3 8
Basit GAUSS ile indirgeme:

1 2 1 x 1 6 1 2 1 x 1 6
0 2 2 x = 4 0 2 2 x = 4 det A = 1 (2) 0 = 0

2
2
0 1 1 x 3 2 0 0 0 x 3 0
Ayn satrn kar taraf da sfr

w
.e

A nn sfrlanan satr.
det A=0

det A=0 dr. 3. satr hem sol hem de sa tarafta sfrdr. 0 x3=0 denklemi matematik olarak
elikili deildir. x3 n keyfi her deeri iin bu denklem salanr. x3 serbest deikendir,
sonsuz zm vardr. x3=1 seelim, nc kolonu x3=1 ile arparak kar tarafa atalm:

1 2 1 x 1 6
0 2 2 x = 4 1 2 x 1 = 6 1 x = 7

2 0 2 x 4 2 3 6
2

0 0 0 1 0

Yukar doru hesap ile:

x 1 = (7 (2) 3)/1 = 1
1 2 x 1 7
0 2 x = 6 x 2 = 6/(2) = 3

2
x 3 = 1 seildi

1
x = 3
1

3
1]T dir. x3 serbest deikeni iin baka saysz deer
x3=1 iin zm x=[-1
seilebileceinden sonsuz zm vardr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

119

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

11

PROGRAMLAR: Dorusal denklem


sistemi zcler

Basit matris ilemleri


Gauss
Cholesky
Ufukizgisi(Skyline)
Gauss-Jordan
Gauss-Seidel
CG(Conjugate Gradient)
Seyrek matris

11. PROGRAMLAR: Basit matris ilemleri ve dorusal denklem sistemi zcler

121

11. PROGRAMLAR: Basit matris ilemleri ve dorusal denklem sistemi zcler

Nmerik metotlar neticede programlanarak bilgisayarda zm yapabilmek amacyla gelitirilmilerdir.


Teorik bilgilerin test edilmesi, kavranmas ve kullanlabilir duruma getirilebilmesi iin program yazmak
ya da yazlm programlar kullanmak gerekecektir. Program yazmak da bal bana derin bir konudur.
Ancak mhendislik problemleri ile uraan kiinin, ok profesyonel olmasa bile, kk programlar
yazabilme becerisinin olmas da gerekir.

ri.
co

Bu amaca ynelik olarak test edilmi programlara yer verilecektir. Bu blm basit matris ilemleri ve
dorusal denklem sistemi zm iin QBASIC dilinde hazrlanm programlar iermektedir. rencinin
bu programlar grsel bir programlama diline evirmesi, test etmesi, deneyim kazanmas beklenir.
QBASIC(QuickBasic) programlama dili Microsoft tarafndan gelitirilmi, MS-DOS tabanl basit bir
programlama dilidir. 1990-2000 li yllarda kullanlm; gnmzde yerini Visual Basic, C, Delphi gibi
modern dillere brakmtr.
Programlar neden QBASIC dilinde veriliyor? Neden grsel bir dilde verilmiyor?

tla

Bunun iki ana nedeni vardr. 1) Grsel programlama dilleri, grsellii salamak iin, ok sayda program kodunu otomatik eklerler. Bir kitabn
sayfalarnda verilemeyecek kadar ok ve karmak kod retilir. Asl vurgulanmak istenen program parac otomatik eklenen kodlar arasnda
kaybolur, anlalmas gleir. 2) 1960-1970 li yllar nmerik analizin altn yllardr. Bu dnemin bilimsel yaynlar ve kitaplar ALGOL,
FORTRAN ve BASIC gibi, gnmzde pek kullanlmayan dillerde kodlanm ok nemli programlar ierir. Neticede 60 yllk bir bilgi birikimi
vardr.

sn
o

QBASIC basit fakat olduka yapsal ve kavranmas kolay kodlardan oluur, retim amal programlarn anlalr dzeyde kitaplarda verilmesine
olanak salar. Visual Basic QBASIC dilinin gelimi ekli olduundan ve hemen tm QBASIC kodlarn da ierdiinden dntrlmesi kolaydr.
ou kez kopyala-yaptr yeterli olur. Ancak, Trke karakter destei yoktur. Bu, programlarn almasn etkilemez fakat Trke aklama
satrlarn kullancnn okumas zorlar.
QBASIC deyimleri hakknda z bilgiler

em
de
r

iareti ve sonras programn anlalrln artrmak iin programcnn yapt aklamadr, programn almasn etkilemez.
Deikenler bir harf ile balar. Ayn deiken byk veya kk harf olarak yazlabilir: A veya a ayn deikendir.
DATA 3,-7,10 benzeri satrlar veri satrdr. READ deyimi bu satrlardan sra ile deer okur.
DEFINT I-N deyimi i,j,k,l,m,n harfleri ile balayan deikenlerin tam say olacan belirtir.
DEFDBL A-H, O-Z deyimi bu harf aralndaki bir harf ile balayan deikenlerin DOUBLE ift hassasiyetli olacan belirtir.
DECLARE SUB Matrisoku (n, m, a()) benzeri deyimler bir alt programn adn ve parametrelerini ana programa tanmlar: Bu rnekte alt
programn ad Matrisoku, parametreleri de n, m ve a dr. n ve m tam say, a() matris anlamndadr. Ana programda CALL deyimi ile arlacak alt
program, arlmadan nce, DECLARE ile ana programa tantlmak zorundadr.
READ n,m,L benzeri deyimler DATA satrlarndan deer okur. Bu rnekte n, m ve L deikenleri okunur.
DIM a(n, m), b(m, L), c(n, L) benzeri deyimler matrislerin boyutunu tanmlar ve ana bellekte yer ayrr. Bu rnekte a, b ve c matrisleri
tanmlanmaktadr. n, m ve L matrislerin boyutudur, deerleri DIM deyimi ncesi okunmu veya atanm olmaldr.
CLS deyimi ekran temizler.
CALL Matrisoku(n, m, a()) benzeri deyimler, ad ve parametreleri verilen alt program arr, altrr. Bu rnekte Matrisoku adl alt program
arlyor. n, m, a() parametrelerdir. n ve m matrisin boyutu, a() matristir.
PRINT deyimi kendini izleyen parametrelerin deerlerini ekrana yazar. PRINT Z=; 5 ekrana Z=5 yazar.
* iareti arpma ve ^ iareti s alma iin kullanlr. rnek 2*3 arpm ve 2^3 s alma anlamndadr.
SUB

END SUB

Kelimeleri arasnda alt program kodlar yer alr.

w
.e

EXIT SUB alt programdan klmasn salar.


FOR i = 1 TO n STEP 2

NEXT i

deyimi i= 1, 3,, n deerleri iin FOR-NEXT arasndaki kodlar iler

DO

LOOP UNTIL s<1l

deyimi s<1 oluncaya kadar DO ile LOOp arasndaki kodlar tekrar tekrar iler

IF T <= Zero THEN .... deyimi t deikeni Zero deikeninden kk veya Zero ya eitse THEN i izleyen kodlar iler.
IF T = 0 THEN

ELSE

END IF

deyimi t deikeni sfr ise THEN i izleyen , deilse ELSE izleyen kodlar iler.

GOTO 200 deyimi 200 nolu satra atlanmasn salar.


ABS(x) fonksiyonu x deikeninin mutlak deerini hesaplar.
SQR(x) fonksiyonu x in karekkn hesaplar.
: iareti ile birden ok satr tek satrda yazlabilir. rnek:

rank = 0: v = 1: Zero = 0

satr

rank = 0
v=1
Zero = 0

satrlar ile ayn anlamdadr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

121

11. PROGRAMLAR: Basit matris ilemleri ve dorusal denklem sistemi zcler

122

Matris metotlarnda gerekli ilem says


Uygulamada ska karlalan matris metotlar(arpma, gen arpanlara ayrma, denklem sistemi zm, v.s.)
ne kadar drt ilem(toplama, karma arpma, blme) gerektirir? Aada verilen tablo yardmyla toplam ilem
says belirlenebilir.

rnek: A x=b dorusal denklem sisteminin n=1000 bilinmeyeni ve s=1 kar taraf vektr olsun. Gauss veya
Crout veya Doolittle metodu kullanlarak denklem sistemi zlmek istenirse gerekli toplam ilem says

2n 3 n 2 n
2 1000 3 1000 2 1000

+ 2n 2 s =

+ 2 1000 2 1 = 6681665
3
2 6
3
2
6

ri.
co

olur. Bir bilgisayar bu kadar ilemi ka saniyede yapar? Bunun iin bilgisayarn FLOPS(FLoating point Operations
Per Second) denilen deerinin bilinmesi gerekir. 2010 ylnda retilen Intel Core I7 980 XE ilemcisi 107 GFLOP (
bir saniyede 109) ift hassasiyetli(DOUBLE) ilem yapabilmektedir. Bu ilemciye sahip bir bilgisayarda denklem
sisteminin zm teorik ve yaklak olarak 6681665/109=0.007 saniye srecektir. Gerekte zm daha uzun
srer. nk iletim sistemi, programlama dili, programn kalitesi, ara ilemler, bellek tipi, bellek miktar, v.s.
sreyi etkiler.

LEM SAYISI

AIKLAMA

tla

LEM: Matris arpm

arpma :
Toplama:

nms
nms

n, m, s matrislerin
boyutlar

Toplam :

2nms

sn
o

A, B ve C dikdrtgen
matrisler

em
de
r

A ve C dikdrtgen, L alt
veya st gen matris

w
.e

L alt, U st gen ve C
kare matris

L1, L2, L3 hepside alt


veya hepside st gen
matris

arpma :

Toplama:

nm 2 nm
+
2
2
nm 2 nm
+
2
2

Toplam :

nm 2 + nm

arpma :

n3 n 2 n
+
+
3
2
6

Toplama:

n3 n 2 n
+
+
3
2 6

Toplam :

n3
n
+ n2 +
3
3

arpma :

n3 n 2 n
+
+
6
2
3

Toplama:

n3 n 2 n
+
+
6
2 3

Toplam :

n3
2n
+ n2 +
3
3

mn 2 mn
+
2
2
2
mn
mn
+
Toplama:
2
2

arpma :
A ve C dikdrtgen, L alt
veya st gen matris

A ve C dikdrtgen, B
diyagonal elemanlar
rxr boyutlu blnm
matris. Blok says=m/r
(tam say)

Toplam :

mn 2 + mn

arpma :
Toplama:

nmr
nmr

Toplam : 2nmr

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

122

11. PROGRAMLAR: Basit matris ilemleri ve dorusal denklem sistemi zcler

LEM SAYISI

YNTEM

Toplama:

n3 n 2 n

+
3
2
6
n2 n

2 2

n3 n 2 n

+
3
2
6

Blme

Toplam :

2n 3 n 2 n

3
2 6

arpma :

n3 n

6 6

tla

GAUSS
CROUT
DOOLITLE

arpma :

ri.
co

LEM: gen arpanlara ayrma

123

Toplama:

em
de
r

A simetrik

sn
o

CHOLESKY

n2 n

2 2
n
n3 n 2 n
+
+
3
2
6

arpma:

nbc nc + n nb

b 2 c bc b 2 b
+ +

2
2
2 2

c3 c2 c
+

6
2 2

Toplama: arpma kadar

GAUSS
CROUT
DOOLITLE

Blme

nb

b2
b
n+
2
2

Toplam :

2nbc 2nc nb + n

w
.e

Toplam :

+ bc

c3
+ c2 b2c
3

2c b 2 b
+

3
2 2

arpma :

nb 2 nb b 3 b 2 b

2
2
3
2 6

Toplama: arpma kadar


Blme

CHOLESKY

A bant ve simetrik, b yar bant genilii

Karekk:

A bant matris, b st bant, c alt bant genilii

Blme

n3 n

6 6

nb

b2
b
n+
2
2

Karekk:

Toplam :

b2n +

b 2 b 2b 3
+
2 6
3

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

123

11. PROGRAMLAR: Basit matris ilemleri ve dorusal denklem sistemi zcler

s
Yukardan aa veya
aadan yukar
doru hesap

x = b
L
n

arpma :

Toplama:

Blme:

L alt veya st gen matris


n, m, s matrislerin boyutlar

ns

Toplam :

n2s

arpma :

nbs

b 2 s ns

2
2
2
b s ns
nbs

2
2

tla

Yukardan aa veya
aadan yukar
doru hesap

n 2 s ns

2
2
2
n s ns

2
2

ri.
co

LEM SAYISI

YNTEM

LEM: Denklem sistemi zm

124

Toplama:
Blme:

ns

Toplam :

2nbs b 2 s

sn
o

L alt veya st bant matris, b bant genilii

n3 n 2 n

+ + n 2 s ns
3
2 6
n3 n 2 n

+ + n 2 s ns
Toplama:
3
2 6
n2 n
+ 2ns
Blme:
2 2
2n 3 n 2 n

+ 2n 2 s
Toplam :
3
2 6

arpma :

GAUSS
CROUT
DOOLITTLE

x = b

em
de
r

x = b

CHOLESKY

w
.e

A simetrik

n3 n
+ n 2 s ns
6 6
n3 n
+ n 2 s ns
Toplama:
6 6
n2 n
+ 2ns
Blme:
2 2
Karekk: n

arpma :

Toplam :

n3 n 2 n
+
+ + 2n 2 s
3
2 6

arpma:

1
(3b + 3b 2 2c + 3bc 3b 2 c + 3c 2
6
c 3 + 6n 6bn 6cn + 6bcn 3b 2 s
3c 2 s 6ns + 6bns + 6cns)

GAUSS
CROUT
DOOLITLE

Toplama: arpma kadar


Blme:

nb +

b
b2
+ ns n
2
2

Toplam :
A bant matris, b st bant, c alt bant genilii

1
(3b + 3b 2 4c + 6bc 6b 2 c + 6c 2
6
2c 3 + 6n 6bn 12cn + 12bcn 6b 2 s
6c 2 s 6ns + 12bns + 12cns)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

124

11. PROGRAMLAR: Basit matris ilemleri ve dorusal denklem sistemi zcler

arpma :

125

nb 2 nb b 3 b 2 b

2
2
3
2 6

+ 2nbs b 2 s ns
Toplama: arpma kadar
Blme:

nb

Karekk: n
Toplam :

A simetrik bant matris, b yar bant genilii

arpma :

x = b
n

n3 n 2

+ n2s
2
2

n3 n 2

+ n2s
2
2
2
Blme: n

Toplama:

tla

GAUSS-JORDAN

b 2 b 2b 3
+
2b 2 s
2 6
3

ri.
co

4nbs + nb 2 +

b2
b
n + + 2ns
2
2

CHOLESKY

TERASYON YNTEMLER
Bir itersyon adm iin

n 3 + 2n 2 s

arpma :

n2

Toplama:
Blme: n

sn
o

JACOBI
GAUSS-SEIDEL

Toplam :

Toplam :

em
de
r

CG (Conjugate
Gardient) simetri
dikkate alnmadan

n2 n
2n 2
2

arpma: 3 n +6n+2

Toplama: 3 n +3n-3
Blme: 2

Toplam : 6 n +9n+1

Test edilmi programlar:

Matris ilemleri, dorusal denklem sistemi zcler(direkt ve iterasyon yntemleri) olmak zere, 12.24. blmlerde 15 adet program verilmitir. Programlarn ad ve ilevi aada zetlenmitir.
1.

Basit Matris ilemleri: matris okuma, yazma, toplama, arpma, determinant hesab gibi basit program
paracklarndan oluur. QBASIC dilinin yapsnn kavranmasn amalamaktadr.
Gauss: A x = b dorusal denklem sistemini zer.

CholeskyFull: A x = b dorusal denklem sistemini zer. A simetrik, pozitif tanml, tam dolu.

4.

Cholesky2: A x = b dorusal denklem sistemini zer. A simetrik, pozitif tanml, bant. ki boyutlu depolama
teknii kullanlmtr.

w
.e

2.
3.

5.

Cholesky1: A x = b dorusal denklem sistemini zer. A simetrik, pozitif tanml, bant. Vektr depolama
teknii kullanlmtr.

6.

CholeskySkyline: A x = b dorusal denklem sistemini zer. A simetrik, pozitif tanml. A ufuk izgisi(Skyline)
teknii ile depolanr.

7.

GaussJordan: A matrisinin tersi A-1 i hesaplar.

8.

GaussJordanSim: A matrisinin tersi A-1 i hesaplar. A simetrik pozitif tanml.

9.

LeastSquares: Dengeleme hesab, en uygun eri(polinom) uydurma

10. QR: Anxm xm = bn denklem says bilinmeyen saysndan ok olan sistemin QR arpanlara ayrma metodu ile
zm, nm.
11. BoBx: Anxm dikdrtgen matrisinin Bo sa ters matrisini ve Bx ekirdeini hesaplar, nm.
12. GaussSeidel: A x = b dorusal denklem sistemini iterasyon ile zer.
13. CG: A x = b dorusal denklem sistemini Conjugate gradient iterasyon metodu ile zer. A simetrik, pozitif
tanml.
14. PCG: A x = b dorusal denklem sistemini kondisyon iyiletirmesi (Preconditioning) yaparak Conjugate gradient
iterasyon metodu ile zer. A simetrik, pozitif tanml.
15. PCGsparse: A x = b dorusal denklem sistemini kondisyon iyiletirmesi (Preconditioning) yaparak Conjugate
gradient iterasyon metodu ile zer. A simetrik, pozitif tanml ve seyrek(sparse). A nn sadece sfrdan farkl

elemanlar depolanr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

125

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

12
PROGRAMLAR:

Basit matris ilemleri

127

12. PROGRAMLAR: Basit matris ilemleri

12. PROGRAMLAR: Basit matris ilemleri

1 2
B3 x 2 = 2 0
3 1

A nn elemanlar

B nin elemanlar

C=A B ve det C
program ile
hesaplanacak

1 2 3
A2 x 3 =

4 5 6

Matrislerin boyutlar verisi

ri.
co

' Matris ilemleri ana program


' Matrislerin boyutlar: n,m,L
DATA 2,3,2
' A nn elemanlar:
DATA 1,2,3
DATA 4,5,6
' B nin elemanlar:
DATA 1,2
DATA 2,0
DATA 3,1

sn
o

tla

DEFINT I-N: 'I,J,K,L,M,N harfleri ile balayan deikenler tam saydr.


Hangi harfle balayan deikenlerin Tam
DEFDBL A-H, O-Z: ' Bu harflerle balayanlar ift hassasiyetli ondalk saydr
say, hangilerinin ondalk say olaca
DECLARE SUB Matrisoku (n, m, a())
tanmlanyor
DECLARE SUB matrisokuSimetrik (n, a())
DECLARE SUB matrisyaz (n, m, a())
DECLARE SUB vektoroku (n, v())
DECLARE SUB vektoryaz (n, v())
Alt programlarn ad ve
DECLARE SUB matriscarp (n, m, L, a(), b(), c())
DECLARE SUB MatrisTopla (Topla, n, m, a(), b(), c())
parametreleri ana programa
DECLARE SUB diyagmatriscarp (n, m, d(), a())
tantlyor!
DECLARE SUB matrisdiyagcarp (n, m, a(), d())
DECLARE SUB matrisvektorcarp (n, m, a(), v(), c())
DECLARE SUB matriscopyala (n, m, a(), b())
DECLARE SUB transpoz (n, m, a(), b())
DECLARE SUB transpozkare (n, a())
DECLARE SUB birimmatris (n, a())
DECLARE SUB sifirmatris (n, m, a())
n, m, L saylarn oku DATA satrlarndan okur. Bunlar A, B ve C
DECLARE SUB Determinant (n, a(), rank, d, k, v)

matrislerinin boyutunu tanmlamak iin kullanlacak

READ n, m, L: ' DATA satrlarndan oku

A, B ve C matrisleri iin ana bellekte yer ayr

em
de
r

DIM a(n, m), b(m, L), c(n, L): ' Matrislere yer ayr
CLS : ' ekran temizle
Matrisoku alt programna git A matrisini oku geri gel
CALL Matrisoku(n, m, a())
CALL Matrisoku(m, L, b())
CALL matriscarp(n, m, L, a(), b(), c())
Matrisoku alt programna git B matrisini oku geri gel
PRINT A:
CALL matrisyaz(n, m, a())
PRINT B:
Matriscarp alt programna git A ile B yi arp C ye depola ve geri gel
CALL matrisyaz(m, L, b())
PRINT C:
CALL matrisyaz(n, L, c())
Matrisyaz alt programna git A y yaz, gel
CALL Determinant(n, c(), rank, d, k, v)
PRINT r=; rank, d=; d; k=; k; V=; v
Determinant hesaplayan alt programn ar
END

programna git det A hesapla gel

Determinant ve kondisyon bilgilerini yaz

w
.e

SUB Matrisoku (n, m, a())


' A(n,m) matrisini Data strlarndan okur
'----------------------------------------FOR i = 1 TO n
FOR j = 1 TO m
READ a(i, j)
NEXT j
NEXT i
END SUB

Programn sonular

SUB matrisokuSimetrik (n, a())


'A(n,n) simetrik matrisinin st gen
'elemanlarn okur ve alt genini tamamlar
'-----------------------------------------FOR i = 1 TO n
FOR j = i TO n
READ a(i, j)
a(j, i) = a(i, j)
NEXT j
NEXT i
END SUB

SUB matrisyaz (n, m, a())


' A(n,m) matrisini ekrana yazar
'-----------------------------FOR i = 1 TO n
FOR j = 1 TO m
PRINT a(i, j);
NEXT j
PRINT
NEXT i
END SUB

. 8

Det C = d 2 =0.140625 2 =36

K=

det C
V

36
= 0.07
519.2

C nin HADAMARD kondisyon says

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

127

128

12. PROGRAMLAR: Basit matris ilemleri

SUB vektoryaz (n, v())


' V(n) Vektrn ekrana yazar
'---------------------------FOR i = 1 TO n
PRINT v(i);
NEXT i
PRINT
END SUB

sn
o

tla

SUB matriscopyala (n, m, a(), b())


' A(n,m)=B(n,m) B matrisi A ya kopyalanr
'---------------------------------------FOR i = 1 TO n
FOR j = 1 TO m
a(i, j) = b(i, j)
NEXT j
NEXT i
END SUB

em
de
r

SUB matriscarp (n, m, L, a(), b(), c())


' C(n,L)=A(n,m)*B(m,L) hesaplanr
'-------------------------------------------FOR i = 1 TO n
FOR j = 1 TO L
T=0
FOR k = 1 TO m
T = T + a(i, k) * b(k, j)
NEXT k
c(i, j) = T
NEXT j
NEXT i
END SUB

SUB matrisvektorcarp (n, m, a(), v(), c())


' C(n)=A(n,m)*V(m) hesaplanr.
' A(n,m) matrisi V(m) matrisi ile sadan arplr
' C(n) de depolanr.
'-------------------------------------------FOR i = 1 TO n
T=0
FOR j = 1 TO m
T = T + a(i, j) * v(i)
NEXT j
c(i) = T
NEXT i
END SUB

ri.
co

SUB vektoroku (n, v())


' V(n) Vektrn DATA satrlarndan okur
'-------------------------------------FOR i = 1 TO n
READ v(i)
NEXT i
END SUB

SUB MatrisTopla (Topla, n, m, a(), b(), c())


'Topla=1 ise C(n,m)=A(n,m)+B(n,m)
'Topla<>1 ise C(n,m)=A(n,m)-B(n,m) hesaplanr
'-----------------------------------------FOR i = 1 TO n
FOR j = 1 TO m
IF Topla = 1 THEN
c(i, j) = a(i, j) + b(i, j)
ELSE c(i, j) = a(i, j) - b(i, j)
END IF
NEXT j
NEXT i
END SUB

w
.e

SUB diyagmatriscarp (n, m, d(), a())


' A(n,m)=D(n)*A(n,m) hesaplanr.
' D(n) vektr diyagonal matrisin sadece
' diyagonal elemanlarn ierir.
'-------------------------------------------FOR i = 1 TO n
FOR j = 1 TO m
a(i, j) = a(i, j) * d(i)
NEXT j
NEXT i
END SUB

SUB matrisdiyagcarp (n, m, a(), d())


' A(n,m)=A(n,m)*D(m) hesaplanr.
' D(m) vektr diyagonal matrisin sadece
'diyagonal elemanlarn ierir.
'--------------------------------------FOR i = 1 TO m
FOR j = 1 TO n
a(j, i) = a(j, i) * d(i)
NEXT j
NEXT i
END SUB

SUB transpoz (n, m, a(), b())


' A(n,m) nin transpozu B(m,n) de depolanr
'----------------------------------------FOR i = 1 TO n
FOR j = 1 TO m
b(j, i) = a(i, j)
NEXT j
NEXT i
END SUB

SUB transpozkare (n, a())


' A(n,n) kare matrisinin transpozu
' gene A ya depolanr
'--------------------------------FOR i = 1 TO n
FOR j = i + 1 TO n
T = a(j, i)
a(j, i) = a(i, j)
a(i, j) = T
NEXT j
NEXT i
END SUB

SUB birimmatris (n, a())


'A(n,n) matrisini birim matris yapar
'---------------------------------FOR i = 1 TO n
FOR j = 1 TO n
a(i, j) = 0
NEXT j
a(i, i) = 1
NEXT i
END SUB
SUB sifirmatris (n, m, a())
'A(n,m) matrisini sfrlar
'-------------------------FOR i = 1 TO n
FOR j = 1 TO m
a(i, j) = 0
NEXT j
NEXT i
END SUB

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

128

129

ri.
co

sn
o

IF n = 1 THEN
' n=1 durumu
IF ABS(a(1, 1)) <= Zero THEN GOTO 100
rank = 1: d = a(1, 1): k = 0
EXIT SUB
END IF

tla

SUB Determinant (n, a(), rank, d, k, v)


' A(n,n) matrisinin determinant GAUSS ile hesaplanr
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' A(n,n) aran programda depolanm olmaldr.
' Programn verdii d, k ve V saylar yardmyla
' det A=d*2^k ile hesaplanabilir.
' A nn kondisyon says Kon A=ABS(det A)/V ile hesaplanabilir
'---------------------------------------------------------------------------------' Norm
rank = 0: v = 1: Zero = 0
FOR i = 1 TO n
T = 0: d = 0
FOR j = 1 TO n
T = T + ABS(a(i, j)): ' WILKINSON normu
d = d + a(i, j) * a(i, j)
NEXT j
IF T > Zero THEN Zero = T
d = SQR(d): v = v * d: 'HADAMARD hacmi
NEXT i
Zero = Zero * 1E-14

12. PROGRAMLAR: Basit matris ilemleri

em
de
r

FOR i = 1 TO n - 1
' Kolonda Pivot ara
T = 0: d = 1: k = i
FOR j = i TO n
IF ABS(a(j, i)) > T THEN T = ABS(a(j, i)): k = j
NEXT j
IF T <= Zero THEN GOTO 100
IF k > i THEN
d = -d: ' Determinantn iaretini dei
' i ve k satrlarn dei
FOR j = i TO n
T = a(i, j)
a(i, j) = a(k, j)
a(k, j) = T
NEXT j
END IF

w
.e

' indirge
rank = i
FOR j = i + 1 TO n
T = a(j, i) / a(i, i)
FOR k = i + 1 TO n
a(j, k) = a(j, k) - T * a(i, k)
NEXT k
NEXT j
NEXT i
IF ABS(a(n, n)) <= Zero GOTO 100
rank = n

' Determinat iin d ve k yi belirle (WILKINSON)


k=0
FOR i = 1 TO n
d = d * a(i, i)
200 k = k + 4
IF ABS(d) >= 1 THEN d = d * .0625: GOTO 200
300 k = k - 4
IF ABS(d) < .0625 THEN d = d * 16: GOTO 300
NEXT i
EXIT SUB
100 ' Matris tekil
d = 0: k = 0
END SUB

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

129

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

14
PROGRAMLAR:

CholeskyFull

135

14. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyYFull

14. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyFull1

.
.

a11 a12

a22

Sim.
.

.
.

.
.

.
.

.
.

.
.

.
.
.

.
.

A x =b bantsnda A ve b verildiinde x bilinmeyenler


vektr hesaplanr. A tam dolu(full), simetrik ve pozitif
tanml matristir. CholeskyFull alt program A ve b yi
parametre olarak alr, x zmn bulur.

a1n x1 b1
a2 n x2 b2

=



ann xn bn

a1n
a2 n
A

ann

.
.

A nn st geninin satrlar CholeskyFull alt programn


aran programda
tek boyutlu A matrisinde
depolanm olmaldr:

ri.
co

.
.

[a11 a12 a1n |a22 a23 a2n | .| ann]

tla

a11 a12

a22

Sim.
.

b [b1 b2 bn]

sn
o

A nn boyutu (n.n-n)/2+n dir. b matrisi de tek boyutlu b matrisinde depolanm olmaldr:

Hesaplanan x zm b vektrnde depolanr. Bu nedenle x matrisi iin programda boyut


almamtr. Hesap sonras A ve b nin ilk deerleri kaybolur. A=UTU arpanlarndan U st
geni A matrisinde depolanr.

em
de
r

A pozitif tanml deilse zm bulunamaz. iHata deikeni zmn bulunup


bulunamadn belirtir. iHata=0 ise zm bulunmutur, iHata0 ise zm bulunamam,
yarda kesilmitir. Bu durumda iHata zmn kesildii denklem numarasn verir.
rnek:

w
.e

4 2 4 2 4 x1 b1

5 4 4 4 x 2 b2

Ax = b
6 2 2 x 3 = b3


9.5 2 x 4 b4
Sim

32 x 5 b5

x =?

CholeskyFull sonucu

zm:
5
8

x= 4

7
4

Teori ve saysal rnekler iin bak: blm 6


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

135

136

14. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyYFull

'-------------- Ana program CholeskyFull---------------' Ax=b denklem sistemi zm


' arlan programlar: CholeskyFull
'------------------------------------------------------Denklem says verisi
DATA 5: 'denklem says
' a matrisi:
DATA 4, 2, 4, 2, 4
DATA 5, 4, 4, 4
A nn st geninin satrlar
DATA
6, 2, 2
DATA
9.5, 2
DATA
32
'b matrisi:
B nin kolonu
DATA -18,2,14,-44.5,-122

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB CholeskyFull (n, a(), b(), iHata)
CLS

Denklem says okunuyor

st gendeki eleman
says hesaplanyor

READ n
iES = (n * n - n) \ 2 + n: 'a matrisindeki eleman says

' b vektrn oku:


FOR i = 1 TO n
READ b(i)
NEXT i

A ve B matrisleri iin bellekte yer ayrlyor

tla

' a matrisini oku:


FOR i = 1 TO iES
READ a(i)
NEXT i

A nn st geninin satrlar DATA satrlarndan okunuyor

B nin elemanlar DATA satrlarndan okunuyor

CholeskyFull alt program

em
de
r

CALL CholeskyFull(n, a(), b(), iHata)


arlyor
IF iHata <> 0 THEN
PRINT Matris pozitif tanml deil. Denklem no:; iHata
ELSE
PRINT Denklem sisteminin zm (CholeskyFull):
FOR i = 1 TO n: PRINT b(i); : NEXT i: PRINT
END IF

Sonular
yazdrlyor

END 'CholeskyFull ana

CholeskyFull
alt program

SUB CholeskyFull (n, a(), b(), iHata)


'--------------------------------------------------------------------' Dorusal denklem sistemi zm (CHOLESKYFULL)
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1993
' A(n,n)*x(n)=b(n) denklem sisteminin x(n) vektor hesaplanr.
' A katsaylar matrisi simetrik ve pozitif tanml olmaldr.
' A nn sadece st gen matrisinin satrlar sra ile
' a(1)=a11,a(2)=a12,...,a(n)=a1n
' a(n+1)=a22,a(n+3)=a23,...
' .....
' a(n*(n+1)/2)=ann
' eklinde depolanm olmaldr.
' b matrisi b(1)=b1,b(2)=b2,...b(n)=bn eklinde depolanm olmaldr.
' zm sonras x(n) matrisi b(n) matrisinde depolanr.
' iHata=0 dnerse zm bulunmutur, iHata sfrdan farkl ise A tekildir
' veya pozitif tanml deildir, zm bulunamamtr. Bu durumda
' iHata zmn kesildii denklem numarasn verir.
'--------------------------------------------------------------------iHata = 0
iStart = 1: ' a matrisinin a vektrnde start adresi
' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps

w
.e

' arpanlara ayr


iAdr = iStart
FOR i = 1 TO n
i1 = i - 1
' U nun diyagonal eleman
iSpadr = iStart + i1
iFark = n
T=0
FOR j = 1 TO i1
T = T + a(iSpadr) ^ 2
iFark = iFark - 1
iSpadr = iSpadr + iFark
NEXT j
a(iAdr) = a(iAdr) - T
IF a(iAdr) <= zero THEN iHata = i: EXIT SUB
a(iAdr) = SQR(a(iAdr))
' U nun satr
FOR k = 1 TO n - i
iSpadr = iStart + i1
iFark = n
T=0
FOR j = 1 TO i1
T = T + a(iSpadr) * a(iSpadr + k)
iFark = iFark - 1
iSpadr = iSpadr + iFark
NEXT j
a(iAdr + k) = (a(iAdr + k) - T) / a(iAdr)
NEXT k
iAdr = iAdr + n - i1
NEXT i
' Yukardan aa hesap
iAdr = iStart
FOR i = 1 TO n
i1 = i - 1
iSpadr = iStart + i1
iFark = n
FOR j = 1 TO i1
b(i) = b(i) - a(iSpadr) * b(j)
iFark = iFark - 1
iSpadr = iSpadr + iFark
NEXT j
b(i) = b(i) / a(iAdr)
iAdr = iAdr + n - i1
NEXT i
' Aadan yukar hesap
iAdr = n * (n + 1) \ 2 + 1
FOR i = n TO 1 STEP -1
iAdr = iAdr - n + (i - 1)
FOR j = 1 TO n - i
b(i) = b(i) - a(iAdr + j) * b(i + j)
NEXT j
b(i) = b(i) / a(iAdr)
NEXT i

sn
o

DIM a(iES), b(n)

ri.
co

Ana program

' norm
iAdr = iStart
zero = 0
FOR i = 1 TO n
IF ABS(a(iAdr)) >= zero THEN zero = ABS(a(iAdr))
iAdr = iAdr + n - (i - 1)
NEXT i
zero = zero * Eps

END SUB ' CholeskyFull

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

136

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

w
.e

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

15
PROGRAMLAR:

CholeskyBant1

138

15. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant1

15. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant11


Mhendislikte karlalan problemlerin ounda A x=b denklem sisteminin Anxn katsaylar
matrisi simetrik (AT=A), pozitif tanml (xT A x>0) ve bant eklindedir.
x

x
x

x
x

x
x

x
.

x
.

x
.

x
x

x
x

Simetrik

x11
x
21

x
x

x
x x n1

x12

...

x 22

...

xn 2

x1m b11
x 2 m b21



. = .





x nm bn1

b12

...

b22

...

b1m
b2 m

bnm

ri.
co

A nxn x nxm = b nxm

bn 2

tla

Bilgisayar belleinden yer kazanmak amacyla A nn sadece bant iindeki satrlar A(nxiBant)
tek boyutlu matrisinde depolanr:
iBant

x
x

x
x

x
x

x
.

x
x
.
x

n. satr
2. satr
1. satr

A nn satrlarnn Tek
[x x x x|x x x x| |x 0 0 0]
boyutlu matriste

depolanmas
x
x 0

Son satrlara eklenen sfrlar


x 0 0

x 0 0 0

sn
o

x
.
x

.
x

em
de
r

A nxn

Simetrik

x
x

1. kolon

Bnxm nin kolonlarnn depolanmas:

2. kolon

m. kolon

[b11 b21 bn1| b12 b22 bn2| | b1m b2m bnm]

w
.e

Yukardaki ekilde x bant iinde ve sfrdan farkl olduu varsaylan terimleri gstermektedir.
iBant bant geniliidir, diyagonal ve diyagonali izleyen sfrdan farkl terim saysdr:
1iBantn dir.

Bu tr denklem sisteminin zm iin CholeskyBant1 alt program kullanlabilir. Ekte


QBASIC kodu verilen programda Anxn simetrik matrisinin bant iindeki satrlar A(n x iBant)
tek boyutlu matrisinde, bnxm nin kolonlar b(nxm) tek boyutlu matriste depolanm olmaldr.
CholeskyBant1 alt program x bilinmeyenler matrisini ve ayrca d, k gibi iki deer hesaplar.
A nn determinant
det A=d.2k
ile hesaplanabilir. d=0 olmas durumunda A tekildir veya pozitif tanml deildir, zm
yoktur.

Hesaplanan x zm b matrisinde depolanr. Bu nedenle x matrisi iin programda boyut


almamtr. Hesap sonras A ve b nin ilk deerleri kaybolur. A=UTU arpanlarndan U st
geni(bant formunda) A matrisinde depolanr.
b=I birim matris ve m=n olarak verilirse zm A-1 olur.
1

Teori ve saysal rnekler iin bak: blm 6


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

138

139

15. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant1

rnek:

x12 10 10
x 22 1 10
x 32 7
7

x 42 = 11 11 x = ?
x 52 3
3

x 62 8
8
x 72 14 14

Katsaylar matrisi A nn programda depolan:


2. satr

n. satr

3. satr

tla

1. satr

ri.
co

10 2 3 1
x11

x
9 2 1 3

21

x 31
12 3 0 5

Ax = b
8 1 2 2 x 41

6 1
2 x 51
Simetrik

9
3 x 61

10 x 71

iBant=4

sn
o

A [10 2 -3 -1 9 2 -1 3 12 3 0 5 8 1 -2 -2 6 1 2 0 9 3 0 0 10 0 0 0]
Kar taraf matrisi b nn programda depolan:
1. kolon

1. kolon

CholeskyBant1 sonucu

w
.e

em
de
r

b [10 1 7 -11 3 8 14 10 -10 7 -11 3 8 14]

zm:

2.78
2
2 4.43

3
4.43

x = 3 4.32
2
3.72

2 3.19
1
0.75

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

139

140

ri.
co

'--------------- Ana program CholeskyBant1-----------' Ax=b denklem sistemi zm


Ana program
' A simetrik pozitif tanml bant matris
' arlan programlar: CholeskyBant1, AsagiyukariHesap
'------------------------------------------------DATA 7: 'Denklem says n
Denklem says, bant genilii ve kar taraf says verileri
DATA 4: 'Band genilii iBant
DATA 2: 'kar taraf says m
'A matrisi:
DATA 10,2,-3,-1
DATA 9,2,-1,3
DATA 12,3,0,5
DATA 8,1,-2,-2
A nn st geninin
DATA 6,1,2,0
bant iindeki satrlar
DATA 9,3,0,0
DATA 10,0,0,0
'b matrisi:
DATA 10,1,7,-11,3,8,14
B nin kolonlar
DATA 10,-10,7,-11,3,8,14

15. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant1

tla

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB CholeskyBant1 (n, iBant, a(), d, k)
DECLARE SUB AsagiYukariHesap (n, iBant, a(), m, b())

sn
o

Denklem says, bant genilii ve kar taraf says okunuyor

READ n, iBant, m
CLS
DIM a(n * iBant) ' A iin yer ayr
DIM b(n * m): ' b iin yer ayr

A ve B matrisleri iin bellekte yer ayrlyor

em
de
r

'A nn bant iindeki terimlerini oku


FOR I = 1 TO n * iBant
READ a(I)
NEXT I
A nn bant iindeki satrlar DATA satrlarndan okunuyor
'B yi oku
FOR I = 1 TO n * m
B nin kolonlar DATA satrlarndan okunuyor
READ b(I)
NEXT I
CALL CholeskyBant1(n, iBant, a(), d, k)

CholeskyBant1 alt program


arlyor

IF d = 0 THEN PRINT "Matris pozitif tanml deil !" : END

CALL AsagiYukariHesap(n, iBant, a(), m, b())

AsagiYukariHesap alt program arlyor

Sonular yazdrlyor

w
.e

PRINT "Determinant ve kondisyon hesab iin katsaylar:"


PRINT "d="; d, "k="; k
PRINT
PRINT "Denklem sisteminin zm (CholeskyBant1):"
FOR I = 1 TO m
FOR j = 1 TO n
PRINT b((I - 1) * n + j),
NEXT j
PRINT : PRINT
NEXT I

END 'CholeskyBant1 ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

140

141

CholeskyBant1 alt program


A=UTU

arpanlarn hesaplar U st
genini A da depolar

em
de
r

sn
o

'Zero: sfr varsaylacak say


Zero = 0
FOR I = 1 TO n * iBant STEP iBant
IF ABS(a(I)) > Zero THEN Zero = ABS(a(I))
NEXT I
Zero = Zero * Eps
'arpanlara ayr
IF n = 1 OR iBant = 1 THEN
FOR I = 1 TO n
IF a(I) <= Zero GOTO 100
a(I) = SQR(a(I))
NEXT I
GOTO 400
ELSE
IF a(1) <= Zero GOTO 100
a(1) = SQR(a(1))
FOR I = 2 TO iBant
a(I) = a(I) / a(1)
NEXT I
END IF

tla

ri.
co

SUB CholeskyBant1 (n, iBant, a(), d, k)


'------------------------------------------------------------------' Dorusal denklem sistemi zm
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' A(n,n)*x(n,m)=b(n,m) denklem sisteminin x(n,m) vektor hesaplanr.
' CholeskiBant1 A matrisini gen arpanlarna ayrr. Denklem sisteminin
' zm iin CholeskiBant1 in hemen arkasndan AsagiYukariHesap alt
' programnn da arlmas gerekir.
' n denklem says, iBant yar bant geniliidir.
' A katsaylar matrisi simetrik ve pozitif tanml olmaldr.
' A st geni A(n*iBant) tek boyutlu alannda sra ile depolanm olmaldr.
' b nn kolonlar b(n*m) matrisinde sra ile depolanm olmaldr.
' x(n,m) zm b(n*m) matrisinde depolanr.
' A nn determinant Det a=d*2^k ile hesaplanabilir.
' Program d=0 deeri ile dnerse, a matrisi tekildir veya pozitif
' tanml deildir ve CholeskyBant1 zm vermez.
' Bu programn FORTRAN kodu "DANKERT,j., Numerische Methoden der Mechanik,
' Springer, 1977" adl kaynaktan alnmtr.
'------------------------------------------------------------------' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps

15. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant1

w
.e

iBw1 = iBant - 1
irue = iBw1 * iBw1 - 1
IF iBant > 2 THEN
iE = iBant
FOR I = 2 TO iBw1
s = a(iE + 1)
FOR j = I TO iE STEP iBw1
s = s - a(j) ^ 2
NEXT j
IF s <= Zero THEN GOTO 100
s = SQR(s)
a(iE + 1) = s
s=1/s
iEe = iE + 1
j=I+1
kkk = I

IF j > iBant THEN


j = j + iBw1
kkk = kkk + iBw1
END IF
IF j <= iE THEN
iEe = iEe + 1
ss = a(iEe)
kk = kkk
FOR k = j TO iE STEP iBw1
ss = ss - a(k) * a(kk)
kk = kk + iBw1
NEXT k
a(iEe) = ss * s
j=j+1
GOTO 8
END IF
iE = iE + iBant
a(iE) = a(iE) * s
NEXT I
END IF

iE = iBw1 * iBant
FOR I = iBant TO n
s = a(iE + 1)
ia = iE - irue
FOR j = ia TO iE STEP iBw1
s = s - a(j) ^ 2
NEXT j
IF s <= Zero GOTO 100
s = SQR(s)
a(iE + 1) = s
s=1/s
IF iBant <> 2 THEN
iaa = ia + iBant
iEe = iE + 1
FOR j = iaa TO iE STEP iBant
ia = ia + iBw1
iEe = iEe + 1
ss = a(iEe)
kk = j
FOR k = ia TO iE STEP iBw1
ss = ss - a(k) * a(kk)
kk = kk + iBw1
NEXT k
a(iEe) = ss * s
NEXT j
END IF
iE = iE + iBant
a(iE) = a(iE) * s
NEXT I

' determinant (WILKINSON)


400 d = 1: k = 0
FOR I = 1 TO n
j = (I - 1) * iBant + 1
d = d * a(j) * a(j)
500 k = k + 4
IF ABS(d) >= 1 THEN d = d * .0625: GOTO 500
600 k = k - 4
IF ABS(d) < .0625 THEN d = d * 16: GOTO 600
NEXT I
EXIT SUB
100 'Matris tekil veya pozitif tanml deil
d = 0: k = 0
END SUB

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

141

142

ri.
co

tla

w
.e

em
de
r

FOR I = 1 TO nm STEP n
b(I) = b(I) / a(1)
ii = I - 1
jja = 0
ia = iBant + 1
FOR j = 2 TO n
ij = ii + j
s = b(ij)
jog = ij - 1
IF j >= iBant THEN
jug = ij - iBw1
jja = jja + iBant
ja = jja
ELSE
jug = I
ja = j
END IF
FOR k = jug TO jog
s = s - a(ja) * b(k)
ja = ja + iBw1
NEXT k
b(ij) = s / a(ia)
ia = ia + iBant
NEXT j
ia = nibw - iBw1
ii = ii + n
b(ii) = b(ii) / a(ia)
FOR j = 1 TO n1
ij = ii - j
ia = ia - iBant
s = b(ij)
ja = ia + 1
jug = ij + 1
jog = ii
IF j > iBw1 THEN jog = ij + iBw1
FOR k = jug TO jog
s = s - a(ja) * b(k)
ja = ja + 1
NEXT k
b(ij) = s / a(ia)
NEXT j
NEXT I

Bu alt program CholeskyBant1 alt


programnn hemen arkasndan arlr,
Aa ve yukar doru hesap ile bilinmeyen
matrisi x i hesaplayarak b nin zerine
depolar.

sn
o

SUB AsagiYukariHesap (n, iBant, a(), m, b())


'---------------------------------------------------' CholeskyBant1 alt programndan hemen sonra arlr.
' gen arpanlarna ayrlm katsaylar matrisini
' kullanarak bilinmeyenler matrisini hesaplar
'---------------------------------------------------iBw1 = iBant - 1
nm = n * m
nibw = n * iBant
n1 = n - 1
IF iBant = 1 THEN
FOR I = 1 TO m
ia = (I - 1) * n
FOR j = 1 TO n
b(ia + j) = b(ia + j) / a(j) ^ 2
NEXT j
NEXT I
EXIT SUB
END IF

15. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant1

END SUB 'AsagiYukariHesap

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

142

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

w
.e

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

16
PROGRAMLAR:

CholeskyBant2

144

16. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant2

16. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant21

x
x
x

x
x
x
x

x
x
x
.

x
x
.
x

x
.
x
x

.
x
x
x

x11
x
21

x
x

x
x x n1

x12
x 22

...
...

x1m b11
x 2 m b21



. = .





x nm bn1

b12
b22

...
...

b1m
b2 m

bnm

ri.
co

x
x

xn2

bn 2

tla

A nxn x nxm = b nxm

Mhendislikte karlalan problemlerin ounda A x=b denklem sisteminin Anxn katsaylar


matrisi simetrik (AT=A), pozitif tanml (xT A x>0) ve bant eklindedir.

Bilgisayar belleinden yer kazanmak amacyla A nn sadece bant iindeki saylar n


boyutlu dikdrtgen matrise depolanr:
iBant

x
x
x

x
Simetrik

iBant

iBant

x
x
x

x
x
x
.

x
x
.
x

sn
o

x
x

x
.
x
x

.
x
x

x x

x x

x x

x x
A nxiBand = x x

x
x x
x x
x 0

x 0 0
x x

x 0 0 0 x 0

em
de
r

A nxn

x
x
x
x
x
x
x

0
0

x
x
x

x
x

x
0

0
0

Son satrlara eklenen sfrlar

Yukardaki ekilde x bant iinde ve sfrdan farkl olduu varsaylan terimleri gstermektedir.
iBant bant geniliidir, diyagonal ve diyagonali izleyen sfrdan farkl terim saysdr:
1iBantn dir.

w
.e

Bu tr denklem sisteminin zm iin CholeskyBant2 alt program kullanlabilir. Ekte


QBASIC kodu verilen programda Anxn simetrik matrisinin bant iindeki terimleri AnxiBant
matrisinde, bnxm nin terimleri nxm matriste depolanm olmaldr.
CholeskyBant2 alt program x bilinmeyenler matrisini ve ayrca d, k gibi iki deer hesaplar.
A nn determinant
Det A=d.2k
ile hesaplanabilir. d=0 olmas durumunda A tekildir veya pozitif tanml deildir, zm
yoktur.
Hesaplanan x zm b matrisinde depolanr. Bu nedenle x matrisi iin programda boyut
almamtr. Hesap sonras A ve b nin ilk deerleri kaybolur. A=UTU arpanlarndan U st
geni(bant formunda) A matrisinde depolanr.
b=I birim matris ve m=n olarak verilirse zm A-1 olur.
1

Teori ve saysal rnekler iin bak: blm 6


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

144

145

16. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant2

rnek:
iBant=4

x12 10
10

x 22
1 10
x 32 7
7

x 42 = 11 11 x = ?
x 52 3
3

x 62 8
8
x 72 14
14

ri.
co

10 2 3 1
x11

x
9 2 1 3

21

x 31
12 3 0 5

Ax = b
8 1 2 2 x 41
Simetrik
6 1
2 x 51

9
3 x 61

10 x 71

iBant=4

tla

2 3 1
2 1 3
3 0
5

1 2 2
1 2
0

3 0
0
0 0
0

Son satrlara eklenen sfrlar

sn
o

Katsaylar matrisi A nn programda depolan

10
9

12

8
6

9
10

em
de
r

CholeskyBant2 sonucu

2.78
2
2 4.43

3
4.43

x = 3 4.32
2
3.72

2 3.19
1
0.75

w
.e

zm:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

145

146

IF ABS(a(i, 1)) >= Zero THEN Zero = ABS(a(i, 1))


NEXT i
Zero = Zero * Eps

DECLARE SUB CholeskyBant2 (n, iBant, a(), m, b(), d, k)


CLS
Denklem says, bant genilii
READ n, iBant, m
ve kar taraf says okunuyor
DIM a(n, iBant), b(n, m)

sn
o

A nn bant iindeki satrlar


DATA satrlarndan okunuyor
B nin kolonlar DATA
satrlarndan okunuyor

CholeskyBant2 alt
program arlyor

em
de
r

'b yi oku:
FOR i = 1 TO m
FOR j = 1 TO n
READ b(j, i)
NEXT j
NEXT i

A ve B matrisleri iin
bellekte yer ayrlyor

CALL CholeskyBant2(n, iBant, a(), m, b(), d, k)

PRINT "Determinant ve kondisyon hesab iin katsaylar:"


PRINT "d="; d, "k="; k
IF d = 0 THEN PRINT "Matris pozitif tanml deil !": END
PRINT
PRINT "Denklem sisteminin zm (CholeskyBant2):"
FOR i = 1 TO m
FOR j = 1 TO n
Sonular yazdrlyor
PRINT b(j, i),
NEXT j
PRINT : PRINT
NEXT i

w
.e

END ' CholeskyBant ana

iBant1 = iBant - 1
' arpanlara ayr
FOR i = 1 TO n
IF a(i, 1) <= Zero GOTO 100
T = SQR(a(i, 1))
FOR j = 1 TO iBant
a(i, j) = a(i, j) / T
NEXT j
FOR j = 1 TO iBant1
i1 = i + j
IF i1 > n THEN GOTO 200
T = a(i, j + 1)
FOR k = j TO iBant1
iv = 1 + k - j
a(i1, iv) = a(i1, iv) - T * a(i, k + 1)
NEXT k
NEXT j
200 NEXT i

tla

DEFINT I-N
DEFDBL A-H, O-Z

'A y oku:
FOR i = 1 TO n
FOR j = 1 TO iBant
READ a(i, j)
NEXT j
NEXT i

ri.
co

'--------- Ana program CholeskyBant2----------Ana program


' Ax=b denklem sisteminin zm
' A simetrik pozitif tannl bant matris
' arlan programlar: CholeskyBant
'----------------------------------------------DATA 7: 'Denklem says n
Denklem says, bant genilii
DATA 4: 'yar bant genilii iBant
ve kar taraf says verileri
DATA 2: 'kar taraf says m
'A matrisi:
DATA 10,2,-3,-1
DATA 9,2,-1,3
DATA 12,3,0,5
A nn st geninin
DATA 8,1,-2,-2
bant iindeki satrlar
DATA 6,1,2,0
DATA 9,3,0,0
DATA 10,0,0,0
'b matrisi:
' Zero: sfr varsaylacak say
DATA 10,1,7,-11,3,8,14
Zero = 0
B nin kolonlar
DATA 10,-10,7,-11,3,8,14
FOR i = 1 TO n

16. PROGRAMLAR: Dorusal denklem sistemi zm-CholeskyBant2

CholeskyBant2
alt program

SUB CholeskyBant2 (n, iBant, a(), m, b(), d, k)


'---------------------------------------------------------' Dorusal denklem sistemi zm
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' A(n,n)*x(n,m)=b(n,m) sisteminin x(n,m) vektor hesaplanr.
' n denklem says, iBant bant geniliidir.
' A katsaylar matrisi simetrik ve pozitif tanml olmaldr.
' A nn diyagonal ve sandaki, bant iindeki, elemanlar
' A(n,iBant) alannda depolanm olmaldr.
' b matrisi depolanm olmaldr.
' x(n,m) zm b(n,m) matrisinde depolanr.
' A nn determinant det a=d*2^k ile hesaplanabilir.
' Program d=0 deeri ile dnerse, a matrisi tekildir veya
' pozitif tanml deildir ve CholeskyBant2 zm vermez.
'---------------------------------------------------------' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps

' Yukardan aa hesap


FOR m1 = 1 TO m
FOR i = 1 TO n
b(i, m1) = b(i, m1) / a(i, 1)
FOR j = 1 TO iBant1
i1 = i + j
IF i1 > n GOTO 300
T = a(i, j + 1)
b(i1, m1) = b(i1, m1) - T * b(i, m1)
NEXT j
300 NEXT i
NEXT m1

Sonular yazdrlyor

' Aadan yukar hesap


FOR m1 = 1 TO m
b(n, m1) = b(n, m1) / a(n, 1)
FOR i = 1 TO n - 1
k=n-i
T=0
FOR j = 1 TO iBant1
i1 = j + k
IF n < i1 GOTO 400
T = T + a(k, j + 1) * b(i1, m1)
NEXT j
400 b(k, m1) = (b(k, m1) - T) / a(k, 1)
NEXT i
NEXT m1
' determinant (WILKINSON)
d = 1: k = 0
FOR i = 1 TO n
d = d * a(i, 1) * a(i, 1)
500 k = k + 4
IF ABS(d) >= 1 THEN d = d * .0625: GOTO 500
600 k = k - 4
IF ABS(d) < .0625 THEN d = d * 16: GOTO 600
NEXT i
EXIT SUB
100 'Matris tekil veya pozitif tanml deil
d = 0: k = 0
END SUB 'CholeskyBant2

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

146

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

sn
o

w
.e

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

17
PROGRAMLAR:
CHOLESKY Skyline(ufuk izgisi) teknii

148

17. PROGRAMLAR: CHOLESKY Skyline(ufuk izgisi) teknii

17. PROGRAMLAR: CHOLESKY Skyline(ufuk izgisi) teknii

x
x
x
x

x
x

x
x

Simetrik

x
x
x
x x
x x
x

x
.

x1 b1
x b
2 2
x 3 b3

x
x =

x
x

. . .

x x n bn

tla

x
x

sn
o

A nxn x nxm = b nxm

ri.
co

Mhendislikte karlalan problemlerin ounda A x=b denklem sisteminin Anxn katsaylar


matrisi simetrik (AT=A), pozitif tanml (xT A x>0) ve bant eklindedir. Ayrca bant iindeki
kolonlarn ykseklii (=kolonun diyagonal eleman ile ayn kolonun en yukardaki sfrdan
farkl son eleman arasndaki eleman says) azdr. Kolonlarn en yukardaki sfrdan farkl
elemanlarnn yatay izgilerle birletirilmesi sonucu oluan hatta ufuk izgisi(skyline)
denilmektedir. Denklem sistemi

olsun. Bilgisayar belleinden olabildiince tasarruf salamak ve sfrlar ile drt ilem
yapmamak iin zel bir depolama teknii kullanlr: A nn st gen matrisinin sadece ufuk
izgisi altndaki saylar depolanr. Her kolonun, diyagonal elemandan balanarak kolonun
ufuk izgisine kadar olan elemanlar tek boyutlu A matrisinde satr olarak depolanr.

em
de
r

Ufuk izgisi(skyline)

x
x x
x

x
x
x
x

x
x

Simetrik

x
x

x
x
x
x
x
x

x
.

w
.e

A nxn

x
x

x
x

.
x

2. kolon

1. kolon

3. kolon

4. kolon

n. kolon

A [x| x x |x x | x x x x|x x|xx|x x x x x x|. x|x . x x x x]

A nn kolonlarnn tek boyutlu


matriste depolanmas

zmn yaplabilmesi iin kolon yksekliklerinin (kolonun ufuk izgisi altndaki eleman
says) bilinmesi gerekir. Programdaki kH vektr bu amaca yneliktir. kH vektrnde
kolonlarn ykseklikleri aadaki gibi depolanr. Yukardaki A matrisi iin rnek:
kH [1 2 2 4 2 2 6 ]

Kolon ykseklikleri

Kar taraf vektrnn depolanmas: bn

[ b1

b2 bn]

zm iin CHOLESKY metodu kullanlr. Aada QBASIC kodu verilen CholeskySkyline alt
program ufuk izgisi teknii ile depolanm katsaylar matrisi A y, kolon ykseklikleri
vektr kH y, kar taraf vektr b yi ve denklen says n yi parametre olarak alr, x
bilinmeyenler vektrn hesaplar. x zm b vektrnde depolanr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

148

149

17. PROGRAMLAR: CHOLESKY Skyline(ufuk izgisi) teknii

iHata parametresi sfr olarak dnerse zm bulunabilmi anlamndadr. iHata sfrdan farkl
ise, A tekildir veya pozitif tanml deildir. Bu durumda iHata nn deeri zmn kesildii
denklem numarasdr.
rnek:

Ufuk izgisi

tla

ri.
co

3
5 x1 24
11 1

16 2 0
1 x2 28

13 0
4
3 x3 108


9
1
0 x4 15
=
Ax = b

10 4
0 x5 14


12
4 x6 107

8 1 x7 12
Simetrik


26 x8 121

Katsaylar matrisi A nn programda depolan:


2. kolon

3. kolon

8. kolon

4. kolon

sn
o

1. kolon

A [11 16 1 13 2 9 0 0 3 10 12 4 -1 4 8 26 1 4 0 0 3 1 -5]
1. diyagonal

3. diyagonal

2. diyagonal

4. diyagonal

6. kolonun ykseklii

em
de
r

1. kolonun ykseklii

8. diyagonal

Kolonlarn ykseklikleri: kH [1 2 2 4 1 4 1 8]
2. kolonun ykseklii

8. kolonun ykseklii

Kar taraf matrisi b nn programda depolan:

b [14 -28 108 15 14 107 -12 121]

w
.e

CholeskySkyline sonucu

zm:

4
3

6

1
x=
1

6
2

4

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

149

150

17. PROGRAMLAR: CHOLESKY Skyline(ufuk izgisi) teknii

DEFINT I-N
DEFDBL A-H, O-Z

CLS

m
ri.
co

sn
o

DECLARE SUB CholeskySkyline (n, a(), b(), kH(), iHata)

Ana program

tla

' Ana program CHOLESKY Skyline(Ufuk izgisi) zm teknii


'--------------------------------------------------------' Ax=b Denklem sistemi zm
' A simetrik pozitif tanml
' arlan alt programlar: CholeskySkyline
'--------------------------------------------------------DATA 8 : ' denklem says
'ufuk izgisi ykseklikleri:
Kolon ykseklikleri
DATA 1,2,2,4,1,4,1,8
'A nn diyagonal-ufuk izgisi arasndaki elemanlar:
DATA 11
DATA 16,1
DATA 13,2
A nn st geninin
DATA 9,0,0,3
kolonlar
DATA 10
DATA 12,4,-1,4
DATA 8
DATA 26,1,4,0,0,3,1,-5
'Sa taraf vektr:
DATA 24,-28,108,15,14,107,-12,121
B nin elemanlar

Denklem says okunuyor

em
de
r

READ n
DIM kH(n), b(n)
Kolon ykseklikleri ve kar taraf iin bellekte yer ayr
'A nn ufuk izgisi yksekliklerini oku:
FOR i = 1 TO n
READ kH(i)
Kolon yksekliklerini oku
NEXT i
'A matrisinin eleman saysnn=A nn boyutunun belirlenmesi:
iElemansayisi = 0
FOR i = 1 TO n
iElemansayisi = iElemansayisi + kH(i)
NEXT i
DIM a(iElemansayisi): ' A matrisi iin bellekte yer ayr
'A y oku:
FOR i = 1 TO iElemansayisi
A nn kolonlarn oku
READ a(i)
NEXT i

A nn depolanacak toplam eleman saysn hesapla

A matrisi iin bellekte yer ayr

'Denklem sistemini z:
CALL CholeskySkyline(n, a(), b(), kH(), iHata)
IF iHata <> 0 THEN
PRINT "Matris pozitif tanml deil, denklem no:"; iHata
ELSE
PRINT "zm(CholeskySkyline):"
FOR i = 1 TO n
PRINT b(i);
NEXT i
END IF

Sonucu yaz

END 'Cholesky-Skyline ana

w
.e

'sa taraf vektrn oku:


FOR i = 1 TO n
b yi oku
READ b(i)
NEXT i

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

150

151

17. PROGRAMLAR: CHOLESKY Skyline(ufuk izgisi) teknii

em
de
r

FOR i = 1 TO n
kn = MaxA(i)
kl = kn + 1
ku = MaxA(i + 1) - 1
kH = ku - kl
IF kH < 0 GOTO 110

IF kH > 0 THEN
k = i - kH
ic = 0
KLT = ku
FOR j = 1 TO kH
ic = ic + 1
KLT = KLT - 1
ki = MaxA(k)
nd = MaxA(k + 1) - ki - 1
IF nd > 0 THEN
IF ic < nd THEN kk = ic ELSE kk = nd
T=0
FOR L = 1 TO kk
T = T + a(ki + L) * a(KLT + L)
NEXT L
a(KLT) = a(KLT) - T
END IF
k=k+1
NEXT j
END IF

w
.e

m
ri.
co

sn
o

' diyagonal elemanlarn adresleri


MaxA(1) = 1
Dmax = ABS(a(1))
IF n > 1 THEN
FOR i = 2 TO n + 1
MaxA(i) = MaxA(i - 1) + kH(i - 1)
NEXT i
END IF

CholeskySkyline
alt program

tla

SUB CholeskySkyline (n, a(), b(), kH(), iHata)


'-------------------------------------------------------------' Lineer denklem sistemi zm
' CHOLESKY Skyline(Ufuk izgisi) zm teknii
' Dr. Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998
' A(n,n)*x(n)=b(n) denklem sistemini ufuk izgisi zm
' teknii ile zer. A simetrik ve pozitif tanml matristir.
' A nn kolonlarndaki diyagonali ile ufuk izgisi
' arasndaki elemanlar sra ile A tek boyutlu matrisinde
' deplanm olmaldr.
' b(n) sa taraf b tek boyutlu matrisinde depolanm olmaldr.
' A nn diyagonal-ufuk izgisi ykseklii=kolonlarn eleman says
' kH(n) vektrnde depolanm olmaldr.
' n: denklem says
' iHata: hata deikeni. Matris pozitif tanml ise iHata=0 olarak
' aksi halde iHata<>0 olarak dner. iHata<>0 durumunda zm yoktur
' ve zmn kesildii denklem numarasn belirtir.
' FORTRAN kodu BATHE, k.j, Page 448 den alnmtr
'---------------------------------------------------------------DIM MaxA(n + 1): ' Diyagonal elemanlarn adresleri
iHata = 0
' EpsMach
EpsMach = 1
DO
EpsMach = EpsMach / 2
s = 1 + EpsMach
LOOP UNTIL s <= 1
EpsMach = 2 * EpsMach
Zero = EpsMach

k=i
b=0
FOR kk = kl TO ku
k=k-1
ki = MaxA(k)
T = a(kk) / a(ki)
b = b + T * a(kk)
a(kk) = T
NEXT kk
a(kn) = a(kn) - b

' Aa doru hesap


FOR i = 1 TO n
kl = MaxA(i) + 1
ku = MaxA(i + 1) - 1
IF ku - kl >= 0 THEN
k=i
T=0
FOR kk = kl TO ku
k=k-1
T = T + a(kk) * b(k)
NEXT kk
b(i) = b(i) - T
END IF
NEXT i
' Yukar doru hesap
FOR i = 1 TO n
k = MaxA(i)
b(i) = b(i) / a(k)
NEXT i
IF n = 1 THEN EXIT SUB
i=n
FOR L = 2 TO n
kl = MaxA(i) + 1
ku = MaxA(i + 1) - 1
IF ku - kl >= 0 THEN
k=i
FOR kk = kl TO ku
k=k-1
b(k) = b(k) - a(kk) * b(i)
NEXT kk
END IF
i=i-1
NEXT L

END SUB ' CholeskySkyline

110 IF a(kn) <= Zero THEN iHata = i: EXIT SUB


NEXT i

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

151

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

18
PROGRAMLAR:
Ters matris hesab (GAUSS-JORDAN teknii)

153

18. PROGRAMLAR: Ters matris hesab-Gauss-Jordan teknii

18. PROGRAMLAR: Ters matris hesab-Gauss-Jordan teknii1

Saysal hesaplarda ters matrisin teorik nemi byk olmakla birlikte, zorunlu olmadka
hesabndan kanlr. Hesaplanmas zorunlu durumlarda aada kodu verilen GaussJordan
alt program kullanlabilir. Ters matris GAUSS, CROUT, DOOLITLE ve COLESKY metotlar ile
de hesaplanabilir. Ancak Tm bu metotlar GAUSS-JORDAN metodundan iki kat daha fazla
ana bellek gerektirirler. Ters matris daima tam dolu olduundan bant zelliinden
yararlanlamaz.

a12
a 22
.
an2

... a1n
... a 2 n
... .

... a nn

tla

A nxn

a11
a
= 21
.

a n1

ri.
co

GaussJordan alt program

rnek:

1
1
1 ,

3
2

A =?
-1

GaussJordan sonucu

w
.e

em
de
r

5
8 4 4
2 9 3 0

A = 0 1 7 1

0 5
3 2
6 3
2
0

sn
o

matrisinin A nxn ters matrisini GAUSS-JORDAN teknii ile hesaplar. Pivot eleman satrda
aranr ve gerekirse kolonlara yer deitirilir. Ters matris A nn zerine depolanr. Program
iHata0 ile dnerse det A=0 dr, ters matris hesaplanmaz.

zm:

50.2759
23.6207 23.7241 11.0345 21.4138
2.8276
1.3793
6.0345
2.9655
2.5517

= 11.2069
11.2414
5.3448
10.1379
23.7586

20.2414
9.3448
18.1379
42.7586
20.2069
55.4138
55.4828 25.6897 50.2759 117.5172

Teori ve saysal rnekler iin bak: blm 8


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

153

154

'---------------- Ana program GaussJordan------------' Ters matris hesab


' arlan alt programlar: GaussJordan
'----------------------------------------------------DATA 5: ' Matrisin boyutu
' A matrisi:
DATA 8, -4, 4, 5, 1
DATA 2, 9, -3, 0, 1
DATA 0, 1, -7, 1, 1
A nn satrlar
DATA 3, 2, 0, -5, 3
DATA 6, 3, 2, 0, 2

Ana program

ri.
co

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussJordan (n, A(), iHata)

A nn boyutu okunuyor
A matrisi iin bellekte yer ayr
A okunuyor

CALL GaussJordan(n, A(), iHata)

GAUSSJORDAN
alt programn ar

Sonucu yaz

em
de
r

GAUSSJORDAN
Alt program

w
.e

SUB GaussJordan (n, A(), iHata)


'---------------------------------------------------' Ters matris hesab (GAUSS-JORDAN teknii)
' Dr. ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' A(n,n) nin tersi GAUSS-JORDAN teknii ile hesaplanr
' A matrisi aran programda depolanm olmaldr.
' Ters matris A(n,n) zerinde depolanr.
' n:matrisin boyutu
' iSp(n): yadmc vektor(kolon deitirme bilgilerini ierir)
' ihata<>0 ise A tekildir, tersi hesaplanmaz.
' iHata=0 ise ters matris hesaplanmtr.
'----------------------------------------------------DIM iSp(n): 'kolon deitirme vektr
iHata = 0
' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps

' Zero: sfr varsaylacak say


Zero = 0
FOR j = 1 TO n
iSp(j) = j
FOR i = 1 TO n
T = ABS(A(i, j))
IF T >= Zero THEN Zero = T
NEXT i
NEXT j
Zero = Zero * Eps

' Pivot eleman ve pivot kolonu


FOR i = 1 TO n
pivot = 0
FOR k = i TO n
T = ABS(A(i, k))
IF T > pivot THEN
iVer = k: ' Pivot kolonu
pivot = T: ' Pivot eleman
END IF
NEXT k

sn
o

IF iHata <> 0 THEN PRINT "Matris Tekil !": END


PRINT "Ters matris (GaussJordan):"
FOR i = 1 TO n
FOR j = 1 TO n
PRINT A(i, j);
NEXT j
PRINT
NEXT i
END ' GaussJordan ana

tla

CLS
READ n
DIM A(n, n)
FOR i = 1 TO n
FOR j = 1 TO n
READ A(i, j)
NEXT j
NEXT i

18. PROGRAMLAR: Ters matris hesab-Gauss-Jordan teknii

' Kolon lineer bamlm ?


IF pivot <= Zero THEN iHata = 1: EXIT SUB
IF iVer = i THEN
T = -1 / A(i, i)
A(i, i) = -1
FOR k = 1 TO n
A(k, i) = A(k, i) * T
NEXT k
ELSE
' Kolon deitir
iSv = iSp(i)
iSp(i) = iSp(iVer)
iSp(iVer) = iSv
aT = -1 / A(i, iVer)
A(i, iVer) = -1
FOR k = 1 TO n
T = A(k, i)
A(k, i) = A(k, iVer) * aT
A(k, iVer) = T
NEXT k
END IF
' arpm
FOR k = 1 TO n
IF k <> i THEN
T = A(i, k)
A(i, k) = 0
FOR j = 1 TO n
A(j, k) = A(j, k) + A(j, i) * T
NEXT j
END IF
NEXT k
NEXT i
' Satr deitir
FOR j = 1 TO n
iSv = iSp(j)
IF j <> iSv THEN
FOR k = j + 1 TO n
IF iSp(k) = j THEN EXIT FOR
NEXT k
iSp(k) = iSp(j)
FOR i = 1 TO n
T = A(j, i)
A(j, i) = A(k, i)
A(k, i) = T
NEXT i
END IF
NEXT j
END SUB ' GaussJordan

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

154

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

19
PROGRAMLAR:
Simetrik Ters matris (GAUSS-JORDAN teknii)

156

19. PROGRAMLAR: Simetrik ters matris hesab-GaussJorSim

19. PROGRAMLAR: Simetrik ters matris hesab-GaussJorSim

Saysal hesaplarda ters matrisin teorik olarak nemi byk olmakla birlikte, zorunlu
olmadka hesabndan kanlr. Hesaplanmas zorunlu durumlarda aada kodu verilen
GaussJorSim alt program simetrik matrisler iin kullanlabilir. Simetrik ters matris COLESKY
metodu ile de hesaplanabilir, ancak GAUSS-JORDAN metodundan iki kat daha fazla ana
bellek gerektirir. Ters matris daima tam dolu bir matris olduundan bant zelliinden
yararlanlamaz.

... a1n
... a 2 n
... .

... a nn

tla

A nxn

a11 a12

a 22
=
.
.
Simetrik

ri.
co

GaussJordan alt program

rnek:

2
5
4
4
4

4 2 4
4 4 4
6 2 2 ,

2 9.5 2
2 2 32

A =?
-1

GaussJorSim sonucu

w
.e

em
de
r

4
2

A = 4

2
4

sn
o

matrisinin A nxn ters matrisini GAUSS-JORDAN teknii ile hesaplar. Pivot eleman satrda
aranr ve gerekirse kolonlara yer deitirilir. Ters matris A nn zerine depolanr. Program
iHata0 ile dnerse det A=0 dr, ters matris hesaplanmaz.

zm:

3.0208 4.0625 1.2250 0.5417


3.9063
3.0208
3.0694 3.5417 1.0833 0.4722

= 4.0625 3.5417 4.6250


1.2500
0.5833

0.5000
0.1667
1.1250 1.0883 1.2500
0.5417 0.4722 0.5833
0.1667 0.11111

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

156

157

'--------------- Ana program GaussJorSim----------' Simetrik matrisin tersinin hesab


' arlan alt programlar: GaussJorSim
'-------------------------------------------------DATA 5: ' Matrisin boyutu
' A matrisi
DATA 4, 2, 4, 2 ,4
DATA 5, 4, 4 ,4
A nn satrlar
DATA 6, 2 ,2
DATA 9.5 ,2
DATA 32

Ana program

ri.
co

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussJorSim (n, a(), iHata)

CALL GaussJorSim(n, a(), iHata)

tla

A nn boyutu okunuyor

CLS
READ n
A matrisi iin bellekte yer ayr
DIM a(n, n)
' matrisinin t genini oku, simetriye tamamla
FOR i = 1 TO n
FOR j = i TO n
A okunuyor
READ a(i, j)
a(j, i) = a(i, j)
NEXT j
NEXT i

19. PROGRAMLAR: Simetrik ters matris hesab-GaussJorSim

GAUSSJORsim alt programn ar

Sonucu yaz

em
de
r

PRINT "Ters matris(GaussJorSim):"


FOR i = 1 TO n
FOR j = 1 TO n
PRINT a(i, j);
NEXT j
PRINT
PRINT
NEXT i

sn
o

IF iHata <> 0 THEN PRINT "Matris tekil (GaussJorSim)": END

END 'GaussJorSim ana

GAUSSJORSim
Alt program

w
.e

SUB GaussJorSim (n, a(), iHata)


'-----------------------------------------------------' Ters matris hesab
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1995
' a(n,n) simetrik ve pozitif tanml matrisin tersi
' hesaplanarak a(n,n) zerinde depolanr.
' Pivot arama yaplmaz.
' a aran programda depolanm olmaldr.
' iHata=0 ise ters matris hesaplanmtr.
' iHata<>0 ise matris tekildir, tersi hesaplanmaz.
'-----------------------------------------------------' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps
iHata = 0
Zero = 0
FOR i = 1 TO n
IF ABS(a(i, i)) >= Zero THEN Zero = ABS(a(i, i))
NEXT i
Zero = Zero * Eps
FOR i = 1 TO n
IF ABS(a(i, i)) <= Zero THEN iHata = 1: EXIT SUB
T = -1 / a(i, i)
a(i, i) = -1
FOR k = 1 TO n
a(k, i) = a(k, i) * T
NEXT k
' arpm
FOR k = 1 TO n
IF k <> i THEN
T = a(i, k)
a(i, k) = 0
FOR j = 1 TO n
a(j, k) = a(j, k) + a(j, i) * T
NEXT j
END IF
NEXT k
NEXT i
END SUB 'GaussJorSim

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

157

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz
Ahmet TOPU

em
de
r

Noktalar en iyi temsil eden eri:


y= -3.0084+11.9666x-6.9991x2+1.0017x3

sn
o

tla

Ders notlar 2014

AnxmXm=bn

w
.e

nm

20

PROGRAMLAR: Denklem says bilinmeyen


saysndan farkl dorusal denklem sistemleri

nm durumu: Dengeleme hesab

En kk kareler metodu ile eri(polinom) uydurma


QR arpanlara ayrma metodu
nm durumu: Sa ters matris ve ekirdek (GAUSS-JORDAN teknii)

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

159

20. PROGRAMLAR
En kk kareler metodu ile en uygun eri(polinom) uydurma -LeastSquares

ri.
co

En
uygun
eri
uydurma
problemi(curve
fitting);
gzlem,
lm, deney
veya
istatistiksel
verilerin
deerlendirilmesi
ve
yorumlanmasn basitletirmek iin
kullanlan bir yoldur.

tla

Verilmi (x1,y1), (x2,y2), , (xm,ym)


deerleri
x-y
eksen
takmnda
gsterildiinde, notalarn bir doru
veya eri zerinde olmad, x-y
dzleminde serpitirildii grlr.
Bunun
nedeni
verilerin
hata
iirmesidir.

sn
o

Ama, bu noktalar en az hata ile temsil eden bir doru veya erinin denkleminin
bulunmasdr. Yukarda, solda verilen noktalarn bir doru ile temsil edilebilecei
grlmektedir. Bir dorunun genel denklemi y=a0+a1x dir. Bilinmeyen 2 dir: a0 ve a1. Bu
dorunun denklemini, yani a0 ve a1 parametrelerini belirlemek, iin sadece iki noktann
koordinatlarn bilmek yeter. Fakat ok sayda, m tane koordinatlar bilinen nokta vardr.
Hepsinin de dorunun denklemini salamas imknszdr. Noktalarn koordinatlar doru
denkleminde yerine konduunda denklemi salamayacak, bir miktar hata olacaktr.

em
de
r

LeastSquares program; xi, yi deerleri bilinen m noktay temsil edecek


y=a0+a1x+a2x2++anxn polinomunun a0, a1, ,a2, , an katsaylarn GAUSSun en kk
kareler metodundaki normal denklemleri kullanarak minimum hata ile hesaplar. Teorik
bantlar ve saysal rnekler iin iin bak: Blm 9.
y

rnek 1:

Nokta no
xi
yi

1
4
3.3

2
6
5.3

3
8
7.4

4
10
6.9

5
12
9.0

6
14
8.6

7
16
10.8

8
18
12.4

9
20
12.0

10
22
13.2
x
0

2 4

8 10 12 14 16 18 20 22 24

w
.e

Noktalarn minimum hata ile temsil eden y=a0+a1x dorusunun a0 ve a1 katsaylarn


LeastSquares program ile bulunuz. El zm iin baknz: Blm 9, rnek 3.

Nokta says m=10, polinomun derecesi n=1 (doru denklemi) dir. n, m ve noktalarn
koordinatlar LeastSquares ana programna aadaki gibi verilmelidir:
n = 1: 'Polinomun derecesi
m = 10: 'Nokta says
'x ordinatlar
DATA 4,6,8,10,12,14,16,18,20,22
'y ordinatlar
DATA 3.3,5.3,7.4,6.9,9.0,8.6,10.8,12.4,12.0,13.2
LeastSquares programnn sonucu

Noktalar en iyi temsil eden


doru: y=2.1024+0.5221 x

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

159

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

160

rnek 2:

4
10
5

5
12
3

6
14
2

3
7
5

2
4
4

1
2
1

xi
yi

Nokta no

ri.
co

Noktalarn minimum hata ile temsil eden y=a0+a1x+a2x2 erisinin a0, a1 ve a2 katsaylarn
LeastSquares program ile bulunuz. El zm iin baknz: Blm 9, rnek 4.

Nokta says m=6, polinomun derecesi n=2 (parabol denklemi) dir. n, m ve noktalarn
koordinatlar LeastSquares ana programna aadaki gibi verilmelidir:

tla

n = 2: 'Polinomun derecesi
m = 6: 'Nokta says
DATA 2,4,7,10,12,14: 'x ordinatlar
DATA 1,4,5,5,3,2: 'y ordinatlar

Noktalar en iyi temsil eden eri:


y= -1.5988+1.6791x-0.1035x2

em
de
r

sn
o

LeastSquares programnn sonucu

rnek 3:

Nokta no
xi
yi

1
0.0
-3.0

2
0.5
1.3

3
1.0
3.0

4
1.5
2.6

5
2.0
1.0

6
2.5
-1.3

7
3.0
-3.0

8
3.5
-4.0

9
4
-3.0

10
4.5
0.5

11
5.0
7

Noktalarn minimum hata ile temsil eden y=a0+a1x+a2x2+a3x3 erisinin a0, a1, a2 ve a3
katsaylarn LeastSquares program ile bulunuz.

w
.e

Nokta says m=11, polinomun derecesi n=3 tr. n, m ve noktalarn koordinatlar


LeastSquares ana programna aadaki gibi verilmelidir:
n = 3: 'Polinomun derecesi
m = 11: 'Nokta says
'x ordinatlar
DATA 0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5
'y ordinatlar
DATA -3,1.3,3,2.6,1,-1.3,-3,-4,-3,0.5,7

Noktalar en iyi temsil eden eri:


y= -3.0084+11.9666x-6.9991x2+1.0017x3

LeastSquares programnn sonucu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

160

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

'---------------Ana program LeastSquares-----------------------' Ahmet TOPU, Eskiehir, 2010


' Koordinatlar bilinen m notay en iyi temsil eden ve hatalarn
' karelerinin toplam en kk olan y=a0+a1x+a2x^2+...+anx^n
' polinomunun a0, a1, a2,...,an katsaylar hesaplanr.

LeastSquares ana program

'
'
'
'

kt:
x(n+1): a0, a1, ..., an katsaylarnn depoland vektr
hTh>=0: hatalarn karelerinin toplam
hTh<0 : hata olutu, hesap yaplmad

ri.
co

Veri:
n: bulunacak polinomun derecesi. 0<n<m olmaldr.
m: nokta says. m>1 olmaldr.
x(m): x1,x2,...,xm ordinatlarnn depoland vektr
y(m): y1,y2,...,ym ordinatlarnn depoland vektr

' Metod:
' En kk kareler metodu(Least Squares)-dengeleme hesab
'
'
'
'
'

' arlan alt program: LeastSquares


'---------------------------------------------------------------

tla

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB LeastSquares (n, m, x(), y(), hTh)
n = 1: 'Polinomun derecesi
m = 10: 'Nokta says
'x ordinatlar
DATA 4,6,8,10,12,14,16,18,20,22
'y ordinatlar
DATA 3.3,5.3,7.4,6.9,9.0,8.6,10.8,12.4,12.0,13.2

rnek 1 in verileri

sn
o

'n = 2: 'Polinomun derecesi


'm = 6: 'Nokta says
' DATA 2,4,7,10,12,14: 'x ordinatlar
' DATA 1,4,5,5,3,2: 'y ordinatlar

161

em
de
r

'n = 3: 'Polinomun derecesi


'm = 11: 'Nokta says
'x ordinatlar
' DATA 0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5
'y ordinatlar
' DATA -3,1.3,3,2.6,1,-1.3,-3,-4,-3,0.5,7

rnek 2 nin verileri ( ' iareti bu satrlarn devre d olduu anlamndadr)

rnek 3 n verileri ( ' iareti bu satrlarn devre d olduu anlamndadr)

CLS : ' ekran temizle


DIM x(m), y(m)
FOR i = 1 TO m
READ x(i)
NEXT i
FOR i = 1 TO m
READ y(i)
NEXT i

xi ve yi deerleri iin bellekte yer ayr

xi deerlerini oku

yi deerlerini oku

CALL LeastSquares(n, m, x(), y(), hTh)

LeastSquares alt programn ar, polinomun katsaylarn hesapla

w
.e

IF hTh < 0 THEN


PRINT "n veya m hatal veya say tamas (LeastSquares)!"
END
END IF

' ktlar ekrana yaz


PRINT n; ".derece polinomun katsaylar(LeastSquares):"
FOR i = 1 TO n + 1
PRINT x(i);
Hesaplanan katsaylar yaz
NEXT
PRINT
PRINT
PRINT n; ". derece polinom:"
PRINT "y(x)=";
FOR i = 1 TO n + 1
a = x(i)
IF a < 0 THEN a$ = "-" ELSE a$ = "+"
a = ABS(a)
k=i-1
IF k < 1 THEN PRINT a$; a;
IF k = 1 THEN PRINT a$; a; "X";
IF k > 1 THEN PRINT a$; a; "X^"; k;
NEXT i
PRINT
PRINT
PRINT "Hatalarn karelerinin toplam (Ypolinom-Yveri)^2="; hTh
PRINT

Polinomu yaz

END ' LeastSquares ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

161

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

'
'
'
'

kt:
x(n+1): a0, a1, ..., an katsaylarnn depoland vektr
hTh>=0: hatalarn karelerinin toplam
hTh<0 : n veya m hatal veya say tamas, hesap yaplmad

em
de
r

p(1, 1) = 1
xsum = 0
ysum = 0
FOR j = 1 TO m
xsum = xsum + x(j)
NEXT j
p(2, 2) = 1
p(2, 1) = -xsum / m

sn
o

' arlan alt program: Yok


'----------------------------------------------------------hTh = -1
IF m < 2 OR n <= 0 THEN EXIT SUB
IF n >= m THEN n = m - 1
m1 = m + 1
n1 = n + 1
DIM p(m1, m), a(n + 1): 'yardmc matrisler
' huge: yuvarlama hatalarn ve say tamasn nlemek iin
' en byk say varsaym
huge = 1D+30
FOR i = 1 TO m1
FOR j = 1 TO m
p(i, j) = 0
NEXT j
NEXT i

FOR i = 3 TO n1
ii = i - 1
ix = i - 2
xsum = 0
ysum = 0
usum = 0
zsum = 0
FOR k = 1 TO m
sumy = 0
sumx = 0
FOR L = 1 TO i
sumy = sumy + p(ii, L) * x(k) ^ (L - 1)
sumx = sumx + p(ix, L) * x(k) ^ (L - 1)
NEXT L
xsum = xsum + x(k) * sumy * sumy
ysum = ysum + sumy * sumy
usum = usum + x(k) * sumy * sumx
zsum = zsum + sumx * sumx
NEXT k
IF ABS(ysum) > huge OR ABS(zsum) > huge THEN EXIT SUB
b = xsum / ysum
g = -usum / zsum
p(i, 1) = -b * p(ii, 1) + g * p(ix, 1)
FOR j = 2 TO i
jj = j - 1
p(i, j) = p(ii, jj) - b * p(ii, j) + g * p(ix, j)
NEXT j
NEXT i

w
.e

ri.
co

Veri:
m: nokta says. m>1 olmaldr.
n: polinomun derecesi. 0<n<m olmaldr.
x(m): x1,x2,...,xm ordinatlarnn depoland vektr
y(m): y1,y2,...,ym ordinatlarnn depoland vektr

tla

'
'
'
'
'

LeastSquares alt program

SUB LeastSquares (n, m, x(), y(), hTh)


'----------------------------------------------------------' Koordinatlari x(1),y(1),...,x(m),y(m) olarak verilmi m
' noktay en iyi temsil eden y(x)=a0+a1*x+a2*x^2+...+an*x^n
' polinom erisinin a0,a1,a2,...,an katsaylar en kk
' kareler metodu ve ortogonal fonksiyonlar kullanlarak
' hesaplanr.

162

FOR i = 1 TO n1
xsum = 0
ysum = 0
FOR k = 1 TO m
sumz = 0
FOR L = 1 TO i
sumz = sumz + p(i, L) * x(k) ^ (L - 1)
NEXT L
xsum = xsum + y(k) * sumz
ysum = ysum + sumz * sumz
NEXT k

IF ABS(ysum) > huge THEN EXIT SUB


p(m1, i) = xsum / ysum
NEXT i

FOR i = 1 TO n1
a(i) = 0
FOR j = 1 TO i
a(j) = a(j) + p(i, j) * p(m1, i)
NEXT j
NEXT i
' hatalarn karelerinin toplamn hesapla
hTh = 0
FOR i = 1 TO m
x = x(i)
ypolinom = 0
FOR k = 1 TO n1
ypolinom = ypolinom + a(k) * x ^ (k - 1)
NEXT k
hTh = hTh + (y(i) - ypolinom) ^ 2
NEXT i
' Polinomun katsaylarn x vektrne kopyala
FOR i = 1 TO n1
x(i) = a(i)
NEXT i
END SUB ' LeastSquares

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

162

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

163

Dengeleme hesab: QR arpanlara ayrma metodu1 - QR:


Dengeleme hesabnda karlalan

Anxm x m = b m

m 1

x
A

ri.
co

dorusal denklem sisteminin denklem says bilinmeyen saysndan fazladr, n>m. Anxm kolon
dzenli, yani Rank A=m dir. Denklem sistemi ematik olarak

tla

rnek 1:

sn
o

eklindedir. Denklemler uyumlu olmadndan denklemi salayan tam doru bir zm


bulmak mmkn deildir. x zm minimum hata ierecek ekilde hesaplanr. Aada
Qbasic kodu verilen QR alt program bu amaca yneliktir.

Blm 9, rnek 2 de el zm verilmi olan dengeleme probleminin

em
de
r

161.678

h 159.277 denklem sisteminde n=5 denklem ve m=2 bilinmeyen vardr,


3 161.685
A x b 1

h
1 4 159.265

1 1
2.410

n>m dir. n, m, A ve b nin deerleri

h
satrlar ile QR programna verilerek x = 3 bilinmeyen vektr hesaplanmtr.
h4

w
.e

DATA 5,2 : ' n ve m nin deeri


' a matrisi:
DATA 1,0
DATA 0,1
DATA 1,0
DATA 0,1
DATA 1,-1
' b vektr:
DATA 161.678,159.277,161.685,159.265,2.410

QR programnn sonucu

h 161 .681375
x = 3 =

h4 159 .271125
Hatalarn karelerinin toplam=0.000097

Teori ve saysal rnekler iin bak: Blm 9


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

163

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

164

rnek 2:

ri.
co

4
1 2
1
1 4 16

a0 4
1 7 49 5
Ax b
a1
1 10 100 a 5
1 12 144 2 3


2
1 14 196

QR program en uygun eri uydurma problemlerinin zm iin de kullanlabilir. Blm 9,


rnek 4 de el zm verilmi olan en uygun erinin bulunmas probleminin

em
de
r

sn
o

DATA 6,3: ' n ve m nin deeri


' a matrisi:
DATA 1,2,4
DATA 1,4,16
DATA 1,7,49
DATA 1,10,100
DATA 1,12,144
DATA 1,14,196
' b matrisi:
DATA 1,4,5,5,3,2

tla

denklem sisteminde n=6 denklem ve m=3 bilinmeyen vardr, n>m dir. n, m, A ve b nin
deerleri

satrlar ile QR programna verilerek y=a0+a1x+a2x2 erisinin a0, a1 ve a2 katsaylar


hesaplanmtr.
QR programnn sonucu

Noktalar en iyi temsil eden eri:


y= -1.5988+1.6791x-0.1035x2

w
.e

a0 = 1.5988
a1 = 1.6791

a2 = 0.1035

Noktalar en kk hata ile temsil eden erinin denklemi:


y= -1.5988+1.6791x-0.1035x2

olur.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

164

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

QR ana program

'------------------- Ana program QR---------------------------------' Dr. Ahmet TOPU, ESKEHR, 2010


' Denklem says bilinmeyen saysndan byk olan dorusal
' a(n,m)x(m)=b(n) denklem sistemi hatalarn karelerinin toplam
' minimum olacak ekilde QR arpanlara ayrma metodu ile zlr.
' n>=m ve a nn kolonlar dorusal bamsz olmaldr, yani rank(a)=m.
' Bu program en uygun eri uydurma problemleri iin de kullanlabilir.

DEFINT I-N
DEFDBL A-H, O-Z

tla

1. rnein verileri

2. rnein verileri ( ' iareti ile devre d braklm)

sn
o

'DATA 6,3: ' n ve m nin deeri


' a matrisi:
'DATA 1,2,4
'DATA 1,4,16
'DATA 1,7,49
'DATA 1,10,100
'DATA 1,12,144
'DATA 1,14,196
' b matrisi:
'DATA 1,4,5,5,3,2

ri.
co

' Kullanlan metot: QR arpanlara ayrma yntemi


' arlan alt programlar: QR
'--------------------------------------------------------------------A nn satr ve kolon says
DATA 5,2 : ' n ve m nin deeri
' a matrisi:
DATA 1,0
A nn satrlar
DATA 0,1
DATA 1,0
DATA 0,1
DATA 1,-1
' b vektr:
b nin satrlar
DATA 161.678,159.277,161.685,159.265,2.410

165

DECLARE SUB QR (a(), b(), n, m, x(), hTh)


CLS

em
de
r

A nn boyutlarn oku
READ n, m
DIM a(n, m), x(m), b(n)
Matrisler in bellekte yer ayr

' A y oku:
FOR i = 1 TO n
FOR j = 1 TO m
READ a(i, j)
NEXT j
NEXT i
' b yi oku:
FOR i = 1 TO n
READ b(i)
NEXT i

A y oku

b y oku

CALL QR(a(), b(), n, m, x(), hTh)

w
.e

IF hTh < 0 THEN


PRINT "zm bulunamad(QR) !"
END
END IF

PRINT "Denklem sisteminin zm (QR):"


FOR i = 1 TO m
PRINT x(i);
NEXT i
PRINT
PRINT
IF n > m THEN PRINT "Hatalarn karelerinin toplam="; hTh

END

Sonular yaz

' QR ana

QR alt programn ar

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

165

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

' input a(n,m): coefficient matrix


'
b(n): right side vector with length n
'
n: number of equations
'
m: number of uknowns
' output:
'
a(n,m): A and R matricies.
'
x(m) : solution vector.

' This program can be used for curve fitting problems olso.

QR alt program

ri.
co

SUB QR (a(), b(), n, m, x(), hTh)


'----------------------------------------------------------------------' Solves the overdetermined linear system a(n,m)x(m)=b(n) using
' the QR factorization with Householder transformation, where n>=m.
' The solution x(m) is found in least squares sens, so that Euclidean
' norm ||Ax-b|| will be minimum.
' Method used:
'
orthogonalization: Householder transformation
'
Decomposition: QR algorithm
'
Coefficient matrix a(n,m) will be transform to A=QR, where Q is an
'
othogonal matrix and R is an upper triangular non-singular matrix.
' Constraints: n>=m and rank(a)=m

166

sn
o

tla

'
hTh<0 : the condition n>=m not held or R is singular, so no solution
'
hTh>=0: sum of squares of errors, solution found
' Subroutines called: none
' Fortran code: www.stat.berkeley.edu/~stark/code/index.htm
' Original file name: qr.f
'-----------------------------------------------------------------------hTh = -1
' Check if the system is not overdetermined
IF n < m THEN EXIT SUB
Zero = 1E-30: 'assumed smallest number.
FOR j = 1 TO m
' Find constants for Housholder rotation and diagonal entry
sq = 0
FOR i = j TO n
sq = sq + a(i, j) ^ 2
NEXT i
' Check if column is linear dependent
IF sq < Zero THEN EXIT SUB

em
de
r

Sign = SQR(sq)
IF a(j, j) >= 0 THEN Qv1 = Sign ELSE Qv1 = -Sign
Qv1 = -Qv1
u1 = a(j, j) - Qv1
a(j, j) = Qv1
j1 = j + 1
Rotate remaining columns of sub-matrix
FOR jj = j1 TO m
Dot = u1 * a(j, jj)
FOR i = j1 TO n
Dot = Dot + a(i, jj) * a(i, j)
NEXT i
Con = Dot / ABS(Qv1 * u1)
FOR i = j1 TO n
a(i, jj) = a(i, jj) - Con * a(i, j)
NEXT i
a(j, jj) = a(j, jj) - Con * u1
NEXT jj
Rotate b vector
Dot = u1 * b(j)
FOR i = j1 TO n
Dot = Dot + b(i) * a(i, j)
NEXT i
Con = Dot / ABS(Qv1 * u1)
b(j) = b(j) - Con * u1
FOR i = j1 TO n
b(i) = b(i) - Con * a(i, j)
NEXT i
NEXT j
Solve triangular system by back-substitution
FOR i = 1 TO m
x(i) = 0
NEXT i
FOR ii = 1 TO m
i = m - ii + 1
Sum = b(i)
FOR j = i + 1 TO m
Sum = Sum - a(i, j) * x(j)
NEXT j
Check if trianguler system is singular
IF ABS(a(i, i)) < Zero THEN EXIT SUB
x(i) = Sum / a(i, i)
NEXT ii
Find residual in overdetermined case
hTh = 0
FOR i = m + 1 TO n
hTh = hTh + b(i) ^ 2
NEXT i

'

'

w
.e

'

'

'

END SUB ' end of QR


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

166

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

167

Sa ters matris ve ekirdek hesab-BoBx1:


Satr dzenli Anxm matrisinde nm olmak zere
A Bx = 0

A B0 = I

ri.
co

Koullarn salayan Bx matrisine A nn ekirdei(Kern, null space), Bo matrisine de A nn sa


ters matrisi(right inverse) denir. Denklem says bilinmeyen saysndan az olan denklem
sistemlerinin homojen ve inhomojen zmnn dorudan bulunmasn salar. Bx homojen
zme, Bo inhomojen zme karlk gelir. n<m durumunda d=m-n kolon dorusal
bamldr. Bo mxn boyutlu, Bx mxd boyutludur. ematik olarak:
d

tla

B0

m
m

Inxn

sn
o

Bx

0nxd

em
de
r

BoBx alt program bu amaca yneliktir. A matrisi iin aran programda mxm boyutunda
yer ayrlm ve A nn n satr depolanm olmaldr. Bo ve Bx matrisleri A nn zerine
depolanr. lk n kolon Bo sonraki d=m-n kolon Bx dir.
m

A nn depolanan satrlar

A iin bellekte ayrlan yer mxm dir

B0

Bx

n=m durumunda Bo=A-1 dir, bu durumda Bx tanmszdr.

w
.e

iHata=0 olarak dnerse Bo ve Bx hesaplanmtr, aksi halde hesap yarda kesilmitir.

rnek:

A 8 x10

0 0.7071 1
0
0
0
0
0
0
0
1 0 0.7071 0
0
0
0
0
0
0

0 1
0
0 0.7071 0
0
0
0
0

1
0
0
0
0.7071
0
0
0
0
0
=
,
0
1
0.7071
0
0
0 0.7071 1
0
0

0
0.7071
0
0
1
0.7071
0
0
0
0
0
0
0
1
0.7071
0
0
0 0.7071 1

0
0
0 0.7071 1
0
0 0.7071 0
0

Bo = ? , B x = ?

Teori ve saysal rnekler iin bak: blm 10


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

167

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

168

ri.
co

BoBx programnn sonucu

zm:

0
0.7071
0.7071
0

1
0

0
.
7071
0

1
0
Bx =

0.7071 0.7071
0
1

0.7071
0
0
1

0
0.7071

em
de
r

sn
o

tla

0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0

0 1.4142 0 1.4141 0
0
0
0

1
1
0
1
0
0
0
0

0
0
0
0
0
0
0
0
B0 =

1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0

1
1
1
1
0
0
0
0
0 1.4142 0 1.4141 0 1.4142 0 1.4142

1
2
0
2
0
1
1
1

' ---------------------Ana program BoBx---------------------------' Dr. ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1995
' a(n,m) matrisinin sa ters matris ve ekirdek hesab

Ana program BoBx

' Veri:
' a(n,m): satr dzenli matris. mxm boyutlu tanmlanmaldr
'
a nn elemanlar ilk n satr ve m kolona depolanmaldr.
'
n,m: matrisin satr ve kolon says, n<=m olmaldr.
' kt:
' Bo(m,n): a nn ilk n kolonunda depoludur.
' Bx(m,d): a nn son d kolonunda depoludur. d=m-n dir.
' n=m durumunda Bx tanmszdr, hesaplanmaz ve Bo a nn tersidir.

w
.e

' arlan alt programlar: BoBx


'-----------------------------------------------------------------A nn satr ve kolon says
DATA 8, 10: ' a nn satr ve kolon says
' Matrix a:
DATA 0, 0,-.7071,
-1,
0, 0,
0, 0, 0,
0
DATA -1, 0,-.7071,
0,
0, 0,
0, 0, 0,
0
DATA 0,-1,
0,
0,-.7071, 0,
0, 0, 0,
0
A nn satrlar
DATA 1, 0,
0,
0, .7071, 0,
0, 0, 0,
0
DATA 0, 1, .7071,
0,
0, 0,-.7071,-1, 0,
0
DATA 0, 0, .7071,
0,
0, 1, .7071, 0, 0,
0
DATA 0, 0,
0,
1, .7071, 0,
0, 0,-.7071,-1
DATA 0, 0,
0,
0,-.7071,-1,
0, 0,-.7071, 0
DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB BoBx (n, m, a(), iSp(), iHata)
CLS
READ n, m
DIM a(m, m)
DIM iSp(m)
FOR i = 1 TO n
FOR j = 1 TO m
READ a(i, j)
NEXT j
NEXT i

A nn satr ve kolon saysn oku


A iin bellekte mxm boyutlu yer ayr

A y oku
BoBx alt programn ar

Devam var
CALL BoBx(n, m, a(), iSp(), iHata)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

168

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

Devam

IF m > n THEN
PRINT "Dorusal baml kolonlarn numaras(BoBx):"
FOR i = n + 1 TO m
PRINT iSp(i);
NEXT i
PRINT
PRINT

Dorusal baml kolonlarn


numaralarn yaz

tla

END 'BoBx ana

sn
o

PRINT "Sa ters matris Bo n kolonlar(BoBx):"


FOR i = 1 TO n
FOR j = 1 TO m
Bo n kolonlarn yaz
PRINT a(j, i);
NEXT j
PRINT
NEXT i
PRINT

ri.
co

PRINT "ekirdek Bx in kolonlar(BoBx):"


FOR i = n + 1 TO m
FOR j = 1 TO m
Bx in kolonlarn yaz
PRINT a(j, i);
NEXT j
PRINT
NEXT i
END IF
PRINT

IF iHata = 1 THEN
PRINT "Matrisin satrlar dzensiz(BoBx)"
END
END IF

169

BoBx alt program

em
de
r

SUB BoBx (n, m, a(), iSp(), iHata)


' Sa ters matris ve ekirdek hesab
'---------------------------------------------------------------------' Dr. ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1995
' a(n,m) matrisinin Bo sa ters matrisi ve Bx ekirdei GAUSS-JORDAN
' teknii ile a*Bo=I ve a*Bx=0 koullar salanacak ekilde hesaplanr.
' a(n,m) aran programda mxm boyutlu olak tanmlanm ve n tane satr
' depolanm olmaldr.
' A nn satr dzenli olduu ve n<=m olduu varsaylmaktadr.

' BoBx arldktan sonra a nn ilk n kolonu Bo(m,n) sa ters matrisini,


' son d=m-n kolonu Bx(m,d) ekirdeini ierir.
' n=m durumunda sa ters matris a nn tersine eittir, Bx tanmszdr.
'
'
'
'

Satrlar dorusal baml ise hesap kesilir iHata<>0 dner, Bo ve Bx


hesaplanmaz.
iSp(m) vektr aran programda tanmlanm olmaldr.
iSp de kolon numaralar saklanr, son d kolon dorusal bamllardr.

w
.e

' arlan alt program: yok


'---------------------------------------------------------------------iHata = 0
' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps
' Zero: Sfr varsaylacak deer
IF m - n < 0 THEN iHata = 1: EXIT SUB
' Norm
zero = 0
FOR j = 1 TO m
iSp(j) = j
FOR i = 1 TO n
Norm = ABS(a(i, j))
IF Norm > zero THEN zero = Norm
NEXT i
NEXT j
zero = zero * Eps
FOR i = 1 TO n
' satrda pivot ara
Pivot = 0
FOR k = i TO m
at9 = ABS(a(i, k))
IF at9 > Pivot THEN
iV = k: ' pivot column
Pivot = at9: ' pivot eleman
END IF
NEXT k

Devam var

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

169

20. PROGRAMLAR: Denklem says bilinmeyen saysndan farkl denklem sistemleri

ri.
co

sn
o

' Transformasyon matrisi ile arp


FOR k = 1 TO m
IF k <> i THEN
at9 = a(i, k)
a(i, k) = 0
FOR j = 1 TO n
a(j, k) = a(j, k) + a(j, i) * at9
NEXT j
END IF
NEXT k
NEXT i

Devam

tla

' Satr dorusal baml m kontrol


IF Pivot < zero THEN iHata = 1: EXIT SUB
IF iV > i THEN
' i ve iSv nolu kolonlar dei
iSv = iSp(i)
iSp(i) = iSp(iV)
iSp(iV) = iSv
at9 = -1 / a(i, iV)
a(i, iV) = -1
FOR k = 1 TO n
agrz = a(k, i)
a(k, i) = a(k, iV) * at9
a(k, iV) = agrz
NEXT k
ELSE
at9 = -1 / a(i, i)
a(i, i) = -1
FOR k = 1 TO n
a(k, i) = a(k, i) * at9
NEXT k
END IF

170

em
de
r

' aret dei, nxm boyutlu alan m*m boyuta dntr


FOR i = 1 TO n
FOR j = n + 1 TO m
a(i, j) = -a(i, j)
NEXT j
NEXT i
FOR i = n + 1 TO m
FOR j = 1 TO m
a(i, j) = 0
NEXT j
a(i, i) = 1
NEXT i

w
.e

' Satrlara yer deitir


FOR j = 1 TO m
iSv = iSp(j)
IF j <> iSv THEN
FOR k = j + 1 TO m
IF iSp(k) = j THEN EXIT FOR
NEXT k
iSp(k) = iSv
FOR i = 1 TO m
at9 = a(j, i)
a(j, i) = a(k, i)
a(k, i) = at9
NEXT i
END IF
NEXT j
'BoBx

END SUB

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

170

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

21
PROGRAMLAR:
terasyon ile denklem sistemi zm
Gauss-Seidel metodu

21. PROGRAMLAR: terasyon ile denklem sistemi zm-GAUSS-SEIDEL iterasyon yntemi

172

21. PROGRAMLAR: terasyon ile denklem sistemi zm-GAUSS-SEIDEL


iterasyon yntemi1

Ekte verilen program A x=b lineer cebirsel denklem sistemini GAUSS-SEIDEL iterasyon
yntemi ile zer. Anxn katsaylar matrisi ve bn kar taraf vektr aran programda
depolanm olmal ve ayrca xn vektr de boyutlandrlm olmaldr.

ri.
co

GAUSS-SEIDEL yntemi Anxn kesin diyagonal arlkl ise veya simetrik ve pozitif tanml ise
daima yaknsar (sonu verir). Dier matris tiplerinde zm yaknsamayabilir.
Yntemin gerei olarak A nn diyagonal elemanlar sfrdan farkl olmaldr. Bu nedenle
program A nn diyagonal elemanlar mutlak deerce en byk olacak ekilde denklemlerin
srasn zm ncesi deitirir. Tm diyagonal elemanlar sfrdan farkl yaplamazsa
program hesab yarda keser ve aran programa geri dner.

tla

terasyon says Eps istenilen hassasiyetine baldr. terasyon says Maxit alrsa veya Eps
hassasiyetine ulalamazsa veya zm raksarsa hesap kesilir, iHata0 deeri ile dner.

rnek 1:

em
de
r

2
3
1 x1 80
10
1 20 1 3 x 40

2 =
1
1
10 2 x3 40


2 1 1 30 x 4 120

sn
o

A nn kesin diyagonal arlkl2 olmamas veya simetrik ve pozitif tanml olmamas


durumunda zmn yaknsayaca garanti edilemez, bu durumda GAUSS-SEIDEL yntemi
nerilmez. ok byk denklem sistemlerin GAUSS veya CHOLESKY direkt yntemleri ile
zm snrl bellek asndan sorun yaratrsa veya A seyrek (sparse) matris ise GAUSSSEIDEL tercih edilebilir.

GaussSeidel alt
programnn sonucu

w
.e

rnek 2:

2
3 1 x1 80
10
1 20 1 3 x 40

2 =
1
1
1 2 x 3 40


1 1 1 x 4 120
2

(Kesin diyagonal arlkl deil.


zm var fakat
iterasyon yntemi zmne
gvenilmez!)

zm var, fakat
GaussSeidel raksyor

(kesin Diyagonal arlkl)

1
2

Teori ve saysal rnekler iin bak: blm 7


Bak: Blm 1, sayfa 15
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

172

21. PROGRAMLAR: terasyon ile denklem sistemi zm-GAUSS-SEIDEL iterasyon yntemi

CLS

Denklem says okunuyor

READ n
DIM a(n, n), b(n), x(n)
FOR i = 1 TO n
FOR j = 1 TO n
READ a(i, j)
NEXT j
NEXT i

A matrisi, b vektr ve x zm
vektr iin bellekte yer ayr
A okunuyor

PRINT "terasyon says="; itersay

A okunuyor

em
de
r

SELECT CASE ihata


CASE 0
PRINT "Denklem sisteminin zm (GaussSeidel):"
FOR i = 1 TO n
PRINT x(i);
Sonu yazdrlyor
NEXT i
CASE 1
PRINT "Matris tekil!"
CASE 2
PRINT "Max itersayon says ald!"
CASE 3
PRINT "stenilen hassasiyete varlamad!"
CASE 4
PRINT "zm raksyor!"
END SELECT

w
.e

END 'Gauss-Seidel ana sonu

sn
o

GaussSeidel alt
FOR i = 1 TO n
programn ar
b
okunuyor
READ b(i)
NEXT i
CALL GaussSeidel(n, a(), b(), x(), itersay, ihata)

SUB GaussSeidel (n, a(), b(), x(), itersay, ihata)


'-----------------------------------------------------------' Dorusal denklem sistemi
zm (GaussSeidel)
Ana program
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' A(n,n)*x(n)=b(n) denklem GAUSS-SEIDEL iterasyon
' yntemi ile zlerek x(n) vektr hesaplanr.
' A, b matrisleri aran programda depolanm ve x
' vektr boyutlandrlm olmaldr.
' Maxit: ngrlen maksimum iterasyon saysdr
' Eps: hassasiyet
' iHata=0: zm yaknsad
' iHata=1: diyagonal eleman sfr, matris tekil
' iHata=2: Max iterasyon says ald
' iHata=3: istenilen hassasiyete varlamad
' iHata=4: zm raksyor, say tamas tehlikesi!
'-----------------------------------------------------------' EpsMach
EpsMach = 1
DO
EpsMach = EpsMach / 2
s = 1 + EpsMach
LOOP UNTIL s <= 1
EpsMach = 2 * EpsMach

ri.
co

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussSeidel (n, a(), b(), x(), itersay, ihata)

GaussSeidel Alt program

tla

'----------- ana program GAUSS-SIDEL--------' iterasyon yntemi ile denklem istemi zm


' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 1994
' arlan alt programlar: GaussSeidel
'-------------------------------------------DATA 4: ' denklem says
'a matrisi:
A nn satrlar
DATA 10, 2, 3, -1
DATA 1, -20,-1, 3
DATA 1, 1,-10, 2
DATA 2, -1,-1, 30
Kar taraf vektr b
'b matrisi:
DATA 80,40,40,120

173

ihata = 0
maxit = 200: ' maximum iterasyon says
Eps = .000001: 'tolerans
itersay = 0: ' iterasyon no

' Pivot eleman ara, diyagonal eleman<>0 yap


FOR i = 1 TO n
T = ABS(a(i, i)): iV = i: x(i) = 0
FOR j = i + 1 TO n
IF ABS(a(j, i)) > T THEN iV = j: T = ABS(a(j, i))
NEXT j
IF T < EpsMach THEN ihata = 1: EXIT SUB
IF iV > i THEN
' i ve iV satrlarn dei
FOR j = 1 TO n
T = a(i, j)
a(i, j) = a(iV, j)
a(iV, j) = T
NEXT j
T = b(i)
b(i) = b(iV)
b(iV) = T
END IF
NEXT i
' terasyon
DO
h=0
FOR i = 1 TO n
T=0
FOR j = 1 TO n
T = T + a(i, j) * x(j)
NEXT j
T = T - a(i, i) * x(i)
YeniX = (b(i) - T) / a(i, i)
h = (x(i) - YeniX) ^ 2
x(i) = YeniX
NEXT i
h = SQR(h)
itersay = itersay + 1
LOOP UNTIL (itersay > maxit OR h <= Eps OR h > 1E+35)
IF itersay > maxit THEN ihata = 2
IF h > Eps THEN ihata = 3
IF h > 1E+35 THEN ihata = 4
END SUB ' GaussSeidel sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

173

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

22
PROGRAMLAR:
terasyon ile denklem sistemi zm
CG (Conjugate Gradient) metodu

22. PROGRAMLAR: terasyon ile denklem sistemi zm-CG (Conjugate Gradient) metodu

175

22. PROGRAMLAR: terasyon ile denklem sistemi zm-CG (Conjugate


Gradient) metodu1

Ekte verilen program A x=b lineer cebirsel denklem sistemini CG iterasyon yntemi ile
zer. Anxn simetrik-pozitif tanml matrisi ve bn vektr aran programda depolanm
olmal ve ayrca xn vektr de boyutlandrlm olmaldr.

ri.
co

GG metodu sadece simetrik ve pozitif tanml matrisler iindir. Bu koulu salamayan


denklem sistemlerinde kullanlmaz! Maksimum iterasyon says, teorik olarak, n kadardr.
Ancak, yuvarlama hatalar nedeniyle fazladan 1-2 iterasyon daha gerekebilir.

terasyon srasnda A nn pozitif tanml olmad anlalrsa veya n+2 iterasyon sonunda
zm yaknsamazsa CG alt program iHata 0 ile dner.

tla

A simetrik ve pozitif tanml ise, CG metodu en uygun iterasyon metodudur. terasyon


srasnda A nn elemanlar deimediinden, bellekte zm mmkn olmayan ok byk
denklem sistemlerinin zmnde ncelikle tercih edilir.

1 1 0 x1 1
4 0 1 x 2 2 , x=?
=
0 4 1 x 3 0

1 1 4 x 4 1

GG alt programnn sonucu

em
de
r

4
1

sn
o

rnek:

w
.e

0.1667
0.4167

x=
0.0833

0.1667

Teori ve saysal rnekler iin bak: blm 7

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

175

DATA 4
' a matrisi:
DATA 4,1,1,0
DATA 4,0,1
DATA 4,1
DATA 4
' b kar taraf vektr:
DATA 1,2,0,1

tla

A nn st gen ksmnn satrlar

Kar taraf vektr b

sn
o

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB CG (n, a(), b(), x(), iTer, iHata)
CLS
READ n

Ana program

ri.
co

'-------- Ana program CG(Conjugate Gradient Metodu)---------------' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 2006
' a(n,n)*x(n)=b(n) dorusal denklem sistemi CG (Conjugate Gradient)
' iterasyon metodu ile zlerek x(n) vektr hesaplanr.
' a ve b matrisleri aran programda depolanm ve x
' vektr boyutlandrlm olmaldr.
' a(n,n): simetrik pozitif tanml matris(sadece st gen gerekir)
' b(n): kar taraf vektr
' x(n): bilinmeyenler vektr
' n: Denklem says
' arlan alt programlar: CG
'------------------------------------------------------------------

176

22. PROGRAMLAR: terasyon ile denklem sistemi zm-CG (Conjugate Gradient) metodu

Denklem says okunuyor

A matrisi, b vektr ve x zm vektr iin


bellekte yer ayr

em
de
r

DIM a(n, n), x(n), b(n)

' a nn st gen ksmn oku


FOR i = 1 TO n
FOR j = i TO n
READ a(i, j)
NEXT j
A nn st gen ksm okunuyor
NEXT i
' b yi oku
FOR i = 1 TO n
READ b(i)
NEXT i

b okunuyor

CG alt program arlyor

CALL CG(n, a(), b(), x(), iTer, iHata)


IF iHata <> 0 THEN PRINT "HATA(CG)= "; iHata: END

w
.e

PRINT "Denklem sisteminin zm(CG):"


FOR i = 1 TO n
PRINT x(i);
A okunuyor
NEXT i
PRINT
PRINT "terasyon says="; iTer

zm yazdrlyor

END ' CG ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

176

22. PROGRAMLAR: terasyon ile denklem sistemi zm-CG (Conjugate Gradient) metodu

SUB CG (n, a(), b(), x(), iTer, iHata)


'------------------------------------------------------------------' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 2006
' Ax=b dorusal denklem sistemi CG (Conjugate Gradient)
' iterasyon metodu ile zlr, x bilinmeyenler vektr hesaplanr.

ktlar:
x(n): Bilinmeyenler vektr
iTer: iterasyon says
iHata:
= 0: zm bulundu
= 1: zm bulunamad(a tekildir veya pozitif tanml deildir)
= 2: n+2 iterasyon yapld fakat zm yaknsamad

' r(n), s(n) ve aSi(n) ara deer vektrleridir


'------------------------------------------------------------------DIM r(n)
DIM s(n)
DIM aSi(n) ' a * s arpm depolanr

em
de
r

iHata = 0
iTer = 0
' n=1 durumu
IF n = 1 THEN
IF a(1, 1) = 0 THEN
iHata = 1
ELSE
x(1) = b(1) / a(1, 1)
EXIT SUB
END IF
END IF

sn
o

' EpsMach: Kullanlan bilgisayarda sfr varsaylan en kk say


EpsMach = 1
DO
EpsMach = EpsMach / 2
s = 1 + EpsMach
LOOP UNTIL s <= 1
EpsMach = 2 * EpsMach
Epsilon = EpsMach

' balang vektrleri x, r, s hazrla


FOR i = 1 TO n
x(i) = 0
r(i) = b(i)
s(i) = r(i)
NEXT i

w
.e

' B nin klid normu


bNorm = 0
FOR i = 1 TO n
bNorm = bNorm + b(i) * b(i)
NEXT i
IF bNorm = 0 THEN EXIT SUB
bNorm = SQR(bNorm)

' terasyona bala


iTer = 1
DO
' Hesapla: Alfa = [s(transpoz)*r]/[s(transp)*(a*s)]
Pay = 0
Payda = 0
FOR i = 1 TO n
Pay = Pay + s(i) * r(i)
T=0
FOR j = i TO n
T = T + a(i, j) * s(j)
NEXT j
FOR j = 1 TO i - 1
T = T + a(j, i) * s(j)
NEXT j
aSi(i) = T
Payda = Payda + s(i) * T
NEXT i

'
'
'
'
'
'
'

ri.
co

Veriler:
n: Denklem says
a(n,n): simetrik ve pozitif tanml katsaylar matrisi. a nn
sadece st gen ksm kullanlr
b(n): kartaraf vektr

CG alt program

tla

'
'
'
'
'

177

' a matrisi tekil mi? Veya pozitif tanml deil mi? Kontrol et
IF Payda <= 0 THEN
iHata = 1
EXIT SUB
END IF
Alfa = Pay / Payda

' Hesapla: x=x+Alfa*s ve r=r-Alfa*aSi


' Hesapla: rNorm=r nin klid normu
rNorm = 0
FOR i = 1 TO n
x(i) = x(i) + Alfa * s(i)
r(i) = r(i) - Alfa * aSi(i)
rNorm = rNorm + r(i) * r(i)
NEXT i
rNorm = SQR(rNorm) / bNorm
' Yaknsamay kontrol et (en az iki iterasyondan sonra)
IF iTer >= 2 AND rNorm <= Epsilon THEN EXIT SUB
' Hesapla: Beta = -[r(transpoz)*(a*s)]/[s(transpoz)*(a*s)]
Pay = 0
FOR i = 1 TO n
Pay = Pay + r(i) * aSi(i)
NEXT i
Beta = -Pay / Payda
' Hesapla: s = r + Beta * s
FOR i = 1 TO n
s(i) = r(i) + Beta * s(i)
NEXT i
iTer = iTer + 1
LOOP UNTIL iTer > n + 2
iHata = 2
END SUB ' CG sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

177

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

23
PROGRAMLAR:
terasyon ile denklem sistemi zm
PCG (Preconditioned Conjugate Gradient) metodu

23. PROGRAMLAR: iterasyon ile denklem sistemi zm - PCG (Preconditioned Conjugate Gradient) metodu 179

23. PROGRAMLAR: iterasyon ile denklem sistemi zm - PCG


(Preconditioned Conjugate Gradient) metodu

Kondisyon iyiletirmesi

D-1/2A D-1/2 D1/2 x= D-1/2b

Burada D-1/2 matrisine D nin karekk denir ve

D 1 / 2

...

a nn

1
a 22

sn
o

dir.

...

a nn

tla

a 11

a 22
D=

a 11

ri.
co

Ekte verilen program simetrik katsayl A x=b lineer cebirsel denklem sistemini PCG
iterasyon yntemi ile zer. zm ncesi A matrisinin kondisyonu iyiletirilir. yiletirme A
nn diyagonal elemanlarndan oluan D diyagonal matrisi yardmyla yaplr:

Anxn simetrik-pozitif tanml matrisi ve bn vektr aran programda depolanm olmal ve


ayrca xn vektr de boyutlandrlm olmaldr.

em
de
r

PCG metodu sadece simetrik ve pozitif tanml matrisler iindir. Bu koulu salamayan
denklem sistemlerinde kullanlmaz! Maksimum iterasyon says, teorik olarak, n kadardr.
Ancak, yuvarlama hatalar nedeniyle fazladan 1-2 iterasyon daha gerekebilir.
terasyon srasnda A nn pozitif tanml olmad anlalrsa veya n+2 iterasyon sonunda
zm yaknsamazsa PCG alt program iHata 0 ile dner.
A simetrik ve pozitif tanml ise, PCG metodu en uygun iterasyon metodudur. terasyon
srasnda A nn elemanlar deimediinden, bellekte zm mmkn olmayan ok byk
denklem sistemlerinin zmnde ncelikle tercih edilir.

rnek:

PGG alt programnn sonucu

w
.e

33 0 10 0 0 x1 3

43 0 14 0 x 2 13

28 0 1 x 3 = 76 , x=?

55 0 x 4 206
Sim

67 x5 137

1
1

x=3

4
2
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

179

23. PROGRAMLAR: iterasyon ile denklem sistemi zm - PCG (Preconditioned Conjugate Gradient) metodu 180

sn
o

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB PCG (n, a(), b(), x(), iTer, iHata)
CLS

tla

' arlan alt programlar: PCG


'----------------------------------------------------------------------A nn boyutu
DATA 5
' a matrisi
DATA 33,0,-10,0,0
A nn st gen ksmnn satrlar
DATA 43,0,14,0
DATA 28,0,1
DATA 55,0
DATA 67
'b matrisi
Kar taraf vektr b
DATA 3,13,76,206,137

PCG ana program

ri.
co

'----- Ana program PCG(Preconditioned Conjugate Gradient Method)-------' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 2006
' a(n,n)*x(n)=b(n) dorusal denklem sistemi PCG (Preconditioned Conjugate
' Gradient) iterasyon metodu ile zlr, x(n) vektr hesaplanr.
' a ve b matrisleri aran programda depolanm ve x
' vektr boyutlandrlm olmaldr.
' a(n,n): simetrik pozitif tanml matris(sadece st gen gerekir)
' b(n): kar taraf vektr
' x(n): bilinmeyenler vektr
' n: Denklem says

Denklem says okunuyor

READ n
DIM a(n, n), x(n), b(n)

A matrisi, b vektr ve x zm vektr


iin bellekte yer ayr

em
de
r

' a nn st gen ksmn oku


FOR i = 1 TO n
FOR j = i TO n
READ a(i, j)
A nn st gen ksm okunuyor
NEXT j
NEXT i
' b yi oku
FOR i = 1 TO n
READ b(i)
NEXT i

b okunuyor

PCG alt program arlyor

CALL PCG(n, a(), b(), x(), iTer, iHata)


IF iHata <> 0 THEN PRINT "HATA(PCG)="; iHata: END

zm yazdrlyor

w
.e

PRINT "Denklem sisteminin zm(PCG):"


FOR i = 1 TO n
PRINT x(i);
A okunuyor
NEXT i
PRINT
PRINT "terasyon says="; iTer

END ' PCG ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

180

23. PROGRAMLAR: iterasyon ile denklem sistemi zm - PCG (Preconditioned Conjugate Gradient) metodu 181

'
'
'
'
'
'
'

ktlar:
x(n): Bilinmeyenler vektr
iTer: iterasyon says
iHata:
= 0: zm bulundu
= 1: zm bulunamad(a tekildir veya pozitif tanml deildir)
= 2: n+2 iterasyon yapld fakat zm yaknsamad

em
de
r

w
.e

' Kondisyonun iyiletir(preconditioning)


FOR i = 1 TO n
d(i) = 1 / SQR(a(i, i))
NEXT i
FOR i = 1 TO n
FOR j = i TO n
a(i, j) = d(i) * a(i, j) * d(j)
NEXT j
b(i) = b(i) * d(i)
NEXT i
' balang vektrleri x, r, s hazrla
FOR i = 1 TO n
x(i) = 0
r(i) = b(i)
s(i) = r(i)
NEXT i
' b nin klid normu
bNorm = 0
FOR i = 1 TO n
bNorm = bNorm + b(i) * b(i)
NEXT i
IF bNorm = 0 THEN EXIT SUB
bNorm = SQR(bNorm)

' terasyona bala


iTer = 1
DO
' Hesapla: Alfa = [s(transpoz)*r]/[s(transp)*(a*s)]
Pay = 0
Payda = 0
FOR i = 1 TO n
Pay = Pay + s(i) * r(i)
T=0
FOR j = i TO n
T = T + a(i, j) * s(j)
NEXT j
FOR j = 1 TO i - 1
T = T + a(j, i) * s(j)
NEXT j

sn
o

' EpsMach: Kullanlan bilgisayarda sfr varsaylan en kk say


EpsMach = 1
DO
EpsMach = EpsMach / 2
s = 1 + EpsMach
LOOP UNTIL s <= 1
EpsMach = 2 * EpsMach
Epsilon = EpsMach
iHata = 0
iTer = 0
' n=1 durumu
IF n = 1 THEN
IF a(1, 1) = 0 THEN
iHata = 1
ELSE
x(1) = b(1) / a(1, 1)
EXIT SUB
END IF
END IF

ri.
co

Veriler:
n: Denklem says
a(n,n): simetrik ve pozitif tanml katsaylar matrisi. a nn
sadece st gen ksm kullanlr
b(n): kartaraf vektr

tla

'
'
'
'
'

' d(n), r(n), s(n) ve aSi(n) ara deer vektrleridir


'
' arlan programlar: yok
'---------------------------------------------------------------------DIM d(n)
DIM r(n)
DIM s(n)
DIM aSi(n) ' a * s arpm depolanr

PCG alt program

SUB PCG (n, a(), b(), x(), iTer, iHata)


'------------------------------------------------------------------' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 2006
' Ax=b dorusal denklem sistemi PCG (Preconditioned Conjugate
' Gradient) iterasyon metodu ile zlr, x bilinmeyenler vektr
' hesaplanr.

aSi(i) = T
Payda = Payda + s(i) * T
NEXT i

' a matrisi tekil mi? Veya pozitif tanml deil mi? Kontrol et
IF Payda <= 0 THEN
iHata = 1
EXIT SUB
END IF
Alfa = Pay / Payda
' Hesapla: x=x+Alfa*s ve r=r-Alfa*aSi
' Hesapla: rNorm=r nin klid normu
rNorm = 0
FOR i = 1 TO n
x(i) = x(i) + Alfa * s(i)
r(i) = r(i) - Alfa * aSi(i)
rNorm = rNorm + r(i) * r(i)
NEXT i
rNorm = SQR(rNorm) / bNorm
' Yaknsamay kontrol et (en az iki iterasyondan sonra)
IF iTer >= 2 AND rNorm <= Epsilon THEN
FOR i = 1 TO n
x(i) = d(i) * x(i)
NEXT i
EXIT SUB
END IF
' Hesapla: Beta = -[r(transpoz)*(a*s)]/[s(transpoz)*(a*s)]
Pay = 0
FOR i = 1 TO n
Pay = Pay + r(i) * aSi(i)
NEXT i
Beta = -Pay / Payda
' Hesapla: s = r + Beta * s
FOR i = 1 TO n
s(i) = r(i) + Beta * s(i)
NEXT i
iTer = iTer + 1
LOOP UNTIL iTer > n + 2
iHata = 2
END SUB ' PCG sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

181

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

24
PROGRAMLAR:
terasyon ile seyrek denklem sistemi zm
PCGsparse (Preconditioned Conjugate Gradient) metodu

24. PROGRAMLAR: iterasyon ile seyrek katsayl denklem sistemi zm- PCGsparse (Preconditioned Conjugate Gradient) metodu183

24. PROGRAMLAR: iterasyon ile seyrek katsayl denklem sistemi zmPCGsparse (Preconditioned Conjugate Gradient) metodu

Kondisyon iyiletirmesi

D-1/2A D-1/2 D1/2 x= D-1/2b

Ekte verilen program katsaylar matrisi simetrik ve seyrek olan A x=b dorusal cebirsel
denklem sistemini PCG iterasyon yntemi ile zer. zm ncesi A seyrek matrisinin
kondisyonu iyiletirilir. yiletirme A nn diyagonal elemanlarndan oluan D diyagonal
matrisi yardmyla yaplr:

a13

a14

a33

a34

a44

0
a25
0

0
a55

Seyrek matris

Simetri dikkate
alnmaz!

ia [ 1 1 1 2 2 3 3 3 4 4 5 5 ]
ja [ 1 3 4 2 5 1 3 4 2 4 2 5 ]

Sadece sfrdan farkl tm elemanlar tek


boyutlu a vektrnde depolanm olmal

sn
o

a [a11 a13 a14 a 22 a 25 a 31 a 33 a 34 a 42 a 44 a 52 a 55 ]

tla

a11 0
0 a
22

a = a31 0

0 a42
0 a52

ri.
co

Anxn simetrik-pozitif tanml matrisi ve bn vektr aran programda aadaki gibi


depolanm olmaldr:

Sfrdan farkl elemanlarn satr numaralar ia vektrde depolanm olmal

Sfrdan farkl elemanlarn kolon numaralar ja vektrde depolanm olmal

em
de
r

PCG metodu sadece simetrik ve pozitif tanml matrisler iindir. Bu koulu salamayan
denklem sistemlerinde kullanlmaz! Maksimum iterasyon says, teorik olarak, n kadardr.
Ancak, yuvarlama hatalar nedeniyle fazladan 1-2 iterasyon daha gerekebilir.
terasyon srasnda A nn pozitif tanml olmad anlalrsa veya n+2 iterasyon sonunda
zm yaknsamazsa PCG alt program iHata 0 ile dner.
A simetrik ve pozitif tanml olmak kaydyla, PCG metodu en uygun iterasyon metodudur.
terasyon srasnda A nn elemanlar deimediinden, bellekte zm mmkn olmayan
ok byk denklem sistemlerinin zmnde ncelikle tercih edilir.

rnek:

Seyrek ve simetrik matris

w
.e

33 0 10 0 0 x1 3
0
43 0 14 0 x 2 13

, x=?
A x = b 10 0
28 0 1 x 3 = 76

0 55 0 x 4 206
0 14
0
0
1
0 67 x 5 137

Verilerin hazrlanmas:

Denklem sats n=5


A nn Sfrdan farkl elman says iTes=11
A nn depolanma ekli:
a

[33 -10 43 14 -10 28 1 14 55 1 67]

A nn sfrdan farkl tm elemanlar(simetri dikkate alnmaz!)

iA

[1

3 4 4 5 5]

Sfrdan farkl elemanlarn satr numaralar

jA

[1

5 2 4 3 5]

Sfrdan farkl elemanlarn kolon numaralar

[3 13 76 206 137]

Kar taraf vektr

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

183

1
1

x= 3

4
2

ri.
co

PCGsparse alt programnn sonucu

'----- Ana program PCGsparse(Preconditioned Conjugate Gradient Metodu)--' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 2010
' a(n,n)*x(n)=b(n) dorusal denklem sistemi PCGsparse (Preconditioned
' Conjugate Gradient) iterasyon metodu ile zlerek x(n) vektr
' hesaplanr.

PCG ana program

tla

' a(n,n): simetrik pozitif tanml seyrek(sparse) matris


' b(n): kar taraf vektr
' x(n): bilinmeyenler vektr
' n: Denklem says

24. PROGRAMLAR: iterasyon ile seyrek katsayl denklem sistemi zm- PCGsparse (Preconditioned Conjugate Gradient) metodu184

sn
o

' a(n,n) seyrek matrisisinin sadece sfrdan farkl saylar


' a(iTes) bir boyutlu vektrnde depolanr
' sfrdan farkl elemalarn satr numaralar iA(iTes), kolon numaralar
' jA(iTes) vektrlerinde depolanr
' iTes: a nn sfrdan farkl eleman saysdr.
' iA(ites): a nn sfrdan farkl olan a(i,j) elemanlarnn i satr
' numaralarnn depoland vektrdr
' jA(ites): a nn sfrdan farkl olan a(i,j) elemanlarnn j satr
' numaralarnn depoland vektrdr
' DATA satrlar iA, jA, a(i,j) srasnda dzenlenmtir

em
de
r

' arlan alt programlar: PCGsparse


'-----------------------------------------------------------------DATA 5: ' denklem says n
DATA 11: ' A nn sfrdan farkl say says iTes
'A nn sfrdan farkl saylar: iA, jA, a(i,j)
DATA 1,1,33, 1,3,-10
DATA 2,2,43, 2,4,14
i, j, a(i,j) deerleri
DATA 3,1,-10, 3,3,28, 3,5,1
DATA 4,2,14, 4,4,55
DATA 5,3,1, 5,5,67
'b kar taraf vektr:
DATA 3,13,76,206,137

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB PCGsparse (n, ites, iA(), jA(), a(), b(), x(), iTer, iHata)

w
.e

CLS

READ n

Denklem says okunuyor

Sfrdan farkl eleman says

READ ites

DIM a(ites), iA(ites), jA(ites), x(n), b(n)

' a nn elemanlarn oku


FOR i = 1 TO ites
READ iA(i), jA(i), a(i)
NEXT i
' b yi oku
FOR i = 1 TO n
READ b(i)
NEXT i

A , iA ve ja iin yer ayr

iA, jA ve a deerleri okunuyor

Kar taraf vektr okunuyor

CALL PCGsparse(n, ites, iA(), jA(), a(), b(), x(), iTer, iHata)

PCGsparse alt program arlyor

IF iHata <> 0 THEN PRINT "HATA(PCGsparse)="; iHata: END


PRINT "Denklem sisteminin zm(PCGsparse):"
FOR i = 1 TO n
PRINT x(i);
NEXT i
PRINT
PRINT "terasyon says="; iTer

zm yazdrlyor

END ' PCGsparse ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

184

24. PROGRAMLAR: iterasyon ile seyrek katsayl denklem sistemi zm- PCGsparse (Preconditioned Conjugate Gradient) metodu185

'
'
'
'
'
'
'

ktlar:
x(n): bilinmeyenler vektr
iTer: iterasyon says
iHata:
= 0: zm bulundu
= 1: zm bulunamad(a tekildir veya pozitif tanml deildir)
= 2: n+2 iterasyon yapld fakat zm yaknsamad

' d(n), r(n), s(n) ve aSi(n) ara deer vektrleridir

Veriler:
n: Denklem says
iTes: a nn sfrdan farkl eleman says(simetri dikkate alnmaz)
iA(ites): a nn sfrdan farkl olan a(i,j) elemanlarnn i satr
numaralarnn depoland vektr
jA(ites): a nn sfrdan farkl olan a(i,j) elemanlarnn j satr
numaralarnn depoland vektr
a(iTes) seyrek matrisisinin sfrdan farkl tm elemanlar(simetri
dikkate almmaz, tm elemanlar verilir)
b(n): kar taraf vektr

' terasyona bala


iTer = 1
DO
' Hesapla: Alfa = (s(transpoz) * r) / (s(transp) * (a * s))
pay = 0
FOR i = 1 TO n
pay = pay + s(i) * r(i)
NEXT i

tla

'
'
'
'
'
'
'
'
'
'

PCGsparse alt program

ri.
co

SUB PCGsparse (n, ites, iA(), jA(), a(), b(), x(), iTer, iHata)
'----------------------------------------------------------------------' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKEHR, 2010
' a(n,n)*x(n)=b(n) dorusal denklem sistemi PCGsparse
' (Preconditioned
' Conjugate Gradient) iterasyon metodu ile zlerek x(n) vektr
' hesaplanr. a matrisinin kondisyonu zm ncesi iyiletirilir.
' a(n,n): simetrik pozitif tanml seyrek(sparse) matris
' b(n): kar taraf vektr
' x(n): bilinmeyenler vektr

sn
o

' arlan alt programlar: yok


'----------------------------------------------------------------------DIM d(n) 'a nn diyagonal elemanlar
DIM r(n) 'iterasyon balang vektr
DIM s(n) 'iterasyon balang vektr
DIM aSi(n) ' a * s arpm

' hesapla: a*s


FOR i = 1 TO n
aSi(i) = 0
NEXT i

em
de
r

' EpsMach: Kullanlan bilgisayarda sfr varsaylan en kk say


EpsMach = 1
DO
EpsMach = EpsMach / 2
s = 1 + EpsMach
LOOP UNTIL s <= 1
EpsMach = 2 * EpsMach
epsilon = EpsMach

w
.e

iHata = 0
iTer = 0
' n=1 durumu
IF n = 1 THEN
IF a(1) = 0 THEN
iHata = 1
ELSE
x(1) = b(1) / a(1)
EXIT SUB
END IF
END IF

'kondisyonu iyiletir(Jacobi)
FOR i = 1 TO ites
iA = iA(i)
IF iA = jA(i) THEN
d(iA) = SQR(a(i))
b(iA) = d(iA) * b(iA)
END IF
NEXT i
FOR i = 1 TO ites
iA = iA(i)
jA = jA(i)
a(i) = d(iA) * a(i) * d(jA)
NEXT i
' x, r, s balang vektrlerini hazrla
FOR i = 1 TO n
x(i) = 0
r(i) = b(i)
s(i) = r(i)
NEXT i
' B nin klid normu
bNorm = 0
FOR i = 1 TO n
bNorm = bNorm + b(i) * b(i)
NEXT i
IF bNorm = 0 THEN EXIT SUB
bNorm = SQR(bNorm)

FOR i = 1 TO ites
aSi(iA(i)) = aSi(iA(i)) + a(i) * s(jA(i))
NEXT i

'Hesapla s(transpoz)*(aSi)
payda = 0
FOR i = 1 TO n
payda = payda + s(i) * aSi(i)
NEXT i
' a matrisi tekil mi? Veya pozitif tanml deil mi? Kontrol et
IF payda <= 0 THEN
iHata = 1
EXIT SUB
END IF
alfa = pay / payda
' Hesapla: x=x+Alfa*s ve r=r-Alfa*aSi
' Hesapla: rNorm=r nin klid normu
rNorm = 0
FOR i = 1 TO n
x(i) = x(i) + alfa * s(i)
r(i) = r(i) - alfa * aSi(i)
rNorm = rNorm + r(i) * r(i)
NEXT i
rNorm = SQR(rNorm) / bNorm
' Yaknsamay kontrol et (en az iki iterasyondan sonra)
IF iTer > 1 AND rNorm <= epsilon THEN
FOR i = 1 TO n
x(i) = d(i) * x(i)
NEXT i
EXIT SUB
END IF
' Hesapla: Beta = -[r(transpoz)*(a*s)]/[s(transpoz)*(a * s)]
pay = 0
FOR i = 1 TO n
pay = pay + r(i) * aSi(i)
NEXT i
beta = -pay / payda
' Hesapla: s = r + Beta * s
FOR i = 1 TO n
s(i) = r(i) + beta * s(i)
NEXT i
iTer = iTer + 1
LOOP UNTIL iTer > n + 2
iHata = 2
END SUB ' PCGsparse sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

185

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

em
de
r

sn
o

Ahmet TOPU

tla

Ders notlar 2014

Katsaylar matrisi

a11
a
21
.

an1

a12

a22

an 2

zdeer

... a1n x1
x1
x
... a2 n x2
= 2
.
.
...


... ann xn
xn

zvektr

w
.e

zvektr

Ax=x

25
ZDEER PROBLEM
Matrisin zdeerleri ve zvektrleri
Standart zdeer problemi

25. STANDART ZDEER PROBLEM

187

25. STANDART ZDEER PROBLEM

a11
a 21 x1 + a 22 x 2 + ... + a 2 n x n = x 2 a 21
.
...

a n1 x1 + a n 2 x 2 + ... + a nn x n = x n
a n1

... a1n x1
x1

x
... a 2 n x 2
= 2
.
.
...


... a nn x n
xn

a12
a 22
an2

zvektr zdeer zvektr

Katsaylar matrisi

Ax = x

(25.1)

ri.
co

a11 x1 + a12 x 2 + ... + a1n x n = x1

Mhendislik bilimlerinin hemen her dalnda, zellikle dinamik ve stabilite problemlerinde


standart zdeer problemi ad verilen

(25.2)

a11
a
A x = I x = 21
.

a n1

sn
o

25.1 denklemi, I birim matris olmak zere

... a1n x1
1 0 ... 0 x1

0 1 ... 0 x
... a 2 n x 2
2 = 0

.
.
...
... .


... a nn x n
0 0 ... 1 x n

a12
a 22

em
de
r

an2

a11
a
( A I ) x = ( 21
.

a n1

... a1n
1 0 ... 0 x1

0 1 ... 0 x
... a 2 n
) 2 = 0

.
...
... .


... a nn
0 0 ... 1 x n

a12
a 22

an2

zdeer

w
.e

a11
a
( A I ) x = 21
.

a n1

tla

tipinde denklem sistemi ile karlalr. Burada Anxn gerek saylardan oluan bir kare matris,
sabit bir say, x sfrdan farkl bir vektrdr. 25.1 ifadesine standart zdeer problemi,
ya A nn zdeeri, x e A nn zvektr denir. A bilinir ve x bilinmez. 25.1 denklemini
salayan sabitinin ve x0 vektrnn hesab istenir. zdeer problemi kar taraf da
bilinmeyen bir denklem sistemidir.

zvektr

a1n x1
a 2 n x 2
=0
.
...

... a nn x n

a12
...
a 22 ...
an2

Homojen denklem sistemi

(25.3)

olarak yazlabilir. Demek ki, zdeer problemi kare katsayl bir homojen denklem
sistemidir. Ancak, zm homojen denklem sisteminin zm kadar basit deildir. nk
hem hem de x bilinmemektedir. Blm 10 da kare katsayl bir homojen denklem
sisteminin sfrdan farkl zmnn olabilmesi iin katsaylar matrisinin tekil, yani
determinantnn sfr olmas gerektii aklanmt. O halde, 25.3 n x0 zmnn
olabilmesi iin

a11
det( A I ) =

a 21
.
a n1

a12

...

a1n

a 22 ...
...

a 2n

an2

=0

(25.4)

... a nn

olmaldr. 25.3 ve 25.4 bantlarnn anlam udur:


determinantn sfr yapan bir saydr.

zdeeri, katsaylar matrisi A nn

zdeerini hesaplamak iin; katsaylar matrisinin

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

187

25. STANDART ZDEER PROBLEM

diyagonal elemanlarndan

188

kartlr, oluan matrisin determinant hesaplanr, sfra

eitlenir, zdeerinin saysal deeri bulunur. nn saysal deeri 25.3 de yerine konur,
homojen denklem sistemi zlr, zdeer vektr x hesaplanr.

x=?

25.3 e gre:

x1 0
x = 0
3
2
1 x3 0

tla

ri.
co

2
x1
x1

A x = x 3 x 2 = x 2 , =?

x3
1 x3

rnek 1: Diyagonal matrisin zdeer problemi

sn
o

25.4 e gre, katsaylar matrisinin determinant sfr olmal:

2
2

=
=0
det
3
3

1
1

em
de
r

Hatrlatma: diyagonal matrisin determinant diyagonal elemanlarn arpmdr

= (2 )(3 )(1 ) = 0

7 + 6 = 0
1 = 2, 2 = 3, 3 = 1
3

farkl zdeer var, her biri katsaylar matrisi A nn determinantn sfr yapar. 25.3 e gre
zdeere karlk farkl x1, x2 ve x3 zvektr olacaktr.

w
.e

3. derece polinomunun 3 kk vardr determinat sfr


yapan 3 adet vardr 3 adet zdeer vardr.

1=2 zdeeri homojen denklemde yerine konarak x1 hesaplanr:

x1

2 1

3 1

x1

x1 0 2 2
x1 0
x = 0
x = 0
32
2
2
1 1 x3 0
1 2 x3 0
1=2 zdeerine ait
zvektr

x1

0
x1 0
5
x = 0

1 x3 0

Homojen denklem sisteminde x1 serbest deiken


olmutur, nk 0x1=0 eitlii vardr. O halde x1
iin herhangi bir deer seilebilir.. Basit olmas
iin x1=1 seelim. Son iki denklemden:
-5x2=0 x2=0
-1x3=0 x3=0
bulunur.

1
x1 = 0
0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

188

25. STANDART ZDEER PROBLEM

189

2=-3 zdeeri homojen denklemde yerine konarak x2 hesaplanr:

3 2

x1 0 2 (3)
x1 0
x = 0
x = 0
3 (3)
2
2
1 2 x 3 0
1 ( 3) x 3 0

x2

5
x1 0
0 x = 0

4 x 3 0

Homojen denklem sisteminde x2 serbest deiken


olmutur, nk 0x2=0 eitlii vardr. O halde x2 iin
herhangi bir deer seilebilir. x2=1 seelim. lk ve son
denklemden:
5x1=0 x1=0
4x3=0 x3=0
bulunur.

2=-3 zdeerine ait


zvektr

ri.
co

2 2

x2

x2

0
x 2 = 1
0

3=1 zdeeri homojen denklemde yerine konarak x3 hesaplanr:

tla

3 3

x3

x1 0 2 1
x1 0
x = 0
x = 0
3 1
2
2
1 3 x3 0
1 1 x3 0

x3

Homojen denklem sisteminde x3 serbest deiken


olmutur, nk 0x3=0 eitlii vardr. O halde x3 iin
herhangi bir deer seilebilir. x3=1 seelim.
lk iki denklemden:
1x1=0 x1=0
-4x2=0 x2=0
bulunur.

em
de
r

1
x1 0
4 x = 0

2
0 x 3 0

sn
o

2 3

x3

3=1 zdeerine ait


zvektr

0
x 3 = 0
1

Kontrol: zdeerler A xi = i xi bantsn salamaldr.

2
1
1
2 2

A x1 = 1 x1 3 0 = 20 0 = 0

0
0 0
1 0

w
.e

2
0
0 0 0

A x 2 = 2 x 2 3 1 = 31 3 = 3

0 0 0
1 0

2
0 0
0 0

A x 3 = 3 x 3 3 0 = 10 0 = 0

1 1
1 1 1

Grld gibi, zdeerler ve zvektrler zdeer problemini salamaktadr.

Genelletirme:

Anxn diyagonal matrisinin n tane zdeeri vardr, i=aii dir. i=aii nin zvektr birim matrisin i. vektrdr.

Inxn birim matrisinin zdeerlerinin tm ayn, i=1 dir. i nin zvektr birim matrisin i. vektrdr.

Onxn sfr matrisinin zdeerlerinin tm sfrdr., i=0 dir. zvektrleri keyfi herhangi bir vektrdr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

189

25. STANDART ZDEER PROBLEM

190

rnek 2: st gen matrisin zdeer problemi

2 x1
2 1
x1

U x = x 3 1 x 2 = x 2 , =?

x3
1 x3

x=?

2 x1 0
2

3 1 x2 = 0 , det

1 x3 0

ri.
co

25.3 ve 25.4 e gre

2
3 1 = 0 olmal.
1

1 = 0 (2 )(3 )(1 ) = 0
1

3 7 + 6 = 0
1 = 2, 2 = 3, 3 = 1

sn
o

tla

st gen matrisin determinant diyagonal elemanlarn arpmna eittir:

farkl zdeer var, her biri katsaylar matrisi A nn determinantn sfr yapar. 25.3 e gre
zdeere karlk farkl x1, x2 ve x3 zvektr olacaktr.
1=2 zdeeri homojen denklemde yerine konarak x1 hesaplanr:

x1

em
de
r

1
2 x1 0
2 2

3 2 - 1 x 2 = 0

1 2 x3 0

1=2 zdeerine ait


zvektr

x1

w
.e

2 x1 0
0 1
5 - 1 x = 0

1 x3 0

Son iki denklemden:


-1x3=0 x3=0
-5x2-1x3=0 x2=0
bulunur. Birinci denklemde 0x1+1x2+2x3=0 dr.
x2= x3=0 yerine konulunca: 0x1=0 olur. O halde x1
serbest deikendir. Her deer seilebilir: x1=1

1
x 1 = 0
0

2=-3 zdeeri homojen denklemde yerine konarak x2 hesaplanr:

x2

1
2 x1 0
2 (3)

3 (3)
- 1 x 2 = 0

1 (3) x3 0
x2

5 1 2 x1 0
0 - 1 x = 0

4 x3 0

2=-3 zdeerine ait


zvektr

Son denklemden:
4x3=0 x3=0

kinci denklemde 0x2-1x3=0 dr. x3=0 yerine


konulunca 0x2=0 olur. O halde x2 serbest deikendir,
her deer seilebilir, x2=1 seelim.
Birinci denklemden: 5x1+1x2+2x3=0. x2 ve x3 deerleri
.

- 0.2
x 2 = 1
0

yerine konarak 5x1+1 1+2 0=0 dan x1=-1/5=-0.2


bulunur.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

190

25. STANDART ZDEER PROBLEM

191

3=1 zdeeri homojen denklemde yerine konarak x3 hesaplanr:

x3

1 1 2 x1 0
4 - 1 x = 0

0 x3 0

Son denklemde:
0x3=0 dr. O halde x3 serbest deikendir,
her deer seilebilir, x3=1 seelim.
2. ve 3. denklemden:
x2=(0-(-1).1)/(-4)= - 0.25
x1=(0-2.1-1. (-0.25))/1= - 1.75

- 1.75
x 3 = - 0.25
1

tla

Kontrol: zdeerler A xi = i xi bantsn salamaldr.

3=1zdeerine
ait zvektr

ri.
co

x3

1
2 x1 0
2 1

3 1 - 1 x 2 = 0

1 1 x3 0

sn
o

2 1
2 1
1 2 2

U x 1 = 1 x 1 3 1 0 = 2 0 0 = 0

0 0 0
1 0

em
de
r

2 - 0.2
2 1
- 0.2 0.6 0.6

U x 2 = 2 x 3 3 1 1 = 3 1 3 = 3

0 0 0
1 0

2 - 1.75 - 1.75
2 1
- 1.75 - 1.75

U x 3 = 3 x 3 3 1 - 025 = 1 - 025 - 025 = - 025

1 1
1 1 1
zdeerler ve zvektrler zdeer problemini salamaktadr.
Genelletirme: nxn boyutlu alt veya st gen matrisin zdeerleri diyagonal elemanlarna eiittir.

w
.e

rnek 3: 2x2 matrisin zdeer problemi

x
7 2 x1
Ax = x
= 1 , =?

2 2 x 2
x2

x=?

4.3 ve 4.4 e gre

2 x1 0
7
7
= , det

2 x 2 0

2
= 0 olmal.
2

Hatrlatma: 2x2 matrisin determinant=Diyagonal elemanlarn arpm - dier diyagonal elemanlarn arpmdr.

= 0 (7 )(2 ) 2 (2) = 0 2 + 9 + 18 = 0 1 = 6, 2 = 3

ki farkl zdeer var, her biri katsaylar matrisi A nn determinantn sfr yapar. 25.3 e gre
iki zdeere karlk iki farkl x1 ve x2 zvektr olacaktr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

191

25. STANDART ZDEER PROBLEM

192

1=-6 zdeeri homojen denklemde yerine konarak x1 hesaplanr:

x1

x1

1=-6 zdeerine ait


zvektr

Son denklemde:
0x2=0 x2 serbest deikendir, her deer
seilebilir, x2=1 seelim.
Birinci denklemden:
-1x1-2x2=0 dr -1x1-2.1=0

x1=-2 olur.

- 2
x1 =
1

ri.
co

1 2 x1 0
=
0
0 x2 0

2 x1 0
7 (6)
1 2 x1 0
1 2 x1 0
=
= basit GAUSS
=

2
2 (6) x2 0
4 x 2 0
0 x 2 0

2
0

2=-3 zdeeri homojen denklemde yerine konarak x2 hesaplanr:

x2

x2

tla

2 x1 0 4 2 x1 0
7 (3)
4 2 x1 0
=
= basit GAUSS
=

2
2 (3) x 2 0 2
1 x 2 0
0 x 2 0

sn
o

Birinci denklemden:
-4x1-2x2=0 dr -4x1-2.1=0

x1=-0.5 olur.

2=-3 zdeerine ait


zvektr

- 0.5
x2 =

em
de
r

4 2 x1 0
=
0
0 x 2 0

Son denklemde:
0x2=0 x2 serbest deikendir, her deer
seilebilir, x2=1 seelim.

Kontrol:

7 2 2
2
12 12
A x1 = 1 x1
= 6 =

2 2 1
1
6 6
7 2 0 .5
0 .5
1.5 1.5
A x 2 = 2 x 2
= 3
=

2 2 1
1
3 3

w
.e

rnek 4: Sanal zdeerler

x
2 2 x1
Ax = x
= 1 , =?

2 2 x 2
x2

x=?

4.3 ve 4.4 e gre

2 x1 x1
2
2
= , det

2 x2 x2

2
= 0 olmal.
2

Hatrlatma: 2x2 matrisin determinant=Diyagonal elemanlarn arpm - dier diyagonal elemanlarn arpmdr.

Hatrlatma:

= 0 (2 )(2 ) 2 (2) = 0 2 + 4 + 8 = 0 1 = 2 2i, 2 = 2 + 2i

i = 1, i 2 = 1 dr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

192

25. STANDART ZDEER PROBLEM

193

ki farkl sanal zdeer var, her biri katsaylar matrisi A nn determinantn sfr yapar. 25.3 e
gre her iki zdeere karlk iki farkl x1 ve x2 zvektr olacaktr.
1=-2-2i zdeeri homojen denklemde yerine konarak x1 hesaplanr:
x1

GAUSSu kolayca uygulamak


iin satrlar deitirildi

x1

Basit GAUSS
uygulandktan sonra

Birinci denklemden:
2x1+2ix2=0 dr 2x1+2.i. 1=0

x1=-i olur.

1=-2-2i zdeerine
ait zvektr

-i
x1 =
1

tla

2 2i x1 0
0 0 x = 0

Son denklemde:
0x2=0 x2 serbest deikendir, her deer
seilebilir, x2=1 seelim.

ri.
co

2
2 (2 2i)
x1 0
2i 2 x1 0
2 2i x1 0
=
=

=
2
2 (2 2i) x 2 0

2 2i x 2 0
2i 2 x 2 0

sn
o

2=-2+2i zdeeri homojen denklemde yerine konarak x2 hesaplanr:

x2

x2

GAUSSu kolayca uygulamak


iin satrlar deitirildi

em
de
r

2
x1 0
2i 2 x1 0
2 (2 + 2i )
2 2i x1 0
=
=

=
2
2 (2 + 2i) x 2 0

2 2i x 2 0
2i 2 x 2 0
Basit GAUSS
uygulandktan sonra

2 2i x1 0
0 0 x = 0

Son denklemde:
0x2=0 x2 serbest deikendir, her deer
seilebilir, x2=1 seelim.
Birinci denklemden:
2x1-2ix2=0 dr 2x1-2.i. 1=0

x1=i olur.

2=-2+2i zdeerine ait


zvektr

i
x2 =
1

Kontrol:

w
.e

i
2i 2 2i 2
2 2 i
= ( 2 2i )
A x 1 = 1 x1

2 2 1
1
2i 2 2i 2

2 2 i
i
2i 2 2i 2
A x 2 = 2 x 2
= (2 + 2i )

2 2 1
1
2i 2 2i 2

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

193

25. STANDART ZDEER PROBLEM

194

zdeterminant ve zdenklem
25.4 bants ile verilen

.
a n1

a1n
a 2n

...
... a nn

an2

=0

det( A I ) =

a12
...
a 22 ...

ri.
co

a11
a 21

Determinantna zdeterminat veya karakteristik determinant denir. Saysal rneklerden de


anlald gibi, bu determinant hesaplandnda ya bal n. derece bir polinom elde edilir:

det( A I ) = n + a1n 1 + a 2 n 2 + ... + a n 1 + a n = 0

(25.5)

vardr.

Her bir

sn
o

zdeerler matrisi ve zvektrler matrisi

tla

Bu polinoma zdenklem veya zpolinom veya karakteristik denklem denir. n. Dereceden


olan zdenklemin n tane kk vardr. Dolaysyla A nn determinantn sfr yapan n tane
zdeer vardr: 1 , 2 ,..., n . Her bir zdeere karlk gelen n tane de zvektr x1, x2, , xn

i ve xi ifti 25.1 zdeer problemini salar:

Ax 1 = 1 x 1
Ax 2 = 2 x 2

A[x 1

... x n ] = [1 x1

x2

2 x 2 ... n x n ] A X = X

em
de
r

...
Ax n = n x n

AX = X
Burada

ve

matrisleri

w
.e

(25.6)

, X = [x
1

x2

... x n ]

zdeer ve zvektrlerin bir araya topland matrislerdir. ou kez matrisine spektral


matris X matrisine de modal matris ad verilir. Herhangi bir zdeer sfr olabileceinden

zdeerler matrisi tekil olabilir, her zaman tanml olmayabilir. zvektrler 25.3 homojen
denklem sisteminin temel zm kmesidir ve dorusal bamszdrlar. Dolaysyla nxn
1
boyutlu X modal matrisi tekil deildir, yani tersi X vardr.
Bu zellik nedeniyle, 25.6 ifadesi

AX = X

olduu grlr.

AX X

X X
X

= X X

1
1

ile soldan arplrsa

AX =

(25.7)

ile sadan arplrsa

A = X X

olur. Son zellik kullanlarak A nn n. Kuvveti iin:


1

A = A A A... A A = X X X X X X .... X X X X
n

A = X X
n

X ... X

zvektrlerin dorusal birleimi:


yazlabilir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

194

25. STANDART ZDEER PROBLEM

195

xi zvektrnn herhangi bir gerek ci says ile arplmas veya blnmesi sonucunda elde
edilen yeni vektr de bir zvektrdr. nk cixi ile de

A(ci x i ) = i (ci x i )

(25.8)

salanr. Bu nemli zellik nedeniyle, istenirse, ci herhangi bir gerek say seilebilir.
zvektrlerin

~
x = c1 x 1 + c 2 x 2 + ... + c n x n

ri.
co

dorusal birletirilmesi ile oluan yeni ~


x de bir zvektrdr ve 25.1 i salar. Bu
aklamalardan u sonuca varlr: Herhangi bir Anxn matrisinin n tane zdeeri, n tane temel
zvektr, fakat sonsuz zvektr vardr.
Normalletirilmi zvektr

25.8 deki ci katsaysnn seiminde uygulamada farkl yaklamlar vardr:

tla

1. Basitlii nedeniyle, xi zvektrnn hesab srasnda serbest deiken genellikle 1 alnr.


Bu ci=1 anlamndadr. ci=1 alnarak hesaplanan zvektr temel zvektrdr. Yukardaki
saysal rneklerin tmnde serbest deikenler 1 seilmiti.

sn
o

2. Baz uygulamalarda zvektrn en byk elemannn 1 olmas istenir. Bunun iin, xi


temel zvektr hesaplandktan sonra, xi nin elemanlarndan mutlak deeri en byk
olan say ci olarak alnr, xi nin tm elemanlar ci ye blnr. Oluan yeni zvektrn en
byk eleman 1 olur. Bu yolla hesaplanan zvektre normalletirilmi zvektr denir.
nceki sayfalarda verilen rnek 2 den:
Normalletirilmi zvektr

Temel zvektr

em
de
r

1
- 1.75
- 1.75

~
x 3 = - 0.25 c 3 = 1.75 x 3 =
- 0.25 = 0.142857
1.75
1
1 - 0.571429

Hem

x3

hem de

~
x 3 rnek 2 deki

zdeer problemini salarlar.

3. Baz uygulamalarda xi temel zvektr hesaplandktan sonra xi nin uzunluunun 1 olmas


istenir. Genel olarak; herhangi bir x= [x1
x2

xn]T vektrnn uzunluu


T
x = x x = x12 + x 22 + ... + x n2 ile tanmlanr. x vektrnn uzunluunu 1 yapmak iin sabit

bir c says ile arpmak gerekir:

x = c( x )(c x) = c 2 ( x12 + x 22 + ... + x n2 ) = 1 c x12 + x 22 + ... + x n2 = 1 c =

x + x + ... + x n2
2
1

2
2

w
.e

dir. ~
x = c x ile hesaplanacak yeni vektrn uzunluu 1 olacaktr:

~
x=

x1
x
1
2
2
2
2 .
x1 + x 2 + ... + x n

xn

Demek ki bir vektrn uzunluunun 1 olmas istenirse o vektrn elemanlarn o vektrn


uzunluuna blmek gerekir. nceki sayfalarda verilen rnek 2 den:

- 1.75
x3 zvektrnn uzunluu
x 3 = - 0.25 x 3 = 1.75 2 + 0.25 2 + 12 = 2.031010
1
- 1.75 - 0.861640
~
1
- 0.25 = - 0.123091 Hem x 3 hem de x 3 rnek 2 deki zdeer
~
x3 =

problemini salarlar.
2.031010
1 0.492366
x3 n uzunluu
x3

Uzunluu 1 olan
yeni zvektr

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

195

25. STANDART ZDEER PROBLEM

196

T
~
x = ~
x3 ~
x = 0.8616402 + 0.1230912 + 0.4923662 = 0.999999 1

Kontrol:

1.

zdeer problemi sadece kare matrisler iin tanmldr.

2.

Anxn matrisinin daima n tane zdeeri,

3.

4.

Her i zdeerine karlk gelen bir xi zvektr vardr.

zdeer ve zvektrlerin baz nemli zellikleri

zdeeri A matrisinin determinantn sfr yapar.

i ve

salar.

ri.
co

1 , 2 ,..., n vardr.
xi ifti beraber

( A i I ) x i = 0

bantsn

zdeerler pozitif, negatif, sfr gerek saylar olabildii gibi sanal saylar da olabilir.

6.

zvektrlerin elemanlar gerek ve sanal saylardan oluabilir.

7.

Elemanlar gerek saylardan oluan A simetrik (AT=A) ise, tm zdeerler de gerek saylardan oluur.
Simetrik matrisin zvektrleri ortogonaldr: XTX=I

8.

A simetrik (AT=A) ve pozitif tanml ise tm zdeerler de pozitiftir.

9.

Baz zdeerler birbirine eit olabilir. Fakat Eit zdeerlerin zvektrleri mutlaka farkldr. nk
zvektrler dorusal bamszdr. rnein

birim matrisinde

1 = 2 = 3 = 1

1
0
0

,
,
x1 = 0 x 2 = 1 x 3 = 0
0
0
1

sn
o

tla

5.

ve zvektrler

dr. Grld gibi, zdeerler birbirine eit fakat zvektrler birbirinden farkldr.
10. xi zvektrnn herhangi bir gerek c says ile arplmas veya blnmesi sonucunda elde edilen yeni
vektr de bir zvektrdr. Yan yeni vektr cxi ile de

( A i I )(c x i ) = 0 salanr.

Bu nemli zellik

em
de
r

nedeniyle, istenirse, c herhangi bir gerek say seilebilir.

11. A ve AT ayn zdeerlere sahiptir, fakat zvektrleri genelde farkldr.


12. Anxn ve Bnxn kare matrisler olmak zere A B ve B A matrisleri ayn zdeerlere sahiptir.
13. A nn zdeeri

ise A -1 in zdeeri

1 i

dir.

i = 0

durumunda

1 i

tanmszdr, bu ise A nn tekil ve

A-1 in olmad anlamndadr.

14. Anxn matrisinin izi zdeerlerin toplamna eittir:


z A=a11+ a22++ ann= 1

+ 2 + ... + n .

15. Anxn matrisinin determinant zdeerlerin arpmna eittir:


det A=

2 ... n .

w
.e

Dolaysyla, zdeerlerden herhangi biri sfrsa,

i = 0

, det A=0 dr ve A-1 tanmszdr.

zdeer ve zvektrn geometrik yorumu

A x=x bantsndan hesaplan zdeeri ve x zvektr u ekilde yorumlanabilir: A matrisi x vektrn


kadar bytmekte veya kltmektedir. x vektrnn dorultusu deimemekte fakat yn deiebilmektedir.
pozitif ise x ve x ayn ynde, aksi hale ters yndedirler.

x
x

x
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

196

25. STANDART ZDEER PROBLEM

197

3 1 0
A = 1 2 1 verildiine gre ( A I ) x = 0 zdeer problemini znz.
0 1 3

rnek 5: 3x3 matrisin zdeer problemi

Bu u anlama gelmektedir: A nn determinantn sfr yapan 1 , 2 , 3 zdeerlerini ve her bir

ri.
co

zdeere ait x1 , x 2 , x 3 vektrlerini, ( A i I ) x i = 0 bantsn salayacak ekilde, bulunuz.


zdeerlerin hesab:

( A I )x = 0

x0 zm arandndan,
determinant sfr olmaldr:

bantnn

0
2 1 = 0
1 3

salanabilmesi

sn
o

3
f ( ) = det 1
0

bu

zdeer problemi

tla

0 x1 0
3 1
1 2 1 x = 0

2
0
1 3 x3 0

iin,

katsaylar

matrisinin

Laplace alm(1.kolona gre):

f ( ) = (1) (1+1) (3 )

+ (1) (1+ 2 ) (1)

f ( ) = 3 + 82 19 + 12 = 0
Son

terimin

1 3

em
de
r

1 3
f ( ) = (3 )[(2 )(3 ) 1] + (3 + ) = 0

=0

zdenklemin MLLER program ile bulunan


kkleri(Bak: Blm 36, sayfa 294)

zdenklem

1.3.4=12

arpanlarndan

kkler 1 = 1, 2 = 3, 3 = 4 bulunur.

Bunlar

nn

zdeerleridir, A nn determinantn sfr yaparlar. zdenklemin kkleri uygun bir programla


da bulunabilir, derecesi 5 ve yukar olan problemlerde zaten baka are yoktur(kk bulma
programlar iin bak: blm 36).
zvektrlerin hesab:

w
.e

x i zvektleri ( A i I ) x i = 0 homojen denkleminden hesaplanr. En uygun yntem GAUSS

indirgeme metodudur. ndirgeme sonucunda A i I katsaylar matrisi edeer bir st gen

matrise dnr. gen matrisin diyagonal eleman sfr olur. Bu determinantn sfr olduu
anlamndadr. Sfr diyagonale ve kar tarafa herhangi bir sabit ci says yazlr. Bu
zvektrn ci katnn da bir zvektr olduu zelliinden yararlandmz anlamna gelir.
Basitlii nedeniyle ou kez ci=1 tercih edilir. Yukar doru hesap yaplarak zvektrn tm
terimleri belirlenir.

1 = 1 iin zvektrn hesab:


3
1

1
2
1

0 x1 0
1 x2 = 0
3 x3 0
{

= 1 = 1 alnr.
.

x1

0 x1 0
3 1 1
1 2 1 1 x = 0

2
0
1 3 1 x3 0
{
x1

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

197

25. STANDART ZDEER PROBLEM

2 1 0 x1 0
0 0.5 1 x = 0

2
0 0
0 x3 0

Yukar doru hesap ile tm


bilinmeyenler belirlenir

Normalletirilmi zvektr
(uzunluu=1)

tla

0 x1 0
1 x 2 = 0
3 x3 0

Normalletirilmi zvektr
(en byk terim=1)

1 0.408248
2 = 0.816497

2
2
2
1 + 2 + 1 1 0.408248

0 x1 0
3 3 1
1 2 3 1 x = 0

2
0
1 3 3 x 3 0
{

0 1 0 x1 0
1 1 1 x = 0

2
0 1 0 x3 0

sn
o

1
2

e ait temel zvektr

~
x1 =

2 = 3 iin zvektrn hesab:


3
1

1 0 . 5
1
~
x 1 = 2 = 1
2
1 0.5

3.diyagonal sfrdr. x3 serbest


deikendir. Diyagonale ve kar
tarafa 1 yazlr: 1.x3=1

2 1 0 x1 0
0 0.5 1 x = 0

2
0 0
1 x3 1

1 = 1

x1 1
x1 = x2 = 2
x3 1

Homojen denklem sistemi


GAUSS ile indirgenir.

ri.
co

2 1 0 x1 0
1 1 1 x = 0

2
0 1 2 x3 0

198

Homojen denklem
sistemi GAUSS ile
indirgenir.

x2

GAUSS ile:
1 1 1 x1 0
0 1 0 x = 0

2
0 1 0 x3 0

em
de
r

1 1 1 x1 0
0 1 0 x = 0

2
0 0 0 x3 0

1 1 1 x1 0
0 1 0 x = 0

2
1 x3 1
0 0

Normalletirilmi zvektr
(en byk terim=1)

2 = 3 e ait

1 1
x1 1 temel zvektr
1

~
x2 =
0 = 0
x 2 = x2 = 0
1
1 1
x 3 1

~
x2 =

3.diyagonal sfrdr. x3 serbest


deikendir. Diyagonale ve kar
tarafa 1 yazlr: 1.x3=1. Yukar
doru hesap ile tm bilinmeyenler
belirlenir.

Normalletirilmi zvektr
(uzunluu=1)

1 0.707108
0=

12 + 0 + 12
1 0.707108
1

w
.e

3 = 4 iin zvektrn hesab:


3
1

1
2
1

0 x1 0
1 x 2 = 0
3 x3 0

0 x1 0
3 4 1
1 2 4 1 x = 0

2
0
1 3 4 x 3 0
{

Homojen denklem
sistemi GAUSS ile
indirgenir.

x3

GAUSS ile:
1 1 0 x1 0
0 1 1 x = 0

2
0 1 1 x3 0

3 = 4

1 1 0 x1 0
0 1 1 x = 0

2
0 0 0 x 3 0
e ait

1 1 0 x1 0
0 1 1 x = 0

2
0 0
1 x 3 1

Normalletirilmi zvektr
(en byk terim=1)

temel zvektr

x1 1
x 3 = x 2 = 1
x 3 1

1 1 0 x1 0
1 2 1 x = 0

2
0 1 1 x3 0

1 1
1
~
x 3 = 1 = 1
1
1 1

~
x3 =

3.diyagonal sfrdr. x3 serbest


deikendir. Diyagonale ve kar
tarafa 1 yazlr: 1.x3=1. Yukar
doru hesap ile tm bilinmeyenler
belirlenir.
Normalletirilmi zvektr
(uzunluu=1)

1 0.577350
1 = 0.577350

12 + 12 + 12 1 0.577350

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

198

25. STANDART ZDEER PROBLEM

199

zdeerler matrisi ve temel zvektrler matrisi:


zdeerler matrisi

Normalletirilmi modal matris


(her vektrn uzunluu=1)

Normalletirilmi modal
matris(en byk eleman=1)

Modal matris
(temel zvektrler)

ri.
co

1 1 1
X = 2 0 1
1 1
1

= 3 ,

tla

0.408248 0.707108 0.577350


~
X = 0.816497
0
0.577350
0.408248 0.707108 0.577350

1
0. 5 1
~
X = 1
0 1 ,
0.5 1 1

Kontrol: A X = X ve A X = X ile zmler kontrol edilebilir.

sn
o

zdeer problemi zm metotlar

zdeer problemi, sayfa 158 de akland gibi, 1. determinant hesab 2. homojen denklem
sistemi zmnden ibarettir. zmn yk ve zorluu zdeerlerin belirlenmesindedir.
zm iin direkt ve iterasyon metotlar kullanlmaktadr.

em
de
r

Direkt metotlar bir takm ilemler sonras 25.5 bantsnda verilen zdenklemi kurar ve
zerler. Byk denklem sistemleri iin uygun deildirler. nk n. derece olan
zdenklemzpolinomun n tane kknn bulunmas byk nmerik sorunlar yaratr. ok
basit bir rnek ile aklayalm:
zdeerler

zvektrler

w
.e

100

x1
100
x1

x
110
110

120
1
x3

x3
120
A=
, X =

= =
130
1
x
x
130

x5

x5
140
1
140


150
1

150 x6

x6

Diyagonal katsayl zdeer probleminin 6 adet zdeeri,


elemanlarna eittir. zvektrleri de birim matristir. zdenklem

bilindii

gibi,

diyagonal

100

det( A I ) =

110
120
130
140
150

det( A I ) = (100 )(110 )((120 )(130 )(140 )(150 ) = 0

6 750 5 + 233500 4 38625000 3 + 3580240000 2 176310000000 + 3603600000000 = 0


dr. Grld gibi, bu ok basit ve ok kk problemde bile polinomun katsaylar ok
byktr. 6 adet i zdeerlerinin bu polinomdan hesaplanmas yuvarlama hatalarnn ok
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

199

25. STANDART ZDEER PROBLEM

200

byk olaca anlamndadr. ok byk zdeer problemlerinde say tamas kanlmazdr.


Bu nedenle, byk boyutlu zdeer problemlerinde, iterasyon yntemleri tercih edilir.

w
.e

em
de
r

sn
o

tla

ri.
co

ok saydaki iterasyon yntemlerinden determinant arama, power(MISES), invers power,


JACOBI, ARNOLDI, LANCZOS, QR, HOUSEHOLDER, GIVENS gibi metotlarnn ad verilebilir.
terasyon yntemleri el hesaplar iin fazlasyla karmaktr. Bu nedenle ad, geen
yntemlerin teorisi yerine sadece baz yntemlerin programlar verilecektir(Bak: blm 27)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

200

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

tla

Ders notlar 2014

em
de
r

sn
o

Ahmet TOPU

Rijitlik matrisi

Ktle matrisi

Ax=x

K M = 0
2

w
.e

Asal frekans

Titreim modu

26
GENEL ZDEER PROBLEM
Yap serbest titreim asal frekans, periyot, frekans ve modlarnn hesab

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

202

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI


Bir yapnn serbest titreim frekans denklemi

K 2 M = 0

(26.1)

ile verilir. Burada

ri.
co

K :yapnn rijitlik matrisi (simetrik, bant ve pozitif tanml)


M :yapnn ktle matrisi (simetrik bant, genelde diyagonal)
yapnn asal titreim frekans
:Yapnn ya karlk gelen titreim formu (modu).

K ve M bilinir ve hesaplanr. = 2 alnarak (26.1) ifadesi

K M = 0
( K M ) = 0

tla

(26.2)

(26.3)

eklinde yazlabilir. (26.3) ifadesine genel zdeer problemi denir. 25.3 bants ile verilen
standart zdeer probleminden farkldr (MI ). 1 , 2 ,...n zdeerlerinin ve her zdeere
gelen

1 , 2 , ..., n

zvektrlerinin

hesaplanabilmesi

sn
o

karlk

iin

26.3

genel

zdeer

probleminin 25.3 tipindeki standart zdeer problemine dntrlmesi gerekir. nk baz


nmerik yntemler (POWER-MISES, JACOBI, gibi) sadece standart zdeer problemini
zerler.

em
de
r

zdeer, asal frekans, periyot ve frekans arasndaki iliki:


Asal frekans:

i = i2 olduundan
i = i

(26.4)

dir. i nin birimi rad/s dir.

Periyot:

w
.e

Fizik, dinamik veya yap dinamii derslerinden hatrlanaca gibi asal frekans ile periyot
arasnda

T =

(26.5)

Bants vardr. Dolaysyla yapnn titreim periyotlar

Ti =

(26.6)

dir. Ti nin birimi s dir. Bir titreim srecinin ka saniye srd anlamndadr.
Frekans:

Periyodun tersidir.

fi =

1
Ti

(26.7)

f i nin birimi Hz (Hertz) dir. Bir saniyede ka titreim yapt anlamndadr.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

202

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

203

Genel zdeer probleminin standart zdeer problemine dntrlmesi

1.Yol:

I =M M

(M

K M

alnarak

( A I ) = 0

M ) = 0

ifadesinde

A=M K

ri.
co

det M0 ise, 26.3 ifadesi M-1 ile soldan arplarak oluan

zdeer ve zvektr hesaplayan algoritmalar genelde standart zdeer problemini zerler.


Bu nedenle genel zdeer problemi standart zdeer problemine dntrlr. Dntrme
farkl yollarla yaplabilir.

ve

(26.8)

Hesap sras:

4. A nn zdeerleri

sn
o

1. K ve M hesaplanr.
2. M-1 hesaplanr.
3. A= M-1K hesaplanr( simetrik deil ve tam dolu!).

1 , 2 ,...n ve 1 , 2 ,... n

zvektrleri(yapnn titreim modlar) bulunur.

i = i den bulunur.
2
den bulunur.
Ti =
i

5. Asal Frekanslar

fi =

1
Ti

em
de
r

6. Periyotlar

tla

Standart zdeer problemi elde edilir. K ve M simetrik ve bant olmasna ramen A tam doludur ve
simetrik deildir! Siemetrik olmayan zdeer problemi daha ok bellek, ilem gerektirir ve zm
zorluk yaratr. Bu nedenle 1.yol genelde tercih edilmez.

7. Frekanslar

den bulunur.

2.Yol:

Det M=0 ise 1. yol uygulanamaz. K daima pozitif tanml ve det K0 dr. 26.3 ifadesi K-1 ile sadan arplarak
oluan
-1

( K K K M ) = 0

ile arplarak bulunan

ifadesinde

I =K K

I + A) = 0

ve

ifadesinde

A= K M

alnarak

(I A) = 0

olur. Her iki taraf -

alnr ve dzenlenirse

w
.e

( A ' I ) = 0

Standart zdeer problemi elde edilir. K ve M simetrik ve bant olmasna ramen A tam doludur ve
simetrik deildir, 2.yol da genelde tercih edilmez.
Hesap sras:

1. K ve M hesaplanr.
2. K-1 hesaplanr.
3. A= K-1M hesaplanr( simetrik deil ve tam dolu!).
4. A nn zdeerleri

1, 2 ,..., n

5. Asal Frekanslar

i = i =

6. Periyotlar

7. Frekanslar

Ti =

fi =

i
1
Ti

ve

1 , 2 ,... n

1
i

zvektrleri(yapnn titreim modlar) bulunur.

den bulunur.

den bulunur.

den bulunur.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

203

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

204

3.Yol:
1. ve 2. yol K ve M nin simetrik ve bant yapsn bozar. Aada verilen, simetriyi bozmayan, yol tercih edilir. M
ktle matrisi pozitif tanml olmak kaydyla Cholesky yntemi1 ile
T

eklinde gen arpanlarna ayrlabilir.


ifadesi

KU

U U U = 0
T

(U

1 T

) =U

ile gsterilir ve

=I

zellii kullanlrsa 26.2

olarak yazlabilir.

x =U
T

alnrsa

U T U

(26.9)

ri.
co

M = UU

(26.10)

KU

U U =I

dir.

x U x = 0
1

U KU

olur. Bu ifade

=A

ile soldan arplarak

alnarak

Veya

( A I )x = 0

sn
o

Standart zdeer problemi elde edilir.


Hesap sras:

x U U x = 0

tla

Ax I x = 0

U KU

bulunur.

(26.11)

1. K ve M hesaplanr.
2. M Cholesky ile gen arpanlara ayrlarak U, U-1, U-T hesaplanr.

Not: M nin diyagonal olmas durumunda U da diyagonaldir(Cholesky gerekmez!):


-1

-T

u ii = mii

. U nun

-1

em
de
r

hesaplanmas gerekmez, U = U dir, U dorudan

=U

m 11

m 22

...

m nn

ile hesaplanr.

3. A = U-1 K M-T simetrik fakat tam dolu matrisi hesaplanr.

w
.e

Not: M diyagonal yapya sahipse A= U-1 K U-1 ile hesaplanr, A simetriktir ve K ile ayn bant geniliine sahiptir.
5. A nn zdeerleri

1 , 2 ,..., n ve zvektrleri x 1 , x 2 ,..., x n

6. 26.10 ifadesine gre

=U

xi

bulunur.

dir. Bu bant kullanlarak yapnn titreim modlar

1 , 2 ,... n

hesaplanr.

i = i den bulunur.
2 den bulunur.
8. Periyotlar T =
i
i
1 den bulunur.
9. Frekanslar f =
i
Ti
7. Asal frekanslar

-------------------------1

Bak: blm 6. Simetriden dolay M=U UT veya M=UT U eklinde gen arpanlarna ayrlabilir. Burada M=U UT tercih edilmitir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

204

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

205

Yapnn titreim modeli

ri.
co

Teorisi basit olmasna ramen, zdeer hesab ok youn ve karmak hesap gerektirir. Bu
nedenle, bir yapnn serbest titreim periyot ve modlarnn belirlenmesi iin ou kez basit
modeller kullanlr. Genellikle kat deme ve kirilerinin sonsuz rijit olduu, deforme
olmad, kat ktlelerinin sadece yatay ynde gidip-geldii fakat dnmedii varsaylr. Bu
durumda yatay bir kuvvet(rnein deprem) sadece yatay yer deitirme oluturacak ve
kolonlarnn kesme rijitlii direnim gsterecektir varsayabiliriz. Bu varsayma gre yapy
ktleleri kat seviyesinde toplanm bir konsol ile modelleyebiliriz.

tla

Aadaki ekilde grlen katl yapnn serbest titreim frekans, periyot ve modlar,
genellii bozmadan, rnek olarak hesaplanacaktr. Kat ktleleri kat seviyelerinde
toplanmtr.

sn
o

L2

L3

E: Malzeme elastisite modl


Ii : i. Kolonun titreim ynndeki atalet momenti
Li : i. Kolonun boyu
12EIi :Yapnn i.kolonunun kesme rijitlii
ki =
3

mi : i. katn toplam ktlesi

Li

k i' : i. katn kolonlarnn kesme rijitliklerinin toplam

em
de
r

L1

12 EI
3 i
Li

12 EI i
L3i

olmak zere model sistemin K rijitlik ve M ktle matrisi:

k1' + k 2'

K = k 2'
0

k 2'
k 2' + k 3'
k

Simetrik
ve bant

m1
M = 0
0

0
m2
0

0
0
m3

diyagonal

26.3 e gre serbest titreim denklemi ( K M ) = 0 :

w
.e

'
3

k 3'
k 3'

k1' + k 2'
( k 2'
0

k 2'
k 2' + k 3'
k

'
3

0
m1
'
k 3 0
0
k 3'

0
m2
0

0 1
0 ) 2 = 0
m 3 3

(26.12)

dir.
Aadaki saysal rneklerin zmnde blm 27-34 de verilen zdeer-zvektr
hesaplayan ve blm 35 verilen polinom kkleri bulan programlar kullanlacaktr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

205

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

206

Saysal rnek 1:

Titreim
yn

m3=20 t

k6
m2

m2=25 t
k3

k4

k1

m1

k1= k1+k2=18632.81+18632.81=37265.62 kN/m


k2= k3+k4=44166.67+44166.67=88333.34
k3= k5+k6=44166.67+44166.67=88333.34

k1=k1+k2

k2

k1=k2=12 99375/4 =18632.81 KN/m


.
3
k3=k4= k5=k6=12 99375/3 =44166.67 KN/m

k2=k3+k4

m1=40 t

E=31800 10 kN/m (C30/37 betonu iin TS 500-2000 den)


.
.
3
-3
4
Ii =0.3 0.5 /12=3.125 10 m (i=1, 2, ,6 tm kolonlarda ayn)
2
E Ii =99375 kN m

k3=k5+k6

tla

k5

Metre, Ton, Kilo Newton ve Saniye birimleri kullanlacaktr.

m3

ri.
co

Titreim
yn

ekilde verilen ereve C30/37 betonu ile ina edilecektir. Tm kolonlarn kesitleri ayndr.
En byk ve en kk Serbest titreim frekanslarn, periyotlarn ve titreim modlarn
bulunuz.

m1=40 t, m2=25 t, m3=20 t


0.3

0.3

k 2'
k 2' + k 3'
k 3'

Model

0 37265.62 + 88333.34

88333.34
k 3' =
'
k 3
0

88333.34
0

88333.34 + 88333.34 88333.34


88333.34
88333.34

em
de
r

k 1' + k 2'

K = k 2'
0

0.5 m

Yap

sn
o

0.5 m

0
125598.96 88333.34

K = 88333.34 176666.68 88333.34

0
88333.34 88333.34
m1 0
M = 0 m2
0 0

0 40 0 0
0 = 0 25 0
m3 0 0 20

w
.e

Serbest titreim denklemi

( K M ) = 0 :

0
125598.96 88333.34

40 0 0

( 88333.34 176666.68 88333.34 0 25 0 ) = 0

0 0 20
0
88333.34 88333.34
14444444244444443
144244
3
K

(26.13)

1. yol izlenerek 26.13 den zdeer, zvektr, asal frekans, periyot, frekans ve mod hesab

0
0
0
0.025
3139.97 2208.33

= 0
0.04
0 A = M K = 3533.33 7066.67 3533.33
0

0
0.05
0
4416.67 4416.67

0
3139.97 2208.33

1
1

( A I ) = 0 ( 3533.33 7066.67 3533.33 1 ) 2 = 0

0
4416.67 4416.67
1 3

Simetrik deil!

26.13 genel zdeer


probleminin standart
zdeer problemine
dntrlm edeeri

(26.14)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

206

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

207

a) ( A I ) = 0 n en byk zdeeri ve zvektr:

26.14 de A simetrik deildir. JACOBI kullanlamaz. Blm 28 de verilen PowerMises


program kullanarak en byk zdeer ve buna ait zvektr(titreim modu) bulunabilir. A
matrisi programa verilirse:
-0.30
Titreim modu:

-0.71

En byk asal frekans: = = 10623.6 = 103.1 rad/s

2
= 0.06 s
103.1
1
1
En byk frekans: f = =
= 16.7 Hz
T 0.06

tla

En kk periyot: T =

ri.
co

En byk zdeer: = 10623.6

0 . 30
= 1
0 . 71

Mod

b) ( A I ) = 0 n en kk zdeeri ve zvektr:

sn
o

En kk zdeer ve buna ait zvektr blm 29 da verilen PowerTers program ile


bulunabilir. 26.14 bantsndaki A programa verilirse:
0.73

em
de
r

En kk zdeer: = 377.9

Titreim modu:

0.73
= 0.91
1

0.91

En kk asal frekans: = = 377.9 = 19.44 rad/s


En byk periyot: T =

En kk frekans: f =

2
= 0.32 s
19.44

1
1
=
= 3.1 Hz
T 0.32

En kk zdeer En byk periyot


Mod

w
.e

3. yol ile 26.13 den zdeer, zvektr, asal frekans, periyot, frekans ve mod hesab:

M diyagonal olduundan Cholesky gerekmez, U-1 dorudan hesaplanr.

1 40
0
0 0.1581 0
0


= 0
1 25
0 = 0
0 .2
0
0
0
1 20 0
0 0.2236

0
19857.20 13965.50

K = 17666.67 35333.34 17666.67 ,


0
19751.33 19751.33

Serbest titreim denklemi ( A I ) x = 0 :

A=U

KU

Simetrik ve bant

0
3139.42 2793.10

= 2793.10 7066.67 3950.27


0
3950.27 4416.40

Dikkat: 26.10 a gre

0
3139.42 2793.10

1 0 0 x1

( 2793.10 7066.67 3950.27 - 0 1 0) x 2 = 0


0 0 1 x3
0
3950.27 4416.40

x=M

1/ 2

dir

26.13 genel zdeer probleminin


standart zdeer problemine
dntrlm edeeri

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

207

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

208

A nn tm zdeerleri ve zvektrleri:

x1

x2

x3

ri.
co

A matrisi simetriktir. Blm 30 da verilen Jacobi program kullanlarak tm zdeer ve


zvektrler bulunabilir:

En kk zdeer En byk periyot

2 = 10623.22

2 = 10623.22 = 103.07 rad/s

3 = 3621.45

3 = 3621.45 = 60.18 rad/s

Modlar: 26.10 dan bulunur.

1 = 19.44 rad/s iin:

2
= 0.32 s
19.44
2
T2 =
= 0.06 s
103.07
2
T3 =
= 0.10 s
60.18
T1 =

1
= 3.1 Hz
0.32
1
f2 =
= 16.7 Hz
0.06
1
f3 =
= 10 Hz
0.10
f1 =

tla

1 = 377.82 = 19.44 rad/s

sn
o

1 = 377 .82

0.73

0 1 0.1581
0.73
0.1581 0
0
0 .2
0 0.9887 = 0.1977 1 = 0.91
0
0 0.2236 0.9671 0.2162
1

em
de
r

1 = M 1 x1 =

2 = 103.07 rad/s iin:

0 0.3732 0.0590
0.1581 0
0.30
= 0.2000 = 1
0
0.2
0 1
2

0
0.71
0 0.2236 0.6364 0.1423

1. Mod

-0.30

w
.e

2 = M 1 x 2 =

0.91

-0.71

2. Mod

3 = 60.18 rad/s iin:


0 1
0.1581 0
0.1581
0.82

0 .2
0 0.1726 = 0.0345 3 = 0.18
3 = M x3 = 0
0
1
0 0.2236 0.8576 0.1918
1

-0.82

1.80

3. Mod

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

208

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

209

26.13 genel zdeer probleminin standart zdeer problemine dntrlmeden


zm
a)El ile zdeer, frekans ve periyotlarn hesab:

88333.34

40 0 0
88333.34 0 25 0 ) = 0
88333.34 88333.34
0 0 20
176666.68

125598.96 - 40
88333.34

88333.34

176666.68 - 25
88333.34

88333.34 = 0
88333.34 - 20

ri.
co

125598.96

( 88333.34

Serbest titreim denklemi ( K M ) = 0 :

El hesaplarn basitletirmek iin tm terimleri 20 deerine blelim. 0 olduundan


eitliin salanabilmesi iin katsaylar matrisinin determinant sfr olmaldr.
4416.67
8833.33 - 1.25
4416.67

6279.95 - 2

= 0 f ( ) = 4416.67

4416.67 -
0
0
4416.67

SARRUS kuralna gre:

4416.67
8833.33 - 1.25
4416.67

0
4416.67 = 0

4416.67 -

tla

6279.95 - 2
4416.67

f ( ) = (6279 .95 2 )(8833 .33 1.25 )( 4416 .67 ) 4416 .67 3 4416 .67 2 (6279 .95 2 ) = 0

Polinomun katsaylarnn ok byk


olduuna dikkat ediniz.

sn
o

f ( ) = 2.53 36558 .30 2 + 1.0965 108 3.63469 1010 = 0

NEWTON-RAPHSON metodu ile kkler hesaplanrsa(bak: blm 36):

em
de
r

En kk zdeer En byk periyot

2
= 0.32 s
19.44
2
2 = 3621.87 2 = 3621 .87 = 60.18 rad/s T2 =
= 0.10 s
60.18
3 = 10623.59 3 = 10623.59 = 103.07 rad/s T3 = 2 = 0.06 s
103.07

1 = 377.85

1 = 377.85 = 19.44 rad/s

T1 =

1
= 3.1 Hz
0.32
1
f2 =
= 10 Hz
0.10
1
f3 =
= 16.7 Hz
0.06
f1 =

w
.e

a)Eigen04 program(bak: blm 34) ile zdeer, frekans, periyot ve modlarn hesab:
26.13 genel zdeer probleminin K ve M matrisi programa verilierek

ve hesaplanabilir:
i
i
0.73

-0.30

0.91

1
1

-0.82

1.80

-0.71

2
1 = 377.85
1 = 377.85 = 19.44 rad/s T1 =
= 0.32 s
19.44
2
2 = 3621.87 2 = 3621 .87 = 60.18 rad/s T2 =
= 0.10 s
60.18
3 = 10623.55 3 = 10623.55 = 103.07 rad/s T3 = 2 = 0.06 s
103.07

1. Mod

2. Mod

3. Mod

1
f1 =
= 3.1 Hz
0.32
1
f2 =
= 10 Hz
0.10
1
f3 =
= 16.7 Hz
0.06

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

209

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

210

Saysal rnek 21:

Verilerin hazrlanmas:

Ton, metre, kilo Newton ve saniye birimleri kullanlacaktr.


.

ri.
co

ekilde grlen kafes kiri IPB200 profili


ile retilecektir. Profil elemanlarn ktleri
dmlerde toplanm varsaylmaktadr.
Her noktada ayrca 40 kg ek ktle vardr.
Sistemin tm serbest titreim frekans,
periyot ve modlarn belirleyiniz.

tla

E=2.1 10 N/mm =2.1 10 kN/m (Yap elii elastisite modl)


.
-4
2
IPB 200 iin profil tablosundan: A=78.1 10 m (kesit alan), m=61.3 kg/m (birim boy ktlesi)
EA=1640100 kN

sn
o

Dmlerdeki ktleler:
ubuk boylar: L=10 m (yatay elemanlarda), L=7.0711 m (diyagonal elemanlarda)
.
m1= m2=40+61.3(10+2 (7.0711)/2=780 kg=0.78 t
.
Dmdeki ktle= 40 kg sabit ktle + dme
m3=40+61.3(2 10+2.7.0711)/2=1086 kg=1.086 t
birleen elemanlarn toplam ktlelerinin yars
m4=m5=40+61.3(10+7.0711/2=563 kg=0.563 t
Sonlu Elemanlar Metodu ile zm:

Sistemin 2x5=10 serbestlik derecesi vardr (her dmde X ve Y ynnde).


Her kafes elemann global rijitlik matrisi kurulur.
Direkt rijitlik metodu ile elemanlarn rijitlik matrisleri sistem rijitlik matrisi K ya eklenir. K
nn boyutu 10x10 dur.
10x10 boyutlu ktle matrisi M kurulur. Ktleler dm noktalarna toplanarak
modellendiinden M diyagonaldir.
K 2 M = 0 serbest titreim genel zdeer denklemi oluturulur, 10 denklem vardr.

em
de
r

Sistemin snr artlar K 2 M = 0 denklemine ilenir. 4 noktas Y ynnde, 5 noktas

hem X hem de Y ynnde serbest deildir. Sistem bu ynlerde(8., 9. ve 10. ynlerde)


deplasman ve titreim yapamaz. 8.,9. ve 10. satr ve stunlar K 2 M = 0

bantsndan kartlr. 7 serbestlik derecesi kalr.


Snr artlar ilenmi 7 serbestlik dereceli K 2 M = 0 genel zdeer probleminde

= 2 dnm yaplr, K M = 0 olur.

K ve M matrisi Eigen04(bak blm 34) programna verilerek i zdeerleri ve i


zvektrleri(modlar) hesaplanr.

w
.e

i = i ,

Ti =

fi =

1
den asal frekanslar, periyotlar bulunur.
Ti

L=

x2

E,

A
,L

Lo
ka
ek
l
se
n

x1

Dzlem kafes elemann global rijitlik matrisi:

ku = s

X 2 + Y 2
X
11 = Cos =
L
Y
12 = Sin =
L
2
11
1112

122
EA 11 12
k=
L 112
1112

122
11 12

112
1112

112
1112

1112

122
1112

122

Bu rnein anlalabilmesi iin sonlu elemanlar metodu bilgisi gerekir.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

210

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

5
5
1
1
3
3
2

5
10
5
10
5
10
5

5
0
-5
0
-5
0
-5

1
3
3
2
2
4
4

L
7.07
10
7.07
10
7.07
10
7.07

0.7071
1
0.7071
1
0.7071
1
0.7071

0.7071
0
-0.7071
0
0.7071
0
-0.7071

231980
164010
231980
164010
231980
164010
231980

EA 2
11
L
115988
164010
115988
164010
115988
164010
115988

EA
1112
L
115988
0
-115988
0
115988
0
-115988

EA 2
12
L
115988
0
115988
0
115988
0
115988

1
2
3
4
5
6
7

i j

ri.
co

Eleman

Gerekli byklkler tablosu


EA
X
Y
11 =
12 =
L
L
L

211

a=115988, b=164010 olmak zere elemanlarn global rijitlik matrisleri:


b
0
2
k =
b

0 b 0
a a a a
a a
0 0 0
a a
3
k =
a a
0 b 0
a a

0 0 0
a

a a

a a a
a
a
a a a
5
k =
a a a
a

a
a a a

b
0
6
k =
b

0 b 0
a a a a
a a
0 0 0
a a
7
k =
a a
0 b 0
a a

0 0 0
a a a a

0 b 0
0 0
b 0

0 0 0
0
0

sn
o

Sistem rijitlik matrisi:

b
0
4
k =
b

tla

a a a
a
a
a a a
1
k =
a a a
a

a
a
a

w
.e

em
de
r

b
0
a
a
0
0
a a
2a + b 0
0
a
a

a
a a
2
0
0
0
0

b
0 2a + b 0
a
a a
a
0
0

0
0
0
2
a

a
a

a
0
0

a
a
a
a 2a + 2b 0
b
b
0
0
K=

a
0
2
a
0
0
0
0

0
0
a
a
b
0 a+b a
0
0

0
a
a
0
0
a
a
0
0
0
a
a
b
0
0
0
0
0 a+b a

a
0
0
0
0
0
0
a
a
a

Sistem ktle matrisi:


m1
0

0
0
M =
0
0

0
0

0
m1
0

0
0
m2

0
0
0

0
0
0

0
0
0

0
0
0

0
0
0

0
0
0

0
0

0
0

m2
0

0
m3

0
0

0
0

0
0

0
0

0
0

0
0

0
0

0
0

m3
0

0
m4

0
0

0
0

0
0
0

0
0
0

0
0
0

0
0
0

0
0
0

0
0
0

m4
0
0

0
m5
0

0
0

0
0

0
0

m5
0
0
0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

211

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

212

K 2 M = 0 titreim denklemi:
4

10

1 2a + b 0
b
0
a
0
0
a a
a
m1 0 0
0 m 0
2 0
2a
0
0
a
0
0
a a
a
1

0 0 m2
3 b
0 2a + b 0
a
a a
0
0
a

4 0
0
0
2a
0
0
a
a
a
a
0 0 0
0 0 0

5 a
a
a 2a + 2b 0
b
0
b
0
a

2
6 a
a
a
a
0
2a
0
0
0
0
0 0 0
0 0 0
7 0
0
a
b
0 a+b a
0
0
a

8 0
0
0
0
0
0
a
a
a
a
0 0 0
0 0 0
9 a
0
0
0
0
0 a+b a
a
b

10 a
0
0
0
0
0
0
a
a
a
0 0 0

0
0

0
0

0
0

0
0

0
0

0
0

m2

0
0

m3
0

0
m3

0
0

0
0

0
0

0
0
0
0

0
0


0
0

0
0
=
0
0
0
0


0
0
0
0


m5
0

10

ri.
co

Snr artlarnn ilenmesi:

m4

0
0

0
0

0
0

0
0

m4
0

0
m5

tla

4 nolu dmdeki m4 ktlesi Y ynnde salnm yapamaz. 8. satr ve 8. kolon silinmelidir! 5


nolu dmdeki m4 ktlesi hem X hem de Y ynnde salnm yapamaz. 9. ve 10. satrlar ve
kolonlar silinmelidir!

sn
o

Satrlar silindikten sonra 7 serbestlik derecesi, dolaysyla 7 denklem, kalr. Genel zdeer
problemi:
K

em
de
r

1 395986

0
2
231976
Simetrik

0
3 164010
395986

0
0
0
231976
4

5 115988 115988 115988 115988 559996

0
6 115988 115988 115988 115988
231976

0
0
115988 115988 164010
7
0
279998
0
0.78

M
0

0
.
78

0.78


2

0.78
= 0

1.086


1
.
086
0

0
0
.
563

olur.

= 2 alnarak ( A M ) = 0 genel zdeer probleminin yukarda hesaplanan K ve M

matrisleri Eigen04 programna verilirse zdeerler ve zvektrler bulunur:

zdeerler ve normalletirilmi
zvektrler ( modlar)

w
.e

zdeer ve zvektrlerin hesab:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

212

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

Asal frekans, periyot, frekans ve modlar:

1 = 26854.29

1 = 26854.29 = 163.87 rad/s

T1 =

213

2
= 0.038 s
163.87

f1 =

1
= 26.3 Hz
0.038

Nokta no

1 = [ 0.54 076 0.25 0.70 0.40 1 0.65 0 0 0]

ri.
co

5 noktasnn x ve y yn sfr deplasman


eklendi
4 noktasnn y yn sfr deplasman eklendi

1. mod

2 = 73250.87 = 270.65 rad/s

2
= 0.023 s
270.65

tla

2 = 73250.87

T2 =

f2 =

1
= 43.5 Hz
0.023

Nokta no

2 = [0.49 0.02 1 0.44 0.74 0.71 0.78 0 0 0]

sn
o

em
de
r

2. mod

3 = 202211 .35

3 = 202211 .35 = 449 .70 rad/s

T3 =

2
= 0.014 s
449.70
5

f3 =

1
= 71.4 Hz
0.014

Nokta no

3 = [0.08 0.73 0.22 1 0.25 0.21 0.60 0 0 0]

3. mod

4 = 368285 .80 4 = 368285 .80 = 606 .87 rad/s T4 =


1

2
= 0.010 s
606.87
5

f4 =

1
= 100 Hz
0.010

Nokta no

4 = [0.86 1 0.23 0.40 0.06 0.53 0.40 0 0 0]


T

w
.e

4. mod

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

213

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

5 = 539752 .33 5 = 539752 .33 = 734 .68 rad/s


1

T5 =

2
= 0.009 s
734.68

214

f5 =

1
= 111.1 Hz
0.009

Nokta no

5 = [ 0.77 0.64 0.62 0.48 0.63 0.41 1 0 0 0]

ri.
co

5. mod

6 = 750850 .20 = 866 .5 rad/s


2

2
= 0.007 s
866.5

tla

6 = 750850 .20

T6 =

f6 =

1
= 142.9 Hz
0.007

f7 =

1
= 142.9 Hz
0.007

Nokta no

6 = [ 0.67 0.10 1 0.53 0.74 0.42 0.46 0 0 0]

sn
o

em
de
r

6. mod

7 = 875544 .82
1

7 = 875544 .82 = 935 .71 rad/s


2

T7 =
4

2
= 0.007 s
935.71
5

Nokta no

7. mod

w
.e

T7 = [0.67 0.20 0.62 0.37 0.60 0.18 1 0 0 0]

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

214

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

215

ekilde grlen betonarme kiri


C30/37 betonu ile yaplacaktr.
Kirii drt eit paaya blerek
serbest
titreim
denklemini
kurunuz. lk asal frekansn,
periyodunu ve frekansn bulunuz,
bunlara ait titreim modlarn
iziniz.

ri.
co

70 cm

Titreim
yn

Saysal rnek 32:

Model:

12 EI / L3

6 EI / L2
k=
12 EI / L3

2
6 EI / L

6 EI / L2
4 EI / L

12 EI / L3
6 EI / L2

6 EI / L2
2 EI / L

12 EI / L3
6 EI / L2

6 EI / L2

2 EI / L
6 EI / L2

4 EI / L

54
13L
13L 3L2
156 22 L

22 L 4 L2

em
de
r

22 L
156
22 L
4 L2
mL
m=
13L
420 54

2
13L 3L

sn
o

tla

Sistem her biri 3 m boyunda 4 adet eleman ile modellenmi, boyuna uzama olmad
varsaylmtr. Eleman lokal rijitlik ve yayl ktle matrisi aada verilmitir(sonlu elemanlar
metodu). Global ve lokal eksenler aktndan transformasyon matrisi birim matristir,
transformasyona gerek yoktur.

Verilerin hazrlanmas:

Ton, metre, kilo Newton ve saniye birimleri kullanlacaktr.


Betonarme betonunun birim ktlesi: 2.5 ton/m3 (TS 498-1997 den)
.
C30/37 iin elastisite modl: E=31800 N/mm2=31.8 106 kN/m2 (TS 500-2000 den)

w
.e

Kesit atalet momenti: I=0.30 0.70/12=8575 10-6 m4


.
.
.
EI=31.8 106 8575 10-6=272685 kNm2
Eleman boyu: L=3 m
.
.
Elemann birim boy ktlesi: m=0.30 0.70 2.5=0.525 t/m

Sistemin serbest titreim denklemi

K 2 M = 0
Burada K sistemin rijitlik matrisi, M ktle matrisi ve
alnarak

asal titreim frekansdr. = 2

( K M ) = 0

Bu rnein anlalabilmesi iin sonlu elemanlar metodu bilgisi gerekir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

215

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

216

zdeer problemi elde edilir. K ve M direkt rijitlik metodu ile kurulur. Her noktada iki
serbestlik derecesi (bir dey deplasman ve bir dnme) olduundan bu matrisler 2.5=10
satr ve kolonludur.

Eleman rijitlik ve ktle matrisleri:

Elemanlarn k ve m matrisleri ayndr. nk tm elemanlarn kesitleri ve boylar ayndr.

Eleman rijitlik matrisi

0.2475
0.2025 0.14625
0.585
0.2475
0
.
135
0
.14625 0.10125
m=
0.2025
0.14625
0.585
0.2475

0
.
14625

0
.
10125

0
.
2475
0.135

ri.
co

181790.00 121193.33 181790.00


121193.33
181790.00
363580.00 181790.00 181790.00
k=
121193.33 181790.00 121193.33 181790.00

181790.00 181790.00 363580.00


181790.00

Sistem rijitlik matrisi(direkt rijitlik metodu):

tla

Eleman yayl ktle matrisi

sn
o

lemleri basitletirmek iin a=121193, b=181790, c=363580 alalm(son iki ondalk hane
ihmal edildi) :

em
de
r

b a b
a
b
c b b

k=
a b a b

b b c
b

a
b
2a

Simetrik

w
.e

a b
c

K =

0
0
0 a b
0
0
0
0

2c b b
0
0
0
0
2a 0 a b
0
0

2c b b
0
0
2a 0 a b

2c b b
a b

c
b
b

0
0

0
0

0
0

0
0

0
0

Sistem rijitlik matrisi

Sistem ktle matrisi(direkt rijitlik metodu):

Sistem ktle matrisi

0
0
0
0
0
0
0.585 0.2475 0.2025 0.14625

0
.
135
0
.
14625
0
.
10125
0
0
0
0
0
0

1.170
0
0.2025 0.14625
0
0
0
0

0
.
270
0
.
14625
0
.
10125
0
0
0
0

1.170
0
0.2025 0.14625
0
0
M =

0
.
270
0
.
14625
0
.
10125
0
0

1.170
0
0.2025 0.14625

Simetrik
0.270
0.14625 0.10125

0.585
0.2475

0.135

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

216

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

217

( K M ) = 0 titreim denklemi:

m
)

ri.
co

b a b
0
0
0
0
0
0
0
0
0
0
0
0
a
0.585 0.2475 0.2025 0.14625

b
b
0
0
0
0
0
0
0
.
135
0
.
14625

0
.
10125
0
0
0
0
0
0

2a 0 a b
0
0
0
0

1.170
0
0.2025 0.14625
0
0
0
0

2
c

b
b
0
0
0
0
0
.
270
0
.
14625

0
.
10125
0
0
0
0

2a 0 a b
0
0
1.170
0
0.2025 0.14625
0
0



2
c

b
b
0
0
0
.
270
0
.
14625

0
.
10125
0
0

Simetrik

2a 0 a b
1.170
0
0.2025 0.14625

2c b b
Simetrik
0.270
0.14625 0.10125

a b
0.585
0.2475

0.135

Snr artlar:

tla

1 noktasnda dey deplasman ve dnme sfr, 5 noktasnda dey deplasman sfrdr.


Deplasmanlarn ve dnmelerin sfr olduu ynlerde titreim olamaz. ( K M ) = 0

denklemi

sn
o

denkleminden bu serbestlik derecelerine ait satr ve kolonlarn (1., 2., 9. satrlar ve


kolonlar) silinmesi gerekir. a, b ve c deerleri yerine konarak ( K M ) = 0 titreim

em
de
r

1.170

0
0.2025 0.14625
0
0
0
121193 181790
0
0
0
0
242386

0.270 0.14625 0.10125


0
0
0

727160
181790
181790
0
0
0

1.170
0
0.2025 0.14625
0

242386
0
121193 181790
0


) = 0
0
.
270
0
.
14625

0
.
10125
0
(
727160 181790 181790
0

Simetrik
Simetrik
1
.
170
0

0
.
14625
242386
0
181790

0.270
0.10125
727160 181790

0.135
363580

Grld gibi, K ve M simetrik ve bant yapya sahiptir, bant genilii 4 dr. Sonlu
elemanlar teorisine gre her iki matris pozitif tanmldr.
En kk 3 zdeerin ve bunlara ait zvektrlerin hesab iin uygun program DSearch tr
(bak: Blm 35).

DSearch sonular

w
.e

K ve M matrislerine ait bilgiler DSearch adl bir programa verilerek en kk ilk 3 zdeer ve
buna karlk gelen asal frekans, periyot, frekans ve modlar hesaplanmtr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

217

=0

26. GENEL ZDEER PROBLEM, PERYOT VE MOD HESABI

218

Program sonular, mod vektrlerine 1 ve 5 noktasnn sfr deplasmanlar da eklenerek,


aada yorumlanmtr.

1.Mod:

1T = [0 0 0.45 0.23 1 0.09 0.85 0.19 0 0.33]

tla

2.Mod:

ri.
co

1 = 5961.88, 1 = 77.21 rad / s, T1 = 0.08 s, f 1 = 12.29 Hz

2 = 63314.75, 2 = 251.62 rad / s, T2 = 0.02 s, f 2 = 40.05 Hz

em
de
r

sn
o

T2 = [0 0 0.97 0.26 0.41 0.57 1 0.12 0 0.60]

3.Mod:

3 = 284619.81, 3 = 533.50 rad / s, T3 = 0.01 s, f 3 = 84.91 Hz

w
.e

T3 = [0 0 1 0.21 0.89 0.31 0.54 0.67 0 0.80]

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

218

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

w
.e

A x=x
A x=B x

PROGRAMLAR:

27
zdeer ve zvektr hesab

Standart zdeer problemi


Genel zdeer problemi
En byk zdeer ve vektr
En kk zdeer ve vektr
Birka zdeer ve zvektrleri
Tm zdeerler ve zvektrleri

220

27. PROGRAMLAR: zdeer ve zvektr hesab

27. PROGRAMLAR: zdeer ve zvektr hesab


Bu blmde zdeer ve zvektr hesab ile ilgili 8 adet test edilmi program verilmitir.
Programlarn adlar ve ilevleri aada aklanmtr. Program kodlar 28.-35. blmlerdedir.

1. PowerMises:
Ax = x standart zdeer probleminin mutlak deerce en byk zdeerini ve buna

ri.
co

ait normalletirilmi zvektr Power1 iterasyon yntemi ile hesaplar. A simetrik


olmayabilir.

2. PowerTers:
Ax = x standart zdeer probleminin mutlak deerce en kk zdeerini ve buna
ait normalletirilmi zvektr Power ters iterasyon (dier ad: Mises invers) yntemi ile
hesaplar. A simetrik olmayabilir.
3. Jacobi:

tla

Ax = x standart zdeer probleminin tm zdeerini ve bunlara ait normalletirilmi


zvektrlerini Jacobi rotasyon yntemi ile hesaplar. A simetrik olmak zorundadr.

sn
o

4. Eigen01:
Ax = x standart zdeer probleminin tm zdeerlerini ve bunlara ait normalletirilmi
zvektrlerini hesaplar, A simetrik olmaldr. Eigen01 EISPACK2 alt programlarn
kullanr.
5. Eigen02:
Ax = x standart zdeer probleminin baz zdeerlerini ve bunlara ait normalletirilmi

em
de
r

zvektrlerini hesaplar. En kk m tane veya en byk m tane veya ortadaki m tane


veya tm zdeerler hesaplanabilir. A simetrik olmaldr. Eigen02 EISPACK alt
programlarn kullanr.

6. Eigen03:

A x = B x genel zdeer probleminin en kk m tane veya en byk m tane veya

ortadaki m tane veya tm zdeerlerini hesaplar. A simetrik, B simetrik ve pozitif tanml


olmaldr. Eigen03 EISPACK alt programlarn kullanr.

7. Eigen04:

A x = B x genel zdeer probleminin en kk m tane veya en byk m tane veya

w
.e

ortadaki m tane veya tm zdeerlerini hesaplar. A simetrik bant, B diyagonal matris,


det B0 olmaldr.

8. DSearch:
A x = B x Genel zdeer probleminin en kk m tane veya tm zdeerlerini hesaplar.

A ve B simetrik pozitif tanml bant matrislerdir. det A0 ve det B0 olmaldr.

Mises veya vektr iterasyon yntemi olarak da adlandrlr. Avusturyal Richard Edler von Mises tarafndan 1929 ylnda
gelitirilmitir. zdeer ve zvektr hesaplayan ilk algoritmadr, gnmz modern algoritmalarnda alt algoritma olarak
kullanlmaktadr. Mises, 1933-1939 yllar arasnda stanbul niversitesinde alt, matematik krssn kurdu.
2

EISPACK: zdeer problemi ile ilgili onlarca program 1960 l yllarda ALGOL programlama dilinde kodlanm ve Numerische
Mathematik dergisinde yaynlanmt. J. H. Wilkinson ve C. Reinisch bu programlar derleyerek 1971 ylnda Handbook series,
Springer Verlag da yaynladlar. Bu programlar 1972-1973 yllarnda J.J. Dongarra ve B. Smith ekibi tarafndan FORTRAN diline
evrilerek EISPACK ad verildi, cretsiz olarak dnya niversiteleri hesap merkezlerine datld, test edildi. Gnmzde yaygn
olarak kullanlan MATLAB zdeer algoritmalar EISPACK algoritmalarnn modernize edilmi eklidir. Orijinal FORTRAN EISPACK
programlar http://www.netlib.org/eispack/ adresinden indirilebilir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

220

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

A x=x

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

28
PROGRAMLAR:

Standart zdeer ve zvektr hesab

En byk zdeer ve vektr - PowerMises

222

28. PROGRAMLAR: Standart zdeer ve zvektr hesab - PowerMises

28. PROGRAMLAR: Standart zdeer ve zvektr hesab1 - PowerMises


PowerMises alt program

Ax = x

ri.
co

Standart zdeer probleminin mutlak deerce en byk zdeerini ve buna ait


normalletirilmi zvektr Power (dier ad: Mises2 veya vektr) iterasyon yntemi ile
hesaplar. Anxn simetrik olmayabilir. Mutlak deerce en byk zdeere dominant zdeer
de denir.
PowerMises alt program A(n,n) matrisinin aran programda depolanm ve x(n)
vektrnn tanmlanm olduunu varsayar.

, en byk zdeer ve buna ait zvektr ?

5
PowerMises alt programnn sonucu

0
2
1
3

sn
o

1
1
5
5

em
de
r

2
6
10
2
0
4

A = 7 4 10

3 1 5
4
3
1

tla

rnek:

Mutlak deerce en byk zdeer: = 14.623116.

ya ait zvektr:

1
0.3633

x = 0.7357

05179
0.4439

w
.e

A matrisi tekrarlanan zdeerlere, ( i = j ) sahipse veya baz zdeerler birbirine ok


yakn ise ( i j ) yaknsamayabilir. Bu gibi durumlarda zdeer bulunsa bile zvektr
hatal olabilir. Tm zdeerlerin sanal olmas durumunda ise Power metodu kesin
yaknsamaz. Buna karn, A simetrik ve pozitif tanml ise daima yaknsar.

rnek:

2
1
A=

15 10

A Matrisinin her iki zdeeri de sanaldr:

1 = 5.5 + 3.1225i

ve

1 = 5.5 3.1225i .

PowerMises yaknsamaz.

PowerMises alt programnn sonucu

Baz mhendislik problemlerinde mutlak deerce en byk zdeer yerine mutlak deerce en kk zdeerin ve buna ait
normalletirilmi zvektrn hesaplanmas gerekir (rnek: bir yapnn birinci periyodunun ve modunun hesab). Bu durumda
PowerMises program yerine blm 29 da verilen PowerTers alt program kullanlabilir.
1

Teori ve rnekler iin bak: blm 25


Mises iterasyon yntemi zdeer hesaplayan ilk nmerik algoritmadr. 1929 ylnda Avusturyal Richard Edler von Mises tarafndan
gelitirildi
2

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

222

223

28. PROGRAMLAR: Standart zdeer ve zvektr hesab - PowerMises

PowerMises ana program


A nn satrlar

ri.
co

DATA 5: ' A nn boyutu


' A matrisi:
DATA 10, 2, 6, 1, 0
DATA 2, 0, 4, 1, 2
DATA 7, -4, 10, 5, 1
DATA -3, 1, -5, 5, 3
DATA 4, 3, 1, 3, 5

' -----------------Ana program PowerMises---------------------' Mutlak deerce en byk zdeer ve buna ait zvektrn hesab
' Dr. Ahmet TOPU, Osmangazi niversitesi, ESKiEHiR, 1994
'--------------------------------------------------------------

DATA 2
DATA 2,4
DATA 4,8

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB PowerMises (n, a(), aLamdaMax, x(), iTerate, iHata)
CLS

tla

A nn boyutu okunuyor

A matrisi ve x zvektr iin bellekte yer ayr


A okunuyor

sn
o

READ n
DIM a(n, n), x(n)
'A y oku:
FOR i = 1 TO n
FOR j = 1 TO n
READ a(i, j)
NEXT j
NEXT i

CALL PowerMises(n, a(), aLamdaMax, x(), iTerate, iHata)

PowerMises alt program arlyor

PRINT "iterasyon says:"; iTerate


IF iHata <> 0 THEN PRINT "Max iterasyon says ald(PowerMises) ": END

em
de
r

PRINT "zdeer ve zvektr(PowerMises):"


PRINT "Mutlak deerce en byk zdeer="; aLamdaMax
PRINT "zvektr:"
FOR i = 1 TO n
PRINT x(i);
NEXT i
PRINT

Sonular yazdrlyor

END ' PowerMises ana

w
.e

SUB PowerMises (n, a(), aLamdaMax, x(), iTerate, iHata)


' Mutlak deerce En byk zdeer ve zvektr hesab (PowerMises)
'---------------------------------------------------------------' Dr. ahmet TOPU, Osmangazi niversitesi, ESKiEHiR, 1994
' A(n,n) matrisinin mutlak deerce en byk zdeeri ve bu
' zdeere ait x(n) normalletirilmi zvektr hesaplanr.
' A simetrik olabilir veya simetrik olmayabilir.
' aLamdaMax : A matrisinin mutlak deerce en byk zdeeri
' x(n) : Lamda ya ait normalletirilmi zvektr
' A matrisi aran programda depolanm ve x vektr
' boyutlandrlm olmaldr.
' Maxit : maksimum iterasyon says, alrsa iHata=1 dner
' Eps : hesap hassasiyeti
'---------------------------------------------------------------DIM y(n)
Maxit = 200: ' Maximum iterasyon says
Eps = 1E-14: ' Hassasiyet
iHata = 0

FOR i = 1 TO n
x(i) = 1
NEXT i
aLamdaMax = 0: iTerate = 0: iState = 1
WHILE iTerate <= Maxit AND iState = 1
AnewLamda = 0
FOR i = 1 TO n
y(i) = 0
FOR j = 1 TO n
y(i) = y(i) + a(i, j) * x(j)
NEXT j
IF ABS(y(i)) > ABS(AnewLamda) THEN AnewLamda = y(i)
NEXT i
Epsreached = ABS(aLamdaMax - AnewLamda)
aLamdaMax = AnewLamda

PowerMises alt program

aNorm = 0
FOR i = 1 TO n
T = y(i) / AnewLamda
aNorm = aNorm + (x(i) - T) ^ 2
x(i) = T
NEXT i
' istenilen hassasiyete ulald m?
aNorm = SQR(aNorm)
IF Epsreached < aNorm THEN Epsreached = aNorm
iState = 0
IF Epsreached > Eps THEN iState = 1
iTerate = iTerate + 1
WEND

' Maxit ald m?


IF iTerate > Maxit THEN iHata = 1
END SUB 'PowerMises

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

223

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

A x=x

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

29
PROGRAMLAR:

Standart zdeer ve zvektr hesab

En kk zdeer ve vektr - PowerTers

225

29. PROGRAMLAR: Standart zdeer ve zvektr hesab - PowerTers

29. PROGRAMLAR: Standart zdeer ve zvektr hesab1 - PowerTers

Baz mhendislik problemlerinde mutlak deerce en kk zdeerin ve buna ait


normalletirilmi zvektrn hesaplanmas gerekir (rnek: bir yapnn birinci periyodunun
ve titreim modunun hesab).
PowerTers alt program

ri.
co

Ax = x

standart zdeer probleminin mutlak deerce en kk zdeerini ve buna ait


normalletirilmi zvektrn Power ters (dier ad: Mises invers) iterasyon yntemi ile
hesaplar. Anxn simetrik olmayabilir.

A simetrik deilse
Tm zdeerler sanal ise
Tekrarlanan zdeerler varsa: i = j

zdeerler birbirine ok yakn ise: i j

sn
o

tla

A simetrik ve pozitif tanml ise Power ters iterasyon yntemi daima yaknsar. Ancak,
aadaki durumlarda nmerik zorluk yaratabilir ve yaknsamayabilir:

PowerTers alt program A(n,n) matrisini aran programda depolanm ve x(n) vektrnn
tanmlanm olduunu varsayar.

em
de
r

rnek:

6
10 2
2
0
4

A = 7 4 10

3 1 5
4
3
1

1 0
1 2
5 1 , en kk zdeer ve buna ait zvektr ?

5 3
3 5

w
.e

PowerTers alt programnn sonucu

0.8859

Mutlak deerce en kk zdeer: = 1.169935. ya ait zvektr: x = 0.8661

0.6254
0.5742

Teori ve rnekler iin bak: blm 25


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

225

226

29. PROGRAMLAR: Standart zdeer ve zvektr hesab - PowerTers

' -----------------Ana program PowerTers----------------------' Mutlak deerce en kk zdeer ve buna ait zvektrn hesab
' Dr. Ahmet TOPU, Osmangazi niversitesi Eskiehir, 1997
' arlan alt programlar: PowerTers
'-------------------------------------------------------------DATA 5
A nn boyutu verisi
DATA 10, 2, 6, 1, 0
DATA 2, 0, 4, 1, 2
DATA 7, -4, 10, 5, 1
DATA -3, 1, -5, 5, 3
A nn satrlar verisi
DATA 4, 3, 1, 3, 5

ri.
co

PowerTers ana program

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB PowerTers (n, a(), aLamdaMin, x(), iHata)
DECLARE SUB GaussLU (n, a(), iSatir(), iHata)
DECLARE SUB AsagiYukariHesap (n, a(), iSatir(), x(), y())
CLS

A nn boyutu okunuyor

tla

READ n

A matrisi ve x zvektr iin bellekte yer ayr

FOR i = 1 TO n
FOR j = 1 TO n
READ a(i, j)
NEXT j
NEXT i

A okunuyor

sn
o

DIM a(n, n), x(n)

CALL PowerTers(n, a(), aLamdaMin, x(), iHata)

PowerTers alt program arlyor

IF iHata = -1 THEN PRINT "A matrisi tekil!": END


IF iHata = -2 THEN PRINT "Maksimum iterasyon says ald, yaknsamad!"

em
de
r

PRINT "En kk zdeer ve zvektr(PowerTers):"


PRINT "aLamdaMin="; aLamdaMin
FOR i = 1 TO n
PRINT x(i);
NEXT i
PRINT
PRINT "terasyon says="; iHata

Sonular yazdrlyor

w
.e

END 'PowerTers ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

226

227

29. PROGRAMLAR: Standart zdeer ve zvektr hesab - PowerTers

Maxit = 200: ' maksimum iterasyon says


Eps = 1E-14: ' istenilen hassasiyet
iHata = 0

em
de
r

' LUy=b den y i hesapla


CALL AsagiYukariHesap(n, a(), iSatir(), b(), y())
iMax = 1
FOR i = 2 TO n
IF ABS(y(i)) > ABS(y(iMax)) THEN iMax = i
NEXT i
yMax = 1 / y(iMax)

' zvektr normalletir, eriilen hassasiyeti belirle


EpsHesap = 0
FOR i = 1 TO n
y(i) = y(i) * yMax
T = x(i) - y(i)
IF ABS(T) > EpsHesap THEN EpsHesap = ABS(T)
x(i) = y(i)
NEXT i
' zdeer
iTerate = iTerate + 1
LOOP UNTIL EpsHesap < Eps OR iTerate > Maxit
iHata = iTerate
aLamdaMin = yMax
IF iTerate > Maxit THEN iHata = -2

w
.e

END SUB ' PowerTers

SUB AsagiYukariHesap (n, a(), iSatir(), b(), y())


'-------------------------------------------------' GaussLU ile A=LU arpanlarna ayrlm varsaylr
' LUy=b denlem sistemi zlr

' Yukardan aa hesap


'-------------------------------------------------FOR i = 1 TO n - 1
isi = iSatir(i)
FOR j = i + 1 TO n
isj = iSatir(j)
b(isj) = b(isj) - a(isj, i) * b(isi)
NEXT j
NEXT i
' Aadan yukar hesap
isi = iSatir(n)
y(n) = b(isi) / a(isi, n)
FOR i = 1 TO n - 1
j=n-i
isj = iSatir(j)
y(j) = b(isj)
FOR k = j + 1 TO n
y(j) = y(j) - a(isj, k) * y(k)
NEXT k
y(j) = y(j) / a(isj, j)
NEXT i
END SUB ' AsagiYukariHesap

m
GaussLU
alt program

sn
o

iTerate = 1
' iterasyona bala
DO
FOR i = 1 TO n
b(i) = x(i)
NEXT i

tla

' Start vektr


FOR i = 1 TO n
x(i) = 1
NEXT i
' A=LU arpanlarna ayr
CALL GaussLU(n, a(), iSatir(), iHata)
IF iHata = -1 THEN EXIT SUB

PowerTers alt program

ri.
co

SUB PowerTers (n, a(), aLamdaMin, x(), iHata)


'-------------------------------------------------------' Mutlak deerce en kk zdeer ve zvektrnn hesab
' Dr. Ahmet TOPU, Osmangazi niversitesi Eskiehir, 1997
' n: Matrisin boyutu
' A(n,n): en kk zdeeri hesaplanacak matris
' aLamdamin: hesaplanan zdeer
' x(n): zvektr
' iHata=-2: Yaknsamad
' iHata=-1: matris tekil
' iHata=0: Yaknsad
' aran programda A depolanm ve x boyutlandrlm olmaldr
' arlan alt programlar: GaussLU, AsagiYukariHesap
'-------------------------------------------------------DIM iSatir(n), b(n), y(n): ' alma vektrleri

AsagiYukari
alt program

SUB GaussLU (n, a(), iSatir(), iHata)


'------------------------------------' A matrisi gen arpanlarna ayrlr: A=LU
' iSatir: satr deitirme vektr
' iHata=-1 ile dnerse A tekildir
'------------------------------------' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 2 * Eps
zero = Eps

FOR i = 1 TO n
iSatir(i) = i
NEXT i
FOR i = 1 TO n - 1
' Pivot satrn belirle
iV = i
FOR j = i + 1 TO n
isi = iSatir(iV)
isj = iSatir(j)
IF (ABS(a(isj, i)) > ABS(a(isi, i))) THEN iV = j
NEXT j
' Matris tekil mi?
IF (ABS(a(iSatir(iV), i)) <= zero) THEN
iHata = -1: ' Matris tekil
EXIT SUB
END IF
' satr deiimi vektr
IF (iSatir(i) <> iSatir(iV)) THEN
isi = iSatir(i)
iSatir(i) = iSatir(iV)
iSatir(iV) = isi
END IF
' indirge
isi = iSatir(i)
FOR j = i + 1 TO n
isj = iSatir(j)
a(isj, i) = a(isj, i) / a(isi, i)
FOR k = i + 1 TO n
a(isj, k) = a(isj, k) - a(isj, i) * a(isi, k)
NEXT k
NEXT j
4
NEXT i
IF ABS(a(iSatir(n), n)) <= zero THEN iHata = -1
END SUB ' GaussLU

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

227

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

A x=x

30
PROGRAMLAR:

zdeer ve zvektr hesab

Tm zdeerler ve zvektrler - Jacobi

229

30. PROGRAMLAR: Tm zdeer ve zvektrlerin hesab - Jacobi

30. PROGRAMLAR: Tm zdeer ve zvektrlerin hesab1 - Jacobi


Jacobi alt program

Ax = x

standart zdeer probleminin tm zdeerini ve bunlara ait normalletirilmi zvektrlerini


Jacobi rotasyon yntemi ile hesaplar. Anxn simetrik olmak zorundadr.

a 22

simetrik

a32

a33

a n2

a n3

...

2.satr
3.satr
n.satr
1.satr

[a11 a 21 a 22 a 31 a 31 a 33 ... a n1 a n 2 a n3 ... a nn ]

a nn

tla

a11
a
21
A = a31

.
a n1

ri.
co

A nn alt gen ksmnn satrlar tek boyutlu A((n+1).n/2) alannda, aran programda
aadaki gibi depolanm olmaldr:

sn
o

zvektrler iin x(n.n) tek boyutlu alan aran programda boyutlandrlm olmaldr. Hesap
sonras zdeerler A alan, zvektrler x alannda depolanr. A(1) 1.zdeer, a(n+1).2.
zdeer, a(2n+1).3. zdeer, v.s. dir. x alannn ilk n eleman 1. zvektr, sonraki n
eleman 2. zvektr, v.s dir.
Maxrot izin verilen maksimum rotasyon says, Eps zdeerler iin ulalmak istenen
hassasiyettir. ivect parametresi=0 verilirse sadece zdeerler, ivect0 verilirse zdeer ve
zvektrler hesaplanr.

em
de
r

Jacobi her zvektr uzunluu 1 olacak ekilde normalletirir. zvektrn en byk eleman
1 olacak ekilde normalletirilmesi istenirse JNormalize alt programnn Jacobi alt
programnn hemen arkasndan arlmas gerekir.
rnek:

simetrik

8
3

Bellekte depolan

[9 2 10 7 4 7 3 1 5 8 4 2 1 3 6]

Jacobi alt programnn sonucu

w
.e

9
2 10

A = 7 4 7

3 1 5
4 2 1

zdeerler

21.5209

8
.
7049

,
=
1.0020

5
.
4483

5.3278

En byk eleman 1 olacak ekilde


normalletirilmi zvektrler

0.2641 0.7231 0.8608 0.4246


1
0.6682
0.2903 0.2620 0.0276
1

X = 0.9620 0.0271
0.4752 0.5314
1

0.5947
0
.
7492
04152
0
.
4665
1

1
0.7149
0.5506 0.1216 0.5530

Teori ve rnekler iin bak: blm 25


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

229

230

ri.
co

' --------------------Ana program Jacobi--------------------------' Ahmet TOPU, Eskiehir Osmangazi niversitesi, 1995
Ana program
' A(n,n) simetrik matrisinin tm zdeer ve zvektrlerinin hesab
' A nn alt gen ksm okunur ve tek boyutlu alanda depolanr
' arlan alt program: Jacobi
A nn boyutu
'-----------------------------------------------------------------DATA 5
' A matrisi:
DATA 9
A nn alt geninin satrlar
DATA 2, 10
DATA 7, 4, 7
DATA 3, 1, 5, 8
DATA 4, 2, 1, 3, 6
i, j, k, l, m, n ile balayan deikenler tam say deikeni olacak (2 byte)

30. PROGRAMLAR: Tm zdeer ve zvektrlerin hesab - Jacobi

DEFINT I-N
Bu harf aralndaki harf ile balayan deikenler ift hassasiyetli ondalk say deikeni olacak (8 byte)
DEFDBL A-H, O-Z
DECLARE SUB Jacobi (a(), n, Eps, mAxrot, iVect, x())
arlacak alt programlar ana
DECLARE SUB JNormalize (n, x(), normal)

programa tantlyor

DIM a((n + 1) * n \ 2), x(n * n)


CLS
' A: y oku:
ii = 0
FOR i = 1 TO n
i2 = 0
FOR j = 1 TO i
READ a(ii + j):
i2 = i2 + 1
NEXT j
ii = ii + i2
NEXT i

tla

A nn boyutu okunuyor

A matrisi ve x zvektrleri iin bellekte yer ayrlyor

sn
o

READ n

A nn kolonlar okunuyor

zin verilen maksimum rotasyon says

zdeerler iin istenen hassasiyet

em
de
r

mAxrot = 200
Eps = 1E-12
zvektrler de hesaplanacak
iVect = 1
CALL Jacobi(a(), n, Eps, mAxrot, iVect, x())
IF iVect <> 0 THEN CALL JNormalize(n, x(), 1)

Normalletirmek iin Jnormalize alt program arlyor.


(zvektrn en byk eleman 1 olacak)

Sonular yazdrlyor

w
.e

PRINT "zdeerler ve zvektrler(Jacobi):"


FOR i = 1 TO n
PRINT "Lamda"; i; "="; a((i + 1) * i \ 2)
IF iVect <> 0 THEN
ja = (i - 1) * n + 1
je = i * n
FOR j = ja TO je
PRINT x(j);
NEXT j
PRINT
PRINT
END IF
NEXT i
PRINT
PRINT "Rotasyon says"; mAxrot;

Jacobi alt program arlyor

END 'Jacobi ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

230

231

30. PROGRAMLAR: Tm zdeer ve zvektrlerin hesab - Jacobi

Jacobi
alt program

w
.e

em
de
r

sn
o

tla

ri.
co

SUB Jacobi (a(), n, Eps, mAxrot, iVect, x())


'---------------------------------------------------------------------------' zdeer ve zvektr hesab (Jacobi)
' A(n,n) simetrik matrisinin tm zdeer ve zvektrleri hesaplanr.
' A nn sadece alt genindeki satrlar verilmelidir.
' A alt geni tek boyutlu ve (n+1)*n /2 uzunluundaki A((n+1)*n /2)
' alannda aran program tarafndan depolanm olmaldr.
' Hesaplanan zdeerler A alan zerinde aadaki ekilde depolanr:
' A(1) 1. zdeer
' A(n+1) 2. zdeer
' A(2*n+1) 3. zdeer
' ...
' iVect<>0 verilirse tm zvektrler hesaplanr. zvektrler uzunluu 1
' olacak ekilde normalletirilmitir.
' Hesaplanan zvektrler x(n*n) tek boyutlu matrisinde depolanr.
' x in ilk n eleman 1.zvektr, sonraki n eleman 2.zvektr, v.s.
' iVect=0 verilirse sadece zdeerler hesaplanr, zvektrler hesaplanmaz.
' Bu durumda x vektr uyumluluk iin tek elemanl, x(1) olarak tanmlanabilir.
' Maxrot : maksimum rotasyon saysdr.
' Eps : ngrlen hassasiyettir.
' Bu programn FORTRAN kodu "DANKERT, J. Numerische Methoden
' der Mechanik, Springer, 1977" den alnmtr.
'---------------------------------------------------------------------------' JACOBI Rotations
Nrot = 0
indi = 0
'----------------------------A okunuyor
IF iVect <> 0 THEN
ja = 1
je = n
idia = 1
FOR i = 1 TO n
FOR j = ja TO je
x(j) = 0
NEXT j
ja = ja + n
je = je + n
x(idia) = 1
idia = ja + i
NEXT i
END IF
'-----------------------71 s = 0
ja = 2
je = 0
FOR i = 2 TO n
je = je + i
FOR j = ja TO je
s = s + a(j) ^ 2
NEXT j
ja = ja + i
NEXT i
s = SQR(2 * s)
IF indi = 1 THEN EXIT SUB
80 s = s / n
90 ja = 2
je = 0
ind = 0
FOR i = 2 TO n
je = je + i
jj = 1
FOR j = ja TO je
apq = a(j)
IF ABS(apq) < s GOTO 10
Nrot = Nrot + 1
ind = 1
ipp = (jj + 1) * jj / 2
app = a(ipp): aqq = a(je + 1)
tht = (aqq - app) * .5 / apq
IF tht = 0 THEN
T=1
ELSE
T = 1 / (SQR(1 + tht * tht) * SGN(tht) + tht): ' Sign
END IF
co = 1 / SQR(T * T + 1)
si = co * T
ii = ipp - jj + 1
ke = j - 1
IF ke >= ja THEN
FOR k = ja TO ke
aip = a(ii)
aiq = a(k)
a(ii) = aip * co - aiq * si
Sonraki sayfada devam
a(k) = aip * si + aiq * co
ediyor
ii = ii + 1
NEXT k
END IF

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

231

232

ri.
co
tla

w
.e

em
de
r

sn
o

ke = j + 1
Jacobi devam
IF je >= ke THEN
ii = ipp
iErh = jj
FOR k = ke TO je
ii = ii + iErh
aip = a(ii)
aiq = a(k)
a(ii) = aip * co - aiq * si
a(k) = aip * si + aiq * co
iErh = iErh + 1
NEXT k
END IF
IF i <= n THEN
kk = je + 1
ii = j
iErh = i
ke = i + 1
FOR k = ke TO n
kk = kk + iErh
ii = ii + iErh
aip = a(ii)
aiq = a(kk)
a(ii) = aip * co - aiq * si
a(kk) = aip * si + aiq * co
iErh = iErh + 1
NEXT k
END IF
'--------------------------------' Eigenvectors
IF iVect <> 0 THEN
ii = (i - 1) * n + 1
ka = (jj - 1) * n
ke = ka + n
ka = ka + 1
FOR k = ka TO ke
aip = x(k)
aiq = x(ii)
x(k) = aip * co - aiq * si
x(ii) = aip * si + aiq * co
ii = ii + 1
NEXT k
END IF
'--------------------------------T = a(j) * si * co * 2
co = co * co
si = si * si
aip = a(ipp)
aiq = a(je + 1)
a(ipp) = aip * co + aiq * si - T
a(je + 1) = aip * si + aiq * co + T
a(j) = 0
10 jj = jj + 1
NEXT j
ja = ja + i
NEXT i
IF ind = 1 GOTO 90
IF s * n < Eps THEN mAxrot = Nrot: indi = 1: GOTO 71
IF Nrot < mAxrot GOTO 80
mAxrot = -Nrot
indi = 1
GOTO 71

30. PROGRAMLAR: Tm zdeer ve zvektrlerin hesab - Jacobi

END SUB ' Jacobi

SUB JNormalize (n, x(), normal)


' X(n*n) alannda depolanm zvektrler normalletirilir.
' Normal<>0: zvektrn en byk eleman 1 olacak ekilde normalletir.
' Normal=0: hi bir ey yapma, k
IF normal = 0 THEN EXIT SUB
FOR i = 1 TO n
ja = (i - 1) * n + 1
je = i * n
Dmaxx = 0
FOR j = ja TO je
IF ABS(x(j)) > ABS(Dmaxx) THEN Dmaxx = x(j)
NEXT j
Dmaxx = 1 / Dmaxx
FOR j = ja TO je
x(j) = x(j) * Dmaxx
NEXT j
NEXT i

JNormalize
Alt program

END SUB ' jNormalize

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

232

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

tla

Ders notlar 2014

w
.e

em
de
r

sn
o

Ahmet TOPU

A x=x

31
PROGRAMLAR:

Standart zdeer ve zvektr hesab

Tm zdeerler ve zvektrler - Eigen01

234

31. PROGRAMLAR: Standart zdeer ve zvektr hesab - Eigen01

31. PROGRAMLAR: Standart zdeer ve zvektr hesab1 - Eigen01


Ax = x

standart zdeer probleminin tm zdeerlerini ve bunlara ait normalletirilmi


zvektrlerini hesaplar, Anxn simetrik olmak zorundadr. A nn sadece alt gen ksm
programa verilir.

ri.
co

Eigen01 in ard alt programlar(Sign, Normalize hari) Eispack yazlmndan alnmtr.


arlan alt programlar: Tred2, Tql2, Pythag, Sign, Normalize

rnek:

sn
o

tla

700

10 600
sim

20 20 300
, tm zdeer ve zvektrler?

70 60
80 300

40 50
40 60 600

80 80
50 20 20 700

20 90 800
40 50 60 20
Eigen01 programnn sonucu

w
.e

em
de
r

800
30

20

40
Ax = x A =
80

50
50

30

175.3221

346
.
4545

526.2148

595.8819

665.4290

747
.
0953

838.3913

905.2110

zdeerler

Teori ve rnekler iin bak: blm 25


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

234

235

31. PROGRAMLAR: Standart zdeer ve zvektr hesab - Eigen01

1
0.4474
1

0.6752 0.4827 0.4480


0.2721
0.3001 0.2401

0.2363
0.0681
0.0428
0.2039 0.0766 0.1439
0.5117 0.2142 0.1151 0.0440 0.1608 0.1458

0.1636
1
0.3557
0.1114
0.2642 0.2602
0.8693 0.3223 0.3978
0.7035 0.0489 0.8971

0.5108 0.1890 0.1825


0.0668
1
0.7730
0.0923

0.0742

1
0.9354

En byk eleman 1 olacak


ekilde normalletirilmi
zvektrler

0.0988

0.3967 0.0782
1
0.1596

ri.
co

0.0204
0.2110
0.1290
0.2613

0.1447 0.3436

0.8595
1
X =

1
0.7445

0.1120
0.2732
0.1558
0.0773

0.0912 0.1694

sn
o

tla

' ----------------------Ana Program Eigen01-----------------' A(n,n) simetrik matrisinin tm zdeer ve zvektrlerini hesaplar
' Ahmet TOPU, Eskiehir Osmangazi niversitesi, 1998
' A nn sadece alt gen ksm okunur.
' arlan alt programlar: Tred2, Tql2, Sign, Normalize
Eigen01 ana program
'-------------------------------------------------------------------' A nn boyutu n
A nn boyutu verisi
DATA 8
' A nn alt gen ksm
DATA 800
DATA 30,700
A nn alt geninin satrlar verisi
DATA -20,10,600
DATA 40,-20,20,300
DATA -80,-70,60,80,300
DATA -50,-40,50,40,-60,600
DATA -50,-80,80,50,-20,20,700
i, j, k, l, m, n ile balayan deikenler tam say deikeni olacak (2 byte)
DATA 30,-40,50,-60,20,20,-90,800

em
de
r

DEFINT I-N
Bu harf aralndaki harf ile balayan deikenler ift hassasiyetli ondalk say deikeni olacak (8 byte)
DEFDBL A-H, O-Z
' Baz say veya deikenler aadaki iaretleri ierebilir, anlamlar:
' % integer (2 byte)
' & long integer (4 byte)
' ! single (4 byte)
' # double (8 byte)
' $ string (1-255 byte arasnda)
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

SUB Tql2 (n, D(), E(), z(), iErr)


SUB Tred2 (n, dh(), eh(), z())
FUNCTION Pythag (a, b)
FUNCTION Sign (a, b)
SUB Normalize (n, m, z(), normal)

READ n

A nn boyutu okunuyor

DIM a(n, n), D(n), E(n)

A ve yardmc vektrler iin bellekte yer ayrlyor

CLS : ' Ekran temizle


' A nn alt gen ksmn oku, simetriye tamamla
FOR i = 1 TO n
FOR j = 1 TO i
A nn alt geninin satrlar okunuyor, simetriye tamamlanyor
READ a(i, j)
a(j, i) = a(i, j)
NEXT j
NEXT i

w
.e

arlacak alt programlar ana


programa tantlyor

' A matrisini l diyagonal matrise dntr


CALL Tred2(n, D(), E(), a())

A l diyagonal matrise dntrlyor

' zdeer ve zvektrleri hesapla


zdeerler ve zvektrler hesaplanyor
CALL Tql2(n, D(), E(), a(), iErr)
IF (iErr <> 0) THEN PRINT "HATA(Tql2)="; iErr: END
' zvektrleri normalletir
CALL Normalize(n, n, a(), 1)
PRINT "zdeer ve zvektrler(Eigen01-Tql2):"
FOR i = 1 TO n
PRINT "Lamda"; i; "="; D(i)
FOR j = 1 TO n
PRINT a(j, i);
NEXT j
PRINT
PRINT
NEXT i

Normalletirmek iin Jnormalize alt program arlyor.


zvektrn en byk eleman 1 olacak

Sonular yazdrlyor

END ' Eigen01 ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

235

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

tla

Ders notlar 2014

A x=x

w
.e

em
de
r

sn
o

Ahmet TOPU

32
PROGRAMLAR:

Standart zdeer ve zvektr hesab

Birka zdeer ve zvektr - Eigen02

237

32. PROGRAMLAR: Standart zdeer ve zvektr hesab - Eigen02

32. PROGRAMLAR: Standart zdeer ve zvektr hesab1 - Eigen02


Ax = x

Standart zdeer probleminin baz zdeerlerini ve bunlara ait normalletirilmi


zvektrlerini hesaplar. En kk m tane veya en byk m tane veya ortadaki m tane veya
tm zdeerler hesaplanabilir. A simetrik olmak zorundadr, sadece alt gen ksm
programa verilir.

ri.
co

Eigen02 in ard alt programlar(Sign, Normalize hari) Eispack yazlmndan alnmtr.


arlan alt programlar: Tred1, Tinvit, Tridib, Trbak1, Pytahag, EpsMach, Sign, Normalize.
rnek:

tla

700

sim
10 600

20 20 300
, tm zdeer ve zvektrler?

70 60
80 300

40 50
40 60 600

80 80
50 20 20 700

40 50 60 20
20 90 800

sn
o

800
30

20

40
Ax = x A =
80

50
50

30

Tm zdeer ve zvektrleri hesaplamak iin ilk DATA satrnda:


A nn boyutu

Hesaplanmas istenen ilk zdeerin numaras

Hesaplanmas istenen zdeer ve zvektr says

em
de
r

DATA 8
DATA 1
DATA 8

w
.e

verilir:

Eigen02 programnn sonucu:


Tm zdeerler ve zvektrler

175.3221

346
.
4545

526.2148

595
.
8819

665.4290

747.0953

838.3913

905.2110

zdeerler

Teori ve rnekler iin bak: blm 25


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

237

238

32. PROGRAMLAR: Standart zdeer ve zvektr hesab - Eigen02

1
0.4474
1

0.6752 0.4827 0.4480


0.2721
0.3001 0.2401

0.2363
0.0681
0.0428
0.2039 0.0766 0.1439
0.5117 0.2142 0.1151 0.0440 0.1608 0.1458

0.1636
1
0.3557
0.1114
0.2642 0.2602
0.8693 0.3223 0.3978
0.7035 0.0489 0.8971

0.5108 0.1890 0.1825


0.0668
1
0.7730
0.0923

0.0742

1
0.9354

En byk eleman 1 olacak


ekilde normalletirilmi
zvektrler

0.0988

0.3967 0.0782
1
0.1596

ri.
co

0.0204
0.2110
0.1290
0.2613

0.1447 0.3436

0.8595
1
X =

1
0.7445

0.1120
0.2732
0.1558
0.0773

0.0912 0.1694

lk zdeeri ve vektrn hesaplamak iin ilk DATA satrnda:


DATA 8
DATA 1
DATA 3

A nn boyutu

Hesaplanmas istenen ilk zdeerin numaras


Hesaplanmas istenen zdeer ve zvektr says

sn
o

tla

verilir:

Eigen02 programnn
sonucu: ilk zdeer ve
zvektr

5. ve 6. zdeeri ve vektrlerini hesaplamak iin ilk DATA satrnda:


A nn boyutu

em
de
r

DATA 8
DATA 5
DATA 2

Hesaplanmas istenen ilk zdeerin numaras

Hesaplanmas istenen zdeer ve zvektr says

w
.e

verilir:

Eigen02 programnn
sonucu: 5. ve 6. zdeer
ve zvektrler

Son zdeeri ve vektrlerini hesaplamak iin ilk DATA satrnda:

DATA 8
DATA 6
DATA 2

Hesaplanmas istenen ilk zdeerin numaras


Hesaplanmas istenen zdeer ve zvektr says

Eigen02 programnn
sonucu: son zdeer
ve zvektr

verilir:

A nn boyutu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

238

239

32. PROGRAMLAR: Standart zdeer ve zvektr hesab - Eigen02

ri.
co

'----------------Ana program Eigen02-------------------------------------' Ahmet TOPU, Eskiehir Osmangazi niversitesi, 1998


' A(n,n) simetrik matrisinin baz zdeerlerini ve zvektrlerini hesaplar
Eigen02 ana
' En kk veya en byk veya ortataki m tane zdeer ile
program
' bunlarn zvektrleri hesaplanabilir. A nn sadece alt gen ksm verilmelidir.
' arlan alt programlar:
' Tred1, Tinvit, Tridib, Trbak1, Pythag, EpsMach, Sign, Normalize
'------------------------------------------------------------------------A nn boyutu
DATA 8: ' A nn boyutu=n
Hesaplanmas istenen ilk zdeerin numaras
DATA 1: ' hesaplanacak ilk zdeerin numaras=m1
DATA 8: ' hesaplanmas istenen zdeer says=m
Hesaplanmas istenen zdeer ve zvektr says
' A nn alt gen ksm
DATA 800
DATA 30,700
DATA -20,10,600
A nn alt geninin satrlar
DATA 40,-20,20,300
DATA -80,-70,60,80,300
DATA -50,-40,50,40,-60,600
DATA -50,-80,80,50,-20,20,700
i, j, k, l, m, n ile balayan deikenler tam say deikeni olacak (2 byte)
DATA 30,-40,50,-60,20,20,-90,800

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

sn
o

tla

DEFINT I-N
Bu harf aralndaki harf ile balayan deikenler ift hassasiyetli ondalk say deikeni olacak (8 byte)
DEFDBL A-H, O-Z
' Baz say veya deikenler aadaki iaretleri ierebilir, anlamlar:
' % integer (2 byte)
' & long integer (4 byte)
' ! single (4 byte)
' # double (8 byte)
' $ string (1-255 byte arasnda)
SUB Tred1 (n, a(), d(), e(), e2())
SUB Tinvit (n, d(), e(), e2(), m, W(), iND(), z(), iErr)
SUB Tridib (n, EPS1, d(), e(), e2(), BL, BU, m11, m, W(), iND(), iErr)
SUB Trbak1 (n, a(), e(), m, z())
FUNCTION Sign (a, b)
FUNCTION EpsMach# ()
FUNCTION Pythag (a, b)
SUB Normalize (n, m, z(), normal)

em
de
r

A nn boyutu okunuyor
CLS ' ekran sil
READ n ' Matrisin boyutu
READ m1 ' Hesaplanacak ilk zdeerin numaras
READ m ' Hesaplanacak zdeer says

arlacak alt programlar ana


programa tantlyor

Hesaplanmas istenen ilk zdeer no okunuyor


Hesaplanmas istenen ilk zdeer says okunuyor

DIM a(n, n), d(n), e(n), e2(n), W(m), iND(m), z(n, m)

Matrisler iin yer ayrlyor

' A nn alt gen ksmn oku, simetriye tamamla


FOR i = 1 TO n
FOR j = 1 TO i
A nn alt geninin satrlar okunuyor, simetriye tamamlanyor
READ a(i, j)
a(j, i) = a(i, j):
NEXT j
NEXT i

A l diyagonal matrise dntrlyor

w
.e

' A y l diyagonal matrise dntr


CALL Tred1(n, a(), d(), e(), e2())

' m1, m1+1,m1+2, .., m1+m-1 zdeerlerini(m tane) hesapla


EPS1 = 1E-14
CALL Tridib(n, EPS1, d(), e(), e2(), BL, BU, m1, m, W(), iND(), iErr)
IF iErr <> 0 THEN PRINT "HATA="; iErr: END
' m tane zvektr hesapla
CALL Tinvit(n, d(), e(), e2(), m, W(), iND(), z(), iErr)
IF iErr <> 0 THEN PRINT "HATA="; iErr: END
' zvektrleri geri dntr
CALL Trbak1(n, a(), e(), m, z())
' zvektrleri normalletir
CALL Normalize(n, m, z(), 1)

m tane zdeer hesaplanyor

m tane zvektr hesaplanyor

zvektr ler geri dntrlyor


zvektrler normalletiriliyor

PRINT "zdeerler-zvektrler(Tridib-Tinvit):"
FOR i = 1 TO m
PRINT "Lamda"; i + m1 - 1; "="; W(i)
FOR j = 1 TO n
PRINT z(j, i);
NEXT j
PRINT : PRINT
NEXT i

Sonular yazdrlyor

END ' Eigen02 ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

239

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

sn
o
A x=B x

w
.e

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

33
PROGRAMLAR:

Genel zdeer ve zvektr hesab

Birka zdeer ve zvektr - Eigen03

241

33. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen03

33. PROGRAMLAR: Genel zdeer ve zvektr hesab1 - Eigen03


Ax = B x

genel zdeer probleminin en kk m tane veya en byk m tane veya ortadaki m tane
veya tm zdeerlerini hesaplar. A simetrik, B simetrik, pozitif tanml ve det A0, detB0
olmaldr. A ve B nin sadece st gen ksm programa verilir.

ri.
co

Eigen03 n ard alt programlar(Sign, Normalize hari) Eispack yazlmndan alnmtr.


arlan alt programlar: Reduc, Tred1, Tridib,Tinvit, Trbak1, Rebak, Pytahag, EpsMach,
Sign, Normalize.

rnek:

sn
o

tla

0
0
0
0
0
0
200 25
800 30 20 40 80 50 50 30

700
10

20

70

40

80

40
400
50
0
0
0
0
0

600 20
60
50
80
50
400 50
0
0
0
0

300
80
40
50

60
400
50
0
0
0
, B=
Ax = B x A =
Sim
Sim
300 60 20 20
400 50
0
0

600 20
20
400 50
0

700 90
400 25

800
200

em
de
r

Tm zdeerler ve zvektrler?

Tm zdeer ve zvektrleri hesaplamak iin ilk DATA satrnda:


DATA 8
DATA 1
DATA 8

A nn boyutu

Hesaplanmas istenen ilk zdeerin numaras

Hesaplanmas istenen zdeer ve zvektr says

Eigen03 programnn
sonucu: Tm zdeerler
ve zvektrler

w
.e

verilir:

Teori ve rnekler iin bak: blm 26


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

241

242

33. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen03

lk zdeeri ve vektrn hesaplamak iin ilk DATA satrnda:


DATA 8
DATA 1
DATA 3

A nn boyutu

Eigen03 programnn
sonucu: ilk zdeer ve
zvektr

Hesaplanmas istenen ilk zdeerin numaras


Hesaplanmas istenen zdeer ve zvektr says

ri.
co

verilir:

DATA 8
DATA 5
DATA 2

A nn boyutu

Hesaplanmas istenen ilk zdeerin numaras

sn
o

Hesaplanmas istenen zdeer ve zvektr says

tla

5. ve 6. zdeeri ve vektrlerini hesaplamak iin ilk DATA satrnda:

em
de
r

verilir:

Eigen03 programnn
sonucu: 5. ve 6. zdeer
ve zvektrler

Son iki zdeeri ve vektrlerini hesaplamak iin ilk DATA satrnda:


DATA 8
DATA 6
DATA 2

A nn boyutu

Hesaplanmas istenen ilk zdeerin numaras

Hesaplanmas istenen zdeer ve zvektr says

w
.e

verilir:

Eigen03 programnn
sonucu: son iki zdeer
ve zvektr

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

242

243

33. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen03


----------------------Ana Program Eigen03-------------------------Ahmet TOPU, Eskiehir Osmangazi niversitesi, 1998
A*X=(Lamda)*B*X genel zdeer problemini zer
A(n,n): simetrik
B(n,n): simetrik pozifif tanml
en kk, en byk veya orta zdeerler ve zvektrler hesaplanr
n: matrislerin bykl
m1: hesaplanmak istenen ilk zdeerin numaras
m: hesaplanmas istenen zdeer ve zvektr says

Eigen 03 ana
program

'
'
'
'
'
'
'
'
'

em
de
r

sn
o

tla

ri.
co

' arlan programlar:


' Reduc,Tred1,Tridib,Tinvit,Trbak1,Rebak,Epsmach,Pythag,Sign,Normalize
A ve B nin boyutu
'-------------------------------------------------------------------DATA 8: ' A ve B nin boyutu
Hesaplanmas istenen ilk zdeerin numaras
DATA 1: ' Hesaplanacak ilk zdeerin numaras
DATA 8: ' Hesaplanacak zdeer ve zvektr says
Hesaplanmas istenen zdeer ve zvektr says
' A nn st geni
DATA 800,30,-20,40,-80,-50,-50,30
DATA 700,10,-20,-70,-40,-80,-40
DATA 600,20,60,50,80,50
A nn st geninin satrlar
DATA 300,80,40,50,-60
DATA 300,-60,-20,20
DATA 600,20,20
DATA 700,-90
DATA 800
' B nin st gen ksm
DATA 200,25,0,0,0,0,0,0
DATA 400,50,0,0,0,0,0
B nin st geninin satrlar
DATA 400,50,0,0,0,0
DATA 400,50,0,0,0
DATA 400,50,0,0
i, j, k, l, m, n ile balayan deikenler tam say deikeni olacak (2 byte)
DATA 400,50,0
DATA 400,25
DATA 200
Bu harf aralndaki harf ile balayan deikenler ift hassasiyetli ondalk say deikeni olacak (8 byte)
DEFINT I-N
DEFDBL A-H, O-Z
' Baz say veya deikenler aadaki iaretleri ierebilir, anlamlar:
' % integer (2 byte)
' & long integer (4 byte)
' ! single (4 byte)
' # double (8 byte)
' $ string (1-255 byte aras)
DECLARE SUB Reduc (n, a(), b(), dL(), iErr)
DECLARE SUB Tred1 (n, a(), d(), e(), e2())
DECLARE FUNCTION Sign (a, b)
DECLARE SUB Tridib (n, EPS1, d(), e(), e2(), BL, BU, m11, m, W(), iND(), iErr)
DECLARE SUB Tinvit (n, d(), e(), e2(), m, W(), iND(), z(), iErr)
arlacak alt programlar ana
DECLARE SUB Trbak1 (n, a(), e(), m, z())
programa tantlyor
DECLARE SUB rebak (n, b(), dL(), m, z())
DECLARE FUNCTION EpsMach# ()
DECLARE FUNCTION Pythag (a, b)
DECLARE SUB normalize (n, m, z(), normal)

w
.e

A ve B nin boyutu okunuyor


READ n
READ m1
Hesaplanmas istenen ilk zdeer no okunuyor
READ m
Hesaplanmas istenen zdeer says okunuyor
DIM a(n, n), b(n, n), dL(n)
DIM d(n), e(n), e2(n), W(n), iND(n), z(n, m)

CLS : ' ekran temizle


' A(N,N) matrisinin st gen ksmn oku
FOR i = 1 TO n
FOR j = i TO n
A nn stt geninin satrlar okunuyor
READ a(i, j)
NEXT j
NEXT i
' B(n,n) nin st gen ksmn oku
FOR i = 1 TO n
FOR j = i TO n
B nin st geninin satrlar okunuyor
READ b(i, j)
NEXT j
NEXT i

Matrisler iin yer ayrlyor

zvektrler geri dntrlyor

CALL Trbak1(n, a(), e(), m, z())


CALL rebak(n, b(), dL(), m, z())
' zvektrleri normalletir
CALL normalize(n, m, z(), 1)

' A*x=Lamda*B*x genel zdeer problemini A*x=Lamda*X standart


' problemine dntr
Standart zdeer problemine dntrlyor
CALL Reduc(n, a(), b(), dL(), iErr)
IF iErr <> 0 THEN PRINT "HATA(Eigen03-Reduce)="; iErr: END
' Dntrlm A matrisini l diyagonal matrisine dntr
CALL Tred1(n, a(), d(), e(), e2())
l diyagonal matrise dntrlyor
' m1., m2+1., m2+2, ..., m1+m-1. zdeeri(m tane) hesapla
EPS1 = 1E-14 'Hassasiyet
CALL Tridib(n, EPS1, d(), e(), e2(), BL, BU, m1, m, W(), iND(), iErr)
IF iErr <> 0 THEN PRINT "HATA(Eigen03-Tridib)="; iErr: END
' m tane zvektr hesapla
CALL Tinvit(n, d(), e(), e2(), m, W(), iND(), z(), iErr)
IF iErr <> 0 THEN PRINT "HATA(Eigen03-Tinvit)="; iErr: END

PRINT "zdeer ve zvektrler(Eigen03)":


PRINT
FOR i = 1 TO m
PRINT "Lamda"; i + m1 - 1; "="; W(i)
FOR j = 1 TO n
PRINT z(j, i);
Sonular yazdrlyor
NEXT j
PRINT
PRINT
NEXT i
END ' Eigen03 ana sonu

m tane zdeer hesaplanyor

m tane zvektr hesaplanyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

243

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

sn
o
A x=B x

w
.e

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

34
PROGRAMLAR:

Genel zdeer ve zvektr hesab

Birka zdeer ve zvektr - Eigen04

245

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

34. PROGRAMLAR: Genel zdeer ve zvektr hesab1 - Eigen04


Ax = B x

Genel zdeer probleminin en kk m tane veya en byk m tane veya ortadaki m tane
veya tm zdeerlerini hesaplar. A simetrik bant matris, B diyagonal matris, det B0
olmaldr. A nn alt yar bant ve B nin sadece diyagonal programa verilir.

ri.
co

Eigen04 n ard alt programlar(Sign, Min, Normalize hari) Eispack yazlmndan


alnmtr.

arlan alt programlar: Reduce, Bandr, Tridib, Bandv, EpsMach, Pytahag, Sign, Min,
Normalize.
rnek:

sn
o

tla

800

20

30 700

40

20 10 600

sim
40

40 20 20 300
40
, B=

Ax = B x A =

70 60 80 300
40

50 40 60 600
40

50 20 20 700
40

20
20 90 800
20

Yar bant=4

em
de
r

Tm zdeerler ve zvektrler?

A ve B nin depolanma ekli:

0
0
800
0
0
0
30
700

0
20 10 600

40 20 20 300
A
,
70 60
80 300

40 60 600
50
50 20 20 700

20 90 800
20

B [20 40 40 40 40 40 40 20]

Yar bant=4

w
.e

bant geniliininin ayn olmas


iin eklenen sfrlar

Teori ve rnekler iin bak: blm 26


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

245

246

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

Tm zdeer ve zvektrleri hesaplamak iin ilk drt DATA satrnda:


8
4
1
8

A nn boyutu
A nn yar bant genilii
Hesaplanmas istenen ilk zdeerin numaras

Eigen04 programnn
sonucu: Tm zdeerler
ve zvektrler

DATA
DATA
DATA
DATA

Hesaplanmas istenen zdeer ve zvektr says

em
de
r

sn
o

tla

ri.
co

verilir:

lk zdeeri ve vektrn hesaplamak iin ilk drt DATA satrnda:


DATA
DATA
DATA
DATA

8
4
1
3

A nn boyutu

A nn yar bant genilii

Hesaplanmas istenen ilk zdeerin numaras

Hesaplanmas istenen zdeer ve zvektr says

Eigen04 programnn
sonucu: ilk zdeer ve
zvektr

w
.e

verilir:

5. ve 6. zdeeri ve vektrlerini hesaplamak iin ilk drt DATA satrnda:


DATA
DATA
DATA
DATA

8
4
5
2

A nn boyutu
A nn yar bant genilii
Hesaplanmas istenen ilk zdeerin numaras
Hesaplanmas istenen zdeer ve zvektr says

Eigen04 programnn
sonucu: 5. ve 6. zdeer
ve zvektrler

verilir:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

246

247

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

Son iki zdeeri ve vektrlerini hesaplamak iin ilk drt DATA satrnda:
8
4
6
2

A nn boyutu
A nn yar bant genilii

Eigen04 programnn
sonucu: son iki zdeer
ve zvektr

Hesaplanmas istenen ilk zdeerin numaras


Hesaplanmas istenen zdeer ve zvektr says

DATA
DATA
DATA
DATA

tla

----------------------Ana Program Eigen04-----------------------Ahmet TOPU, Eskiehir Osmangazi niversitesi, 1998


(A-Lamda*B)x=0 genel zdeer problemi zlr
En kk veya en byk veya tm zdeerler ve bunlara ait
zvektrler hesaplanr
A(n,n): simetrik bant matris. Sadece alt bant ksm verilir
B(n): Tekil olmayan diyagonal matrisin diyagonali
n: A ve B nin boyutu
mb: A nn yar bant genilii
m1: Hesaplanamas istenen ilk zdeerin numaras
m: Hesaplanmas istenen zdeer says

Eigen 04 ana
program

sn
o

'
'
'
'
'
'
'
'
'
'
'

ri.
co

verilir:

' arlan alt programlar:


' Reduce,Bandr,Tridib,Bandv,EpsMach,Pythag,Sign,Min,Normalize
'------------------------------------------------------------------

em
de
r

A ve B nin boyutu
DATA 8: ' A nn boyutu
DATA 4: ' yar bant genilii
DATA 1: ' hesaplanamas istenen ilk zdeerin numaras
DATA 8: ' hesaplanmas istenen zdeer ve zvektr says
' A nn alt bant ksm
DATA 0, 0, 0, 800
DATA 0, 0, 30, 700
A nn alt band iindeki elemanlar
DATA 0, -20, 10, 600
DATA 40, -20, 20, 300
DATA -70, 60, 80, 300
DATA 50, 40, -60, 600
DATA 50, -20, 20, 700
DATA 20, 20, -90, 800
' B nin diyagonal elemanlar
B nin diyagonal elemanlar
DATA 20,40,40,40,40,40,40,20

Hesaplanmas istenen ilk zdeerin numaras


Hesaplanmas istenen zdeer ve zvektr says

i, j, k, l, m, n ile balayan deikenler tam say deikeni olacak (2 byte)

w
.e

DEFINT I-N
Bu harf aralndaki harf ile balayan deikenler ift hassasiyetli ondalk say deikeni olacak (8 byte)
DEFDBL A-H, O-Z
' Baz say veya deikenler aadaki iaretleri ierebilir, anlamlar:
' % integer (2 byte)
' & long integer (4 byte)
' ! single (4 byte)
' # double (8 byte)
' $ string (1-255 bytes arasnda)
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

SUB reduce (n, mb, a(), b(), iErr)


SUB Bandr (n, mb, a(), d(), e(), e2())
SUB Tridib (n, EPS1, d(), e(), e2(), BL, BU, m11, m, W(), iND(), iErr)
SUB bandv (n, mb, a(), m, W(), z(), iErr)
FUNCTION EpsMach# ()
FUNCTION Pythag (a, b)
FUNCTION Sign (a, b)
FUNCTION Min (ia, ib)
SUB normalize (n, m, z(), normal)

READ n
READ mb
READ m1
READ m

arlacak alt programlar ana


programa tantlyor

A ve B nin boyutu okunuyor

A nn yar bant genilii okunuyor


Hesaplanmas istenen ilk zdeer no okunuyor
Hesaplanmas istenen zdeer says okunuyor

DIM a(n, mb), b(n)


DIM d(n), e(n), e2(n), iND(n)
DIM W(n), z(n, m)

Matrisler iin yer ayrlyor

Devam sonraki sayfada

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

247

248

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

CLS : ' Ekras sil


' A nn alt bant ksmn oku
FOR i = 1 TO n
FOR j = 1 TO mb
A nn alt bant satrlar okunuyor
READ a(i, j)
NEXT j
NEXT i
' B nin diyagonal elemanlarn oku
FOR i = 1 TO n
B nin diyagonal elemanlar okunuyor
READ b(i)
NEXT i

ri.
co

Eigen 04 ana
program (devam)

' Standart zdeer problemine dntr


Standart zdeer problemine dntrlyor
CALL reduce(n, mb, a(), b(), iErr)
IF iErr <> 0 THEN PRINT "HATA(Eigen04-Reduce)="; iErr: END
' A matrisini l bant matrise dntr
CALL Bandr(n, mb, a(), d(), e(), e2())

l diyagonal matrise dntrlyor

sn
o
Tm veriler tekrar okunuyor

em
de
r

' Verileri tekrar oku


Veriler tekrar okunacak
RESTORE
READ n
READ mb
READ m1
READ m
' A nn alt bant ksmn tekrar oku
FOR i = 1 TO n
FOR j = 1 TO mb
READ a(i, j)
NEXT j
NEXT i
' B nin diyagonal elemanlarn tekrar oku
FOR i = 1 TO n
READ b(i)
NEXT i

m tane zdeer hesaplanyor

tla

' m1., m1+1., m1+2., ..., m1+m-1. zdeeri(m tane) hesapla


EPS1 = 1E-14: 'Hesap hassasiyeti
CALL Tridib(n, EPS1, d(), e(), e2(), BL, BU, m1, m, W(), iND(), iErr)
IF iErr <> 0 THEN PRINT "HATA(Eigen04-Tridib)="; iErr: END

' A y dntr
CALL reduce(n, mb, a(), b(), iErr)

Tekrar standart zdeer problemine dntrlyor

' zvektrleri hesapla


m tane zvektr hesaplanyor
CALL bandv(n, mb, a(), m, W(), z(), iErr)
IF iErr <> 0 THEN PRINT "HATA(Eigen04-Bandv)="; iErr: ' END

w
.e

' zvektrleri geri dntr


' Hesapla: B*z
FOR i = 1 TO n
FOR j = 1 TO m
z(i, j) = b(i) * z(i, j)
NEXT j
NEXT i

' zvektrleri normalletir


CALL normalize(n, m, z(), 1)

zvektrler dntrlyor

zvektrler normalletiriliyor

PRINT "zdeer ve zvektrler(Eigen04-Tridib-Bandv):"


FOR i = 1 TO m
PRINT "Lamda"; i + m1 - 1; "="; W(i)
FOR j = 1 TO n
Sonular yazdrlyor
PRINT z(j, i);
NEXT j
PRINT
PRINT
NEXT i

END ' Eigen04 ana

Eispack alt programlar:


Eigen01, Eigen02, Eigen03 ve Eigen04 ana programlarnn ard alt programlarn QBASIC
kodlar aada verilmitir. Bu alt programlarn ounluu EISPACK profesyonel yazlmnn
parasdr ve FORTRAN kodlar aadaki adresten alnmtr:
http://www.netlib.org/eispack
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

248

249

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

SUB Tred2 (n, D(), E(), z())


'---------------------------------------------------------------------' Real symmetric matrix Z(n,n) will be tridiagonalized using Housholder
' ortogonal similarity transformations

Output:
D(n): Output matrix. Contains diagonal elements of tridiaginal matrix
E(n): Output matrix. Contains sub diagonal elements of tridiaginal
matrix
Z(n,n): Output matrix. Contains transformation matrix.

w
.e

em
de
r

sn
o

tla

' This Subroutine is translated from ALGOL 60 in: Martin, Reinsch and
' Wilkinson. Handbook for auto. comp., Vol. II, 1971
' FORTRAN code: www.netlib.org/eispack
'---------------------------------------------------------------------' Copy diagonals to d
FOR i = 1 TO n
D(i) = z(n, i)
NEXT i
IF n = 1 THEN GOTO 510
FOR i = n TO 2 STEP -1
L=i-1
h=0
scale = 0
IF L >= 2 THEN
FOR k = 1 TO L
scale = scale + ABS(D(k))
NEXT k
END IF
IF scale = 0 THEN
E(i) = D(L)
FOR j = 1 TO L
D(j) = z(L, j)
z(i, j) = 0
z(j, i) = 0
NEXT j
GOTO 290
END IF
FOR k = 1 TO L
D(k) = D(k) / scale
h = h + D(k) * D(k)
NEXT k
f = D(L)
g = -Sign(SQR(h), f): ' function Call
E(i) = scale * g
h=h-f*g
D(L) = f - g
'Form A*U
FOR j = 1 TO L
E(j) = 0
NEXT j
FOR j = 1 TO L
f = D(j)
z(j, i) = f
g = E(j) + z(j, j) * f
jp1 = j + 1
IF L >= jp1 THEN
FOR k = jp1 TO L
g = g + z(k, j) * D(k)
E(k) = E(k) + z(k, j) * f
NEXT k
END IF
E(j) = g
NEXT j
' Form P
f=0
FOR j = 1 TO L
E(j) = E(j) / h
f = f + E(j) * D(j)
NEXT j
hh = f / (h + h)
' Form Q
FOR j = 1 TO L
E(j) = E(j) - hh * D(j)
NEXT j

' Form reduced A


FOR j = 1 TO L
f = D(j)
g = E(j)
FOR k = j TO L
z(k, j) = z(k, j) - f * E(k) - g * D(k)
NEXT k
D(j) = z(L, j)
z(i, j) = 0
NEXT j
290 D(i) = h
NEXT i
' Accumulation of transformation matrices
FOR i = 2 TO n
L=i-1
z(n, L) = z(L, L)
z(L, L) = 1
h = D(i)
IF h <> 0 THEN
FOR k = 1 TO L
D(k) = z(k, i) / h
NEXT k
FOR j = 1 TO L
g=0
FOR k = 1 TO L
g = g + z(k, i) * z(k, j)
NEXT k
FOR k = 1 TO L
z(k, j) = z(k, j) - g * D(k)
NEXT k
NEXT j
END IF
FOR k = 1 TO L
z(k, i) = 0
NEXT k
NEXT i

ri.
co

'
'
'
'
'

' Input:
' N: Dimension of Z
' Z(n,n): input matrix. Must be real symmetric

FUNCTION Sign (a, b)


IF b >= 0 THEN Sign = ABS(a) ELSE Sign = -ABS(a)
END FUNCTION ' End of Sign

510 FOR i = 1 TO n
D(i) = z(n, i)
z(n, i) = 0
NEXT i
z(n, n) = 1
E(1) = 0
END SUB ' end of Tred2

FUNCTION Pythag (a, b)


' Finds sqr(a*a+b*b) without overflow or
' destructive underflow
ABSa = ABS(a)
ABSb = ABS(b)
p = ABSa: IF ABSb > p THEN p = ABSb
IF p = 0 THEN
Pythag = p
EXIT FUNCTION
END IF
r = ABSa: IF ABSb < r THEN r = ABSb
r = (r / p) ^ 2
t=4+r
WHILE t <> 4
s=r/t
u=1+2*s
p=u*p
r = (s / u) ^ 2 * r
t=4+r
WEND
Pythag = p
END FUNCTION ' End of Pythag

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

249

250

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

Input:
N: Dimension of the matrix
D(n): is input matrix. Contains diagonal elements calulated by Tred2
E(n): is input matrix. Contains sub diagonal elements calculated by Tred2

'
'
'
'
'

Output:
D(n): is output matrix. Contains eigenvalues after run Tql2
Z(n,n): is output matrix. Contains normalized eigenvectors after run Tql2
iErr: Error flag, ierr=0 no error, iErr<>0 error.
Used method is QL transformation.

' Form vector


FOR k = 1 TO n
h = z(k, i + 1)
z(k, i + 1) = s * z(k, i) + c * h
z(k, i) = c * z(k, i) - s * h
NEXT k
NEXT i
p = -s * s2 * c3 * eL1 * E(L) / dL1
E(L) = s * p
D(L) = c * p
tst2 = tst1 + ABS(E(L))
IF tst2 > tst1 THEN GOTO 130
220 D(L) = D(L) + f
NEXT L
' Order eigenvalues
FOR L = 2 TO n
i=L-1
k=i
p = D(i)
FOR j = L TO n
IF D(j) < p THEN
k=j
p = D(j)
END IF
NEXT j
' Order iegenvectors
IF k <> i THEN
D(k) = D(i)
D(i) = p
FOR j = 1 TO n
p = z(j, i)
z(j, i) = z(j, k)
z(j, k) = p
NEXT j
END IF
NEXT L

w
.e

em
de
r

sn
o

tla

' This Subroutine is translated from ALGOL 60 in: Bowdler, Martin,


' Reinsch and Wilkinson. Handbook for auto. comp., Vol. II, 1971
' FORTRAN code: www.netlib.org/eispack
'-----------------------------------------------------------------------iErr = 0
IF n = 1 THEN EXIT SUB
FOR i = 2 TO n
E(i - 1) = E(i)
NEXT i
f=0
tst1 = 0
E(n) = 0
FOR L = 1 TO n
j=0
h = ABS(D(L)) + ABS(E(L))
IF tst1 < h THEN tst1 = h
' Look for small sub-diogonal element
FOR m = L TO n
tst2 = tst1 + ABS(E(m))
IF tst2 = tst1 THEN EXIT FOR
NEXT m
IF m = L THEN GOTO 220
130 IF j = 30 THEN
' Set error-no convergence to an eigenvalue after 30 iteration
iErr = L
EXIT SUB
END IF
j=j+1
' Form shift
L1 = L + 1
L2 = L1 + 1
g = D(L)
p = (D(L1) - g) / (2 * E(L))
r = Pythag(p, 1): ' Function call
D(L) = E(L) / (p + Sign(r, p)): ' Function Call
D(L1) = E(L) * (p + Sign(r, p)): 'Function Call
dL1 = D(L1)
h = g - D(L)
IF L2 <= n THEN
FOR i = L2 TO n
D(i) = D(i) - h
NEXT i
END IF
f=f+h

'
'
'
'

' QL Transformation
p = D(m)
c=1
c2 = c
eL1 = E(L1)
s=0
mmL = m - L
FOR i = m - 1 TO L STEP -1
c3 = c2
c2 = c
s2 = s
g = c * E(i)
h=c*p
r = Pythag(p, E(i))
E(i + 1) = s * r
s = E(i) / r
c=p/r
p = c * D(i) - s * g
D(i + 1) = h + s * (c * g + s * D(i))

ri.
co

SUB Tql2 (n, D(), E(), z(), iErr)


'-----------------------------------------------------------------------' Finds all Eigenvalues and eigenvectors of an nxn tridiagonal symmetric
' matrix which is produced by the program Tred2.

SUB Normalize (n, m, z(), normal)


' Vekctors of z(n,m) will be normalized
' Normal<>0: normalize so that max element of vector is 1.
' Normal=0: do nothing
IF normal = 0 THEN EXIT SUB
FOR i = 1 TO m
p=0
FOR j = 1 TO n
IF ABS(z(j, i)) > ABS(p) THEN p = z(j, i)
NEXT j
IF p = 0 THEN EXIT SUB
p=1/p
FOR j = 1 TO n
z(j, i) = z(j, i) * p
NEXT j
NEXT i
END SUB ' End of Normalize

END SUB ' End of Tql2

FUNCTION EpsMach#
' determines Machine epsilon
' IMPORTANT: ALL CONSTANTS AND VARIALES
' MUST BE IN DOUBLE
a = 4# / 3#
110 b = a - 1#
c = b + b + b ' DO NOT CHANGE INTO 3*B
Eps = ABS(c - 1#)
IF Eps = 0# GOTO 110
EpsMach = Eps

END FUNCTION ' end of EpsMach

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

250

251

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

FOR j = 1 TO L
f = d(j)
d(j) = a(L, j)
a(L, j) = a(i, j)
a(i, j) = f * scale
NEXT j
300 NEXT i

END SUB ' end of Tred1

tla

' on output:
' a contains information about the orthogonal trans' formations used in the reduction in its strict lower
' triangle. The full upper triangle of a is unaltered.
' d contains the diagonal elements of the tridiagonal matrix.
' e contains the subdiagonal elements of the tridiagonal
' matrix in its last n-1 positions. e(1) is set to zero.
' e2 contains the squares of the corresponding elements of e.
' e2 may coincide with e if the squares are not needed.
' This subroutine is a translation of the algol procedure tred1,
' num. math. 11, 181-195(1968) by Martin, Reinsch, and Wilkinson.
' handbook for auto. comp., vol.ii-linear algebra, 212-226(1971).
' This version dated August 1983.
' FORTRAN code: www.netlib.org/eispack
'-----------------------------------------------------------------FOR i = 1 TO n
d(i) = a(n, i)
a(n, i) = a(i, i)
NEXT i
'
FOR i = n TO 1 STEP -1
L=i-1
h=0
scale = 0
' scale row
FOR k = 1 TO L
scale = scale + ABS(d(k))
NEXT k
IF scale = 0 THEN
FOR j = 1 TO L
d(j) = a(L, j)
a(L, j) = a(i, j)
a(i, j) = 0
NEXT j
e(i) = 0
e2(i) = 0
GOTO 300
END IF

' on input:
' n is the order of the matrix.
' a contains the real symmetric input matrix. only the
' lower triangle of the matrix need be supplied.

' form Q
FOR j = 1 TO L
e(j) = e(j) - h * d(j)
NEXT j
' form reduced a
FOR j = 1 TO L
f = d(j)
g = e(j)
FOR k = j TO L
a(k, j) = a(k, j) - f * e(k) - g * d(k)
NEXT k
NEXT j
END IF

ri.
co

SUB Tred1 (n, a(), d(), e(), e2())


' This subroutine reduces a real symmetric matrix to a symmetric
' tridiagonal matrix using orthogonal similarity transformations.

em
de
r

sn
o

SUB Trbak1 (n, a(), e(), m, z())


' Trbak1-Eispack
IF n = 1 THEN EXIT SUB
FOR i = 2 TO n
L=i-1
IF e(i) <> 0 THEN
FOR j = 1 TO m
s=0
FOR k = 1 TO L
s = s + a(i, k) * z(k, j)
NEXT k
s = (s / a(i, L)) / e(i)
FOR k = 1 TO L
z(k, j) = z(k, j) + s * a(i, k)
NEXT k
NEXT j
END IF
NEXT i

END SUB ' end of Trbak1

w
.e

FOR k = 1 TO L
d(k) = d(k) / scale
h = h + d(k) * d(k)
NEXT k
e2(i) = scale * scale * h
f = d(L)
g = -Sign(SQR(h), f)
e(i) = scale * g
h=h-f*g
d(L) = f - g

IF L <> 1 THEN
' form a*u
FOR j = 1 TO L
e(j) = 0
NEXT j
FOR j = 1 TO L
f = d(j)
g = e(j) + a(j, j) * f
jp1 = j + 1
IF L >= jp1 THEN
FOR k = jp1 TO L
g = g + a(k, j) * d(k)
e(k) = e(k) + a(k, j) * f
NEXT k
END IF
e(j) = g
NEXT j
' form P
f=0
FOR j = 1 TO L
e(j) = e(j) / h
f = f + e(j) * d(j)
NEXT j
h = f / (h + h)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

251

252

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

SUB Tinvit (n, d(), e(), e2(), m, W(), iND(), z(), iErr)
'-------------------------------------------------------------------' This subroutine finds those eigenvectors of a TRIDIAGONAL
' SYMMETRIC matrix corresponding to specified eigenvalues,
' using inverse iteration.
' This subroutine is a translation of the inverse iteration technique
' in the ALGOL procedure TRISTURM by Peters and Wilkinson.
' HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 418-439(1971).

On Input
N is the order of the matrix.
D contains the diagonal elements of the input matrix.
E contains the subdiagonal elements of the input matrix
in its last N-1 positions. E(1) is arbitrary.
E2 contains the squares of the corresponding elements of E,
with zeros corresponding to negligible elements of E.
E(I) is considered negligible if it is not larger than
the product of the relative machine precision and the sum
of the magnitudes of D(I) and D(I-1). E2(1) must contain
0.0e0 if the eigenvalues are in ascending order, or 2.0e0
if the eigenvalues are in descending order. If BISECT,
TRIDIB, or IMTQLV has been used to find the eigenvalues,
their output E2 array is exactly what is expected here.
M is the number of specified eigenvalues.
W CONTAINS the M eigenvalues in ascending or descending order.
iND contains in its first M positions the submatrix indices
associated with the corresponding eigenvalues in W
1 for eigenvalues belonging to the first submatrix from
the top, 2 for those belonging to the second submatrix, etc.

'
'
'
'
'
'
'
'

On Output
All input arrays are unaltered.
Z contains the associated set of orthonormal eigenvectors.
any vector which fails to converge is set to zero.
IERR is set to
Zero for normal return,
-iR if the eigenvector corresponding to the iR-th
eigenvalue fails to converge in 5 iterations.

'
'
'
'
'
'
'

RV1, RV2, RV3, RV4, and RV6 are temporary storage arrays.
REFERENCES B. T. SMITH, J. M. BOYLE, J. J. DONGARRA, B. S. GARBOW, Y. IKEBE,
V. KLEMA, B. MOLER, MATRIX EIGEN SYSTEM ROUTINES - EISPACK GUIDE,
SPRINGER-VERLAG, 1976.
ROUTINES CALLED (NONE)
FORTRAN code: www.netlib.org/eispack
-----------------------------------------------------------------DIM RV1(n), RV2(n), RV3(n), RV4(n), RV6(n)

em
de
r

sn
o

tla

ri.
co

'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'

w
.e

iErr = 0
IF m <= 0 THEN EXIT SUB
u=0
x0 = 0
iTag = 0
Order = 1 - e2(1)
iQ = 0
' ESTABLISH AND PROCESS NEXT SUBMATRIX
100 iPi = iQ + 1
FOR iQ = iPi TO n
IF iQ = n THEN EXIT FOR
IF e2(iQ + 1) = 0 THEN EXIT FOR
NEXT iQ
' FIND VECTORS BY INVERSE ITERATION
iTag = iTag + 1
iSi = 0
FOR iR = 1 TO m
IF iND(iR) <> iTag THEN GOTO 920
iTS = 1
x1 = W(iR)
IF iSi <> 0 THEN GOTO 510
' CHECK FOR ISOLATED ROOT
xu = 1
IF iPi = iQ THEN RV6(iPi) = 1: GOTO 870
aNorm = ABS(d(iPi))
iP = iPi + 1
FOR i = iP TO iQ
t = ABS(d(i)) + ABS(e(i))
IF t > aNorm THEN aNorm = t
NEXT i
' EPS2 is THE CRITERION FOR GROUPING,
' EPS3 REPLACES ZERO PIVOTS AND EQUAL ROOTS ARE MODIFIED BY EPS3,
' EPS4 is TAKEN VERY SMALL TO AVOID OVERFLOW
' EpsMach is hardware dependent parameter specifying the relativ
' Precision of floating point arithmetic.
Eps2 = .001 * aNorm
eps3 = EpsMach * aNorm
Tinvit sonraki sayfada devam ediyor
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

252

253

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

ri.
co

RV6(i - 1) = RV6(i)
END IF
RV6(i) = u - RV4(i) * RV6(i - 1)
NEXT i
iTS = iTS + 1
GOTO 600
' SET ERROR if NON-CONVERGED EIGENVECTOR
830
iErr = -iR
xu = 0
GOTO 870
END IF
' NORMALIZE SO THAT SUM OF SQUARES is 1
u=0
FOR i = iPi TO iQ
u = Pythag(u, RV6(i))
NEXT i
xu = 1 / u
870 FOR i = 1 TO n
z(i, iR) = 0
NEXT i
FOR i = iPi TO iQ
z(i, iR) = RV6(i) * xu
NEXT i
x0 = x1
920 NEXT iR
IF iQ < n THEN GOTO 100

tla

Uk = iQ - iPi + 1
Tinvit devam
Eps4 = Uk * eps3
Uk = Eps4 / SQR(Uk)
iSi = iPi
505 iGroup = 0
GOTO 520
' LOOK FOR CLOSE OR COINCIDENT ROOTS
510 IF ABS(x1 - x0) >= Eps2 THEN GOTO 505
iGroup = iGroup + 1
IF Order * (x1 - x0) <= 0 THEN x1 = x0 + Order * eps3
' ELIMINATION WITH INTERCHANGES AND INITIALIZATION OF VECTOR
520 V = 0
FOR i = iPi TO iQ
RV6(i) = Uk
IF i <> iPi THEN
IF ABS(e(i)) >= ABS(u) THEN
' WARNING: A DIVIDE CHECK MAY OCCUR HERE IF E2 ARRAY HAS
' NOT BEEN SPECIFIED CORRECTLY
xu = u / e(i)
RV4(i) = xu
RV1(i - 1) = e(i)
RV2(i - 1) = d(i) - x1
RV3(i - 1) = 0
IF i <> iQ THEN RV3(i - 1) = e(i + 1)
u = V - xu * RV2(i - 1)
V = -xu * RV3(i - 1)
GOTO 580
END IF
xu = e(i) / u
RV4(i) = xu
RV1(i - 1) = u
RV2(i - 1) = V
RV3(i - 1) = 0
END IF
u = d(i) - x1 - xu * V
IF i <> iQ THEN V = e(i + 1)
580 NEXT i

sn
o

END SUB ' End of Tinvit

w
.e

em
de
r

IF u = 0 THEN u = eps3
RV1(iQ) = u
RV2(iQ) = 0
RV3(iQ) = 0
' BACK SUBSTITUTION
600 FOR i = iQ TO iPi STEP -1
RV6(i) = (RV6(i) - u * RV2(i) - V * RV3(i)) / RV1(i)
V=u
u = RV6(i)
NEXT i
' ORTHOGONALIZE WITH RESPECT TO PREVIOUS MEMBERS OF iGroup
j = iR
FOR jj = 1 TO iGroup
DO
j=j-1
LOOP WHILE iND(j) <> iTag
xu = 0
FOR i = iPi TO iQ
xu = xu + RV6(i) * z(i, j)
NEXT i
FOR i = iPi TO iQ
RV6(i) = RV6(i) - xu * z(i, j)
NEXT i
NEXT jj
aNorm = 0
FOR i = iPi TO iQ
aNorm = aNorm + ABS(RV6(i))
NEXT i
IF aNorm < 1 THEN
' FORWARD SUBSTITUTION
IF iTS = 5 THEN GOTO 830
IF aNorm = 0 THEN
RV6(iSi) = Eps4
iSi = iSi + 1
IF iSi > iQ THEN iSi = iPi
GOTO 780
END IF
xu = Eps4 / aNorm
FOR i = iPi TO iQ
RV6(i) = RV6(i) * xu
NEXT i
' ELIMINATION OPERATIONS ON NEXT VECTOR ITERATE
780
FOR i = iP TO iQ
u = RV6(i)
IF RV1(i - 1) = e(i) THEN
u = RV6(i - 1)

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

253

254

On Output
EPS1 is unaltered unless it has been reset to its (last) default value.
D and E are unaltered.
ELEMENTS of E2, corresponding to elements of E regarded as negligible,
have been replaced by zero causing the matrix to split into a direct
sum of submatrices. E2(1) is also set to zero.

tla

'
'
'
'
'
'

ri.
co

SUB Tridib (n, EPS1, d(), e(), e2(), BL, BU, m11, m, W(), iND(), iErr)
'---------------------------------------------------------------------' This subroutine finds those eigenvalues of a TRIDIAGONAL
' SYMMETRIC matrix between specified boundary indices, using bisection.
'
' On Input:
' N is the order of the matrix.
' EPS1 is an absolute error tolerance for the computed eigenvalues.
' If the input EPS1 is non-positive, it is reset for each submatrix
' to a default value, namely, minus the product of the relative machine
' precision and the 1-aNorm of the submatrix.
' D contains the diagonal elements of the input matrix.
' E contains the subdiagonal elements of the input matrix
' in its last N-1 positions. E(1) is arbitrary.
' E2 contains the squares of the corresponding elements of E. E2(1) is arbitrary.
' M11 specifies the lower boundary index for the desired eigenvalues.
' M specifies the number of eigenvalues desired. The upper
' boundary index M22 is then obtained as M22=M11+M-1.

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

em
de
r

sn
o

' BL and BU DEFINE an interval containing exactly the desired eigenvalues.


' W contains, in its first M positions, the eigenvalues
' between indices M11 and M22 in ascending order.
' IND contains in its first M positions the submatrix indices
' associated with the corresponding eigenvalues in W.
' 1 for eigenvalues belonging to the first submatrix from
' the top, 2 for those belonging to the second submatrix, etc.
' IERR is set to
' Zero
for normal return,
' 3*N+1
if multiple eigenvalues at index M11 make
'
unique selection impossible,
' 3*N+2
if multiple eigenvalues at index M22 make
'
unique selection impossible.
'
' RV4 and RV5 are temporary storage arrays.
' REFERENCES B. T. SMITH, J. M. BOYLE, J. J. DONGARRA, B. S. GARBOW,
'
Y. IKEBE, V. C. KLEMA, C. B. MOLER, *MATRIX EIGEN'
SYSTEM ROUTINES - EISPACK GUIDE*, SPRINGER-VERLAG, 1976.
' ROUTINES CALLED (NONE)
' This subroutine is a translation of the ALGOL procedure BISECT,
' NUM. MATH. 9, 386-393(1967) by Barth, Martin, and Wilkinson.
' HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 249-256(1971).
' FORTRAN code : www.netlib.org/eispack/tridib.f
'---------------------------------------------------------------------DIM RV4(n), RV5(n)

w
.e

iErr = 0
iTag = 0
xu = d(1)
x0 = d(1)
u=0
' LOOK FOR SMALL SUB-DIAGONAL ENTRIES AND DETERMINE AN
' INTERVAL CONTAINING ALL THE EIGENVALUES
FOR i = 1 TO n
x1 = u
u=0
IF i <> n THEN u = ABS(e(i + 1))
dMin1 = d(i) - (x1 + u): IF dMin1 < xu THEN xu = dMin1
dMax1 = d(i) + (x1 + u): IF dMax1 > x0 THEN x0 = dMax1
IF i <> 1 THEN
Tst1 = ABS(d(i)) + ABS(d(i - 1))
Tst2 = Tst1 + ABS(e(i))
IF Tst2 <= Tst1 THEN e2(i) = 0
END IF
NEXT i
dMax1 = ABS(xu): IF ABS(x0) > dMax1 THEN dMax1 = ABS(x0)
x1 = dMax1 * EpsMach * n
xu = xu - x1
t1 = xu
x0 = x0 + x1
t2 = x0
' DETERMINE AN INTERVAL CONTAINING EXACTLY THE DESIRED EIGENVALUES
iPi = 1
iQ = n
m1 = m11 - 1
IF m1 <> 0 THEN
iSTURM = 1
3050 V = x1
Tridib sonraki sayfada devam ediyor
x1 = xu + (x0 - xu) * .5

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

254

255

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

tla

ri.
co

EXIT FOR
3260 NEXT i
IF x0 > RV5(k) THEN x0 = RV5(k)
' NEXT BISECTION STEP
3300 x1 = (xu + x0) * .5
Tst1 = ABS(xu) + ABS(x0) + ABS(EPS1)
Tst2 = Tst1 + ABS(x0 - xu) / 2!
IF Tst2 = Tst1 GOTO 3420
'IN-LINE PROCEDURE FOR STURM SEQUENCE
3320 iSi = iPi - 1
u=1
FOR i = iPi TO iQ
IF u = 0 THEN
V = ABS(e(i)) / EpsMach
IF e2(i) = 0 THEN V = 0
GOTO 3330
END IF
V = e2(i) / u
3330 u = d(i) - x1 - V
IF u < 0 THEN iSi = iSi + 1
NEXT i
ON iSTURM GOTO 3060, 3080, 3200, 3220, 3360
' REFINE INTERVALS
3360 IF iSi >= k THEN GOTO 3400
xu = x1
IF iSi >= m1 THEN GOTO 3380
RV4(m1) = x1
GOTO 3300
3380 RV4(iSi + 1) = x1
IF RV5(iSi) > x1 THEN RV5(iSi) = x1
GOTO 3300
3400 x0 = x1
GOTO 3300
'K-TH EIGENVALUE FOUND
3420 RV5(k) = x1
k=k-1
IF k >= m1 THEN GOTO 3250
' ORDER EIGENVALUES TAGGED WITH THEIR
' SUBMATRIX ASSOCIATIONS
3900 iSi = iR
iR = iR + m2 - m1 + 1
j=1
k = m1
FOR L = 1 TO iR
IF j <= iSi THEN
IF k > m2 THEN EXIT FOR
IF RV5(k) >= W(L) THEN GOTO 3915
FOR iI = j TO iSi
i = L + iSi - iI
W(i + 1) = W(i)
iND(i + 1) = iND(i)
NEXT iI
END IF
W(L) = RV5(k)
iND(L) = iTag
k=k+1
GOTO 3920
3915 j = j + 1
3920 NEXT L

w
.e

em
de
r

sn
o

IF x1 = V GOTO 3980
Tridib devam
GOTO 3320
3060 IF iSi - m1 < 0 THEN
3065 xu = x1: GOTO 3050
END IF
IF iSi - m1 > 0 THEN
3070 x0 = x1: GOTO 3050
END IF
xu = x1
t1 = x1
END IF
m22 = m1 + m
IF m22 <> n THEN
x0 = t2
iSTURM = 2
GOTO 3050
3080 IF (iSi - m22) < 0 THEN GOTO 3065
IF (iSi - m22) > 0 THEN GOTO 3070
3085 t2 = x1
END IF
iQ = 0
iR = 0
' ESTABLISH AND PROCESS NEXT SUBMATRIX, REFINING
' INTERVAL BY THE GERSCHGORIN BOUNDS
3100 IF iR = m GOTO 3001
iTag = iTag + 1
iPi = iQ + 1
xu = d(iPi)
x0 = d(iPi)
u=0
FOR iQ = iPi TO n
x1 = u
u=0
V=0
IF iQ <> n THEN
u = ABS(e(iQ + 1))
V = e2(iQ + 1)
END IF
dMin1 = d(iQ) - (x1 + u)
IF dMin1 < xu THEN xu = dMin1
dMax1 = d(iQ) + (x1 + u)
IF dMax1 > x0 THEN x0 = dMax1
IF V = 0 THEN EXIT FOR
NEXT iQ
x1 = ABS(xu)
dMax1 = ABS(x0)
IF dMax1 > x1 THEN x1 = dMax1
IF EPS1 <= 0 THEN EPS1 = -x1
IF iPi = iQ THEN
' CHECK FOR ISOLATED ROOT WITHIN INTERVAL
IF (t1 > d(iPi)) OR (d(iPi) >= t2) THEN GOTO 3940
m1 = iPi
m2 = iPi
RV5(iPi) = d(iPi)
GOTO 3900
END IF
x1 = x1 * (iQ - iPi + 1)
BL = t1: dMax1 = xu - x1
IF dMax1 > BL THEN BL = dMax1
BU = t2: dMin1 = x0 + x1
IF dMin1 < BU THEN BU = dMin1
x1 = BL
iSTURM = 3
GOTO 3320
3200 m1 = iSi + 1
x1 = BU
iSTURM = 4
GOTO 3320
3220 m2 = iSi
IF m1 > m2 GOTO 3940
' FIND ROOTS BY BISECTION
x0 = BU
iSTURM = 5
FOR i = m1 TO m2
RV5(i) = BU
RV4(i) = BL
NEXT i
' LOOP FOR K-TH EIGENVALUE
' FOR K=M2 STEP -1 UNTIL M1 DO -' (-DO- NOT USED TO LEGALIZE -COMPUTED GO TO-)
k = m2
3250 xu = BL
FOR i = k TO m1 STEP -1
IF xu >= RV4(i) THEN GOTO 3260
xu = RV4(i)

3940 IF iQ < n THEN GOTO 3100


GOTO 3001
' SET ERROR - INTERVAL CANNOT BE FOUND
' CONTAINING EXACTLY THE DESIRED EIGENVALUES
3980 iErr = 3 * n + iSTURM
3001 BL = t1
BU = t2
END SUB ' End of Tridib

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

255

256

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

SUB Reduc (n, a(), b(), dL(), iErr)


'---------------------------------------------------------------' This subroutine reduces the generalized symmetric eigenproblem
' A*x=(lambda)*b*x, where b is positive definite, to the standard
' symmetric eigenproblem using the cholesky factorization of b.

'
'
'
'
'
'
'

on output
a contains in its full lower triangle the full lower triangle
of the symmetric matrix derived from the reduction to the
standard form. the strict upper triangle of a is unaltered.
b contains in its strict lower triangle the strict lower triangle of
its cholesky factor L. the full upper triangle of b is unaltered.
dL contains the diagonal elements of L.

' ierr is set to


for normal return,
' zero
' 7*n+1
if b is not positive definite.

em
de
r

sn
o

' This version dated august 1983.


' FORTRAN code: www.netlib.org/eispack
' -----------------------------------------------------------------iErr = 0
nn = ABS(n)
IF n > 0 THEN
' form L in the arrays b and dL
FOR i = 1 TO n
FOR j = i TO n
x = b(i, j)
FOR k = 1 TO i - 1
x = x - b(i, k) * b(j, k)
NEXT k
IF j = i THEN
IF x <= 0 THEN
' set error - b is not positive definite
iErr = 7 * n + 1
EXIT SUB
END IF
y = SQR(x)
dL(i) = y
ELSE
b(j, i) = x / y
END IF
NEXT j
NEXT i
END IF

ri.
co

on input
n is the order of the matrices a and b. if the cholesky factor L of b
is already available, n should be prefixed with a minus sign.
a and b contain the real symmetric input matrices. only the
full upper triangles of the matrices need be supplied. if
n is negative, the strict lower triangle of b contains,
instead, the strict lower triangle of its cholesky factor L.
dL contains, if n is negative, the diagonal elements of L.

tla

'
'
'
'
'
'
'
'

' This subroutine is a translation of the algol procedure reduc1,


' num. math. 11, 99-110(1968) by martin and wilkinson.
' handbook for auto. comp., vol.ii-linear algebra, 303-314(1971).

w
.e

' form the transpose of the upper triangle of inv(L)*a


' in the lower triangle of the array a
FOR i = 1 TO nn
y = dL(i)
FOR j = i TO nn
x = a(i, j)
FOR k = 1 TO i - 1
x = x - b(i, k) * a(j, k)
NEXT k
a(j, i) = x / y
NEXT j
NEXT i
' pre-multiply by inv(L) and overwrite
FOR j = 1 TO nn
FOR i = j TO nn
x = a(i, j)
FOR k = j TO i - 1
x = x - a(k, j) * b(i, k)
NEXT k
FOR k = 1 TO j - 1
x = x - a(j, k) * b(i, k)
NEXT k
a(i, j) = x / dL(i)
NEXT i
NEXT j
END SUB ' end of Reduc

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

256

257

sn
o

END SUB ' End of rebak

tla

' on output
' z contains the transformed eigenvectors in its first m columns.
'-----------------------------------------------------------------FOR j = 1 TO m
FOR i = n TO 1 STEP -1
x = z(i, j)
IF i <> n THEN
i1 = i + 1
FOR k = i1 TO n
x = x - b(k, i) * z(k, j)
NEXT k
END IF
z(i, j) = x / dL(i)
NEXT i
NEXT j

ri.
co

SUB rebak (n, b(), dL(), m, z())


'---------------------------------------------------------------------' This subroutine forms the eigenvectors of a generalized symmetric
' eigensystem by back transforming those of the derived symmetric
' matrix determined by REDUC.
'
' on input
' n is the order of the matrix system.
' b contains information about the similarity transformation (cholesky
' decomposition) used in the reduction by REDUC in its strict
' lower triangle.
' dL contains further information about the transformation.
' m is the number of eigenvectors to be back transformed.
' z contains the eigenvectors to be back transformed in its first m columns.

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

END SUB ' end of reduce

w
.e

em
de
r

SUB reduce (n, mb, a(), b(), iErr)


' calulates invers and of Squre root of B
' Reduces general eigenproblem (A-Lamda*B)*x=0 in standard problem (A-Lamda*I)x=0
' invers and Square root of B
iErr = 0
FOR i = 1 TO n
IF b(i) <= 0 THEN
iErr = i
EXIT SUB
END IF
b(i) = 1 / SQR(b(i))
NEXT i
' Reducing
' Calculate B*A
FOR i = 1 TO n
FOR j = 1 TO mb
a(i, j) = b(i) * a(i, j)
NEXT j
NEXT i
' Calculate B*A*B
FOR k = 1 TO n
FOR j = 1 TO mb
i=k+j-1
IF i > n THEN EXIT FOR
k1 = k - i + mb
a(i, k1) = a(i, k1) * b(k)
NEXT j
NEXT k

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

257

258

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

SUB Bandr (n, mb, a(), d(), e(), e2())


' This subroutine reduces a real symmetric band matrix
' to a symmetric tridiagonal matrix using and optionally
' accumulating orthogonal similarity transformations.

on input
n is the order of the matrix.
mb is the half band width of the matrix, defined as the number of
adjacent diagonals, including the principal diagonal, required to
specify the non-zero portion of the lower triangle of the matrix.
a contains the lower triangle of the symmetric band input matrix stored
as an n by mb array. its lowest subdiagonal is stored in the last
n+1-mb positions of the first column, its next subdiagonal in the last
n+2-mb positions of the second column, further subdiagonals similarly,
and finally its principal diagonal in the n positions of the last column.
contents of storages not part of the matrix are arbitrary.

em
de
r

dmin = EpsMach
dminrt = SQR(dmin)
' initialize diagonal scaling matrix
FOR j = 1 TO n
d(j) = 1
NEXT j
m1 = mb - 1
IF m1 < 1 THEN
FOR j = 1 TO n
d(j) = a(j, mb)
e(j) = 0
e2(j) = 0
NEXT j
EXIT SUB
END IF
IF m1 = 1 THEN GOTO BR800

sn
o

tla

' on output
' a has been destroyed, except for its last two columns which
'
contain a copy of the tridiagonal matrix.
' d contains the diagonal elements of the tridiagonal matrix.
' e contains the subdiagonal elements of the tridiagonal
'
matrix in its last n-1 positions. e(1) is set to zero.
'
e2 contains the squares of the corresponding elements of e.
'
e2 may coincide with e if the squares are not needed.
'
this version dated september 1989.
' FORTRAN code: http://www.netlib.org/eispack
'---------------------------------------------------------------------------

ri.
co

'
'
'
'
'
'
'
'
'
'
'

' This subroutine is a translation of the algol procedure bandrd,


' num. math. 12, 231-241(1968) by schwarz.
' handbook for auto. comp., vol.ii-linear algebra, 273-283(1971).

n2 = n - 2
FOR k = 1 TO n2
Maxr = Min(n - k, m1)

w
.e

FOR iR = Maxr TO 2 STEP -1


kr = k + iR
mr = mb - iR
g = a(kr, mr)
a(kr - 1, 1) = a(kr - 1, mr + 1)
iUgl = k
FOR j = kr TO n STEP m1
j1 = j - 1
j2 = j1 - 1
IF g = 0 THEN GOTO BR600
b1 = a(j1, 1) / g
b2 = b1 * d(j1) / d(j)
IF ABS(b1) > 1 THEN
u = 1 / b1
s2 = u / (u + b2)
ELSE
s2 = 1 / (1 + b1 * b2)
END IF

IF s2 >= .5 THEN GOTO BR450


b1 = g / a(j1, 1)
b2 = b1 * d(j) / d(j1)
c2 = 1 - s2
d(j1) = c2 * d(j1)
d(j) = c2 * d(j)
f1 = 2 * a(j, m1)
f2 = b1 * a(j1, mb)
a(j, m1) = -b2 * (b1 * a(j, m1) - a(j, mb)) - f2 + a(j, m1)
a(j1, mb) = b2 * (b2 * a(j, mb) + f1) + a(j1, mb)
a(j, mb) = b1 * (f2 - f1) + a(j, mb)
Bandr

sonraki sayfada devam ediyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

258

259

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

FOR L = iUgl TO j2
i2 = mb - j + L
u = a(j1, i2 + 1) + b2 * a(j, i2)
a(j, i2) = -b1 * a(j1, i2 + 1) + a(j, i2)
a(j1, i2 + 1) = u
NEXT L

Bandr devam

iUgl = j
a(j1, 1) = a(j1, 1) + b2 * g
IF j = n THEN GOTO BR500
MaxL = Min(n - j1, m1)

ri.
co

FOR L = 2 TO MaxL
i1 = j1 + L
i2 = mb - L
u = a(i1, i2) + b2 * a(i1, i2 + 1)
a(i1, i2 + 1) = -b1 * a(i1, i2) + a(i1, i2 + 1)
a(i1, i2) = u
NEXT L

u = d(j1)
d(j1) = s2 * d(j)
d(j) = s2 * u
f1 = 2 * a(j, m1)
f2 = b1 * a(j, mb)
u = b1 * (f2 - f1) + a(j1, mb)
a(j, m1) = b2 * (b1 * a(j, m1) - a(j1, mb)) + f2 - a(j, m1)
a(j1, mb) = b2 * (b2 * a(j1, mb) + f1) + a(j, mb)
a(j, mb) = u
FOR L = iUgl TO j2
i2 = mb - j + L
u = b2 * a(j1, i2 + 1) + a(j, i2)
a(j, i2) = -a(j1, i2 + 1) + b1 * a(j, i2)
a(j1, i2 + 1) = u
NEXT L
iUgl = j
a(j1, 1) = b2 * a(j1, 1) + g

em
de
r

sn
o

BR450:

tla

i1 = j + m1
IF i1 <= n THEN g = b2 * a(i1, 1)
GOTO BR500

w
.e

IF j = n THEN GOTO BR500


MaxL = Min(n - j1, m1)
FOR L = 2 TO MaxL
i1 = j1 + L
i2 = mb - L
u = b2 * a(i1, i2) + a(i1, i2 + 1)
a(i1, i2 + 1) = -a(i1, i2) + b1 * a(i1, i2 + 1)
a(i1, i2) = u
NEXT L
i1 = j + m1
IF i1 <= n THEN
g = a(i1, 1)
a(i1, 1) = b1 * a(i1, 1)
END IF
BR500: NEXT j
BR600:

NEXT iR

'Rescale to avoid underflow or overflow


IF (k MOD 64) = 0 THEN
FOR j = k TO n
IF d(j) >= dmin THEN GOTO BR650
MaxL = Min(mb + 1 - j, 1)
FOR L = MaxL TO m1
a(j, L) = dminrt * a(j, L)
NEXT L
IF j <> n THEN
MaxL = Min(n - j, m1)
FOR L = 1 TO MaxL
i1 = j + L
i2 = mb - L
a(i1, i2) = dminrt * a(i1, i2)
NEXT L
END IF
a(j, mb) = dmin * a(j, mb)
d(j) = d(j) / dmin
BR650: NEXT j
END IF
NEXT k

' Form square root of scaling matrix


BR800: FOR j = 2 TO n
e(j) = SQR(d(j))
NEXT j
u=1
FOR j = 2 TO n
a(j, m1) = u * e(j) * a(j, m1)
u = e(j)
e2(j) = a(j, m1) ^ 2
a(j, mb) = d(j) * a(j, mb)
d(j) = a(j, mb)
e(j) = a(j, m1)
NEXT j
d(1) = a(1, mb)
e(1) = 0
e2(1) = 0

END SUB ' end of Bandr

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

259

260

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

'
'
'
'
'
'
'
'

on output
a and w are unaltered.
z contains the associated set of orthogonal eigenvectors.
any vector which fails to converge is set to zero
iErr is set to
zero for normal return,
-iR if the eigenvector corresponding to the iR-th
eigenvalue fails to converge.

' rv and rv6 are temporary storage arrays. note that rv is


'
of dimension at least n*(2*mb-1).

RV(ij) = a(i, mb) - x1


RV6(i) = eps4
NEXT i

sn
o

' Subprograms called: Pythag, Sign, EpsMach

ri.
co

on input
n is the Order of the matrix.
nb is the half band width of the matrix a.
a contains the lower triangle of the symmetric band input
matrix stored as an n by mb array. its lowest subdiagonal
is stored in the last n+1-mb positions of the first column,
its next subdiagonal in the last n+2-mb positions of the
second column, further subdiagonals similarly, and finally
its principal diagonal in the n positions of column mb.
m is the number of specified eigenvalues.
w contains the m known eigenvalues in ascending order.

' this version dated august 1983.


' FORTRAN code: http://www.netlib.org/eispack
'---------------------------------------------------------------------DIM RV(n * (2 * mb - 1)), RV6(n)

em
de
r

iErr = -1
IF m <= 0 THEN EXIT SUB
iErr = 0
x0 = 0
m1 = mb - 1
m21 = m1 + mb

' compute aNorm of matrix


aNorm = 0
FOR j = 1 TO mb
V=0
FOR i = mb + 1 - j TO n
V = V + ABS(a(i, j))
NEXT i
IF V > aNorm THEN aNorm = V
NEXT j

w
.e

' eps2 is the criterion for grouping,


' eps3 replaces zero pivots and equal roots are modified by eps3,
' eps4 is taken very small to avoid overflow
IF aNorm = 0 THEN aNorm = 1
Eps2 = .001 * aNorm
eps3 = ABS(aNorm) * (EpsMach# * aNorm)
uk = SQR(n)
eps4 = uk * eps3
iGroup = 0
' find vectors by inverse iteration
FOR iR = 1 TO m
its = 1
x1 = W(iR)
' look for close or coincident roots
IF ABS(x1 - x0) >= Eps2 THEN
iGoup = 0
ELSE
iGroup = iGroup + 1
IF x1 - x0 <= 0 THEN x1 = x0 + eps3
END IF
' expand matrix, subtract eigenvalue, and initialize vector
FOR i = 1 TO n
ij = i + Min(0, i - m1) * n
kj = ij + mb * n
ij1 = kj + m1 * n

' elimination with interchanges


IF m1 <> 0 THEN
FOR i = 1 TO n
iI = i + 1
Maxk = Min(i + m1 - 1, n)
Maxj = Min(n - i, m21 - 2) * n
FOR k = i TO Maxk
kj1 = k
j = kj1 + n
jj = j + Maxj
FOR kj = j TO jj STEP n
RV(kj1) = RV(kj)
kj1 = kj
NEXT kj
RV(kj1) = 0
NEXT k

tla

'
'
'
'
'
'
'
'
'
'
'

RV(ij1) = 0
ij1 = ij1 + n
END IF
ELSE
RV(ij) = a(i, j)
END IF
ij = ij + n
iI = i + j
IF iI <= n THEN
RV(kj) = a(iI, mb - j)
kj = kj + n
END IF
NEXT j

SUB bandv (n, mb, a(), m, W(), z(), iErr)


'-------------------------------------------------------------------' this subroutine finds those eigenvectors of a real symmetric
' band matrix corresponding to specified eigenvalues, using inverse iteration

IF i <> n THEN
u=0
Maxk = Min(i + m1, n)
Maxj = Min(n - iI, m21 - 2) * n
FOR j = i TO Maxk
IF ABS(RV(j)) >= ABS(u) THEN
u = RV(j)
k=j
END IF
NEXT j
j=i+n
jj = j + Maxj
IF k <> i THEN
kj = k
FOR ij = i TO jj STEP n
V = RV(ij)
RV(ij) = RV(kj)
RV(kj) = V
kj = kj + n
NEXT ij
END IF
IF u <> 0 THEN
FOR k = iI TO Maxk
V = RV(k) / u
kj = k
FOR ij = j TO jj STEP n
kj = kj + n
RV(kj) = RV(kj) - V * RV(ij)
NEXT ij
NEXT k
END IF
END IF
NEXT i
END IF

Bandv sonraki sayfada


devam ediyor

FOR j = 1 TO m1
IF ij <= m1 THEN
IF ij <= 0 THEN
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

260

261

34. PROGRAMLAR: Genel zdeer ve zvektr hesab - Eigen04

V = RV(i)
IF ABS(V) < eps3 THEN V = Sign(eps3, V)
RV6(i) = RV6(i) / V
NEXT i

FOR i = 1 TO n
RV6(i) = RV6(i) - xu * z(i, j)
NEXT i
NEXT jj
aNorm = 0
FOR i = 1 TO n
aNorm = aNorm + ABS(RV6(i))
NEXT i

em
de
r

' choose a new starting vector


IF aNorm < .1 THEN
IF its < n THEN
its = its + 1
xu = eps4 / (uk + 1)
RV6(1) = eps4

sn
o

' orthogonalize with respect to previous members of iGroup


xu = 1
FOR jj = 1 TO iGroup
j = iR - iGroup - 1 + jj
xu = 0
FOR i = 1 TO n
xu = xu + RV6(i) * z(i, j)
NEXT i

FUNCTION Min (ia, ib)


' Returns minimum of two integers
IF ia < ib THEN Min = ia ELSE Min = ib
END FUNCTION ' end of Min

ri.
co

devam

tla

' back substitution


Bandv
600 FOR i = n TO 1 STEP -1
Maxj = Min(n - i + 1, m21)
IF Maxj <> 1 THEN
ij1 = i
j = ij1 + n
jj = j + (Maxj - 2) * n
FOR ij = j TO jj STEP n
ij1 = ij1 + 1
RV6(i) = RV6(i) - RV(ij) * RV6(ij1)
NEXT ij
END IF

FOR i = 2 TO n
RV6(i) = xu
NEXT i

RV6(its) = RV6(its) - eps4 * uk


GOTO 600
ELSE

w
.e

' set error - non-converged eigenvector


iErr = -iR
xu = 0
GOTO 870
END IF
END IF
' normalize so that sum of squares is 1
u=0
FOR i = 1 TO n
u = Pythag(u, RV6(i))
NEXT i
xu = 1 / u
870 FOR i = 1 TO n
z(i, iR) = RV6(i) * xu
NEXT i
x0 = x1
NEXT iR
END SUB ' end of Bandv

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

261

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

sn
o
A x=B x

w
.e

em
de
r

Ahmet TOPU

tla

Ders notlar 2014

35
PROGRAMLAR:

Genel zdeer ve zvektr hesab

En kk birka zdeerin hesab - Dsearch

263

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch


Ax = B x

arlan alt programlar: DSearch, Determinant, Factor, Powerinvers

ri.
co

rnek: Bir kiriin serbest titreim problemi1


Yar bant=4

Kiriin rijitlik matrisi

tla

0
121193 181790
242386

727160

181790
181790
0

242386
0
121193 181790

A =
727160 181790 181790
0
Simetrik
242386
0
181790

727160 181790

363580

Genel zdeer probleminin en kk m tane veya tm zdeerlerini ve bunlara ait


zvektrlerini hesaplar. A simetrik bant matris, B simetrik bant matris, det A 0 ve det B0
olmaldr. A nn ve B nin sadece st yar bant programa verilir.

Yar bant=4

em
de
r

sn
o

0
121193 181790
242386

727160

181790
181790
0

242386
0
121193 181790

B =
727160 181790 181790
0
Simetrik
242386
0
181790

727160 181790

363580

lk zdeer ve bunlara karlk gelen asal


frekans, periyot, frakans ve zvektrlerin
(modlarn) hesab?

Kiriin ktle matrisi

A ve B nin depolanma ekli:


Yar bant=4

Yar bant=4

Sabit bant genilii iin eklenen sfrlar

w
.e

121193 181790
0
0
0.2025
0.14625
242386
1.170
727160 181790 181790

0
0

0.270 0.14625 - 0.10125

242386
1.170
121193 181790
0.14625
0
0
0.2025

A 727160 181790 181790


0 , B 0.270 0.14625 0.10125
0

242386
1.170

0
811790
0
0
0.14625
0

0
0
0
0
727160 181790
0.270 0.10125

363580
0.135

0
0
0
0
0
0

DSearch sonular

Teori ve saysal el hesab iin bak: blm 26.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

263

264

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch


'-----------------Ana program DSearch--------------------------------------' Ahmet TOPU, Eskiehir Osmangazi niversitesi, 1998
' (A-Lamda*B)x=0 genel zdeer problemi zlr
' En kk m zdeer ve bunlara ait zvektrler hesaplanr

' kt:
' ALamda(n,2): zdeerler
' X(n,m): zvektrler

' rnek: Betonarme kiriin ilk modunun hesab


DATA 7: ' A=Rijitlik matrisinin denklem says
DATA 4: ' Rijitlik matrisinin yar bant genilii
DATA 4: ' B= M Ktle matrisinin bant genilii
DATA 3: ' hesaplanmas istenen mod says

rijitlik matrisinin st yar bantndaki saylar


242386,0,-121193,181790
A nn stt bant iindeki elemanlar
727160,-181790,181790,0
242386,0,-121193,181790
727160,-181790,181790,0
242386,0,181790,0
727160,181790,0,0
363580,0,0,0

sn
o

' A=K
DATA
DATA
DATA
DATA
DATA
DATA
DATA

tla

' arlan alt programlar: Dsearch, Determinant, Factor, Powerinvers


'---------------------------------------------------------------------------------

Veri:
A(n,n): Tekil olmayan simetrik bant matris, sadece st bant ksm verilir
B(n,n): Tekil olmayan simetrik bant matris, sadece st bant ksm verilir
n: A ve B nin boyutu
iBantA: A nn yar bant genilii
iBantB: B nin yar bant genilii
m: Hesaplanmas istenen zdeer says

ri.
co

'
'
'
'
'
'
'

DSearch ana
program

em
de
r

' B=M ktle matrisinin st yar bantndaki saylar


DATA 1.170,0,0.2025,-0.14625
DATA 0.270,0.14625,-0.10125,0
DATA 1.170,0,0.2025,-0.14625
B nin st bant iindeki elemanlar
DATA 0.270,0.14625,-0.10125,0
DATA 1.170,0,-0.14625,0
DATA 0.270,-0.10125,0,0
DATA 0.135,0,0,0

DEFINT I-N
DEFDBL A-H, O-Z

DECLARE
DECLARE
DECLARE
DECLARE

SUB
SUB
SUB
SUB

DSearch (n, MaxBant, A(), iBantB, B(), m, aLamda(), X(), nFound)


Determinant (n, Z(), aLamda(), u2, nLess, nFound, det, Power)
Factor (n, MaxBant, Z(), iTekil, Eps, nFact)
Powerinvers (n, Z(), x1(), y(), y1(), y2(), w(), B(), MaxBant, iBantB, u1, u2, u3, iter)

CLS : ' Ekran temizle

w
.e

READ n: ' denklem saysn oku


READ iBantA: ' K nn yar bant geniliini oku
READ iBantB: ' b nin yar bant geniliini oku
READ m: ' hesaplanmas istenen zdeer saysn oku
IF m < 1 THEN m = 1
IF m > n THEN m = n

' Max bant genilii


MaxBant = iBantA
IF iBantB > MaxBant THEN MaxBant = iBantB
' Setup dimentions of arrays
DIM A(n, MaxBant) AS DOUBLE
DIM B(n, MaxBant)
DIM aLamda(m, 2): ' zdeerler
DIM X(n, m): ' zvektrler
' A=K nn st yar bantndaki saylar oku:
FOR i = 1 TO n
FOR j = 1 TO MaxBant
A(i, j) = 0
NEXT j
FOR j = 1 TO iBantA
READ A(i, j)
NEXT j
NEXT i

Devam sonraki sayfada

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

264

265

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch

' B=M nn st yar bantndaki saylar oku:


FOR i = 1 TO n
FOR j = 1 TO MaxBant
B(i, j) = 0
NEXT j
FOR j = 1 TO iBantB
READ B(i, j)
NEXT j
NEXT i

DSearch ana
devam

tla

sn
o

' ktlar
PRINT "DSearch Sonular:"
IF nFound = 0 THEN
PRINT "Hibir zdeer bulunamad!"
ELSE
FOR i = 1 TO nFound
aLamda = aLamda(i, 1)
Omega = SQR(ABS(aLamda))
T = 2 * (4 * ATN(1)) / Omega
F=1/T
PRINT "zdeer Lamda"; i; "="; aLamda
PRINT "Asal frekans Omega"; i; "="; Omega; "rad/s"
PRINT "Periyot T"; i; "="; T; "s"
PRINT "Frekans f"; i; "="; F; "Hz"
PRINT "Mod"; i; ":"
FOR j = 1 TO n
PRINT USING " ##.####"; X(j, aLamda(i, 2));
NEXT j
PRINT : PRINT
NEXT i
PRINT
END IF
END ' DSearch sonu

ri.
co

CALL DSearch(n, MaxBant, A(), iBantB, B(), m, aLamda(), X(), nFound)

em
de
r

SUB Determinant (n, Z(), aLamda(), u2, nLess, nFound, det, Power)
'----------Determinant of the matrix Z--------------------------nLess = 0
det = 1
Power = 0
FOR i = 1 TO n
IF Z(i, 1) < 0 THEN nLess = nLess + 1
det = det * Z(i, 1)
IF i <= nFound THEN det = det / (u2 - aLamda(i, 1))
WHILE ABS(det) > 1
det = det * .0625
Power = Power + 4
WEND
WHILE (ABS(det) < .0625)
det = det * 16
Power = Power - 4
WEND
NEXT i

w
.e

END SUB ' Determinant sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

265

266

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch

SUB DSearch (n, MaxBant, A(), iBantB, B(), m, aLamda(), X(), nFound)
'-----------------------------------------------------------------------------------' (A-Lamda*B)*X=0 genel zdeer denkleminden tm veya en kk birka
' zdeerini ve bunlara ait zvektrlerini hesaplar.

' ktlar:
' ALamda(n,2):
' X(i,1), i=1,2,..,m nolu zdeerler
' X(i,2): i. zdeerin X(n,m) vektrndeki zvektrnn kolon numaras
' X(n,m): zvektrler
' Metod: Search and power invers vector iteration

sn
o

tla

' Kaynak: "BALFOUR, J., Computer Analysis of Structural Framework


' Oxfort University Press, New York, 1992, 421-429" den alnm
' iyiletirilmi ve basitletirilmitir.
'-----------------------------------------------------------------------------------DIM Z(n, MaxBant), x1(n), y(n), y1(n), y2(n), w(n, 6): ' Work arrays
Eps = .000001: 'ngrlen hassasiyet
iTrue = -1: iFalse = 0
nFound = 0
nCalc = 0
u1 = 0
u2 = 0
nFact = 0
iter = 0
WHILE nFound < m

Veriler:
A(n,n): Tekil olmayan simetrik bant matris. Sadece st bant ksm verilir
B(n,n): Tekil olmayan simetrik bant matris. Sadece st bant ksm verilir
n: A ve B nin boyutu
iBantA: A nn yar bant genilii
iBantB: B nin yar bant genilii
m: Hesaplanmas istenen zdeer says

ri.
co

'
'
'
'
'
'
'

em
de
r

' Get Start values for accelerated secant method


u1 = 0
u2 = 0
FOR i = 1 TO n
FOR j = 1 TO MaxBant
Z(i, j) = A(i, j)
NEXT j
NEXT i

CALL Factor(n, MaxBant, Z(), iTekil, Eps, nFact): ' Factor


CALL Determinant(n, Z(), aLamda(), u2, nLess, nFound, det1, Power1): ' Determinant
FOR i = 1 TO n
y1(i) = RND
' Generate random numbers
WHILE y1(i) = 0
y1(i) = RND
WEND
NEXT i

w
.e

' Use power invers iteration to calculate u2


WHILE iter < 5
CALL Powerinvers(n, Z(), x1(), y(), y1(), y2(), w(), B(), MaxBant, iBantB, u1, u2, u3, iter)
u2 = u3
WEND
' Check that u2 has not jumped any eigenvaues. If so then divide
' u2 by no. nLess+1 and redo until u2 is to left of next eigenvalue
iDone = iFalse
WHILE iDone = iFalse
FOR i = 1 TO n
FOR j = 1 TO MaxBant
Z(i, j) = A(i, j) - u2 * B(i, j)
NEXT j
NEXT i
CALL Factor(n, MaxBant, Z(), iTekil, Eps, nFact): ' Factorise
IF iTekil = iTrue THEN
u2 = .9999 * u2
ELSE
CALL Determinant(n, Z(), aLamda(), u2, nLess, nFound, det, Power): ' Calc determinant and cont values

IF nLess = 0 THEN iDone = iTrue ELSE u2 = u2 / (nLess + 1)


END IF
WEND
det2 = det
Power2 = Power
' This part uses the accelerated secant method

Dsearch
devam
ediyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

266

267

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch

' to jump over one or more eigenvalues


acc = 2: ' acceleration number
WHILE (nLess <= nFound)
4690 FOR i = 1 TO n: ' Calculate the coefficient matrix
FOR j = 1 TO MaxBant
Z(i, j) = A(i, j) - u2 * B(i, j)
NEXT j
NEXT i

Dsearch
devam

CALL Factor(n, MaxBant, Z(), iTekil, Eps, nFact): ' Factor


IF iTekil = iTrue THEN u2 = .9999 * u2: GOTO 4690

sn
o

' if change less then %1 then accelerate the method


IF ABS((u3 - u2) / u2) < .01 THEN acc = 2 * acc
4900 u1 = u2
det1 = det2
Power1 = Power2
u2 = u3
WEND
' end of Secant method

tla

' if method has coverged then avoid the risk of division by use
' simple scaling
IF (ABS((u2 - u1) / u2) > Eps) OR (nLess > nFound) GOTO 4850
u3 = 1.0001 * u2
GOTO 4900
4850 T = det2 - det1 * 2 ^ (Power1 - Power2)
IF T = 0 THEN
PRINT "Zero division occured, possibly A or B singular!"
END
END IF
u3 = u2 - acc * det2 * (u2 - u1) / T

ri.
co

CALL Determinant(n, Z(), aLamda(), u2, nLess, nFound, det2, Power2): ' Calc determinant count eigenvalues

em
de
r

nCalc = nFound
WHILE (nCalc < nLess)
FOR i = 1 TO n
y1(i) = RND
WHILE y1(i) = 0
y1(i) = RND: ' generate random numbers
WEND
NEXT i
iDone = iFalse
WHILE iDone = iFalse

' invers iteration


CALL Powerinvers(n, Z(), x1(), y(), y1(), y2(), w(), B(), MaxBant, iBantB, u1, u2, u3, iter)
IF (ABS((u3 - u2) / u2)) < Eps THEN iDone = iTrue
u2 = u3
WEND

w
.e

' This part calculates the eigenvector once eigenvalue


' has been found by inverse iteration
nFound = nFound + 1
aLamda(nFound, 1) = u2
aLamda(nFound, 2) = nFound
' Calculate denominator
Den = 0
FOR i = 1 TO n
Den = Den + x1(i) * y(i)
NEXT i
Den = SQR(ABS(Den))
aMax = 0

' Calc the vector and aMax element


FOR i = 1 TO n
X(i, nFound) = x1(i) / Den
IF ABS(X(i, nFound)) > ABS(aMax) THEN aMax = X(i, nFound)
NEXT i

' Schmidt orthogonalisation


K = nFound - 6 * ((nFound - 1) \ 6)
FOR i = 1 TO n
w(i, K) = B(i, 1) * X(i, nFound)
FOR j = 1 TO iBantB - 1
IF i - j > 0 THEN w(i, K) = w(i, K) + B(i - j, j + 1) * X(i - j, nFound)
IF i + j <= n THEN w(i, K) = w(i, K) + B(i, j + 1) * X(i + j, nFound)
NEXT j
NEXT i

Dsearch
devam
ediyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

267

268

35. PROGRAMLAR: Genel zdeer ve zvektr hesab - DSearch

Dsearch devam

END SUB ' Dsearch sonu

FOR j = 2 TO MaxBant
IF i < MaxBant THEN iFin = i - 1 ELSE iFin = MaxBant - j
FOR K = 1 TO iFin
IF j + K > MaxBant THEN EXIT FOR
Z(i, j) = Z(i, j) - Z(i - K, K + 1) * Z(i - K, j + K) * Z(i - K, 1)
NEXT K
Z(i, j) = Z(i, j) / Z(i, 1)
NEXT j
NEXT i
nFact = nFact + 1
END SUB ' Factor sonu

sn
o

' Sorting eigenvalues


iDone = iFalse
WHILE iDone = iFalse
iDone = iTrue
FOR K = 1 TO nFound - 1
IF aLamda(K, 1) > aLamda(K + 1, 1) THEN
iDone = iFalse
T = aLamda(K, 1)
aLamda(K, 1) = aLamda(K + 1, 1)
aLamda(K + 1, 1) = T
T = aLamda(K, 2)
aLamda(K, 2) = aLamda(K + 1, 2)
aLamda(K + 1, 2) = T
END IF
NEXT K
WEND

ri.
co

' end of find eigenwector


IF u2 <= u1 THEN nCalc = nCalc + 1
nFact = 0
iter = 0
WEND
WEND

SUB Factor (n, MaxBant, Z(), iTekil, Eps, nFact)


'This subroutine decomposes symmetrik, positive definit, banded
'matrix Z in the form U(Transpoz) D U
'----------------------------------------------------------------------iTekil = 0: ' Nonsingular
FOR i = 1 TO n
IF i < MaxBant THEN iFin = i - 1 ELSE iFin = MaxBant - 1
FOR K = 1 TO iFin
Z(i, 1) = Z(i, 1) - Z(i - K, K + 1) * Z(i - K, K + 1) * Z(i - K, 1)
IF ABS(Z(i, 1)) < Eps THEN
iTekil = 1: ' Matrix Singular
EXIT SUB
END IF
NEXT K

tla

' Normalise
FOR i = 1 TO n
X(i, nFound) = X(i, nFound) / aMax
NEXT i

em
de
r

SUB Powerinvers (n, Z(), x1(), y(), y1(), y2(), w(), B(), MaxBant, iBantB, u1, u2, u3, iter)
' This subroutine performs one cycle of vector inverse iteration and vector orthogonalises
' the trial vector to the last six eigenvalues to allow for multiple roots
'-------------------------------------------------------------------------------------------------FOR i = 1 TO n
y(i) = y1(i)
NEXT i

w
.e

' This part solves a system of linear equation where


' Coefficient matrix has been decomposed using subrotine Factor
' Forward subtitution
FOR i = 1 TO n
IF i > MaxBant - 1 THEN iFin = MaxBant - 1 ELSE iFin = i - 1
S=0
IF i <> 1 THEN
FOR j = 1 TO iFin
S = S + Z(i - j, j + 1) * Z(i - j, 1) * x1(i - j)
NEXT j
END IF
x1(i) = (y(i) - S) / Z(i, 1)
NEXT i
' Backward subtitution
FOR i = 1 TO n - 1
IF i > MaxBant - 1 THEN iFin = MaxBant - 1 ELSE iFin = i
FOR j = 1 TO iFin
x1(n - i) = x1(n - i) - Z(n - i, j + 1) * x1(n - i + j)
NEXT j
NEXT i
' Calculate the weighted vector
FOR i = 1 TO n
y(i) = B(i, 1) * x1(i)
FOR j = 1 TO iBantB - 1
IF i - j > 0 THEN y(i) = y(i) + B(i - j, j + 1) * x1(i - j)
IF i + j <= n THEN y(i) = y(i) + B(i, j + 1) * x1(i + j)
NEXT j
NEXT i
' Calculate new trial vector based upon the weighted vector
FOR i = 1 TO n
y2(i) = y(i)
NEXT i
IF (nFound < 6) THEN iFin = nFound ELSE iFin = 6

' Orthogonalise for last six vector,


'-------------------------------------

FOR j = 1 TO iFin
Alfa = 0
FOR i = 1 TO n
Alfa = Alfa + x1(i) * w(i, j)
NEXT i
FOR i = 1 TO n
y2(i) = y2(i) - Alfa * w(i, j)
NEXT i
NEXT j
' Denominater
Den = 0
FOR i = 1 TO n
Den = Den + x1(i) * y(i)
NEXT i
' New trial vector
Den = SQR(ABS(Den))
FOR i = 1 TO n
y2(i) = y2(i) / Den
NEXT i
Anum = 0
' New estimated aLamda (u3)
Den = Den * Den
FOR i = 1 TO n
Anum = Anum + x1(i) * y1(i)
y1(i) = y2(i)
NEXT i
u3 = u1 + Anum / Den
iter = iter + 1
END SUB ' Powerinvers sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

268

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz

sn
o

Ahmet TOPU

tla

Ders notlar 2014

f(x)=0

em
de
r

w
.e

x1

x3

x
x2

f(x)

36

DORUSAL OLMAYAN FONKSYONLARIN


KKLER(SIFIR NOKTALARI)

Bolzano
Modified Regula Falsi
Dekker-Brent
Newton-Raphson
Bairstow
Mller
Jenkins-Traub

Metodlar

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

270

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)


Bir fonksiyonun kklerini bulma problemi matematikilerden ok uygulamal bilim dal
alanlarnn; zellikle mekanik, elektrik ve elektronik mhendislerinin ilgi alanna girer.

ri.
co

Bir deikenin, diyelim x, yksek dereceden kuvvetlerini, tersini, logaritmik veya


trigonometrik terimlerini ieren f(x) fonksiyonuna dorusal olmayan fonksiyon denir. f(x)
sadece x in pozitif kuvvetlerini ieriyorsa polinom, aksi halde taransandant fonksiyon
ad verilir. rnekler: f(x)=3x-5 dorusal bir fonksiyon, f(x)=5x4-3x3+x2+8x-12 dorusal
2
olmayan bir fonksiyon(polinom), f ( x) = 2 x + Sin( x) 2 e x dorusal olmayan bir (taransandant)
x 31
fonksiyondur.

tla

f(x)=0 fonksiyonun kk; fonksiyonda yerine konulduunda fonksiyonu sfr yapan bir
deerdir. Bir a says ile f(a)=0 oluyorsa a says f(x) fonksiyonun kkdr denir. Bu u
anlama gelmektedir: Grafii izildiinde fonksiyonun x eksenini kestii noktadaki x deeri
fonksiyonun kkdr, nk f(x) bu x noktasnda sfr olmutur. Bu nedenle fonksiyonun
kkne fonksiyonun sfr noktas(fonksiyonu sfr yapan deer anlamnda) da denir. Bir veya
ok sayda kk olabilir, kkler gerek veya sanal olabilir.

em
de
r

sn
o

Aadaki grafikte y = f (x ) fonksiyonunun x eksenini x1, x2 ve x3 noktalarnda kestii, bu


noktalarda f(x1)=0, f(x2)=0 ve f(x3)=0 olduu grlmektedir. x1, x2 ve x3 deerleri bu
fonksiyonun kkleri(sfr noktalar) dr.

w
.e

Basit rnekler:

1. f(x) = x+4=0 n sadece bir kk vardr: x=-4.


2. f(x) = x2-4=0 n iki gerek kk vardr: x1=2, x2=-2.
3. f(x) = x2+4=0 n iki sanal kk vardr: x1 ,2 = m 4 = m2 1 = m2i .

2
4. f(x) =ax2+bx+c=0 n iki kk vardr: x1, 2 = b m b 4 ac . Kkler gerek veya sanal
2a
olabilir. Kk iindeki b 2 4ac deerine diskriminant(ayran, belirten, fark yaratan) denir.
Diskriminant b 2 4ac > 0 ise her iki kk de gerektir. b 2 4ac = 0 durumunda her iki kk
de gerek fakat birbirine eittir. b 2 4ac < 0 durumunda ise her iki kk sanaldr.

5. f(x)=Sin(x)=0 fonksiyonu periyodiktir, sonsuz kk vardr: k=0, 1, 2, olmak zere


xk=k .

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

270

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

271

Yukardaki basit zmler klasik matematikten bilinen formller ile yaplmtr ve analitik
veya kapal zm ad verilir. ou kez kapal zm yoktur veya kullanlamayacak kadar
karmaktr. rnek: nc ve drdnc derece polinomlarn zm iin de formller
vardr, fakat kullanszdr. a0+a1 x+a2x2++ an xn = 0 denkleminin n tane kk vardr. Fakat
n5 durumunda x1, x2, , xn kkleri iin forml verilemeyecei Abel1 tarafndan
ispatlanmtr. zm sadece nmerik yntemlerle bulunabilir.

ri.
co

Teknik problemlerde kullanlabilecek ok sayda nmerik metot vardr. Hepsi de


iterasyon(tekrarlama) temellidir. Her hangi bir fonksiyon iin biri iyi sonu verirken bir dieri
zm vermeyebilir. zm bulunsa bile ou kez yaklaktr.

Bu blmde, herhangi bir fonksiyonun [a,b] aralndaki bir gerek kknn iterasyon ile
belirlenmesinin temel ilkeleri rnekler ile aklanacaktr. Ayrca, teorisine girilmeksizin, ska
kullanlan metotlarn QBASIC programlar ve zm rnekleri verilecektir.
Basit iterasyon metodu(Picard2 metodu, sabit nokta iterasyonu, dorusal iterasyon):

em
de
r

sn
o

tla

f(x)=0 denklemininin [a,b] aralnda bir gerek kk olduu biliniyorsa, bu kkn


belirlenmesi iin:
1) f(x) fonksiyonunun terimlerinin birinden bir x ekilir, sol tarafa yazlr. rnek: f(x)=x32x+1=0 fonksiyonu yerine, ayn anlama gelen x= (x3+1)/2 yazlr.
2) Kkn saysal deeri iin x0 ile gstereceimiz bir tahmin yaplr x=x0. Tahmin edilen bu
x0 deerine balang deeri denir. Balang deeri elden geldiince aranan kke yakn
olmaldr.
3) Balang deeri x=(x3+1)/2 ifadesinin sa tarafnda yerine konarak sol taraftaki x yeni
deeri hesaplanr. Bu yeni deere x1 diyelim: x1=(x03+1)/2. x1 says kk aranan f(x)=x32x+1 fonksiyonunda yerine konur. Eer x1 aranan kk ise f(x1)=x13-2x1+10 olur, iterasyon
durdurulur, aksi durumda sonraki adm ile devam edilir.
4) x1 deeri x=(x3+1)/2 ifadesinin sa tarafnda yerine konarak sol taraftaki x yeni deeri
hesaplanr. Bu yeni deere x2 diyelim: x2=(x13+1)/2. x2 says kok aranan f(x)=x3-2x+1
fonksiyonunda yerine konur. Eer x2 aranan kk ise f(x2)=x23-2x2+10 olur, iterasyon
durdurulur, aksi durumda sonraki adm ile devam edilir.
5) ....

Yukarda admlar verilen iterasyon yntemi, saysal rneklerden de anlalaca gibi, ok


basittir. Ancak, rneklere gemeden nce, aklanmas gereken sorular vardr.

w
.e

Sorular:
1) Hangi [a,b] aralnda kk arayacam nereden bileyim? 2) [a,b] aralnda kk olup
olmadn nasl anlarm 3) x0 balang deerini nasl tahmin edeyim? 4) terasyonu ne
zaman durduraym 5) terasyon her zaman zm verir mi(yaknsar m)? 6) Yaknsamazsa
ne yapaym?
Cevaplar:
1) Fonsiyonu baka biri vermise a ve b snrlarn, yani [a,b] araln da verir. Veya
fonksiyonu bir fiziksel problemin zm iin biz oluturmusak hangi aralkta zm
aradmz da biliriz. nk zm salt matematikten te fiziksel bir anlam da tamaktadr.
2) [a,b] aralnda kk olup olmadn ya biri bize sylemitir veya fonksiyonun fiziksel
anlamndan biliriz ya da yle anlayabiliriz: a ve b deerleri f(x) fonksiyonunda yerine
konur, f(a) ve f(b) deerleri hesaplanr. Eer

f(a) ve f(b) ters iaretli ise [a,b] aralnda kk vardr.


nk fonksiyon artdan eksiye veya eksiden artya
gemektedir, dolaysyla x eksenini kesmek zorundadr.

f(a) ve f(b) ayn iaretli ise [a,b] aralnda kk yoktur,


yani fonksiyon x eksenini kesmiyor demektir.

f(a)=0 ve/veya f(b)=0 oluyorsa a ve/veya b kktr.

KK

Niels Henrik Abel, 1802-1829, Norveli matematiki. n5 olmas halinde a0+a1x+a2x2+....+anxn = 0 ifdesinin kapal zmnn olmadn 1824 ylnda ispatld.
Abel'den nceki matematikiler 300 yl boyunca zmn varln aramlardr.
2

Charles mile Picard, 18561941, Fransz matematiki.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

271

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

272

3) x0 balang deerini ya biri bize sylemitir veya fonksiyonun fiziksel anlamndan biliriz
ya da yle seebilirz: x0=a, veya x0=b veya x0=(a+b)/2.

4) terasyonu durdurmak iin u koullar kullanlabilir: i admda |f(xi)|< veya |xi- xi-1|<
olunca iterasyon durdurulur. Burada yeterince kk pozitif bir saydr, sonucun
hassasiyetini ve iterasyon saysn etkiler. Mesala =0.0001 seilebilir. |f(xi)|<0.0001
olduunda, f(xi) 0 dr ve son hesaplanan xi kktr anlamndadr. ne denli kk seilirse
sonu o denli geree yakn olur, fakat iterasyon says artar.

ri.
co

5) terasyonun yaknsamas fonksiyonun ne denli karmak olduuna ve x0 balang


deerinin aranan kke ne denli yakn olduuna baldr, yaknsamayabilir.
6) terasyon yaknsamazsa baka bir x0 balang deeri seilir. Gene yaknsamazsa baka
bir iterasyon metodu ile zm bulunmaya allr.

Saysal rnek 1:
f(x)=x3-2x+1=0 fonksiyonunun [a,b]=[0,0.9] aralnda kk var mdr? Varsa kk
belirleyiniz.

tla

[0, 0.9] aralnda kk var m? f(0)=1>0 ve f(0.9)=-0.07<0 olduunda bu aralkta kk


vardr. Fonksiyonun -2x terimindeki x i ekerek sol tarafa geirelim:

sn
o

x3-2x+1=0 x=(x3+1)/2.
x0=0, =0.001 seelim.
terasyon admlar aada verilmitir:
Sa taraftan
hesplanan yeni x

nceki x

Yeni x iin fonksiyonun


ald deer

Adm x
x=(x3+1)/2 f(x)=x3-2x+1
------------------------------------------------------x
x
0
0
0.5
0.1250
1
0.5
0.5625 x
0.0530
2
0.5625
0.5890 x
0.0263
3
0.5890
0.6022
0.0140
4
0.6022
0.6092
0.0077
5
0.6092
0.6130
0.0043
6
0.6130
0.6152
0.0024
7
0.6152
0.6164
0.0014
0.6171 deeri iin |f(0.6171)|=0.0007< =0.001
olduundan iterasyon durduruldu
8
0.6164
0.6171 x9 0.0007
0

em
de
r

2
3

Kk

w
.e

Saysal rnek 2:
= + 6 = 0 fonksiyonunun [a,b]=[0, 5] aralnda kk var mdr? Varsa kk
belirleyiniz.
[0, 5] aralnda kk var m? f(0)=-2.4<0 ve f(5)=1.7>0 olduunda bu aralkta kk vardr.
Fonksiyonun x terimini ekerek sol tarafa geirelim:

= +6=0 = +6
x0=0, =0.0001 seelim.
terasyon admlar aada verilmitir:
Sa taraftan
hesplanan yeni x

nceki x

Yeni x iin fonksiyonun


ald deer

Adm x
= +6
= +6=0
-------------------------------------------------------------x
0
0
2.4495 x
-0.4573
1
2.4495
2.9068 x
-0.0776
2
2.9068
2.9844 x
-0.0130
3
2.9844
2.9973
-0.0022
4
2.9973
2.9995
-0.0004
2.9999 deeri iin |f(2.9999)|=0.0000<=0.0001
olduundan iterasyon durduruldu
5
2.9995
2.9999 x6
0.0000
0

1
2
3

Kk
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

272

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

273

Bu rnek iin hesap makinenizin a

birimini radyan olarak ayarlamalsnz!


Saysal rnek 3:
1
f x = x - Sin x =0 fonksiyonunun [a,b]=[0,1] aralnda kk var mdr? Varsa kk belirleyiniz.

[0, 1] aralnda kk var m? f(0)=1>0 ve f(1)=-0.47<0 olduunda bu aralkta kk vardr.


Fonksiyonun bir x terimini ekerek sol tarafa geirelim. Ancak bu fonksiyondaki hi bir terimi
1
ekilemez. Bu nedenle x - Sin x =0 eitlii bozulmayacak ekilde her iki tarafa x ekleyelim:
1

ex

- Sin x

x0=0, =0.001 seelim.


terasyon admlar aada verilmitir:

Yeni x iin fonksiyonun


ald deer

Sa taraftan
hesplanan yeni x

nceki x

=x+

Adm x

ri.
co

x - Sin x =0 x+ x - Sin x =x x=x+

Sin x

1
ex

- Sin x

-------------------------------------------------------------x
x
0
0
1
-0.4736
1
1
0.5264 x
0.0883
2
0.5264
0.6147 x
-0.0359
3
0.6147
0.5788
0.0136
4
0.5788
0.5924
-0.0054
5
0.5924
0.5870
0.0021
6
0.5870
0.5891
-0.0008
0.5883 deeri iin |f(0.5883)|=0.0003< =0.001
x
olduundan iterasyon durduruldu
7
0.5891
0.5883
0.0003
0

1
2

sn
o

tla

Kk

em
de
r

Saysal rnek 4:
f(x)=x3-3=0 fonksiyonunun [a,b]=[1, 5] aralnda kk var mdr? Varsa kk belirleyiniz.
[1, 5] aralnda kk var m? f(1)=-2<0 ve f(5)=122>0 olduunda bu aralkta kk vardr.
Fonksiyonu xx2-3=0 eklinde yazalm ve x i ekerek sol tarafa geirelim:
xx2-3=0 -> x=3/x2.
x0=1, =0.001 seelim.
terasyon admlar aada verilmitir:
nceki x

Yeni x iin fonksiyonun


ald deer

Sa taraftan
hesplanan yeni x

x=3/x2
f(x)=x3-3
Adm x
------------------------------------------------------x
x
0
1
3.0
24.0
1
3.0
0.3333 x
-2.9630
2
0.3333
27.0054 x
19691.8122
3
27.0054
0.0041 x
-3.0
0

1
2

YAKINSAMIYOR:
f(x) fonksiyonunun ald deer bir admda byyor dier admda

klyor. terasyona sonsuz kez devam edilse dahi |f(x)|<


olamayaca anlalyor.

w
.e

Newton-raphson(Newton) metodu:

f(x) fonksiyonun trevi olan f'(x) fonksiyonu da biliniyorsa kullanlabilir. Basit iterasyon
metoduna nazaran daha hzl yaknsar.

Soldaki izimde grlen f(x) fonksiyonun verilmi x0 balang


deerini(bilinen deer) kullanarak kke daha yakn olan x1
deerini bulabilir miyiz? Evet:
Teet

x0 bilinen deerini fonksiyonda yerine koyarak f(x0) ordinatn


hesaplayabiliriz. Bu ordinatn f(x) erisini kestii T noktasnda
erinin teetini izdiimizi dnelim. Teetin x eksenini
kestii noktaya x1 diyelim. Teetin eim as olsun. x1Tx0
alan dik gendir.
Bu bilgileri kullanak x1 deerini
hesaplamaya alalm. Teetin eimi

KK

=
dr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

273

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

274

Dier taraftan, bir fonksiyonun bir noktadaki teetinin eimininin fonksiyonun o noktadaki
trevine eit olduunu biliyoruz:
= " . f(x) verilmi fonksiyon olduundan trevi
alnarak f'(x0) hesaplanabilir. Yukardaki ifadede yerine yazarsak " =
olur. Bu

"

ifadede sadece x1 bilinmemektedir, ekerek:


#

x1=x0-

ri.
co

bulunur. ekilden de grld gibi, bu deere karlk gelen f(x1)<f(x0) dr, yani kke
yaklalmtr. Yaklam miktar
dir. Bu deeri =
ile gsterirelim:

olur. Eer || yeterince kk ise x1 aranan kktr. Aksi halde x0=x1 alnarak yeni bir
yaklam, x2 hesaplanr.

tla

Yukardaki son forml tekrar-tekrar kullanlarak(iterasyon) kk bulunabilir. f(x) ve [a,b]


aral verilmitir. [a,b] aralnda kk olup olmad kontrol edilir. Kk varsa f'(x) trev
fonksiyonu hesaplanr, x0 balang deeri ve hassasiyeti seilir, sonra iterasyona balanr.

0. adm: f(x0), f'(x0), =

sn
o

terasyon admlar:

ve

"

deerlerini hesapla ||< ise x1 aranan kktr,

iterasyonu durdur. Aksi halde bir sonraki adm ile devam et.
1. adm: f(x1), f'(x1), =
ve % = deerlerini hesapla ||< ise x2 aranan kktr,
#

iterasyonu durdur. Aksi halde bir sonraki adm ile devam et.
2. adm: f(x2), f'(x2), = & ve ' = % deerlerini hesapla ||< ise x3 aranan kktr,
&

em
de
r

iterasyonu durdur. Aksi halde bir sonraki adm ile devam et.
3. adm: ....
Saysal rnek 5:
f(x)=x3-2x+1=0 fonksiyonunun [a,b]=[0,0.9] aralnda kk var mdr? Varsa kk
belirleyiniz.
[0, 0.9] aralnda kk var m? f(0)=1>0 ve f(0.9)=-0.07<0 olduunda bu aralkta kk
vardr. Fonksiyonun trevi f'(x)=3x2-2 dir. x0=0, =0.001 seelim.

Fonksiyonun x
iin ald deer

nceki x

Fonksiyonun
trevinin x iin
ald deer

x deki deiim
miktar

Yeni x

Adm x
f(x)=x3-2x+1
f'(x)=3x2-2 =f(x)/f'(x)
x-
----------------------------------------------------------------------------------------------------x
x
0
0
1
-2
-0.5
0.5
x
1
0.5
0.125
-1.25
-0.1
0.6
x
2
0.6
0.016
-0.92
-0.0174
0.6174
x
3
0.6174
0.0005
-0.8565
-0.0006
0.6180
0

2
3
4

Deiim miktar |-0.0006|<=0.001


olduundan iterasyon durduruldu

w
.e

terasyon admlar aada verilmitir:

Kk

Basit iterasyon ile ayn fonksiyon rnek 1 de 9. admda yaknsamamt, bulunan kk 0.6171
idi. Newton-Raphson ise 4 iterasyon sonucunda kk 0.6180 olarak vermitir. 6 hane
hassasiyetli kk 0.618034 dir. Buna gre Newton-Raphson metodu daha hzldr ve daha
doru sonu vermitir.

Saysal rnek 6:

Bu rnek iin hesap makinenizin a


birimini radyan olarak ayarlamalsnz!

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

274

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

f x =

1
ex

275

- Sin x =0 fonksiyonunun [a,b]=[0,1] aralnda kk var mdr? Varsa kk belirleyiniz.

[0,1] aralnda kk var m? f(0)=1>0 ve f(1)=-0.047<0 olduunda bu aralkta kk vardr.


1
Fonksiyonun trevi f ' x =- x - Cos x =0 dir. x0=0, =0.001 seelim.
e

f x =

Adm x

1
ex

- Sin x =0

f ' x =-

1
ex

- Cos x =0

x deki deiim
miktar

Yeni x

ri.
co

Fonksiyonun
trevinin x iin
ald deer

Fonksiyonun x
iin ald deer

nceki x

terasyon admlar aada verilmitir:

=f(x)/f'(x)

x-

----------------------------------------------------------------------------------------------------x
x
0
0
1
-2
-0.5
0.5
x
1
0.5
0.1271
-1.4841
-0.0856
0.5856
x
2
0.5856
0.0041
-1.3902
-0.0029
0.5885
x
3
0.5885
0.0000
-1.3869
0.0000
0.5885
0

tla

Deiim miktar |0.0000|<=0.001


olduundan iterasyon durduruldu

2
3
4

Kk

sn
o

Basit iterasyon ile ayn fonksiyonun rnek 3 de 8 iterasyon sonucunda bulunan kk 0.5883
idi. Newton-Raphson ise 4 iterasyon sonucunda kk 0.5885 olarak vermitir. 6 hane
hassasiyetli kk 0.588533 tr. Newton-Raphson metodu daha hzldr ve daha doru sonu
vermitir.
Saysal rnek 7:
f(x)=x3-3=0 fonksiyonunun [a,b]=[1, 5] aralnda kk var mdr? Varsa kk belirleyiniz.
[1, 5] aralnda kk var m? f(1)=-2<0 ve f(5)=122>0 olduunda bu aralkta kk vardr.

em
de
r

Fonksiyonun trevi f(x)=3x2 dir. x0=1, =0.001 seelim.


terasyon admlar aada verilmitir: Fonksiyonun
Fonksiyonun x
iin ald deer

nceki x

trevinin x iin
ald deer

x deki deiim
miktar

Yeni x

x-
Adm x
f(x)=x3-3
f'(x)=3x2
=f(x)/f'(x)
----------------------------------------------------------------------------------------x
0
1
-2
3
-0.6667
1.6667
1
1.6667
1.6299
8.3337
0.1956
1.4711
2
1.4711
0.1837
6.4924
0.0283
1.4428
3
1.4428
0.0034
6.2450
0.0005
1.4423

w
.e

Deiim miktar |0.0005|<=0.001


olduundan iterasyon durduruldu

x1
x2
x3
x4

Kk

Basit iterasyon ile ayn fonksiyon rnek 4 de yaknsamamt. Newton-Raphson ise 4


iterasyon sonucunda kk 1.4423 olarak vermitir. Kkn gerek deeri 3 = 1.44224957 dir.
Newton-Raphson metodu yaknsamtr.

Her iterasyon ynteminin kendine zg iyi-kt taraflar vardr. Hangisinin "en iyi"
olduunu sylemek zordur. Mesala, yukardaki rneklerden anlald gibi, Newton-Rahson
daha hzl yaknsar, fakat fonksiyonun analitik trevi her zaman hesaplanamaz veya trev
sfr olabilir. Dier taraftan ayn fonksiyon iin biri yaknsarken dieri yaknsamayabilir.
nemli olan, fonksiyona uygun bir metodun seilmesi ve x0 balang deerinin aranan kke
mmkn olduunca yakn tahmin edilmesidir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

275

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

276

Aitken iterasyon hzlandrcs


terasyon metotlarnda AITKEN hzlandrcs kullanlarak iterasyon hzlandrlabilir. k. admda hesaplanan x deerini
xk, k-1. admdakini xk-1,
k-2. admdakini xk-2 ile gsterelim. AITKENe gre xk nn iyiletirilmi deeri

x
k

( x k x k 1 ) 2
x k 2x k 1 + x k 2

dir. Bu formlde birbini izleyen deer olduundan nc ve sonraki

k
iyiletirilmi

admlarda uygulanabilir. rnek olmas asndan, rnek 1 in ilk adm sonunda bulunan x1=0.5, x2=0.5625,
x3=0.5890 deerlerini kullanarak x3 n iyiletirilmi deerini bulalm:

(0.5890 0.5625)2
= 0.6085
0.5890 2 0.5625 + 0.5

ri.
co

x 3 0.5890

rnek 1 de 5. admda bu deere yaklalmtr.

Simgesel program kodlar: Bildiiniz bir programlama dili ile kodlayarak test ediniz. Maxit deikeni neden
kullanlmtr?
rnek 1 iin basit iterasyon(Picard iterasyunu)

tla

sn
o

Maxit=100
x0=0, Eps=0.000001
Adm=0
Repeat
x=x0
Fx=x*x*x-2*x+1
Fxtrev=3*x*x-2
if |Fxtrev| =1.0E-8 then Print Trev sfr oldu, dur.
Delta=Fx/Fxtrev
x0=x-Delta
Print Adm, x, Fx, Fxtrev, Delta, x0
Adm=Adm+1
until |Delta|<Eps or Adm>Maxit

em
de
r

Maxit=100
x0=0, Eps=0.000001
Adm=0
Repeat
x=x0
x1=(x*x*x+1)/2
Fx=x1*x1*x1-2*x1+1
Print Adm, xo, x1, Fx
Adm=Adm+1
x0=x1
Until |Fx|<Eps or Adm>Maxit

rnek 1 iin Newton-Raphson iterayonu

PROGRAMLAR:

w
.e

1. Bolzano: f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini Bolzano


metoduna3 gre bulur.
2. RegulaFalsi: f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini
Regula-Falsi4 metoduna gre bulur.
3. DekkerBrent: f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini
Dekker-Brent5 metoduna gre bulur.
4. NewtonRaphson: Gerek katsayl f(x)=a0+a1x+a2x2++anxn polinomunun gerek ve
sanal kklerini Newton-Raphson6 metoduna gre bulur.
5. Bairstow: Gerek katsayl f(x)=a0+a1x+a2x2++anxn polinomunun gerek ve sanal
kklerini Bairstow7 metoduna gre bulur.
6. Muller: Gerek katsayl f(x)=a0+a1x+a2x2++anxn polinomunun gerek kklerini Mller8
metoduna gre bulur.

7. JenkinsTraub: Gerek katsayl f(x)=a0+a1x+a2x2++anxn polinomunun gerek ve sanal


kklerini Jenkins-Traub9 metoduna gre bulur.
3

Bernard Bolzano tarafndan 1817 de ortaya kondu.

M 3. yzyla ait bir Hindistan matematik kitabnda izine rastlanmaktadr. Hint-in- Arap matematik dnyasndan talyan
matematiki Leonardo Fibonacci(yaklak 1170-1250) tarafndan 1202 ylnda Avrupaya tantlmtr.
5
1969 ylnda Hollandal Theodorus Dekker gelitirdi, Avustralyal Richard Brent tarafndan 1973 ylnda iyiletirildi. Genelde Brent
metodu olarak anlr.
6

ngiliz Isaac Newton 1669 da gelitirdi, 1690 ylnda ngiliz Joseph Raphson(1648-1715) tarafndan iyiletirildi.

ngiliz Leonard Bairstow tarafndan 1920 ylnda gelitirildi.

Amerikal David E. Mler tarafndan 1956 ylnda yaynland.


Michael A. G. Jenkins ve Joseph Frederick Traub tarafndan 1966 ylnda gelitirildi.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

276

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

277

Bolzano metodu
(Bisection, interval halfing, binary search)

Bolzano program f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini bulur.
Aadaki rnekler iin test edilmitir.
rnekler:

1. f(x) = 1.5 x Tan(x) 0.1 , aralk [- 5, 5]

ri.
co

2. f(x) = 3 x + Sin(x)-e -x , aralk [- 1, 1]

3. f(x) = x 2 Ln(x) 2 , aralk [0.1, 3]


4. f(x) = x 8 1 , aralk [- 3, 3]
5x

1
+ x 3 e Tan(x) e x , aralk [0.1, 1]
Cos(x)

6. f(x) = x 3 21x 20 , aralk [- 5, 8]

tla

5. f(x) = Sin

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 , aralk [- 12, 12]

Bolzano sonular:

+ 1 , aralk [ , 3 ]

Bernard Bolzano
1781-1848, talyan asll Avusturyal

sn
o

8. f ( x ) = Sin (8 x ) e

Cos ( x )

1. f(x) = 1.5 x Tan(x) 0.1 = 0 n [-5,5] aralnda

em
de
r

bulunabilen kkleri:

2. f(x) = 3x + Sin(x)-e-x = 0 n [-1,1] aralnda

w
.e

bulunabilen kkleri:

3. f(x) = x 2 Ln(x) 2 = 0 n [0.1,3] aralnda

bulunabilen kkleri:

4. f(x) = x 8 1 = 0 n [-3,3] aralnda bulunabilen kkleri:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

277

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

278

5x

5. f(x) = Sin

1
+ x 3 e Tan(x) e x = 0 n [0.1,1] aralnda
Cos(x)

ri.
co

bulunabilen kkleri:

6. f(x) = x 3 21x 20 = 0 n [-5,8] aralnda bulunabilen

sn
o

tla

kkleri:

7 . f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0 n

em
de
r

[-12,12] aralnda bulunabilen kkleri:

w
.e

8. f ( x ) = Sin (8 x ) e Cos ( x ) + 1 = 0 n [,3] aralnda

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

278

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

MaxBul = 10: ' [a,b] aralnda en fazla 10 kk bul


DIM x(MaxBul)

END 'Bolzano ana

sn
o

PRINT a; "-"; b; "aralnda bulunabilen kkler(Bolzano):"


PRINT
FOR i = 1 TO iBulundu
PRINT "x"; i; "="; x(i), "f(x"; i; ")="; fnf(x(i))
NEXT i

tla

CLS
CALL Bolzano(a, b, x(), MaxBul, iBulundu)
IF iBulundu = 0 THEN PRINT "Kk bulunamad(Bolzano)": END

ri.
co

'---------------------Ana Program Bolzano------------------------------Bolzano


' Dorusal olmayan f(x) fonksiyonun [a,b] aralndaki kklerini bulur
' Sadece gerek kkler bulunur, sanal kk bulunmaz.
' arlan alt programlar: Bolzano
'--------------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Bolzano (a, b, x(), MaxBul, iBulundu)
' araln ve fonksiyonun tanmlanmas
a = -5: b = 5: DEF fnf (x) = 1.5 * x - TAN(x) - .1
'a = -1: b = 1: DEF fnf (x) = 3 * x + SIN(x) - EXP(-x)
'a = .1: b = 3: DEF fnf (x) = x ^ 2 - LOG(x) - 2
'a = -3: b = 3: DEF fnf (x) = x ^ 8 - 1
'a = .1: b = 1: DEF fnf (x) = SIN(SQR(1 / COS(x) + x ^ 3 * EXP(5 * x / TAN(x)))) - EXP(-x)
'a = -5: b = 8: DEF fnf (x) = x ^ 3 - 21 * x - 20
'a = -12: b = 12: DEF fnf (x) = x ^ 8 - 170 * x ^ 6 + 7392 * x ^ 4 - 39712 * x ^ 2 + 51200
'a = 4 * ATN(1): b = 3 * a: DEF fnf (x) = SIN(8 * x) - EXP(COS(x)) + 1

279

em
de
r

SUB Bolzano (a, b, x(), MaxBul, iBulundu)


'-----------------------------------------------------------------------' f(x) fonksiyonunun [a,b] aralndaki gerek kklerini bulur
' Metot: Bolzano
' Dier adlar: Bisection metodu, aral ikiye blme, binary search
' f(x) fonksiyonu ana programda DEF FNF(X)=... ile tanmlanm olmal
' araln alt snr a ve st snr b ana programda tanml olmal
' MaxAaltAralik: [a, b] aralnda alnacak alt aralk says
' MaxBol: alt araln ikiye blme says
' Hassasiyet: Hassasiyet
' MaxBul: aranacak maksimum kk says
' iBulundu: bulunabilen kk says
' x(MaxBul): Kklerin depoland vektr, ana programda boyutlandrlm olmal

w
.e

' arlan program: Yok


'-----------------------------------------------------------------------MaxAaltAralik = 100
MaxBol = 50
Hassasiyet = 1E-08
iBulundu = 0
IF a = b THEN MaxAaltAralik = 1
D = (b - a) / MaxAaltAralik
x2 = a
WHILE x2 < b
IF iBulundu >= MaxBul THEN EXIT SUB
x1 = x2
x2 = x1 + D
IF x2 > b THEN x2 = b

' [x1,x2] aralnda kk var m?


f1 = fnf(x1)
IF ABS(f1) < Hassasiyet THEN
xYeni = x1
iBulundu = iBulundu + 1
x(iBulundu) = xYeni
GOTO 6
END IF
f2 = fnf(x2)
IF ABS(f2) < Hassasiyet THEN
xYeni = x2
iBulundu = iBulundu + 1
x(iBulundu) = xYeni
GOTO 6
END IF

iF1 = SGN(f1)
iF2 = SGN(f2)

' [x11,x22] araln ikiye bl


IF iF1 * iF2 <> 1 THEN
x11 = x1
x22 = x2
xk = x1
FOR j = 1 TO MaxBol
xYeni = .5 * (x11 + x22)
f3 = fnf(xYeni)
IF ABS(f3) < Hassasiyet THEN
iBulundu = iBulundu + 1
x(iBulundu) = xYeni
GOTO 6
END IF
iF3 = SGN(f3)
IF iF3 * iF1 = -1 THEN
x22 = xYeni
ELSE
x11 = xYeni
iF1 = iF3
END IF
xk = xYeni
NEXT j
END IF
6 WEND
END SUB ' Bolzano sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

279

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

280

Regula-Falsi Metodu
(Method of false position, (Linear interpolation method)

RegulaFalsi program f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini


bulur. Aadaki rnekler iin test edilmitir.

rnekler:

ri.
co

1. f(x) = 1.5 x Tan(x) 0.1 , aralk [- 5, 5]


2. f(x) = 3 x + Sin(x)-e -x , aralk [- 1, 1]

3. f(x) = x 2 Ln(x) 2 , aralk [0.1, 3]


4. f(x) = x 8 1 , aralk [- 3, 3]
5x

1
+ x 3 e Tan(x) e x , aralk [0.1, 1]
Cos(x)

6. f(x) = x 3 21x 20 , aralk [- 5, 8]

tla

5. f(x) = Sin

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 , aralk [- 12, 12]

RegulaFalsi sonular:

sn
o

8. f ( x ) = Sin (8 x ) e Cos ( x ) + 1 , aralk [ , 3 ]

1. f(x) = 1.5 x Tan(x) 0.1 = 0 n [-5,5] aralnda

em
de
r

bulunabilen kkleri:

2. f(x) = 3x + Sin(x)-e-x = 0 n [-1,1] aralnda

3. f(x) = x 2 Ln(x) 2 = 0 n [0.1,3] aralnda


bulunabilen kkleri:

w
.e

bulunabilen kkleri:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

280

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

281

ri.
co

4. f(x) = x 8 1 = 0 n [-3,3] aralnda bulunabilen kkleri:

5x

5. f(x) = Sin

1
+ x 3 e Tan(x) e x = 0 n [0.1,1] aralnda
Cos(x)

em
de
r

bulunabilen kkleri:

sn
o

6. f(x) = x 3 21x 20 = 0 n [-5,8] aralnda

tla

bulunabilen kkleri:

7 . f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0 n

8. f ( x ) = Sin (8 x ) e Cos ( x ) + 1 = 0 n [,3] aralnda

bulunabilen kkleri:

w
.e

[-12,12] aralnda bulunabilen kkleri:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

281

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

iFind = 10: ' [a,b] aralnda en fazla 10 kk bul


DIM x(iFind)

tla

CLS
CALL RegulaFalsi(a, b, x(), iFind, iFound)

ri.
co

'---------------------------Ana Program RegulaFalsi-------------------------RegulaFalsi


' Dorusal olmayan bir fonksiyonun [a,b] aralndaki kklerinin hesab
' sanal kk bulunmaz, sadece gerek kkler bulunur
' arlan alt programlar: RegulaFalsi
'---------------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB RegulaFalsi (a, b, x(), iFind, iFound)
' araln ve fonsiyonun tanmlanmas
'a = -5: b = 5: DEF fnf (x) = 1.5 * x - TAN(x) - .1
'a = -1: b = 1: DEF fnf (x) = 3 * x + SIN(x) - EXP(-x)
'a = .1: b = 3: DEF fnf (x) = x ^ 2 - LOG(x) - 2
'a = -3: b = 3: DEF fnf (x) = x ^ 8 - 1
'a = .1: b = 1: DEF fnf (x) = SIN(SQR(1 / COS(x) + x ^ 3 * EXP(5 * x / TAN(x)))) - EXP(-x)
'a = -5: b = 8: DEF fnf (x) = x ^ 3 - 21 * x - 20
'a = -12: b = 12: DEF fnf (x) = x ^ 8 - 170 * x ^ 6 + 7392 * x ^ 4 - 39712 * x ^ 2 + 51200
a = 4 * ATN(1): b = 3 * a: DEF fnf (x) = SIN(8 * x) - EXP(COS(x)) + 1

282

IF iFound = 0 THEN PRINT "Kk bulunamad (RegulaFalsi)!": END

END ' RegulaFalsi Ana

sn
o

PRINT "["; a; ","; b; "] aralnda bulunabilen kkler(RegulaFalsi):"


PRINT
FOR i = 1 TO iFound
PRINT "x"; i; "="; x(i), "f(x"; i; ")="; fnf(x(i))
NEXT i

em
de
r

SUB RegulaFalsi (a, b, x(), iFind, iFound)


'-----------------------------------------------------------------------' f(x) fonksiyonunun [a,b] aralndaki gerek kklerini bulur
' Metot: Regula falsi
' Dier adlar: Method of false position, linear interpolation method
' f(x) fonksiyonu ana programda DEF FNF(X)=... ile tanmlanm olmal
' araln alt snr a ve st snr b ana programda tanml olmal
' iSubint :[a, b] aralnda alnacak alt aralk says
' maxalve: alt araln ikiye blme says
' epsf
:Hassasiyet
' iFind :aranacak maksimum kk says
' iFound :bulunabilen kk says
' x(iFind) :Kklerin depoland vektr, ana programda boyutlandrlm olmal

w
.e

' arlan program: Yok


'-----------------------------------------------------------------------iSubint = 100
Maxhalve = 50
epsf = 1E-08
iFound = 0
iHata = 0
IF a > b THEN EXIT SUB
IF a = b THEN iSubint = 1
D = (b - a) / iSubint
x2 = a
WHILE x2 < b
IF iFound >= iFind THEN EXIT SUB
x1 = x2
x2 = x1 + D
IF x2 > b THEN x2 = b

' [x1,x2] aralnda kk var m?


f1 = fnf(x1)
IF ABS(f1) < epsf THEN
xNew = x1
iFound = iFound + 1
x(iFound) = xNew
GOTO 6
END IF
f2 = fnf(x2)
IF ABS(f2) < epsf THEN
xNew = x2
iFound = iFound + 1
x(iFound) = xNew
GOTO 6
END IF

iF1 = SGN(f1)
iF2 = SGN(f2)
IF iF1 * iF2 = 1 GOTO 6
' [ak,bk] aralnda Regula Falsi iterasyonu
ak = x1
bk = x2
aL = f1
r = f2
xk = x1
fxk = aL
FOR k = 1 TO Maxhalve
IF ABS(r - aL) < epsf THEN
xNew = ak
ELSE
xNew = (ak * r - bk * aL) / (r - aL)
END IF
fk1 = fnf(xNew)
IF ABS(fk1) < epsf THEN
iFound = iFound + 1
x(iFound) = xNew
GOTO 6
END IF
IF fnf(ak) * fk1 < 0 THEN
bk = xNew
r = fk1
IF fxk * r > 0 THEN aL = .5 * aL
ELSE
ak = xNew: aL = fk1
IF fxk * aL > 0 THEN r = .5 * r
END IF
xk = xNew
fxk = fk1
NEXT k

6 WEND
END SUB ' RegulaFalsi sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

282

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

283

Dekker-Brent metodu
DekkerBrent program f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini
bulur. Aadaki rnekler iin test edilmitir.
rnekler:

1. f(x) = 1.5 x Tan(x) 0.1 , aralk [- 5, 5]


2. f(x) = 3 x + Sin(x)-e -x , aralk [- 1, 1]

ri.
co

3. f(x) = x 2 Ln(x) 2 , aralk [0.1, 3]


4. f(x) = x 8 1 , aralk [- 3, 3]
5x

1
5. f(x) = Sin
+ x 3 e Tan(x) e x , aralk [0.1, 1]
Cos(x)

Theodorus Dekker, 1927- ,


Hollandal

6. f(x) = x 3 21x 20 , aralk [- 5, 8]

Richard Brent, 1946- ,


Avustralyal

Bolzano sonular:

sn
o

8. f ( x ) = Sin (8 x ) e Cos ( x ) + 1 , aralk [ , 3 ]

tla

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 , aralk [- 12, 12]

1. f(x) = 1.5 x Tan(x) 0.1 = 0 n [-5,5] aralnda

em
de
r

bulunabilen kkleri:

2. f(x) = 3x + Sin(x)-e-x = 0 n [-1,1] aralnda

w
.e

bulunabilen kkleri:

3. f(x) = x 2 Ln(x) 2 = 0 n [0.1,3] aralnda

bulunabilen kkleri:

4. f(x) = x 8 1 = 0 n [-3,3] aralnda bulunabilen kkleri:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

283

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

284

5x

5. f(x) = Sin

1
+ x 3 e Tan(x) e x = 0 n [0.1,1] aralnda
Cos(x)

ri.
co

bulunabilen kkleri:

6. f(x) = x 3 21x 20 = 0 n [-5,8] aralnda bulunabilen

sn
o

tla

kkleri:

7 . f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0 n

em
de
r

[-12,12] aralnda bulunabilen kkleri:

w
.e

8. f ( x ) = Sin (8 x ) e Cos ( x ) + 1 = 0 n [,3] aralnda bulunabilen kkleri:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

284

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

DekkerBrent

'------------------Ana program DekkerBrent-----------------------' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010


' f(x) fonksiyonunun [a,b] aralndaki kklerini bulur
' Metot: Dekker Brent
' f(x) fonksiyonnu DEF Fnf(x)=... deyimi ile tanmlanm olmaldr
' Veri:
' x1,x2 : kk aranacak araln alt ve st snr
' MaxBul : [a,b] aralnda bulunacak max kk says

285

ri.
co

' kt:
' iBulundu: bulunabilen kk says
' x
: bulunan kklerin depoland vektr
' iErr =0 hatasz sonuland
'
=1 [x1,x2] aralnda kk yok
'
=2 Max iterasyon says ald
' arlan alt programlar: DekkerBrentCall, DekkerBrent
'----------------------------------------------------------------

sn
o

tla

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB DekkerBrentCall (a, b, x(), MaxBul, iBulundu)
DECLARE FUNCTION DekkerBrent (x1, x2, iErr)
' araln ve fonksiyonun tanmlanmas
Pi = 4 * ATN(1): ' Pi says
'a = -5: b = 5: DEF fnf (x) = 1.5 * x - TAN(x) - .1
'a = -1: b = 1: DEF fnf (x) = 3 * x + SIN(x) - EXP(-x)
'a = .1: b = 3: DEF fnf (x) = x ^ 2 - LOG(x) - 2
'a = -3: b = 3: DEF fnf (x) = x ^ 8 - 1
'a = .1: b = 1: DEF fnf (x) = SIN(SQR(1 / COS(x) + x ^ 3 * EXP(5 * x / TAN(x)))) - EXP(-x)
'a = -5: b = 8: DEF fnf (x) = x ^ 3 - 21 * x - 20
'a = -12: b = 12: DEF fnf (x) = x ^ 8 - 170 * x ^ 6 + 7392 * x ^ 4 - 39712 * x ^ 2 + 51200
a = Pi: b = 3 * Pi: DEF fnf (x) = SIN(8 * x) - EXP(COS(x)) + 1
MaxBul = 10: ' [a,b] aralnda bulunmas istenen max kk says
DIM x(MaxBul)
CLS
CALL DekkerBrentCall(a, b, x(), MaxBul, iBulundu)

em
de
r

IF iBulundu = 0 THEN
PRINT "["; a; ","; b; "] aralnda kk bulunamad(DekkerBrent)"
ELSE
PRINT "["; a; ","; b; "] aralnda"; iBulundu; " kk bulundu(DekkerBrent)"
FOR i = 1 TO iBulundu
PRINT "x"; i; "="; x(i), "f(x"; i; ")="; fnf(x(i))
NEXT i
END IF

END ' DekkerBrent ana sonu

w
.e

SUB DekkerBrentCall (a, b, x(), MaxBul, iBulundu)


'-----------------------------------------------' DekkerBrent alt programn arr, bulunan kk
' x vektrnde depolar
' iAltaralik: a-b aralnn blnecei
'
alt aralk saysdr, deitirilebilir
' Maxbul: aranacak max kk says
' iBulundu: bulunanbilen kk says
' arlan alt program: DekkerBrent
'-----------------------------------------------iAltaralik = 100
iBulundu = 0
d = (b - a) / iAltaralik
x2 = a
WHILE (x2 < b) AND (iBulundu < MaxBul)
x1 = x2: x2 = x1 + d
IF x2 > b THEN x2 = b

x = DekkerBrent(x1, x2, iErr)


IF iErr = 0 THEN
iBulundu = iBulundu + 1
x(iBulundu) = x
END IF
WEND
END SUB ' DekkerBrentCall sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

285

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

286

FUNCTION DekkerBrent (x1, x2, iErr)


'-----------------------------------------------------------------------' This program finds a real root of a real function f(x)
' using Dekker-Brent method
' function f(x) must be declared in main program as def Fnf(x)=...

' OUTPUTS
' DekkerBrent : root of function f(x), if found
' iErr
=0 all OK
'
=1 no root found in interval [x1,x2]
'
=2 no more iterations(Maxit exeded)
' Fortran kodu 'Numerical Recipes in fORTRAN 77, Chapter 9.3' den alnm,
' biraz deitirilmitir. Programn orijinal ad: zbrent
' http://www.haoli.org/nr/bookf.html

Zero = 1E-08: ' deitirmeyiniz


iErr = 0

em
de
r

a = x1
b = x2
Fa = fnf(a)
Fb = fnf(b)
IF (Fa > 0 AND Fb > 0) OR (Fa < 0 AND Fb < 0) THEN
iErr = 1
EXIT FUNCTION
END IF

c=b
Fc = Fb
FOR iTer = 1 TO Maxit
IF (Fb > 0 AND Fc > 0) OR (Fb < 0 AND Fc < 0) THEN
c=a
Fc = Fa
d=b-a
e=d
END IF
IF ABS(Fc) < ABS(Fb) THEN
a=b
b=c
c=a
Fa = Fb
Fb = Fc
Fc = Fa
END IF

w
.e

IF (ABS(e) >= Tol1) AND (ABS(Fa) > ABS(Fb)) THEN


s = Fb / Fa
IF ABS(a - c) < Zero THEN
p = 2 * xm * s
q=1-s
ELSE
q = Fa / Fc
r = Fb / Fc
p = s * (2 * xm * q * (q - r) - (b - a) * (r - 1))
q = (q - 1) * (r - 1) * (s - 1)
END IF

sn
o

' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 3 * Eps

tla

' arlan alt program: yok


'-----------------------------------------------------------------------Tol = 1E-14: ' Hassasiyet, 1E-8 - 1E-14 aras normal
Maxit = 100: ' Aralk yarlama says, 10-200 aras normal

ri.
co

' INPUTS
' x1,x2 : interval to be search for a root of f(x)
' Maxit : maximum number of iterations

Tol1 = 2 * Eps * ABS(b) + .5 * Tol


xm = .5 * (c - b)
IF (ABS(xm) <= Tol1) AND (ABS(Fb) <= Zero) THEN
' A root has been found
DekkerBrent = b
EXIT FUNCTION
END IF

IF p > Zero THEN q = -q


p = ABS(p)
aMin = 3 * xm * q - ABS(Tol1 * q)
amin1 = ABS(e * q)
IF amin1 < aMin THEN aMin = amin1
IF 2 * p < aMin THEN
e=d
d=p/q
ELSE
d = xm
e=d
END IF
ELSE
d = xm
e=d
END IF
a=b
Fa = Fb
IF ABS(d) > Tol1 THEN
b=b+d
ELSE
IF xm >= 0 THEN
b = b + ABS(Tol1)
ELSE
b = b - ABS(Tol1)
END IF
END IF
Fb = fnf(b)
NEXT iTer
iErr = 2
DekkerBrent = 0
END FUNCTION ' End of DekkerBrent

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

286

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

287

Newton-Raphson(Newton) metodu

NewtonRaphson program f(x)=a0+a1x+a2x2++anxn polinomunun n tane olan tm sanal


ve/veya gerek kklerini bulur. Aadaki rnekler iin test edilmitir.

rnekler:

2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4

ri.
co

1. f(x) = 128 x 4 256 x 3 + 160 x 2 32 x + 1


3. f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040
4. f(x) = x 8 1
5. f(x) = x 5 3.7 x 4 + 7.4 x 3 10.8 x 2 + 10.8 x 6.8
6. f(x) = x 3 21x 20
6

NewtonRaphson sonular:

sn
o

8. f ( x ) = x 4 10 x 3 + 35 x 2 50 x + 24

tla

Isaac Newton, 1643-1727, ngiliz

7. f(x) = x 170 x + 7392 x 39712 x + 51200


8

em
de
r

1. f(x) = 128 x 4 256 x 3 + 160 x 2 32 x + 1 = 0

3 . f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040 = 0

w
.e

2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

287

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

288

em
de
r

6. f(x) = x 3 21x 20 = 0

sn
o

tla

5. f(x) = x 5 3.7 x 4 + 7.4 x 3 10 .8 x 2 + 10.8 x 6.8 = 0

ri.
co

4. f(x) = x 8 1 = 0

w
.e

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0

8. f ( x) = x 4 10 x 3 + 35 x 2 50 x + 24 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

288

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

ri.
co

' Fonksiyonun derecesi n ve a0, a1,a2,..,an katsaylar


n = 4: DATA 1,-32,160,-256,128
'n = 5: DATA -4,-10,2,4,-3,1
'n = 7: DATA -5040,13068,-13132,6769,-1960,322,-28,1
'n = 8: DATA -1,0,0,0,0,0,0,0,1
'n = 5: DATA -6.8,10.8,-10.8,7.4,-3.7,1
'n = 3: DATA -20,-21,0,1
'n = 8: DATA 51200,0,-39712,0,7392,0,-170,0,1
'n = 4: DATA 24,-50,35,-10,1
DIM Coeff(n + 1): ' Katsaylar
DIM rPart(n) 'gerek kkler
DIM sPart(n): ' sanal kkler

CALL NewtonRaphson(n, Coeff(), rPart(), sPart(), ihata)

sn
o

IF ihata <> 0 THEN


PRINT "Kkler bulunamad(NewtonRaphson)"
END
END IF

tla

FOR i = 1 TO n + 1
READ Coeff(i)
NEXT i
CLS

NewtonRaphson

'-----------------Ana Program NewtonRaphson---------------------' n. dereceden f(x) polinomunun sanal ve/veya gerek kklerini bulur
'arlan program: NewtonRaphson
'---------------------------------------------------------------DEFINT M-N
DEFDBL A-H, O-Z
DECLARE SUB NewtonRaphson (n, Coeff(), rPart(), sPart(), ihata)

289

PRINT "Polinomun kkleri(NewtonRapson):"


PRINT
PRINT "Kk No"; TAB(10); "Gerek ksm"; TAB(35); "Sanal ksm"
FOR i = 1 TO n
PRINT TAB(5); i; TAB(10); rPart(i); TAB(35); sPart(i)
NEXT i

em
de
r

END ' NewtonRaphson ana

w
.e

SUB NewtonRaphson (n, Coeff(), rPart(), sPart(), iHata)


'------------------------------------------------------------------------' f(x)=a0+a1*x+a2*x^2+...+an*x^n polinomunun gerek ve/veya sanal kklerinin esab
' Metot: Newton-Raphson
' n+1 katsay Coeff(n+1) vektrnde aadaki gibi depolanm olmaldr:
' coeff(1)=a0, coeff(2)=a2,...,coeff(n+1)=an.
' n: polinomun derecesi
' eps : hassasiyet
' Maxit :maximum iterasyon says
' rpart(n): kklerin gerek ksm
' sPart: kklerin sanal ksm
' arlan alt program: yok
'------------------------------------------------------------------------DIM b(n + 1) 'ara ilem vektr
Maxit = 200
eps = 1E-08
iFit = 0
n9 = n
nx = n9
nxx = n9 + 1
n2 = 1
k = n9 + 1
FOR L = 1 TO k
b(k - L + 1) = Coeff(L)
NEXT L

3 x0 = .00500101# ' # iareti DOUBLE anlamndadr


y0 = .01000101#
in = 0
4 x = x0
x0 = -10 * y0
y0 = -10 * x
x = x0
y = y0
in = in + 1
GOTO 6
5 iFit = 1
xpr = x
ypr = y

NewtonRaphson sonraki sayfada devam ediyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

289

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

FOR i = 1 TO n9
L = n9 - i + 1
temp = b(L)
xt2 = x * xt - y * yt
yt2 = x * yt + y * xt
u = u + temp * xt2
v = v + temp * yt2
ux = ux + i * xt * temp
uy = uy - i * yt * temp
xt = xt2
yt = yt2
NEXT I

sn
o

sumsq = ux * ux + uy * uy
IF sumsq = 0 GOTO 9
dx = (v * uy - u * ux) / sumsq
x = x + dx
dy = -(u * uy + v * ux) / sumsq
y = y + dy
IF ABS(dy) + ABS(dx) < eps GOTO 8
iCt = iCt + 1
IF iCt <= Maxit GOTO 7
IF iFit <> 0 GOTO 8
IF in < 5 GOTO 4
iHata = 2 ' maksimum iterasyon says ald
EXIT SUB

ri.
co

NewtonRaphson devam

tla

6 iCt = 0
7 ux = 0
uy = 0
v=0
xt = 1
yt = 0
u = b(n9 + 1)
IF u = 0 GOTO 11

290

em
de
r

8 FOR L = 1 TO nxx
mt = k - L + 1
temp = Coeff(mt)
Coeff(mt) = b(L)
b(L) = temp
NEXT L
iTemp = n9
n9 = nx
nx = iTemp
IF iFit = 0 THEN GOTO 5 ELSE GOTO 10
9 IF iFit = 0 GOTO 4
x = xpr
y = ypr

w
.e

10 iFit = 0
IF ABS(x) >= 1E-20 THEN IF ABS(y / x) < 1E-10 GOTO 12
IF ABS(x) < 1E-20 THEN x = 0
alpha = x + x
sumsq = x * x + y * y
n9 = n9 - 2
GOTO 13
11 x = 0
nx = nx - 1
nxx = nxx - 1
12 y = 0
sumsq = 0
alpha = x
n9 = n9 - 1

13 b(2) = b(2) + alpha * b(1)


FOR L = 2 TO n9
b(L + 1) = b(L + 1) + alpha * b(L) - sumsq * b(L - 1)
NEXT L
14 sPart(n2) = y
rPart(n2) = x
n2 = n2 + 1
IF sumsq = 0 GOTO 15
y = -y
sumsq = 0
GOTO 14
15 IF n9 > 0 THEN GOTO 3
END SUB ' NewtonRaphson
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

290

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

291

Bairstow metodu

Bairstow program f(x)=a0+a1x+a2x2++anxn polinomunun n tane olan tm sanal ve/veya


gerek kklerini bulur. Aadaki rnekler iin test edilmitir.

1. f(x) = 128 x 4 256 x 3 + 160 x 2 32 x + 1


2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4

ri.
co

rnekler:

4. f(x) = x 8 1
5. f(x) = x 5 3.7 x 4 + 7.4 x 3 10.8 x 2 + 10.8 x 6.8
6. f(x) = x 3 21x 20
7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200

Bairstow sonular:

Leonard Bairstow
1880-1963, ngiliz

sn
o

8. f ( x ) = x 4 10 x 3 + 35 x 2 50 x + 24

tla

3. f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040

em
de
r

1. f(x) = 128x 4 256 x 3 + 160 x 2 32 x + 1 = 0

3. f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040 = 0

w
.e

2. f(x) = x 5 3x 4 + 4 x 3 + 2 x 2 10 x 4 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

291

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

292

em
de
r

6. f(x) = x 3 21x 20 = 0

sn
o

tla

5 . f(x) = x 5 3 .7 x 4 + 7 .4 x 3 10 .8 x 2 + 10 .8 x 6 .8 = 0

ri.
co

4. f(x) = x 8 1 = 0

w
.e

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0

8. f ( x) = x 4 10 x 3 + 35 x 2 50 x + 24 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

292

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

ri.
co

' f(x) polinomunu derecesi n ve katsaylar an,..., a2,a1


n = 4: DATA 128,-256,160,-32,1
'n = 5: DATA 1,-3,4,2,-10,-4
'n = 7: DATA 1,-28,322,-1960,6769,-13132,13068,-5040
'n = 8: DATA 1,0,0,0,0,0,0,0,-1
'n = 5: DATA 1,-3.7,7.4,-10.8,10.8,-6.8
'n = 3: DATA 1,0,-21,-20
'n = 8: DATA 1,0,-170,0,7392,0,-39712,0,51200
'n = 4: DATA 1,-10,35,-50,24
DIM a(n + 3) ' katsaylar vektr
DIM rPart(n) ' kkn gerek ksm
DIM sPart(n) ' kkn sanal ksm

tla

FOR i = 3 TO n + 3
READ a(i)
NEXT i

Bairstow

'--------------------------Ana Program Bairstow---------------------' n. dereceden f(x) polinomunun sanal ve/veya gerek kklerini bulur
' arlan alt program: Bairstow
'-------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Bairstow (n, a(), rPart(), sPart(), iHata)

293

CLS

sn
o

CALL Bairstow(n, a(), rPart(), sPart(), iHata)


IF iHata <> 0 THEN
PRINT "Hata:"; iHata; ", Kk bulunamad (Bairstow)"
END
END IF

em
de
r

PRINT "Polinomun kkleri(Bairstow):"


PRINT "Kok no"; TAB(10); "Gerek ksm"; TAB(35); "Sanal ksm"
FOR i = 1 TO n
PRINT TAB(5); i; TAB(10); rPart(i); TAB(35); sPart(i)
NEXT i

END ' Baistow ana sonu

w
.e

SUB Bairstow (n, a(), rPart(), sPart(), iHata)


'------------------------------------------------------------------------' f(x)=an*x^n+...+a3*x^3+a2*x^2+a1*x+a0 polinomunun sanal ve gerek kklerin bulur.
'Metod: Bairstow
'veri:
' a(n+3): katsaylarn depoland n+3 boyutlu vektr. n+1 katsay aadaki gibi
' depolanm olmaldr: a(3)=an,..., a(n+1)=a2,a(n+2)=a1,a(n+3)=a0
' n: polinomun derecesi
'kt:
' rpart(n): kklerin gerek ksm
' sPart(n): kklerin sanal ksm
' iHata =0 : kkler bulundu
'
<>0 : kkler bulunamad

' arlan alt program: yok


'------------------------------------------------------------------------iHata = 0 ' hata bayra
eps = 1E-08 ' Hata yzdesi
maxit = 500 ' maksimum iterasyon
r1 = 0
' balang deeri
s1 = 0
' balang deeri
FOR i = 1 TO n
rPart(i) = 0
sPart(i) = 0
NEXT i
n3 = n + 3
DIM b(n3), c(n3) ' Ara ilem vektrleri
n1 = n
IF n1 > 0 AND a(3) = 0 THEN
iHata = 1 ' Polinomun tanm hatal
EXIT SUB
END IF
IF n1 = 1 THEN
b(3) = a(3)
b(4) = a(4)
GOTO 11
END IF

Bairstow sonraki sayfada devam ediyor

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

293

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

ri.
co

Bairstow devam

4 r = r1
s = s1
5 FOR i = 3 TO n3
b(i) = a(i) + r * b(i - 1) + s * b(i - 2)
c(i) = b(i) + r * c(i - 1) + s * c(i - 2)
NEXT i
f = c(n1 + 1) ^ 2 - c(n1 + 2) * c(n1)
IF f = 0 THEN
r1 = r1 + 1
s1 = s1 + 1
GOTO 4
END IF

em
de
r

' maks iterasyon ald m?


IF iSay >= maxit THEN
iHata = 2 ' Maks iterasyon ald
EXIT SUB
END IF

sn
o

deLr = (-b(n1 + 2) * c(n1 + 1) + c(n1) * b(n3)) / f


deLi = (-c(n1 + 1) * b(n3) + b(n1 + 2) * c(n1 + 2)) / f
r = r + deLr
s = s + deLi
IF ABS(deLr) + ABS(deLi) <= eps GOTO 7

tla

3 n3 = n1 + 3
IF n1 = 2 THEN
r = -a(4) / a(3)
s = -a(5) / a(3)
GOTO 7
END IF
iSay = 1
b(1) = 0
b(2) = 0
c(1) = 0
c(2) = 0

294

6 iSay = iSay + 1
GOTO 5

7 diskr = s + .25 * r * r
IF diskr < 0 GOTO 8
IF diskr > 0 GOTO 9
x1 = .5 * r
x2 = x1
y1 = 0: y2 = 0
GOTO 10

w
.e

8 x1 = .5 * r
x2 = x1
y1 = SQR(-diskr)
y2 = -y1
GOTO 10

9 x1 = .5 * r + SQR(diskr)
x2 = -s / x1
y1 = 0
y2 = 0
10 rPart(n1) = x1
sPart(n1) = y1
rPart(n1 - 1) = x2
sPart(n1 - 1) = y2
n1 = n1 - 2
IF n1 < 1 THEN EXIT SUB
IF n1 = 1 GOTO 11
n3 = n1 + 3
FOR i = 3 TO n3
a(i) = b(i)
NEXT i
GOTO 3
11 x1 = -b(4) / b(3)
rPart(n1) = x1
sPart(n1) = 0
END SUB ' Bairstow

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

294

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

295

Mller metodu

Muller program f(x)=a0+a1x+a2x2++anxn polinomunun gerek kklerini bulur, sanal kk


bulmaz. Aadaki rnekler iin test edilmitir.
rnekler:

2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4

ri.
co

1. f(x) = 128 x 4 256 x 3 + 160 x 2 32 x + 1

4. f(x) = x 8 1
5. f(x) = x 5 3.7 x 4 + 7.4 x 3 10.8 x 2 + 10.8 x 6.8
6. f(x) = x 3 21x 20
7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200
8. f ( x ) = x 10 x + 35 x 50 x + 24
3

Muller sonular:

David E. Mller, 1924-2008


Amerikal

sn
o

tla

3. f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040

em
de
r

1. f(x) = 128x 4 256 x 3 + 160 x 2 32 x + 1 = 0

w
.e

2. f(x) = x 5 3x 4 + 4 x 3 + 2 x 2 10 x 4 = 0

3 . f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

295

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

296

em
de
r

6. f(x) = x 3 21x 20 = 0

sn
o

tla

5 . f(x) = x 5 3 .7 x 4 + 7 .4 x 3 10 .8 x 2 + 10 .8 x 6 .8 = 0

ri.
co

4. f(x) = x 8 1 = 0

w
.e

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0

8. f ( x) = x 4 10 x 3 + 35 x 2 50 x + 24 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

296

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

297

ri.
co

'----------------------------Ana Program Muller----------------------------------------Muller


' n. dereceden f(x) polinomunun sadece gerek kklerini bulur, sanal kk bulmaz.
' arlan alat program: Muller
------------------------------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Muller (n, zeros(), iFound)
' polinomun ve derecesinin tanm
n = 4: DEF fnf (x) = 128 * x ^ 4 - 256 * x ^ 3 + 160 * x ^ 2 - 32 * x + 1
'n = 5: DEF fnf (x) = x ^ 5 - 3 * x ^ 4 + 4 * x ^ 3 + 2 * x ^ 2 - 10 * x - 4
'n = 7: DEF fnf (x) = x ^ 7 - 28 * x ^ 6 + 322 * x ^ 5 - 1960 * x ^ 4 + 6769 * x ^ 3 - 13132 * x ^ 2 + 13068 * x - 5040
'n = 8: DEF fnf (x) = x ^ 8 - 1
'n = 5: DEF fnf (x) = x ^ 5 - 3.7 * x ^ 4 + 7.4 * x ^ 3 - 10.8 * x ^ 2 + 10.8 * x - 6.8
'n = 3: DEF fnf (x) = x ^ 3 - 21 * x - 20
'n = 8: DEF fnf (x) = x ^ 8 - 170 * x ^ 6 + 7392 * x ^ 4 - 39712 * x * x + 51200
'n = 4: DEF fnf (x) = x ^ 4 - 10 * x ^ 3 + 35 * x ^ 2 - 50 * x + 24

DIM zeros(n): ' vector of zeros found


CLS

IF iFound = 0 THEN PRINT "Kk bulunamad(Muller)": END

END ' Muller ana

sn
o

PRINT "Polinomun bulunabilen kkleri(Muller):"


PRINT "Kk no"; TAB(10); "x"; TAB(35); "f(x)"
FOR i = 1 TO iFound
PRINT i; TAB(10); zeros(i); TAB(35); fnf(zeros(i))
NEXT i

tla

CALL Muller(n, zeros(), iFound)

em
de
r

SUB Muller (n, zeros(), iFound)


'------------------------------------------------------------------------' f(x)=an*x^n+...+a3*x^3+a2*x^2+a1*x+a0 polinomunun gerek ve/veya sanal kklerinin hesab
' Metod: Mller
' f(x) fonksiyonu ana programda tanmlanm olmaldr
' n boyutlu Zeros(n) vektr ana programda boyutlandrlm olmaldr
' n: polinomun derecesi
' iFound: bulunabilen kk says
' zeros(n): kklerin depoland vektr
' maxit: herbir kk iin maksimum iterasyon says
' epsf: hassasiyet

' arlan alt program: deflate


'------------------------------------------------------------------------DIM x(n)
epsf = 1E-08
maxit = 50

w
.e

FOR i = 1 TO n
x(i) = 0
NEXT i

iFound = 0
FOR i = 1 TO n
iCount = 0
2 x2 = x(i)
x0 = x2 - .5
x1 = x2 + .5
z = x0
GOSUB 4
f0 = fzrdfL
z = x1
GOSUB 4
f1 = fzrdfL
z = x2
GOSUB 4
f2 = fzrdfL

h1 = x1 - x0
h2 = x2 - x1
f21 = (f2 - f1) / h2
f10 = (f1 - f0) / h1

Muller sonraki sayfada devam ediyor


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

297

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

f210 = (f21 - f10) / (h2 + h1)


c = f21 + h2 * f210
sq = c * c - 4 * f2 * f210

298

Muller devam

IF sq < 0 THEN sq = 0 ' sanal kk atla

x3 = x2 + h3
z = x3
GOSUB 4
f3 = fzrdfL

ri.
co

' Yaknsama var m?


IF ABS(f2) < epsf THEN
iFound = iFound + 1
zeros(iFound) = x3
GOTO 6
END IF

tla

' maksimum iterasyon says ald m?


IF iCount > maxit GOTO 6

em
de
r

sn
o

' raksama var m?


IF ABS(f3) >= 5 * ABS(f2) THEN
h3 = .5 * h3
GOTO 5
END IF
' deerleri aktar
f32 = (f3 - f2) / h3
f10 = f21
f21 = f32
h1 = h2
h2 = h3
f2 = f3
x2 = x3
GOTO 3
6 x(i) = x3
NEXT i

IF c < 0 THEN sq = c - SQR(sq) ELSE sq = c + SQR(sq)


IF ABS(sq) = 0 THEN h3 = -2 * f2 ELSE h3 = -2 * f2 / sq

EXIT SUB

' Alt program deflate


4 iCount = iCount + 1
fzr = fnf(z): fzrdfL = fzr
IF i < 2 THEN RETURN
FOR j = 2 TO i
sq = z - x(j - 1)
IF ABS(sq) = 0 THEN
x(i) = z * 1.001
RETURN
END IF

w
.e

fzrdfL = fzrdfL / sq
NEXT j
RETURN

END SUB ' Muller sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

298

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

299

Jenkins-Traub metodu

JenkinsTraub program f(x)=a0+a1x+a2x2++anxn polinomunun n tane olan tm sanal


ve/veya gerek kklerini bulur. Aadaki rnekler iin test edilmitir.
rnekler:

2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4

ri.
co

1. f(x) = 128 x 4 256 x 3 + 160 x 2 32 x + 1

4. f(x) = x 8 1
5. f(x) = x 5 3.7 x 4 + 7.4 x 3 10.8 x 2 + 10.8 x 6.8
6. f(x) = x 3 21x 20
7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200

JenkinsTraub sonular:

Joseph Frederick Traub, 1932Amerikal

sn
o

8. f ( x ) = x 4 10 x 3 + 35 x 2 50 x + 24

tla

3. f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040

em
de
r

1. f(x) = 128x 4 256 x 3 + 160 x 2 32 x + 1 = 0

3 . f(x) = x 7 28 x 6 + 322 x 5 1960 x 4 + 6769 x 3 13132 x 2 + 13068 x 5040 = 0

w
.e

2. f(x) = x 5 3x 4 + 4 x 3 + 2 x 2 10 x 4 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

299

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

300

em
de
r

6. f(x) = x 3 21x 20 = 0

sn
o

tla

5 . f(x) = x 5 3 .7 x 4 + 7 .4 x 3 10 .8 x 2 + 10 .8 x 6 .8 = 0

ri.
co

4. f(x) = x 8 1 = 0

w
.e

7. f(x) = x 8 170 x 6 + 7392 x 4 39712 x 2 + 51200 = 0

8. f ( x) = x 4 10 x 3 + 35 x 2 50 x + 24 = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

300

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

JenkinsTraub

'------------------Ana program JenkinsTraub---------------------------' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010


' Gerek katsayl n. derece f(x)=an x^n+...+a2x^2+a1x+a0
' polinomunun gerek ve sanal kklerini bulur

' i,j,k,L,m,n harfleri ile balayan deikenler tam say(INTEGER),


' tm dierleri ift hassasitli(DOUBLE) deikendir.

' kt:
' iDegree=0 kk bulunamad
'
<>0 iDegree adet kk bulundu
' ZeroR : bulunan kklerin gerek ksmnn depoland vektr
' Zeroi : bulunan kklerin sanal ksmnn depoland vektr

tla

' arlan alt program: Rpoly

ri.
co

' Metot: Jenkins-Traub


' Veri:
' Op(n+1) : polinomun katsaylarnn depoland n+1 boyutlu vektr
' n
: polinomun derecesi

301

' Alt programlarn alnd yer: http://www.netlib.org/toms/493


'------------------------------------------------------------------------------

SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB

Rpoly (op(), iDegree, Zeror(), Zeroi())


Quadsd (nn, u, v, p(), q(), a, b)
Fxshfr (L2, nz)
Quadit (uu, vv, nz)
Realit (sss, nz, iflag)
Calcsc (itype)
Nextk (itype)
Newest (itype, uu, vv)
Quad (a, b1, c, sr, si, dLr, dLi)

em
de
r

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

sn
o

DEFINT I-N
DEFDBL A-H, O-Z

' f(x) polinomunun derecesi n1 ve katsaylar an,..., a2,a1


'n = 4: DATA 128,-256,160,-32,1
'n = 5: DATA 1,-3,4,2,-10,-4
'n = 7: DATA 1,-28,322,-1960,6769,-13132,13068,-5040
'n = 8: DATA 1,0,0,0,0,0,0,0,-1
'n = 5: DATA 1,-3.7,7.4,-10.8,10.8,-6.8
'n = 3: DATA 1,0,-21,-20
'n = 8: DATA 1,0,-170,0,7392,0,-39712,0,51200
'n = 4: DATA 1,-10,35,-50,24

' Global deikenler


DIM SHARED p(n + 1), qp(n + 1), dk(n + 1), qk(n + 1), svk(n + 1)
DIM SHARED sr, si, u, v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g
DIM SHARED h, szr, szi, dLzr, dLzi, Eta, are, dmre, n1, nn

w
.e

CLS

DIM op(n + 1), Zeror(n), Zeroi(n)


FOR i = 1 TO n + 1
READ op(i): ' Polinomun katsaylar
NEXT i
iDegree = n
CALL Rpoly(op(), iDegree, Zeror(), Zeroi())
IF iDegree = 0 THEN
PRINT "Kkler bulunamad(JenkinsTraub)"
END
END IF
PRINT "Polinomun bulunabilen kkleri(JenkinsTraub):"
PRINT "Kk No:"; TAB(10); "Gerek ksm:"; TAB(35); "Sanal ksm:"
FOR i = 1 TO iDegree
PRINT TAB(5); i; TAB(10); Zeror(i); TAB(35); Zeroi(i)
NEXT i

END ' Ana program JenkinsTraub sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

301

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

SUB Rpoly (op(), iDegree, Zeror(), Zeroi())


'--------------------------------------------------------' Fnds The Zeros Of A Real Polynomal
' Op : Double Precson Vector Of Coeffcents In
'
order of decreasng powers.
' iDegree: Degree of polynomal.
' ZeroR : Output vector of real parts of the zeros.

ri.
co

' Zeroi : Output vector of magnary parts of the zeros.


' All calculatons for the teratons are done n double
' precson.
' Subroutines called: Quad, FXSHFR

sn
o

the followng statements set machne constants used


n varous parts of the program. the meanng of the
four constants are
eta The maxmum relatve representaton error
whch can be descrbed as the smallest
postve floatng pont number such that
1.d0+eta s greater than 1.
dinFin The largest floatng-pont number.
smaLno The smallest postve floatng-pont number
f the exponent range dffers n sngle and
double precson then smalno and dinfin
should ndcate the smaller range.
dbase the base of the floatng-pont number system used.

em
de
r

'
'
'
'
'
'
'
'
'
'
'
'
'

tla

' Fortran code:http://www.netlib.org/toms/493


'-------------------------------------------------------Ndim = iDegree + 1
DIM temp(Ndim), pt(Ndim)
' Variable BASE is renamed to dBase
' LZerok is used as boolean variable

302

' The values below set machine constants


r4 = 1
r4t = 1 + (r4 / 2)
1
IF 1 < r4t THEN
r4 = r4 / 2
r4t = 1 + (r4 / 2)
GOTO 1
END IF
Epsilon = .5 * r4: 'machine Epsilon

w
.e

dBase = 2: ' Binary taban


Eta = Epsilon: 'Hassasiyet
dinFin = 1E+30: ' en byk say
smaLno = 1E-37: ' en kk say
' are and dmre refer to the unt error n + and *
' respectvely. they are assumed to be the same as eta.
are = Eta
dmre = Eta
dLo = smaLno / Eta
' ntalzaton of constants for shft rotaton
xx = SQR(.5)
yy = -xx
Rot = 94: ' Rotation 94 degree
Rot = Rot * 4 * ATN(1) / 180': Convert degree to radian
cosr = COS(Rot)
sinr = SIN(Rot)
n1 = iDegree
nn = n1 + 1
' algorthm fals f the leadng coeffcent s zero.
IF op(1) = 0 THEN
iDegree = 0
EXIT SUB
END IF
' remove the zeros at the orgn f any
103 IF op(nn) = 0 THEN
j = iDegree - n1 + 1
Zeror(j) = 0
Zeroi(j) = 0
nn = nn - 1
n1 = n1 - 1
GOTO 103
END IF
' make a copy of the coeffcents
FOR i = 1 TO nn
Rpoly devam ediyor
p(i) = op(i)
NEXT i

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

302

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

w
.e

em
de
r

sn
o

tla

ri.
co

' start the algorthm for one zero


41 IF n1 <= 2 THEN
IF n1 < 1 THEN EXIT SUB
' calculate the fnal zero or par of zeros
IF n1 <> 2 THEN
Zeror(iDegree) = -p(2) / p(1)
Zeroi(iDegree) = 0
EXIT SUB
END IF
CALL Quad(p(1), p(2), p(3), Zeror(iDegree - 1), Zeroi(iDegree - 1), Zeror(iDegree), Zeroi(iDegree))
EXIT SUB
END IF
' fnd largest and smallest modul of coeffcents.
dMax = 0
dMin = dinFin
FOR i = 1 TO nn
x = ABS(p(i))
IF x > dMax THEN dMax = x
IF x <> 0 AND x < dMin THEN dMin = x
NEXT i
' scale f there are large or very small coeffcents
' computes a scale factor to multply the
' coeffcents of the polynomal. the scalng s done
' to avod overflow and to avod undetected underflow
' nterferng wth the convergence crteron.
' the factor s a power of the dbase
sc = dLo / dMin
IF sc <= 1 THEN
IF dMax < 10 THEN GOTO 110
IF sc = 0 THEN sc = smaLno
ELSE
IF (dinFin / sc) < dMax THEN GOTO 110
END IF
L = LOG(sc) / LOG(dBase) + .5
factor = dBase ^ L
IF factor <> 1 THEN
FOR i = 1 TO nn
p(i) = factor * p(i)
NEXT i
END IF
' compute lower bound on modul of zeros.
110 FOR i = 1 TO nn
pt(i) = ABS(p(i))
NEXT i
pt(nn) = -pt(nn)
' compute upper estmate of bound
x = EXP((LOG(-pt(nn)) - LOG(pt(1))) / n1)
IF pt(n1) <> 0 THEN
' f newton step at the orgn s better, use t.
xm = -pt(nn) / pt(n1)
IF xm < x THEN x = xm
END IF
' chop the nterval (0,x) untl ff .le. 0
130 xm = x * .1
ff = pt(1)
FOR i = 2 TO nn
ff = ff * xm + pt(i)
NEXT i
IF ff > 0 THEN
x = xm
GOTO 130
END IF
dx = x
' do newton teraton untl x converges to two
' decmal places
160 IF ABS(dx / x) > .005 THEN
ff = pt(1)
df = ff
FOR i = 2 TO n1
ff = ff * x + pt(i)
df = df * x + ff
NEXT i
ff = ff * x + pt(nn)
dx = ff / df
x = x - dx
GOTO 160
END IF
bnd = x
Rpoly devam ediyor

303

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

303

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

m
ri.
co
tla

w
.e

em
de
r

sn
o

' compute the dervatve as the ntal dk polynomal


' and do 5 steps wth no shft
nm1 = n1 - 1
FOR i = 2 TO n1
dk(i) = (nn - i) * p(i) / n1
NEXT i
dk(1) = p(1)
aa = p(nn)
bb = p(n1)
Lzerok = (dk(n1) = 0)
FOR jj = 1 TO 5
cc = dk(n1)
IF Lzerok = 0 THEN
' use scaled form of recurrence f value of dk at 0 s nonzero
t = -aa / cc
FOR i = 1 TO nm1
j = nn - i
dk(j) = t * dk(j - 1) + p(j)
NEXT i
dk(1) = p(1)
Lzerok = (ABS(dk(n1)) <= ABS(bb) * Eta * 10)
ELSE
' use unscaled form of recurrence
FOR i = 1 TO nm1
j = nn - i
dk(j) = dk(j - 1)
NEXT i
dk(1) = 0
Lzerok = (dk(n1) = 0)
END IF
NEXT jj
' save dk for restarts wth new shfts
FOR i = 1 TO n1
temp(i) = dk(i)
NEXT i
' loop to select the quadratc correspondng to each
' new shft
FOR icnt = 1 TO 20
' quadratc corresponds to a double shft to a
' non-real pont and ts complex conjugate. the pont
' has modulus bnd and ampltude rotated by 94 degrees
' from the prevous shft
xxx = cosr * xx - sinr * yy
yy = sinr * xx + cosr * yy
xx = xxx
sr = bnd * xx
si = bnd * yy
u = -2 * sr
v = bnd
' second stage calculaton, fxed quadratc
CALL Fxshfr(20 * icnt, nz)
IF nz <> 0 THEN
' the second stage jumps drectly to one of the thrd
' stage teratons and returns here f successful.
' deflate the polynomal, store the zero or zeros and
' return to the man algorthm.
j = iDegree - n1 + 1
Zeror(j) = szr
Zeroi(j) = szi
nn = nn - nz
n1 = nn - 1
FOR i = 1 TO nn
p(i) = qp(i)
NEXT i
IF nz = 1 THEN GOTO 41
Zeror(j + 1) = dLzr
Zeroi(j + 1) = dLzi
GOTO 41
END IF
' f the teraton s unsuccessful another quadratc
' s chosen after restorng dk
FOR i = 1 TO n1
dk(i) = temp(i)
NEXT i
NEXT icnt
' return wth falure f no convergence wth 202 shfts
iDegree = iDegree - n1

304

END SUB ' Rpoly

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

304

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

305

w
.e

em
de
r

sn
o

tla

ri.
co

SUB Fxshfr (L2, nz)


GOTO 21
'----------------------------------------------------------END IF
' computes up to l2 fxed shft dk-polynomals,
' restore varables
' testng for convergence n the lnear or quadratc
50
u = svu
' case. ntates one of the varable shft
v = svv
' teratons and returns wth the number of zeros found.
FOR i = 1 TO n1
' l2 - lmt of fxed shft steps
dk(i) = svk(i)
' nz - number of zeros found
NEXT i
' Subroutines called: Quadsd,Calcsc,Nextk,Newest, Quadit
' try quadratc teraton f t has not been tred
'
Realit
' and the v sequence s convergng
'----------------------------------------------------------IF Lvpass AND Lvtry = 0 THEN GOTO 21
' Varible TYPE is renamed to iType
' recompute qp and scalar values to contnue the
' Lvpass, Lspass, Lvtry, Lstry are used as Boolean variables:
' second stage
' 1=TRUE, 0=FALSE
CALL Quadsd(nn, u, v, p(), qp(), a, b)
nz = 0
CALL Calcsc(itype)
betav = .25
END IF
betas = .25
END IF
oss = sr
ovv = vv
ovv = v
oss = ss
' evaluate polynomal by synthetc dvson
otv = tv
CALL Quadsd(nn, u, v, p(), qp(), a, b)
ots = ts
CALL Calcsc(itype)
NEXT j
FOR j = 1 TO L2
' calculate next dk polynomal and estmate v
END SUB 'Fxshfr
CALL Nextk(itype)
CALL Calcsc(itype)
CALL Newest(itype, ui, vi)
vv = vi
' estmate s
ss = 0
IF dk(n1) <> 0 THEN ss = -p(nn) / dk(n1)
tv = 1
ts = 1
IF j <> 1 AND itype <> 3 THEN
' compute relatve measures of convergence of s and v
' sequences
IF vv <> 0 THEN tv = ABS((vv - ovv) / vv)
IF ss <> 0 THEN ts = ABS((ss - oss) / ss)
' f decreasng, multply two most recent
' convergence measures
tvv = 1
IF tv < otv THEN tvv = tv * otv
tss = 1
IF ts < ots THEN tss = ts * ots
' compare wth convergence crtera
Lvpass = tvv < betav
Lspass = tss < betas
IF Lspass OR Lvpass THEN
' at least one sequence has passed the convergence
' test. store varables before teratng
svu = u
svv = v
FOR i = 1 TO n1
svk(i) = dk(i)
NEXT i
s = ss
' choose teraton accordng to the fastest
' convergng sequence
Lvtry = 0: ' set to FALSE
Lstry = 0: ' set to FALSE
IF Lspass AND (Lvpass = 0 OR tss < tvv) THEN GOTO 40
21
CALL Quadit(ui, vi, nz)
IF nz > 0 THEN EXIT SUB
' quadratc teraton has faled. flag that t has
' been tred and decrease the convergence crteron.
Lvtry = 1: 'Set to TRUE
betav = betav * .25
' try lnear teraton f t has not been tred and
' the s sequence s convergng
IF Lstry OR Lspass = 0 THEN GOTO 50
FOR i = 1 TO n1
dk(i) = svk(i)
NEXT i
40
CALL Realit(s, nz, iflag)
IF nz > 0 THEN EXIT SUB
' lnear teraton has faled. flag that t has been
' tred and decrease the convergence crteron
Lstry = 1: ' set to TRUE
betas = betas * .25
IF iflag <> 0 THEN
' f lnear teraton sgnals an almost double real
' zero attempt quadratc nteraton
ui = -(s + s)
vi = s *Bilgisayar
s
Ahmet TOPU,
Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

305

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

306

w
.e

em
de
r

sn
o

tla

ri.
co

SUB Quadit (uu, vv, nz)


'-----------------------------------------------------------------' varable-shft dk-polynomal teraton for a
' quadratc factor converges only f the zeros are
' equmodular or nearly so.
' uu,vv - coeffcents of startng quadratc
' nz - number of zero found
' Subroutines called: Quad,Quadsd,Calcsc,Newest, Nextk,Quadit
'-----------------------------------------------------------------' Ltried is used as boolean variable
nz = 0
Ltried = 0: 'set to FALSE
u = uu
v = vv
j=0
' man loop
101 CALL Quad(1, u, v, szr, szi, dLzr, dLzi)
' return f roots of the quadratc are real and not
' close to multple or nearly equal and of opposte sgn
IF ABS(ABS(szr) - ABS(dLzr)) > .01 * ABS(dLzr) THEN EXIT SUB
' evaluate polynomal by quadratc synthetc dvson
CALL Quadsd(nn, u, v, p(), qp(), a, b)
dmp = ABS(a - szr * b) + ABS(szi * b)
' compute a rgorous bound on the roundng error n evalutng p
zm = SQR(ABS(v))
ee = 2 * ABS(qp(1))
t = -szr * b
FOR i = 2 TO n1
ee = ee * zm + ABS(qp(i))
NEXT i
ee = ee * zm + ABS(a + t)
ee = (5 * dmre + 4 * are) * ee - (5 * dmre + 2 * are) * (ABS(a + t) + ABS(b) * zm) + 2 * are * ABS(t)
' teraton has converged suffcently f the
' polynomal value s less than 20 tmes ths bound
IF dmp <= 20 * ee THEN
nz = 2
EXIT SUB
END IF
j=j+1
' stop teraton after 20 steps
IF j > 20 THEN EXIT SUB
IF j >= 2 THEN
IF (relstp > .01 OR dmp < omp OR Ltried) = 0 THEN
' a cluster appears to be stallng the convergence.
' fve fxed shft steps are taken wth a u,v close
' to the cluster
IF relstp < Eta THEN relstp = Eta
relstp = SQR(relstp)
u = u - u * relstp
v = v + v * relstp
CALL Quadsd(nn, u, v, p(), qp(), a, b)
FOR i = 1 TO 5
CALL Calcsc(itype)
CALL Nextk(itype)
NEXT i
Ltried = 1: ' set to TRUE
j=0
END IF
END IF
omp = dmp
' calculate next dk polynomal and new u and v
CALL Calcsc(itype)
CALL Nextk(itype)
CALL Calcsc(itype)
CALL Newest(itype, ui, vi)
' f v s zero the teraton s not convergng
IF vi = 0 THEN EXIT SUB
relstp = ABS((vi - v) / vi)
u = ui
v = vi
GOTO 101

END SUB ' Quadit

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

306

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

m
ri.
co
tla

w
.e

em
de
r

sn
o

SUB Realit (sss, nz, iflag)


'-------------------------------------------------------' varable-shft h polynomal teraton for a real zero.
' sss - startng terate
' nz - number of zero found
' flag - flag to ndcate a par of zeros near real axs.
'-------------------------------------------------------nz = 0
s = sss
iflag = 0
j=0
' MAIN LOOP
106 pv = p(1)
' evaluate p at s
qp(1) = pv
FOR i = 2 TO nn
pv = pv * s + p(i)
qp(i) = pv
NEXT i
dmp = ABS(pv)
' compute a rgorous bound on the error n evaluatng p
dms = ABS(s)
ee = (dmre / (are + dmre)) * ABS(qp(1))
FOR i = 2 TO nn
ee = ee * dms + ABS(qp(i))
NEXT i
' teraton has converged suffcently f the
' polynomal value s less than 20 tmes ths bound
IF dmp <= 20 * ((are + dmre) * ee - dmre * dmp) THEN
nz = 1
szr = s
szi = 0
EXIT SUB
END IF
j=j+1
' stop teraton after 10 steps
IF j > 10 THEN EXIT SUB
IF j >= 2 THEN
IF ABS(t) <= .001 * ABS(s - t) AND dmp > omp THEN
' a cluster of zeros near the real axs has been encountered
' return wth flag set to ntate a quadratc teraton
iflag = 1
sss = s
EXIT SUB
END IF
END IF
' return f the polynomal value has ncreased sgnfcantly
omp = dmp
' compute t, the next polynomal, and the new terate
dkv = dk(1)
qk(1) = dkv
FOR i = 2 TO n1
dkv = dkv * s + dk(i)
qk(i) = dkv
NEXT i
IF ABS(dkv) > ABS(dk(n1)) * 10 * Eta THEN
' use the scaled form of the recurrence f the value
' of dk at s s nonzero
t = -pv / dkv
dk(1) = qp(1)
FOR i = 2 TO n1
dk(i) = t * qk(i - 1) + qp(i)
NEXT i
ELSE
' USE UNSCALED FORM
dk(1) = 0
FOR i = 2 TO n1
dk(i) = qk(i - 1)
NEXT i
END IF
dkv = dk(1)
FOR i = 2 TO n1
dkv = dkv * s + dk(i)
NEXT i
t=0
IF ABS(dkv) > ABS(dk(n1)) * 10 * Eta THEN t = -pv / dkv
s=s+t
GOTO 106

307

END SUB ' Realit

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

307

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

m
ri.
co
tla

em
de
r

sn
o

SUB Calcsc (itype)


'--------------------------------------------------------' ths routne calculates scalar quanttes used to
' compute the next dk polynomal and new estmates of
' the quadratc coeffcents.
' itype - nteger varable set here ndcatng how the
' calculatons are normalzed to avod overflow
'--------------------------------------------------------' synthetic divisin of dk by the quadratc 1,u,v
CALL Quadsd(n1, u, v, dk(), qk(), c, d)
IF ABS(c) <= ABS(dk(n1)) * 100 * Eta THEN
IF ABS(d) <= ABS(dk(n1 - 1)) * 100 * Eta THEN
itype = 3
' itype=3 indicates the quadratc is almost a factor of dk
EXIT SUB
END IF
END IF
IF ABS(d) >= ABS(c) THEN
itype = 2
' itype=2 ndcates that all formulas are dvded by d
e=a/d
f=c/d
g=u*b
h=v*b
a3 = (a + g) * e + h * (b / d)
a1 = b * f - a
a7 = (f + u) * a + h
EXIT SUB
END IF
itype = 1
' itype=1 ndcates that all formulas are dvded by c
e=a/c
f=d/c
g=u*e
h=v*b
a3 = a * e + (h / c + g) * b
a1 = b - a * (d / c)
a7 = a + g * d + h * f

308

END SUB ' Calcsc

w
.e

SUB Nextk (itype)


'-------------------------------------------------------------' computes the next dk polynomals usng scalars
' computed n calcsc
'-------------------------------------------------------------IF itype <> 3 THEN
temp = a
IF itype = 1 THEN temp = b
IF ABS(a1) <= ABS(temp) * Eta * 10 THEN
' f a1 s nearly zero then use a specal form of the recurrence
dk(1) = 0
dk(2) = -a7 * qp(1)
FOR i = 3 TO n1
dk(i) = a3 * qk(i - 2) - a7 * qp(i - 1)
NEXT i
EXIT SUB
END IF
' use scaled form of the recurrence
a7 = a7 / a1
a3 = a3 / a1
dk(1) = qp(1)
dk(2) = qp(2) - a7 * qp(1)
FOR i = 3 TO n1
dk(i) = a3 * qk(i - 2) - a7 * qp(i - 1) + qp(i)
NEXT i
EXIT SUB
END IF
' use unscaled form of the recurrence f itype s 3
dk(1) = 0
dk(2) = 0
FOR i = 3 TO n1
dk(i) = qk(i - 2)
NEXT i

END SUB ' Nextk

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

308

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

END SUB ' Newest

m
ri.
co

tla

SUB Quadsd (nn, u, v, p(), q(), a, b)


'----------------------------------------------' dvdes p by the quadratc 1,u,v placng the
' quotent n q and the remander n a,b
'----------------------------------------------b = p(1)
q(1) = b
a = p(2) - u * b
q(2) = a
FOR i = 3 TO nn
cc = p(i) - u * a - v * b
q(i) = cc
b=a
a = cc
NEXT i

sn
o

SUB Newest (itype, uu, vv)


'----------------------------------------------------------' compute new estmates of the quadratc coeffcents
' usng the scalars computed n calcsc.
'----------------------------------------------------------' USE FORMULAS APPROPRIATE TO SETTING OF iType.
IF itype <> 3 THEN
IF itype <> 2 THEN
a4 = a + u * b + h * f
a5 = c + (u + v * f) * d
ELSE
a4 = (a + g) * f + h
a5 = (f + u) * c + v * d
END IF
' evaluate new quadratc coeffcents.
b1 = -dk(n1) / p(nn)
b2 = -(dk(n1 - 1) + b1 * p(n1)) / p(nn)
c1 = v * b2 * a1
c2 = b1 * a7
c3 = b1 * b1 * a3
c4 = c1 - c2 - c3
temp = a5 + b1 * a4 - c4
IF temp <> 0 THEN
uu = u - (u * (c3 + c2) + v * (b1 * a1 + b2 * a7)) / temp
vv = v * (1 + c4 / temp)
EXIT SUB
END IF
END IF
' f itype=3 the quadratc s zeroed
uu = 0
vv = 0

309

END SUB 'Quadsd

em
de
r

SUB Quad (a, b1, c, sr, si, dLr, dLi)


'-----------------------------------------------------' calculate the zeros of the quadratc a*z**2+b1*z+c=0.
' the quadratc formula, modfed to avod
' overflow, s used to fnd the larger zero f the
' zeros are real and both zeros are complex.
' the smaller real zero s found drectly from the
' product of the zeros c/a.
'-----------------------------------------------------IF a <> 0 THEN GOTO 200
sr = 0
IF b1 <> 0 THEN sr = -c / b1
dLr = 0
100 si = 0
dLi = 0
EXIT SUB

IF c = 0 THEN
sr = 0
dLr = -b1 / a
GOTO 100
END IF
' compute dscrmnant avodng overflow
bb = b1 / 2
IF ABS(bb) >= ABS(c) THEN
ee = 1 - (a / bb) * (c / bb)
dd = SQR(ABS(ee)) * ABS(bb)
ELSE
ee = a
IF c < 0 THEN ee = -a
ee = bb * (bb / ABS(c)) - ee
dd = SQR(ABS(ee)) * SQR(ABS(c))
END IF
IF ee >= 0 THEN
' REAL ZEROS
IF bb >= 0 THEN dd = -dd
dLr = (-bb + dd) / a
sr = 0
IF dLr <> 0 THEN sr = (c / dLr) / a
GOTO 100
END IF
' complex conjugate zeros
sr = -bb / a
dLr = sr
si = ABS(dd / a)
dLi = -si

w
.e

200

END SUB 'Quad


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

309

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

310

Karlatrma

Polinom kklerini bulan JenkinsTraub, Bairstow, NewtonRaphson ve Muller programlar


aada verilen zel polinomlar iin karlatrlacaktr:

1. f ( x) = ( x 1) 7 = x 7 7 x 6 + 21x 5 35 x 4 + 35 x 3 21x 2 + 7 x 1

ri.
co

2. f ( x ) = ( x 10) 4 ( x 9.999) = x 5 49.99899999999999 x 4 + 999.96 x 3 9999.399999999999 x 2 + 49996 x 99990


3. f ( x ) = ( x + 0.001)( x 0.001)( x + 1)( x 1)( x + 1000)( x 1000) = x 6 1000001.000001x 4 + 1000001.000001x 2 1
4. f ( x) = ( x 1 + 2i ) 2 ( x 1 2i ) 2 = x 4 4 x 3 + 14 x 2 20 x + 25
5. f ( x) = x 20 1
Bu polinomlarn her birinin farkl zellikleri vardr:

1.polinomun tm kkleri akmaktadr: x1, 2,3, 4,5, 6 ,7 = 1

tla

2.polinomun akan ve birbirine ok yakn kkleri vardr: x1, 2 ,3, 4 = 10, x 5 = 9.999

3.polinomun kkleri mutlak deerce akmakta, ok kk ve ok byk kkler


iermektedir: x1, 2 = m0.001, x 3, 4 = m1, x 5 , 6 = m1000

sn
o

4.polinomun tm kkleri sanaldr ve akmaktadr: x1, 2 ,3, 4 = 1 m 2i

5.polinomun derecesi ok yksektir, sadece iki gerek kk vardr: x1, 2 = 1 , dierleri sanaldr.
Karlatrmann amac, bu ok zel durumlarda programlarn baarl olup olmadn ortaya
koymaktr.

Yorum: En baarl: JenkinsTraub, en baarsz: Bairstow

2. f ( x) = ( x 10) 4 ( x 9.999) = x 5 49.99899999999999 x 4 + 999.96 x 3 9999.399999999999 x 2 + 49996 x 99990


iin programlarn sonular:

w
.e

em
de
r

1. f ( x) = ( x 1)7 = x 7 7 x 6 + 21x5 35x 4 + 35x3 21x 2 + 7 x 1 iin programlarn sonular:

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

310

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

311

Yorum: En baarl: JenkinsTraub, en baarsz: Bairstow ve NewtonRaphson

ri.
co

3. f ( x) = ( x + 0.001)( x 0.001)( x + 1)( x 1)( x + 1000)( x 1000) = x 6 1000001.000001x 4 + 1000001.000001x 2 1


iin programlarn sonular:

tla

Yorum: En baarl: hepsi de baarl, NewtonRaphson ve JenkinsTraub daha doru.

em
de
r

sn
o

4. f ( x) = ( x 1 + 2i) 2 ( x 1 2i) 2 = x 4 4 x3 + 14x 2 20x + 25 iin programlarn sonular:

Yorum: En baarl: JenkinsTraub ve Bairstow, en baarsz: NewtonRaphson. Muller zaten sanal kk bulmaz.

w
.e

5. f ( x) = x 20 1 iin programlarn sonular:

Yorum: En baarl: JenkinsTraub. Bairstow ve NewtonRaphson baarsz(say tamas sonucu program krlyor).
Sadece gerek kk bulan Muller de baarl fakat polinomun sadece iki gerek kk varken, kk buluyor.
Sonu olarak, JenkinsTraub en baarl programdr. Konuya ynelik kaynaklarda da bu gr hakimdir, en
hassas ve en hzl metod olarak deerlendirmektedir. Ancak, program ok fazla ve karmak kod iermektedir.
Program kaynaklarda RPOLY olarak anlmaktadr.
Jenkins-Traub metodunun ayrca sanal katsayl polinomlar iin CPOLY adl bir baka bir program daha vardr.
Her iki programn FORTRAN ve C kodlar internette bulunabilir.
RPOLY FORTRAN kodu:
http://www.netlib.org/toms/493
http://people.sc.fsu.edu/~jburkardt/f77_src/toms493/toms493.f
CPOLY FORTRAN kodu:
http://www.netlib.org/toms/419
http://people.sc.fsu.edu/~jburkardt/f77_src/toms419/toms419.f
RPOLY C++ kodu: http://www.akiti.ca/rpoly_ak1_cpp.html
CPOLY C kodu: http://svn.r-project.org/R/trunk/src/appl/cpoly.c
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

311

36. DORUSAL OLMAYAN FONKSYONLARIN KKLER(SIFIR NOKTALARI)

w
.e

em
de
r

sn
o

tla

ri.
co

312

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

312

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

tla

Ders notlar 2014

sn
o

Ahmet TOPU

w
.e

em
de
r

Min f(x)=?

37

Min-Max
Bir fonksiyonun minimummaksimum deerlerinin
belirlenmesi

John Ashworth NELDER,


(1924-2010), ngiliz

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

313

ri.
co

Tek veya ok deikenli bir fonksiyonun, ou kez baz ek


koullar da salayan, minimum veya maksimum deerinin
aranmas
problemine
optimizasyon(en
iyileme)
ad
verilmektedir. rneklersek: Min z=f(x,y)=x2+y problemi ek
koulsuz; x>0 olmak kaydyla Min z=f(x,y)=x2+y problemi
ise ek koullu minimazasyon problemidir.

37. BR FONKSYONUN MNUMUM-MAKSMUM DEERLERNN


BELRLENMES

Bu blmde minimizasyon teknikleri hakknda zet bilgiler


verilecektir.

sn
o

tla

Sada tek deikenli bir y=f(x) fonksiyonun grafii [a,b]


aralnda verilmitir. Grld gibi, fonksiyon [a,b]
aralnn baz noktalarnda byk, bazlarnda kk deerler
almaktadr; tepe(maksimum) ve vadi(minimum) noktalar
vardr. x1, x2, xn noktalarnda ordinatlar y1, y2, , yn
deerlerini almtr, yani y1=f(x1), y2=f(x2), , yn=f(xn) dir.
y1, y2, , yn deerleri hemen solundaki ve hemen sandaki
ordinatlardan daha kktr. Bu nedenle y1, y2, , yn
ordinatlar fonksiyonun [a,b] aralndaki minimumlardr.
Minimumlardan en kne global minimum, dierlerine
lokal minimum denir. ekildeki fonksiyonun x2 noktasndaki
y2 deeri global minimum, dierleri lokal minimumdur.

em
de
r

Sadaki
iki
deikenli
z=f(x,y)
yzeyinin
grafiine
bakldnda f(x,y) yzeyinin ok sayda minimum ve
maksimum noktas olduu grlr.
Bir deikenli f(x), iki deikenli f(x,y), ya da daha genel olarak, ok deikenli f(x, y, z, v,
) fonksiyonunun belli bir blgesinde minimum deerinin hesaplanmas teknik ve
endstriyel problemlerde gerekli olur. Klasik matematikte verilen yntemler ok deikenli
genel fonksiyonlarn minimum deerinin belirlenmesinde ou kez yetersiz kalr, nmerik
metotlar zm iin kullanlr.
Min-Max ve optimizasyon konusundaki yntem ve programlar hakknda geni bilgi iin
http://www.fing.edu.uy/if/cursos/fiscomp/extras/numrec/book/f10.pdf adresine baklabilir.
zleyen sayfalarda minimum-maksimum bulma problemlerine ynelik baz programlara ve
rnek zmlere yer verilmitir. Bu programlar fonksiyonun analitik trevine gerek
duymazlar.

w
.e

1. GoldenRatioSearch1: tek deikenli f(x) fonksiyonunun [a,b] aralndaki minimum


noktalarn ve minimum deerlerini Fibonacci golden ratio search metodu ile hesaplar.
2. Brent2: tek deikenli f(x) fonksiyonunun [a,b] aralndaki minimum noktalarn ve
minimum deerlerini Brent metodu ile hesaplar.

3.NelderMead3: n deikenli f(x,y,z,v, ) fonksiyonunun minimum olduu noktann


koordinatlarn ve minimum deerini Nelder-Mead simplex(dorusal programlama) ad
verilen metod ile hesaplar. Minimum deerin arand blgeyi tanmlayan n+1 noktann
balang koordinatlarnn verilmesi gerekir. Balang koordinatlarna bal olarak
hesaplanan deer lokal veya global minimum olabilir, global minimum olaca garantisi
yoktur. NelderMead, doal olarak, tek deikenli f(x) fonksiyonu iin de kullanlabilir.
4.SteepestDescent: f(x,y,z) fonksiyonunun maksimum olduu noktann koordinatlarn ve
maksimum deerini Steepest Descent metodu ile hesaplar. Maksimum deerin arand
civarda x, y, z deikenleri iin balang deerlerinin verilmesi gerekir. Balang
deerlerine bal olarak hesaplanan deer lokal veya global maksimum olabilir, global
1

Teorik bilgi iin bak: http://math.fullerton.edu/mathews/n2003/GoldenRatioSearchMod.html


Richard Brent, Avusturalyal, (1946- ), tarafndan 1973 ylnda yaynland.
3
Teorik bilgi iin bak: http://math.fullerton.edu/mathews/n2003/NelderMeadMod.html. Nelder-Mead optimizasyon metodu John
Ashworth NELDER, ngiliz(1924-2010) ve Roger MEAD tarafndan 1965 ylnda gelitirildi.
2

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

313

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

314

maksimum olaca garantisi yoktur. SteepestDescent tek deikenli f(x) veya iki deikenli
f(x,y) fonksiyonu iin de kullanlabilir.
GoldenRatioSearch program ve rnekleri:
tek

deikenli fonksiyonunun [-3,3]


aralnda bir
minimum deeri olduu grlmektedir. Bu aralkta
baka minimum olmadndan global minimumdur.
Program x=1 noktasnda f(1)=-2 global minimum
deer olarak hesaplamtr.

Min

sn
o

tla

GoldenRatioSearch sonucu

4 x( x 2)
( x 2 + 1)( x 2)

ri.
co

1. Sada grafii verilen y = f ( x) =

2. Sada grafii verilen y = f ( x) = x 2 + 4 x 1 + 3 tek

Min

em
de
r

deikenli fonksiyonunun [-6,6]


aralnda bir
minimum deeri olduu grlmektedir. Bu aralkta
baka minimum olmadndan global minimumdur.
Program x=1 noktasnda f(1)=2 global minimum deer
olarak hesaplamtr.
GoldenRatioSearch sonucu

w
.e

3. y = f ( x) = 2 Sin( x) + Sin( x 3 ) + e x 2
tek deikenli
fonksiyonunun [-3,3] aralnda ok sayda minimum
deeri olduu sadaki grafikten grlmektedir.
Bunlardan biri global, dierleri lokal minimumdur.
Program x=-1.98 noktasnda f(-1.98)=-4.46 global
minimum deer olarak hesaplamtr.

global Min

GoldenRatioSearch sonucu

Global Min

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

314

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

silindir bir kutu imal


yzeyinin en kk
az 8 cm den byk
r ve h var mdr?

Toplam yzey: S = 21000


r 2 + 2rh
2
2
1000
V = r hV= =
Hacim:
2
r
h h=

S = 2r + 2rh = 2 r + 2 r
S = 2r 2 +

1000
2000
= 2r 2 +
2
r
r

2000
sadece r nin fonksiyonudur. Bu durumda
r

S = f ( x) = 2x 2 +

2000
x

Min

tla

soru una dnmtr: Bu fonksiyonun 4r8


aralnda global minimumu var mdr? Fonksiyonun
sadaki grafii incelendiinde [5,6] aralnda minimum
olduu grlr. Aralk iin a=5, b=6 ve r iin x alnarak

ri.
co

4. En az malzeme ile alt ve st kapal


edilecektir. Hacminin 1000 cm3, toplam
(minimum) olmas ve yarapn 4 cm den
olmamas istenmektedir. Bu koullar salayan

315

fonksiyonunun minimum olduu

sn
o

yer ve minimum deer program ile hesaplanabilir:

GoldenRatioSearch sonucu

x=r=5.42 cm de S=f(x)=553.58 cm2 global minimum deerini almtr. h ykseklii:

1000
= 10.84 cm bulunur.
5.42 2

em
de
r

V = r 2 h = 1000 h =

GoldenRatioSearch ana program

'--------------------Ana program GoldenRatioSearch ----------------' f(x) fonksiyonunun [a,b] aralndaki minimum deerlerini bulur
' Ahmet TOPU, Eskiehir, 2010
' arlan alt program: GoldenRatioSearch
'--------------------------------------------------------------------------

w
.e

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GoldenRatioSearch (ai, bi, xMin, yMin, iHata)
Pi = 4 * ATN(1)
' a = -3: b = 3: DEF fnf (x) = -4 * x * (x - 2) / (x ^ 2 + 1) / (x - 2)
' a = -6: b = 6: DEF fnf (x) = -x ^ 2 + 4 * ABS(x - 1) + 3
' a = -3: b = 3: DEF fnf (x) = 2 * SIN(x) + SIN(x ^ 3) + SQR(EXP(x)) - 2
a = 5: b = 6: DEF fnf (x) = 2 * Pi * x * x + 2000 / x
CLS
MaxAltAralik = 100
DIM xi(MaxAltAralik, 2)
iBulundu = 0
Delta = (b - a) / MaxAltAralik
bi = a
FOR iAralik = 1 TO MaxAltAralik
ai = bi
bi = ai + Delta
IF iAralik = MaxAltAralik THEN bi = b
CALL GoldenRatioSearch(ai, bi, xMin, yMin, iHata)
IF iHata = 0 THEN
iBulundu = iBulundu + 1
xi(iBulundu, 1) = xMin
xi(iBulundu, 2) = yMin
END IF
NEXT iAralik

Devam var

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

315

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

316

IF iBulundu = 0 THEN
PRINT "["; a; ","; b; "] aralnda minimum bulunamad(GoldenRatioSearch)!":
END
END IF

' Global minimumu belirle


j = 1: GlobalMin = xi(1, 2)
FOR i = 1 TO iBulundu
IF xi(i, 2) < GlobalMin THEN
j=i
GlobalMin = xi(i, 2)
END IF
NEXT i

ri.
co

PRINT "["; a; ","; b; "] aralnda minimum deerler(GoldenRatioSearch):"


FOR i = 1 TO iBulundu
PRINT "x="; xi(i, 1), "f(x)="; xi(i, 2),
IF i = j THEN PRINT " Global Minimum" ELSE PRINT " Lokal Minimum"
NEXT i
END ' Ana program GoldenRatioSearch sonu

GoldenRatioSearch alt program

em
de
r

Epsilon = 1E-08
Maxit = 100
iHata = 0
Rone = (SQR(5) - 1) / 2
Rtwo = Rone * Rone

sn
o

tla

SUB GoldenRatioSearch (ai, bi, xMin, yMin, iHata)


'-----------------------------------------------------------------------------------' f(x) fonksiyonunun minimum deerlerini bulur
' Veri:
' f(x) : aran programda DEF FNf(x)=... ile tanmlanm olmaldr
' ai ve bi: minimum deer aranacak araln alt ve st snr
' kt:
' xMin : Minimum deerin bulunduu absis
' yMin : xMin noktasnda fonksiyonun deeri
' iHata =0 ise Minimum deer bulundu
' iHata<>0 ise Minimum bulunamad
' Metot: Fibonacci altn oran arama(Fibonacci golden ratio search)
' Fortran kodu: http://netlib.sandia.gov/textbook/mathews/index.html
' Kaynak:
' NUMERICAL METHODS for Mathematics, Science and Engineering, 2nd Ed,
' Prentice Hall, 1992. Section 8.1, Minimization of a Function, Page 413
'------------------------------------------------------------------------------------

w
.e

a = ai
b = bi
h=b-a
Ya = fnf(a)
Yb = fnf(b)
c = a + Rtwo * h
d = a + Rone * h
Yc = fnf(c)
Yd = fnf(d)
k=1
WHILE (ABS(Yb - Ya) > Epsilon OR h > Epsilon) AND k <= Maxit
IF (Yc < Yd) THEN
b=d
Yb = Yd
d=c
Yd = Yc
h=b-a
c = a + Rtwo * h
Yc = fnf(c)
ELSE
a=c
Ya = Yc
c=d
Yc = Yd
h=b-a
d = a + Rone * h
Yd = fnf(d)
END IF
k=k+1
WEND
xMin = a
yMin = Ya
IF Yb < Ya THEN
xMin = b
yMin = Yb
END IF
ySol = fnf(xMin - Epsilon)
ySag = fnf(xMin + Epsilon)
IF k > Maxit OR ySol < yMin OR ySag < yMin THEN iHata = k

END SUB ' GoldenRatioSearch

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

316

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

317

Brent program ve rnekleri:


1. Sada grafii verilen y = f ( x) =

4 x( x 2)
( x 2 + 1)( x 2)

tek

ri.
co

Brent sonucu

deikenli fonksiyonunun [-2,2] aralnda minimumu


Brent program ile hesaplanmtr.

tla

Min

2. Sada grafii verilen y = f ( x) = x 2 + 4 x 1 + 3 tek

Min

sn
o

deikenli fonksiyonunun [-6,6] aralnda minimumu


Brent program ile hesaplanmtr.

em
de
r

Brent sonucu

Brent sonucu

global Min

Global Min

w
.e

3. y = f ( x) = 2 Sin( x) + Sin( x 3 ) + e x 2
tek deikenli
fonksiyonunun [-3,3] aralndaki minimumlar Brent
program ile hesaplanmtr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

317

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

'--------------------Ana program Brent------------------------------' f(x) fonksiyonunun [a,b] aralndaki minimum deerlerini bulur
' Ahmet TOPU, Eskiehir, 2010
' arlan alt program: Brent
'--------------------------------------------------------------------

Brent ana program

sn
o

em
de
r

CLS
MaxAltAralik = 100
DIM xi(MaxAltAralik, 2)
iBulundu = 0
Delta = (b - a) / MaxAltAralik
Cx = a
FOR iAralik = 1 TO MaxAltAralik
Ax = Cx
Cx = Ax + Delta
IF iAralik = MaxAltAralik THEN Cx = b
Bx = Ax + Delta / 10
yMin = Brent(Ax, Bx, Cx, xMin, iErr)
IF iErr = 0 THEN
iBulundu = iBulundu + 1
xi(iBulundu, 1) = xMin
xi(iBulundu, 2) = yMin
END IF
NEXT iAralik

tla

' [a,b] aral ve f(x) fonksiyonunun tanmlanmas


' a = 0: b = 1.5: DEF fnF (x) = -4 * x * (x - 2) / (x * x + 1) / (x - 2)
' a = -6: b = 6: DEF fnF (x) = -x * x + 4 * ABS(x - 1) + 3
a = -3: b = 3: DEF fnF (x) = 2 * SIN(x) + SIN(x ^ 3) + SQR(EXP(x)) - 2

ri.
co

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE FUNCTION Brent (Ax, Bx, Cx, xMin, iErr)
DECLARE FUNCTION Sign (a, b)

318

IF iBulundu = 0 THEN
PRINT "["; a; ","; b; "] aralnda minimum bulunamad(Brent)!":
END
END IF

' Global minimumu belirle


j = 1: GlobalMin = xi(1, 2)
FOR i = 1 TO iBulundu
IF xi(i, 2) < GlobalMin THEN
j=i
GlobalMin = xi(i, 2)
END IF
NEXT i

END 'Brent ana sonu

FUNCTION Sign (a, b)


IF b >= 0 THEN Sign = ABS(a) ELSE Sign = -ABS(a)

END FUNCTION 'Sign

w
.e

PRINT "["; a; ","; b; "] aralnda minimum deerler(Brent):"


FOR i = 1 TO iBulundu
PRINT "x="; xi(i, 1), "f(x)="; xi(i, 2),
IF i = j THEN PRINT " GLOBAL MNMUM" ELSE PRINT " Lokal Minimum"
NEXT i

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

318

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

sn
o

tla

IF Ax < Cx THEN a = Ax ELSE a = Cx


IF Ax > Cx THEN b = Ax ELSE b = Cx
V = Bx
W=V
x=V
E=0
Fx = fnF(x)
Fv = Fx
Fw = Fx
FOR iTer = 1 TO iTmax: 'main loop
Xm = .5 * (a + b)
Tol1 = Tol * ABS(x) + Zeps
Tol2 = 2 * Tol1
' Test for done here, if satisfiyed then exit section
IF ABS(x - Xm) <= (Tol2 - .5 * (b - a)) THEN
xMin = x
Brent = Fx
IF fnF(x - 1E-12) < Fx OR fnF(x + 1E-12) < Fx THEN iErr = 1
EXIT FUNCTION
END IF

Brent alt program

ri.
co

FUNCTION Brent (Ax, Bx, Cx, xMin, iErr)


'----------------------------------------------------------------------' Findes minimum of a function f(x)
' Given a function f(x), and a bracketing triplet of abscissas
' Ax,Bx,Cx (such that Bx is between AX and CX, and f(Bx) is less
' than both f(Ax) and f(Cx)), this routine isolates the minimum
' to a fractional precision of about TOL using Brent's method.
' The abscissa of the minimum is returned in Xmin, and the minimum
' function value is returned as Brent, the returned function value.
' Fortran code:
' http://jean-pierre.moreau.pagesperso-orange.fr/Fortran/brent_f90.txt
'-----------------------------------------------------------------------EpsMach = 1E-15: ' machine epsilon
Tol = SQR(EpsMach): ' Tolerance
iTmax = 500: 'Maximum number of iteration
Cgold = .381966: 'Golden Ratio
Zeps = 1E-10: ' instead of zero
iErr = 0: ' error flag

319

w
.e

em
de
r

IF ABS(E) > Tol1 THEN 'Construct a trial parabolic fit


R = (x - W) * (Fx - Fv)
Q = (x - V) * (Fx - Fw)
P = (x - V) * Q - (x - W) * R
Q = 2 * (Q - R) 'bug corrected 07/24/2006 (0.2 instead of 2)
IF Q > 0 THEN P = -P
Q = ABS(Q)
Etemp = E
E=D
IF ABS(P) > ABS(.5 * Q * Etemp) OR (P <= Q * (a - x)) OR (P >= Q * (b - x)) THEN GOTO 1
' The above conditions determine the acceptability of the
' parabolic fit. Here it is o.k.:
D=P/Q
U=x+D
IF (U - a < Tol2) OR (b - U < Tol2) THEN D = Sign(Tol1, Xm - x)
GOTO 2
END IF
1 IF x >= Xm THEN
E=a-x
ELSE
E=b-x
END IF
D = Cgold * E
ELSE
2 IF ABS(D) >= Tol1 THEN
b=U
U=x+D
END IF
ELSE
IF Fu <= Fw OR W = x THEN
U = x + Sign(Tol1, D)
V=W
END IF
Fv = Fw
W=U
Fu = fnF(U) 'This the one function evaluation per iteration
Fw = Fu
IF Fu <= Fx THEN
ELSE
IF U >= x THEN
IF (Fu <= Fv) OR (V = x) OR (V = W) THEN
a=x
V=U
ELSE
Fv = Fu
b=x
END IF
END IF
END IF
V=W
END IF
Fv = Fw
NEXT iTer
W=x
iErr = 1: ' Brent exceed maximum iterations.'
Fw = Fx
x=U
Fx = Fu
ELSE
IF U < x THEN
a=U

END FUNCTION ' end of Brent

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

319

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

320

NelderMead program ve rnekleri:


1. Sada grafii verilen z = f ( x, y) = x 2 + y 2 4 x y xy ift
deikenli fonksiyonunun bir minimum deeri olduu
grlmektedir.
Fonksiyonu
minimum
yapan
x,y
koordinatlar ve Min Z aranmaktadr.

A
B

tla

ri.
co

Nelder-Mead simplex metodu, iterasyona balayabilmesi


iin, deiken saysnn bir fazlas kadar noktada
deikenlerin balang deerinin verilmesini gerektirir. Bu
rnekte deikenler x ve y olduundan deiken says 2
dir. O halde 3 noktadaki x ve y balang deeri
verilmelidir. Bu noktalar
1.nokta x=2, y=1
2.nokta x=2, y=3
3.nokta x=4, y=3

olarak seilmitir (ekilde A(2,1), B(2,3) ve C(4,3) noktalar). Deiken says ve balang
deerleri

sn
o

DATA 2: 'n
'Balang noktalarnn koordinatlar
DATA 2,1
DATA 2,3
DATA 4,3
satrlarnda programa verilmi, z = f ( x, y) = x 2 + y 2 4 x y xy fonksiyonu Func(P()) ad ile

em
de
r

FUNCTION Func (P())


' minimumu aranan fonksiyonun tanm
X = P(1): Y = P(2)
Func = X * X + Y * Y - 4 * X - Y - X * Y
END FUNCTION

tanmlanmtr. P() vektr (n+1)xn boyutludur, bu rnekte P(3,2). Fonksiyonun balang


deerleri iin ald z=f(x,y) ordinatlar

w
.e

' Balang noktalarnda fonksiyonun ald deerleri hesapla


FOR i = 1 TO n + 1
PT(1) = P(i, 1)
PT(2) = P(i, 2)
Y(i) = Func(PT())
NEXT i
satrlarnda hesaplanp Y() vektrnde depolanmakta,
aktarlarak minimum noktas ve deerinin aranmas

NelderMead

alt

programna

' NelderMead alt programn ar, Min deeri ara


CALL NelderMead(P(), Y(), n, iErr)
ile balatlmaktadr. Programdan alnan sonu:

NelderMead sonucu

Buna gre x=3, y=2 noktasnda Min z=f(2,3)=-7 minimum deerini almtr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

320

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

321

2. Kenarlar a, b, c, n taraf ak olan 1000 cm3 hacimli


bir kutu imal edilecektir. Toplam yzeyinin minimum
olmas iin a, b ve c ne olmaldr.

Hacim: V = abc = 1000 c =

Toplam yzey: S = 2ab + 2bc + ac

1000
ab

1000
1000
+a
ab
ab
2000 1000
S = 2ab +
+
a
b

ri.
co

S = 2ab + 2b

S sadece a ve b nin fonksiyonudur. Sada verilen grafii


incelendiinde bir minimumu olduu grlr. Deiken
says 2 dir (a ve b), o halde 3 noktada a ve b iin
balang deeri verilmelidir. Bu noktalar
1.nokta a=11, b=5 (A noktas)
2.nokta a=11, b=8 (B noktas)
3.nokta a=15, b=8 (C noktas)

seilebilir. Programa

sn
o

tla

em
de
r

DATA 2: 'n
'Balang noktalarnn koordinatlar
DATA 11,5
DATA 11,8
DATA 15,8
satrlar ile verilir. S fonksiyonu

FUNCTION Func (P())


' minimumu aranan fonksiyonun tanm
x = P(1): y = P(2)
Func = 2 * x * y + 2000 / x + 1000 / y
END FUNCTION

w
.e

eklinde yazlr( programn yaps gerei, S yerine Func, a yerine x, b yerine y yazldna
dikkat ediniz). Program sonucu:
NelderMead sonucu

olur. a=x=12.60 cm, b=y=6.30 cm, Min S=f(x,y)=476.22 cm2 olmutur. c kenar

V = abc = 1000 c =

c=

1000
bantsnda a ve b yerine yazlarak bulunur:
ab

1000
12.60 6.30

c = 12.60 cm.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

321

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

Fonksiyonun deiken says n=2


DATA 2: 'n
'Balang noktalarnn koordinatlar
DATA 2,1
x, ve y deikenlerinin 3 noktadaki balang deerleri
DATA 2,3
DATA 4,3

Bu ana program iki deikenli


f(x,y)= x2 + y2 - 4 x - y - xy
fonksiyonu iin yazlmtr.

tla

CLS
Deiken says okunuyor
READ n
DIM P(n + 1, n), Y(n + 1), PT(n + 1)

NelderMead ana program.

ri.
co

'--------------------Ana program NelderMead-------------------------' f(x,y,z,v, ...) gibi ok deikenli fonksiyonunun minimum olduu
' noktann koordinatlarn, yani x, y, z,v, ... deerlerini ve
' f(x,y,z,v, ...) minimum deerini Nelder-Mead motodu ile hesaplar.
' Nelder-Mead metodunun yaygn kullanlan dier ad amoeba dr.
' Hesaplanan minimum lokal veya global olabilir. Glabal minimum
' olaca garantisi yoktur.
' Ahmet Topu, Eskiehir, 2010
'-------------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB NelderMead (P(), Y(), n, iErr)
DECLARE FUNCTION Func (P())

322

sn
o

' Balang koordinatlarn oku


FOR i = 1 TO n + 1
FOR j = 1 TO n
READ P(i, j)
x, ve y deikenlerinin balang deerleri okunuyor
NEXT j
NEXT i

' Balang noktalarnda fonksiyonun ald deerleri hesapla


FOR i = 1 TO n + 1
PT(1) = P(i, 1)
PT(2) = P(i, 2)
Y(i) = Func(PT())
Balang deerleri iin f(x,y) ordinatlar hesaplanyor
NEXT i

em
de
r

' NelderMead alt programn ar, Min deeri ara


CALL NelderMead(P(), Y(), n, iErr)

Fonksiyonun minimum noktasn ve deerini hesaplamak


iin NelderMead alt program arlyor

IF iErr <> 0 THEN


PRINT iErr; " terasyon sonunda minimum bulunamad(NelderMead)!"
END
ELSE

' n+1 deerden minimum deeri belirle


i = 1: yMin = Y(1)
FOR j = 1 TO n + 1
IF Y(j) < yMin THEN i = j: yMin = Y(j)
NEXT j

Sonular yazdrlyor

END ' Ana program NelderMead sonu

FUNCTION Func (P())


' minimumu aranan fonksiyonun tanm
X = P(1): Y = P(2)
Func = X * X + Y * Y - 4 * X - Y - X * Y
END FUNCTION

f(x,y)= x2 + y2 - 4 x - y - xy
fonksiyonunun programda tanmlanmas

w
.e

PRINT "Minimum deer(NelderMead):"


PRINT "x="; P(i, 1); "y="; P(i, 2); " noktasnda "; "f(x,y)="; Y(i)
END IF

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

322

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

323

tla
sn
o

DIM Pr(n), Prr(n), Pbar(n)


Mpts = n + 1
iTer = 0
1 iLo = 1
IF Y(1) > Y(2) THEN
iHi = 1
iNHi = 2
ELSE
iHi = 2
iNHi = 1
END IF

ri.
co

NelderMead alt program.


SUB NelderMead (P(), Y(), n, iErr)
'----------------------------------------------------------------------------------Bu alt program geneldir. Herhangi bir n
' Multidimensional minimization of the function FUNC(X) where X is
deikenli f(x,y,z,v,.) fonksiyonu iin
' an n dimensional vector, by the downhill simplex method of Nelder-Mead. Usially
yazlmtr
' used other name: amoeba
' Input:
' matrix P(n+1,n) which rows are the starting coordinates
' vector Y(n+1) whose components must be preinitialized
' to the values of FUNC evaluated at the n+1 vertices of P.
' n is number of varibels of the function FUNC.
' output:
' P and Y will have been reset to n+1 new points all within
' Ftol of a minimum function value
' iErr=0 a minimum found, otherwise not.
' Fortran kodu: http://jean-pierre.moreau.pagesperso-orange.fr/Fortran/tamoeba_f90.txt
'---------------------------------------------------------------------------------Ftol = 1E-12: ' Required tolerance
iErr = 0: ' error flag
Alpha = 1: Beta = .5: Gamma = 2: itMax = 1000
' Expected maximum number of dimensions, three parameters which define
' the expansions and contractions, and maximum allowed number of iterations.

em
de
r

FOR i = 1 TO Mpts
IF Y(i) < Y(iLo) THEN iLo = i
IF Y(i) > Y(iHi) THEN
iNHi = iHi
iHi = i
ELSE
IF Y(i) > Y(iNHi) THEN IF i <> iHi THEN iNHi = i
END IF
NEXT i

' Compute the fractional range from highest to lowest and return if
' satisfactory.
Rtol = 2 * ABS(Y(iHi) - Y(iLo)) / (ABS(Y(iHi)) + ABS(Y(iLo)))
IF Rtol < Ftol THEN EXIT SUB
IF iTer = itMax THEN
iErr = iTer: ' maximum iterations exceeded
EXIT SUB
END IF

w
.e

iTer = iTer + 1
FOR j = 1 TO n
Pbar(j) = 0
NEXT j
FOR i = 1 TO Mpts
IF i <> iHi THEN
FOR j = 1 TO n
Pbar(j) = Pbar(j) + P(i, j)
NEXT j
END IF
NEXT i

FOR j = 1 TO n
Pbar(j) = Pbar(j) / n
Pr(j) = (1 + Alpha) * Pbar(j) - Alpha * P(iHi, j)
NEXT j
Ypr = Func(Pr())
IF Ypr <= Y(iLo) THEN
FOR j = 1 TO n
Prr(j) = Gamma * Pr(j) + (1 - Gamma) * Pbar(j)
NEXT j
Yprr = Func(Prr())
IF Yprr < Y(iLo) THEN
FOR j = 1 TO n
P(iHi, j) = Prr(j)
NEXT j
Y(iHi) = Yprr
ELSE
FOR j = 1 TO n
P(iHi, j) = Pr(j)
NEXT j
Y(iHi) = Ypr
END IF

ELSE
IF Ypr > Y(iNHi) THEN
IF Ypr < Y(iHi) THEN
FOR j = 1 TO n
P(iHi, j) = Pr(j)
NEXT j
Y(iHi) = Ypr
END IF

FOR j = 1 TO n
Prr(j) = Beta * P(iHi, j) + (1 - Beta) * Pbar(j)
NEXT j
Yprr = Func(Prr())
IF Yprr < Y(iHi) THEN
FOR j = 1 TO n
P(iHi, j) = Prr(j)
NEXT j
Y(iHi) = Yprr
ELSE
FOR i = 1 TO Mpts
IF i <> iLo THEN
FOR j = 1 TO n
Pr(j) = .5# * (P(i, j) + P(iLo, j))
P(i, j) = Pr(j)
NEXT j
Y(i) = Func(Pr())
END IF
NEXT i
END IF
ELSE
FOR j = 1 TO n
P(iHi, j) = Pr(j)
NEXT j
Y(iHi) = Ypr
END IF
END IF
GOTO 1
END SUB ' NelderMead

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

323

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

324

3. deikenli u = f ( x, y, z ) = x 4 + y 3 + z 4 8 xyz fonksiyonun minimum olduu x, y, z


deerleri ve Min u aranmaktadr. Fonksiyon 3 deikenli olduundan 4 noktada balang
deeri verilmek zorundadr. Minimumun aranaca balang deerleri:
nokta:
nokta:
nokta:
nokta:

x=1,
x=0,
x=0,
x=1,

y=0,
y=1,
y=0,
y=1,

z=0
z=0
z=1
z=1

1.
2.
3.
4.

NelderMead ana program.


Bu ana program deikenli
u=f(x,y,z)= x4 + y2 +z4 - 8 xyz
fonksiyonu iin yazlmtr.

tla

'--------------------Ana program NelderMead-----------------------' f(x,y,z,v, ...) gibi ok deikenli fonksiyonunun minimum olduu
' noktann koordinatlarn, yani x, y, z,v, ... deerlerini ve
' f(x,y,z,v, ...) minimum deerini Nelder-Mead motodu ile hesaplar.
' Hesaplanan minimum lokal veya global olabilir. Glabal minimum
' olaca garantisi yoktur.
' Ahmet Topu, Eskiehir, 2010
'-----------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB NelderMead (p(), y(), n, iErr)
DECLARE FUNCTION Func (p())

ri.
co

olsun. NelderMead alt program fonksiyon baml deildir, deimez, fakat ana program ve
fonksiyonun tanmlanmas aadaki gibi deitirilmelidir:

Fonksiyonun deiken says n=3

sn
o

DATA 3: 'n
'Balang noktalarnn koordinatlar
DATA 1,0,0
DATA 0,1,0
x, y ve z deikenlerinin 4 noktadaki balang deerleri
DATA 0,0,1
DATA 1,1,1

Deiken says okunuyor


CLS
READ n
DIM p(n + 1, n), y(n + 1), Pt(n + 1)

em
de
r

' Balang koordinatlarn oku


FOR i = 1 TO n + 1
FOR j = 1 TO n
READ p(i, j)
x, y ve z deikenlerinin balang deerleri okunuyor
NEXT j
NEXT i

' Balang noktalarnda fonksiyonun ald deerleri hesapla


FOR i = 1 TO n + 1
Pt(1) = p(i, 1)
Pt(2) = p(i, 2)
Balang deerleri iin u= f(x,y,z) ordinatlar hesaplanyor
Pt(3) = p(i, 3)
y(i) = Func(Pt())
NEXT i
' NelderMead alt programn ar, Min deeri ara
CALL NelderMead(p(), y(), n, iErr)

Fonksiyonun minimum noktasn ve deerini hesaplamak


iin NelderMead alt program arlyor

w
.e

IF iErr <> 0 THEN


PRINT iErr; " terasyon sonunda minimum bulunamad(NelderMead)!"
END
ELSE

' n+1 deerden minimum deeri belirle


i = 1: yMin = y(1)
FOR j = 1 TO n + 1
IF y(j) < yMin THEN i = j: yMin = y(j)
NEXT j

Sonular yazdrlyor

PRINT "Minimum deer(NelderMead):"


PRINT "x="; p(i, 1); "y="; p(i, 2); "z="; p(i, 3); " noktasnda "; "f(x,y,z)="; y(i)
END IF

END ' Ana program NelderMead sonu


FUNCTION Func (p())
' minimumu aranan fonksiyonun tanm
x = p(1): y = p(2): z = p(3)
Func = x ^ 4 + y ^ 3 + z ^ 4 - 8 * x * y * z
END FUNCTION

u=f(x,y,z)= x4 + y2 +z4 - 8 xyz


fonksiyonunun programda tanmlanmas

NelderMead sonucu

x=3.27, y=5.33, z=3.26 noktasnda min u=f(x,y,z)=-75.85 bulunmutur.


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

324

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

325

SteepestDescent program ve rnekleri:


1. f ( x, y, z ) = Sin( x) + 2Cos ( y ) Sin( z ) fonksiyonunun x=1, y=1 ve z=1 civarnda maksimumu
var mdr? Fonksiyonun deiken says n=3 tr DATA satrlar

DATA 3: ' n deiken says


DATA 1,1,1: ' deikenlerin balang deerleri

tla

FUNCTION eval (x())


' Definition of Function f(x,y,z) to maximize.
' x(1), x(2),x(3) correspondes variables x,y,z
' Eval is the value of function f(x,y,z)
x = x(1)
y = x(2)
z = x(3)
eval = SIN(x) + 2 * COS(y) - SIN(z)

ri.
co

olarak verilir ve fonksiyonun tanm

END FUNCTION ' eval

SteepestDescent sonucu

sn
o

eklinde yaplrsa program aadaki sonucu verir:

em
de
r

x=1.57, y=0, z=-1.57 noktasnda Max f(x,y,z)=4.0 bulunmutur.


'--------------------Ana program SteepestDescent -----------------' f(x) veya f(x,y) veya f(x,y,z) fonksiyonunun lokal maksimum
' olduu noktann koordinatlarn ve lokal maksimum deerini bulur.
' deikenler iin balang deerleri verilmelidir. Balang
' deerlerinin tanmlad noktaya en yakn lokal maksimum bulunur.
' Metot: Steepest Descent
' Ahmet TOPU, Eskiehir, 2010
'------------------------------------------------------------------

Bu ana program deikenli


f(x,y,z)= Sin(x)+2Cos(y)-Sin(z)
fonksiyonu iin yazlmtr.

DEFINT I
DEFDBL A-H, O-Z
DECLARE SUB SteepestDescent (n, x(), iErr)
DECLARE SUB Utilit1 (n, dd, d())
DECLARE SUB Utilit2 (n, xk, dd, d(), y(), x(), x1())
DECLARE SUB Derivatives (n, dd, xk, d(), x(), y())
DECLARE FUNCTION eval (x())

w
.e

SteepestDescent ana program.

CLS

DATA 3: ' n deiken says


DATA 1,1,1: ' deikenlerin balang deerleri

Deiken says: fonksiyonda x,y,z deikenleri var anlamnda.

READ n: ' deiken saysn oku

Deikenlerin balang deerleri:


x=1, y=1, z=1 anlamndadr

DIM x(n): ' deikenlerin deerlerini ieren vektr


FOR i = 1 TO n
READ x(i): ' deikenlerin balang deerini oku
NEXT i
CALL SteepestDescent(n, x(), iErr)

Deikenlerin balang deerleri x


vektrnde depolanyor: x(1)=x,
x(2)=y, x(3)=z anlamnda

Lokal maksimumu ara

IF iErr <> 0 THEN


PRINT "Lokal maksimum bulunamad(SteepestDescent)"
END
END IF
PRINT "Lokal maksimum noktas(SteepestDescent):"
FOR i = 1 TO n
PRINT "x("; i; ")="; x(i)
NEXT i
PRINT "noktasnda lokal maksimum deer="; eval(x())

Eval alt program.


f(x,y,z)= Sin(x)+2Cos(y)-Sin(z)
fonksiyonu tanmlanmas

FUNCTION eval (x())


' Definition of Function f(x,y,z) to maximize.
' x(1), x(2),x(3) correspondes variables x,y,z.
' Eval is the value of function f(x,y,z)
x = x(1)
y = x(2)
z = x(3)
eval = SIN(x) + 2 * COS(y) - SIN(z)

END FUNCTION ' eval


END ' ana program SteepestDescent sonu
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

325

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

SUB SteepestDescent (n, x(), iErr)


'-----------------------------------------------------------------------' Steepest descent optimization subroutine
' This routine finds the local maximum of function f(x,y,z) using
' the method of steepest descent, or the gradient.
' The function must be defined in the function Eval(X).
' In this version, finite differences are used to calculate the
' partial derivatives.

tla

' Subprograns called: Eval, Derivatives, Utilit1, Utilit2


' Fortran kodu:
' http://jean-pierre.moreau.pagesperso-orange.fr/Fortran/steepda_f90.txt
'-----------------------------------------------------------------------DIM x1(n), d(3), y(3): 'working vectors

ri.
co

SteepestDescent alt program.

' INPUTS:
' n :number of variables of function
' Eps : The convergence criteria
' Maxit: The maximum number of iterations
' xk : A starting constant
' X(i): starting values of variables
' OUTPUTS:
' X(i) : The locally optimum set: x=x(1),y=x(2),z=x(3)
' iErr=0 : local maximum found found at the point x,y,z
' iErr<>0: local maximum not found

DKKAT:
xk nn deeri sonucu ok etkiler. Deitirilirse baka maximum
bulunmasna veya bulunamamasna, neden olabilir!
Deitirerek, rnein, xk=1 alarak, deneyiniz.

sn
o

Eps = 1E-08: ' Tolerance


Maxit = 500: ' max number of iteration
xk = .1: ' starting constant
EpsMach = 1E-15: ' Machine epsilon
it = 0: ' number of itaration
iErr = 0: ' error flag

326

em
de
r

' The routine needs three values of Y to get started


' Generate starting D(i) values
' These are not even good guesses and slow the program a little
dd = 1
d(1) = 1 / SQR(n)
FOR i = 2 TO n
d(i) = d(i - 1)
NEXT i
' Start initial probe
FOR i = 1 TO n
' Obtain yy and D[i]
y(i) = eval(x())
' Update X[i]
CALL Utilit1(n, dd, d())
CALL Utilit2(n, xk, dd, d(), y(), x(), x1())
NEXT i

w
.e

' We now have a history to base the subsequent search on


' Accelerate search if approach is monotonic
' start iteration
WHILE it < Maxit
IF ABS(y(2) - y(1)) >= EpsMach THEN
IF (y(3) - y(2)) / (y(2) - y(1)) > 0 THEN xk = xk * 1.2
END IF
' Decelerate if heading the wrong way
IF y(3) < y(2) THEN xk = xk / 2
' Update the Y[i] if value has decreased
IF y(3) > y(2) THEN
y(1) = y(2)
y(2) = y(3)
ELSE
' Restore the X(i)
FOR i = 1 TO n
x(i) = x1(i)
NEXT i
END IF
' Obtain new values
y(3) = eval(x())
CALL Derivatives(n, dd, xk, d(), x(), y()): ' Get D(i)
' if dd=0 then the precision limit of the computer has been reached
IF dd < EpsMach THEN EXIT SUB
' Update X[i]
CALL Utilit2(n, xk, dd, d(), y(), x(), x1())
' Check for convergence
IF ABS(y(3) - y(2)) < Eps THEN EXIT SUB
' Try another iteration
it = it + 1
WEND
iErr = 1: ' not converged
END SUB ' SteepestDescent

SUB Utilit1 (n, dd, d())


' Find the magnitude of the gradient
' Functions called by SteepestDescent and Derivatives
dd = 0
FOR i = 1 TO n
dd = dd + d(i) * d(i)
NEXT i
dd = SQR(dd)
END SUB ' Utilit1

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

326

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

327

ri.
co

SUB Derivatives (n, dd, xk, d(), x(), y())


' Find approximations of partial derivatives D(i) by finite differences
' Called by SteepestDescent
FOR i = 1 TO n
a = x(i): ' Save X(i)
b = d(i) * xk / (2 * dd): ' Find increment
x(i) = x(i) + b: ' Move increment in X(i)
yy = eval(x()): ' Obtain yy
IF ABS(b) < 1E-12 THEN b = 1E-12: ' Guard against divide by zero near maximum
d(i) = (yy - y(3)) / b: ' Update D(i)
IF ABS(d(i)) < .00001 THEN d(i) = .00001: ' Guard against locked up derivative
' Restore X(i) and yy
x(i) = a
SUB Utilit2 (n, xk, dd, d(), y(), x(), x1())
yy = y(3)
' Updates the X(i)
NEXT i
' called by SteepestDescent
' Obtain dd
FOR i = 1 TO n
CALL Utilit1(n, dd, d())
x1(i) = x(i)

x(i) = x(i) + xk * d(i) / dd


NEXT i
y(3) = eval(x())

tla

END SUB' Derivatives

END SUB ' Utilit2

sn
o

2. Sada grafii verilen y = f ( x) = x 2 + 4 x 1 + 3 tek

Max

deikenli
fonksiyonunun
[-6,6]
aralndaki
maksimumu SteepestDescent ile aranacaktr.

a)Fonksiyonun tanmlanmas iin eval alt program deitirilir:

em
de
r

FUNCTION eval (x())


' Definition of Function f(x,y,z) to maximize.
' x(1), x(2),x(3) correspondes variables x,y,z.
' Eval is the value of function f(x,y,z)
x = x(1)
f(x)= -x2+4|x1|+3 fonksiyonu
eval = -x * x + 4 * ABS(x - 1) + 3
END FUNCTION ' eval

b) Soldaki tepe noktasn bulmak iin ana programn DATA satrlar aadaki gibi deitirilir:

w
.e

DATA 1: ' n deiken says


DATA -3: ' deikenlerin balang deerleri

c) Program altrlarak sonu alnr:

SteepestDescent sonucu:
x= -2.0 de Max f(x)=11.0 anlamnda

d) Sadaki tepe noktasn bulmak iin DATA satrlar aadaki gibi deitirilir
DATA 1: ' n deiken says
DATA 3: ' deikenlerin balang deerleri
ve program altrlrsa:
SteepestDescent sonucu:
x= 2.0 de Max f(x)=3.0 anlamnda

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

327

37. Min-Max: Bir fonksiyonun minimum-maksimum deerlerinin belirlenmesi

328

3m

Hacim: V=x(3-2x)2
El zm:

3-2x

V=3(4x2 - 8x+3)=0

3-2x

3-2x

Max

V=x(3-2x)2

sn
o

tla

Denkleminin kkleri x1=0.5 ve x2=1.5 dir. kinci trev


kullanlarak bu kklerin V yi minimum mu yoksa
maksimum mu yapt belirlenebilir. Sadaki grafikten
grld
gibi
x=x1=0.5
iin
V(0.5)
maksimum
olmaktadr. Hacim:
V=0.5(3-2.0.5)=2 m3 olur.

ri.
co

V nin fonksiyonu ok basit olduundan el zm


yaplabilir. V nin x e gre trevinin sfr olduu noktalarda
V maksimum veya minimum olur:

3. 3x3 metre boyutlu sac levhann kenarlar kvrlarak


ykseklii x olan sv tank yaplacaktr. Tankn hacminin
maksimum olmas iin x ne olmaldr.

SteepestDescent Program ile zm:

em
de
r

a)Fonksiyonun tanmlamak iin eval alt program deitirilir:


FUNCTION eval (x())
' Definition of Function f(x,y,z) to maximize.
' x(1), x(2),x(3) correspondes variables x,y,z.
' Eval is the value of function f(x,y,z)
x = x(1)
V= x(3-2x)2 fonksiyonu
eval = x * (3-2*x)^2
END FUNCTION ' eval

b) Ana programn DATA satrlar aadaki gibi deitirilir:

w
.e

DATA 1: ' n deiken says


DATA 1: ' deikenlerin balang deerleri

c) SteepestDescent program altrlarak sonu alnr:

SteepestDescent sonucu:
x= 0.5 m de Max V=2 m3 anlamnda

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

328

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

tla

Ders notlar 2014

sn
o

Ahmet TOPU

I = f ( x)dx

em
de
r

xb

I=

yb ( x )

[ f ( x, y) dy] dx

xa

ya ( x )

xb yb ( x ) zb ( x , y )

I = {

f ( x, y , z )

dz ] dy}dx

w
.e

xa ya ( x ) za ( x , y )

38

BELRL NTEGRAL HESABI

Dikdrtgen kural
Dikdrtgen orta nokta kural
Simpson kural
Romberg metodu
Gauss-Legendre metodu
Adapte Simpson metodu
Recursive Simpson metodu
Tanh kural

330

38. BELRL NTEGRAL HESABI

38. BELRL NTEGRAL HESABI

Erisel uzunluk, alan, hacim, arlk merkezi, atalet


momenti, rijitlik gibi problemlerde tek ya da ok katl
integral hesab ile karlarz.
En basit tanmyla, bir f(x) fonksiyonunun [a,b]
aralndaki integrali f(x) fonksiyonu ile x ekseni
arasnda kalan, a ve b ile snrlanan alandr:

Alan = I = f ( x )dx
a

ri.
co

Alan = I = f ( x)dx

ntegralin (alann) analitik hesab her zaman mmkn olmaz. Aadaki durumlarda nmerik
integral hesab kanlmaz olur:

Analitik zm yoktur. rnek

x2
2

dx

tla

Kapal zm vardr fakat kullanlamayacak kadar karmaktr


Fonksiyon tanml deildir, sadece baz noktalardaki deerleri bilinmektedir

sn
o

Teknik problemlerde kullanlabilecek ok sayda nmerik integrasyon yntemi vardr:


Dikdrtgen kural, trapez kural; Simpson kural, Romberg, Gauss-Legendre, Tanh metotlar
ve bunlarn biraz deiik ekilleri.

em
de
r

Nmerik integrasyonda temel fikir, alan kk alt alanlara blmek, alt alanlarn her birini
yaklak olarak hesaplamak ve bu alanlar toplamaktan ibarettir.
Dikdrtgen kural:

Alan dikdrtgenler ile modellenir. a-b aral


n eit arala blnr, h=(b-a)/n.
f(x) in x1, x2, , xn noktalarndaki y1=f(x1),
y2=f(y2), ,yn=f(xn) ordinatlar hesaplanr.
Ai=hyi olur.
b

Alan = I = f ( x ) dx A1 + A2 + ... + An

b
h

x0

x1
A1

h
x2

A2

x3

xn

A3

An

w
.e

Alan = I = f ( x ) dx hy1 + hy 2 + ... + hy n


a

i =1

Alan = I = f ( x) dx h y i

Dikdrtgen orta nokta kural:


Alan dikdrtgenler ile modellenir. a-b aral
n eit arala blnr, h=(b-a)/n.
i. araln orta noktasndaki xi ye karlk
gelen yi = f(xi) ordinat hesaplanr, Ai=hyi
olur.
Toplam alan:
b

Alan = I = f ( x)dx hy1 + hy 2 + ... + hy n = h y i


a

i =1

b
h

x1

x2

x3
A3

A2
A1
y1
y2

h
xn
An
yn

y3

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

330

331

38. BELRL NTEGRAL HESABI

Yamuk(trapez) kural:
Alan yamuklar ile modellenir. a-b aral n
eit arala blnr, h=(b-a)/n.

Toplam alan:
b

Alan = I = f ( x )dx h
a

y0 + y1
y +y
y +y
+ h 1 2 + ... + h n1 n
2
2
2

tla

n1
1
1
1
1
Alan = I h( y0 + y1 + y2 + y3 + ... + yn = h( y0 + yi + yn )
2
2
2
2
i=2

ri.
co

xi ye karlk gelen yi = f(xi) ordinatlar


hesaplanr, Ai = h y i + y i +1 olur.
2

Simpson kural:

sn
o

n ift tam say olmak zere, a-b aral n eit


arala blnr, h=(b-a)/n. xi+2 - xi=2h
aralnda f(x) in ikince derece bir polinom
olduu varsaylr.

em
de
r

yi, yi+1, yi+2 ordinatlarnn A, B ve C tepe


noktalarndan
geen
y=ax2+bx+c
parabolnn a, b ve c sabitleri xi ye karlk
gelen yi = f(xi) ordinatlar yardmyla
bulunabilir. a, b, c nin hesabn basitletirmek
iin, y ekseni
B noktasna
kaydrlrsa
Forml
ile hesaplanr.
Toplam
alan A, B, C
noktalarnn koordinatlar A(-h,yi), B(0,yi+1),
C(h,yi+2)
olur.
Bu
noktalar
paraboln
denklemini salamak zorundadr:

A( h, y i ) y i = ah 2 bh + c
B(0, y i +1 ) y i +1 = c

w
.e

C (h, y i + 2 ) y i + 2 = ah 2 + bh + c

Ai alan:

Ai =

xi + 2

h
xi

h
xi+1

xi+2

Ai
yi

yi+1

yi+2
C(h,yi+2)

A(-h,yi)

B(0,yi+1)

20 parabol

1
( y i 2 y i +1 + y i + 2 )
2h 2
1
b=
( yi+2 yi )
2h
c = y i +1
a=

f ( x)dx (ax 2 + bx + c)dx =

xi

2ah 3
+ 2ch
3

a, b ve c deerleri yerine konarak:

Ai

h
( yi + 4 yi +1 + yi+ 2 )
3

Bulunur. Bu formle Simpson1 kural denir. Toplam alan


b

i =1

Alan = I = f ( x) dx A1 + A2 + .... + Ai + ... + An = Ai


olur.

Thomas Simpson , 1710-1761, ngiliz. Baz kaynaklarda bu formln Simpsondan 200 yl nce Kepler (1571-1630, Alman)
tarafndan kullanld, belirtilmektedir.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

331

332

38. BELRL NTEGRAL HESABI

rnek:

f(x) =

13(x x 2 )

, I = f(x) dx = ?

13 ( x x 2 )
e3x

3x

f (x) =

ri.
co

I = f(x) dx = ?
a

n=6 seelim. [1,4] araln eit genilikli


alt aralklara blelim: h=(4-1)/6=0.5.
kural: x = 1.5, 2, 2.5, 3, 3.5, 4
Simpson
h=0.5 aralklarla
i
noktalarndaki yi=f(xi) ordinatlar:

b=4

a=1

0.5

sn
o

yi=f(xi)
-1.0276
-1.2945
-1.1465
-0.8665
-0.5969
-0.3867

e3x

0.5

1.5

A1

0.5

A2

0.5

2.5

A3

0.5

A4

0.5

3.5

A5

A6

em
de
r

xi
1.5
2.0
2.5
3.0
3.5
4.0

13 ( x x 2 )

f (x) =

tla

Dikdrtgen kural:

ntegral:
4

I=

f ( x)dx = 0.5(1.0276 1.2945 1.1465 0.8665 0.5969 0.3867) = 2.6594


1

Dikdrtgen orta nokta kural:

n=6 seelim. [1,4] araln eit genilikli alt aralklara blelim, h=(4-1)/6=0.5.

w
.e

h=0.5 aralklarnn orta noktalarndaki xi= 1.25, 1.75, 2.25, 2.75, 3.25, 3.75
noktalarndaki yi=f(xi) ordinatlar:

xi
1.25
1.75
2.25
2.75
3.25
3.75

yi=f(xi)
-1.6230
-1.2360
-1.2511
-0.0112
-0.7258
-0.4835

f (x) =

13 ( x x 2 )
e3x

ntegral:
4

I=

f ( x)dx = 0.5(1.6230 1.2360 1.2511 0.0112 0.7258 0.4835) = 2.6653


1

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

332

333

38. BELRL NTEGRAL HESABI

Yamuk(trapez) kural:
f (x) =
4

I=

13 ( x x 2 )
e3x

f ( x)dx = 0.5( 2 0 1.0276 1.2945 1.1465 0.8666


1
0.3867) = 2.5627
2

ri.
co

0.5969

Ai

h
( yi + 4 yi +1 + yi + 2 ) bantsndan:
3

0.5
(0 4 1.0276 1.2945) = 0.9008
3
0.5
(1.2945 4 1.1465 0.8665) = 1.1245
A2 =
3
0.5
A3 =
(0.8665 4 0.5969 0.3867) = 0.6068
3

f (x) =

13 ( x x 2 )
e3x

em
de
r

sn
o

A1 =

tla

Simpson kural:

ntegral:
4

I=

f ( x)dx = A + A
1

+ A3 = 0.9008 1.1245 0.6068 = 2.6321

Yorum:

ntegralin gerek deeri


4

dx = 2.6310

w
.e

13( x x 2 )

e3x

ve yukarda hesaplanan yaklak deerlerin hata miktarlar


Dikdrtgen kural: |-2.6310-(-2.6594)|=0.02840
Dikdrtgen orta nokta kural: |-2.6310-(-2.6653)|=0.0343
Yamuk kural: |-2.6310-(-2.5627)|=0.0683
Simpson kural: |-2.6310-(-2.6321)|=0.0011
incelendiinde, beklendii gibi, Simpson kuralnn en doru sonucu verdii grlr. En byk hata yamuk
kuralndadr. Dikdrtgen kural yamuk kuralna nazaran daha doru gibi grlmekle birlikte yamuk kural
genelde dikdrtgen kuralndan daha doru sonu verir. Dikdrtgen kuralnn nmerik integrasyonu anlamak
asndan teorik deeri vardr. Uygulamada Simpson veya yamuk kural kullanlr.
rneklerde sadece 6 aralk ve alt aralk genilii h=0.5 alnmtr. Bu deerler uygulama asndan olduka
yetersizdir. Aralk says 20-50, h=0.05-0.1 civar genelde uygun olmaktadr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

333

334

38. BELRL NTEGRAL HESABI

Romberg1, Gauss-Legendre2, Adapte simpson, Recursive Simpson ve Tanh3 metotlarnn


teorik detayna girilmeyecek, ancak bunlara ait program ve zm rnekleri sonraki
blmde verilecektir.

13 ( x x 2 )

13 ( x x 2 )

ri.
co

f (x) =

e3x

e3x

sn
o

tla

f (x) =

Simpson kuralnda [a,b] aral ift sayda eit genilikli alt arala blnr. Adapte Simpson
metodunda ise f(x) fonksiyonunun eiminin hzla deitii blgelerde kk, eimin yava
deitii blgelerde byk aralklar seilir:

w
.e

em
de
r

Recursive Adapte Simpson metodu Adapte Simpson metodu ile ayndr. Tek fark
programnn recursive(kendi kendini aran alt program) teknii ile yazlmasdr. Recursive
programlama teknii ok az kod, fakat ok fazla yn(register), daha ok bellek gerektirir.
Hata olumas durumunda program durdurmak mmkn deildir, bilgisayarn kilitlenme
riski vardr.

1
2
3

Werner Romberg, 1909-2003, Alman. Ad ile anlan integrasyon metodunu 1955 ylnda yaynlad, 1960 ylna kadar ilgi grmedi.
Johann Carl Friedrich Gauss tarafndan 1814-1816 ylnda gelitirildi.
Charles Schwartz, Numerical Integration of Analytic Functions, Journal of Comp. Physics, Vol. 4, Number 1, June 1969, pages 19-29.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

334

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz
Ahmet TOPU

sn
o

tla

Ders notlar 2014

I = f ( x)dx
a

yb ( x )

em
de
r

xb

I=

[ f ( x, y) dy] dx

xa

ya ( x )

xb yb ( x ) zb ( x , y )

I = {

f ( x, y, z ) dz ] dy}dx

w
.e

xa ya ( x ) za ( x , y )

PROGRAMLAR:

Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson
TanhKurali
Yamuk2
Simpson2
Romberg2
GaussLegendre2
GaussLegendre3

39

Belirli integral hesab

336

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab


Bu blmde uygulamada kullanlan integrasyon metotlarnn QBASIC programlar ve zm
rnekleri verilecektir. Her hangi bir fonksiyon iin biri iyi sonu verirken bir dieri zm
vermeyebilir.

f ( x) dx

1. Simpson : I =

integralini Simpson kural ile hesaplar.

a
b

f ( x) dx

integralini Romberg metodu ile hesaplar.

ri.
co

2. Romberg: I =

a
b

3. GaussLegendre: I =

f ( x) dx

integralini Gauss-Legendre metodu ile hesaplar.

a
b

4.

AdabteSimpson: I =

f ( x) dx

integralini adabte(adabtive) Simpson metodu ile hesaplar.

tla

a
b

5.

RecursiveAdapteSimpson: I =

f ( x) dx integralini Recursive adabte Simpson metodu ile hesaplar.


a

f ( x) dx
a

b yb ( x )

7. Yamuk2: I = [

integralini Tanh kural ile hesaplar.

sn
o

6. TanhKurali: I =

f ( x, y) dy] dx
a ya ( x )
b yb ( x )

8. Simpson2: I = [

integralini yamuk kural ile hesaplar.

f ( x, y) dy] dx

integralini Simpson metodu ile hesaplar.

em
de
r

a ya ( x )

b yb ( x )

9. Romberg2: I = [

f ( x, y) dy] dx

integralini Romberg metodu ile hesaplar.

a ya ( x )

xb yb ( x )

10.GaussLegendre2: I = [

f ( x, y) dy] dx

integralini Gauss-Legendre metodu ile hesaplar.

xa ya ( x )

xb yb( x ) zb ( x , y )

11.

GaussLegendre3: I = {

f ( x, y, z) dz] dy} dx

integralini Gauss-Legendre metodu ile hesaplar.

xa ya ( x ) za ( x , y )

w
.e

Tek katl integral rnekleri:

Yukarda ad verilen programlar ile birok fonksiyonun tek katl integralleri hesaplanarak
sonular karlatrlmtr. Karlatrmay kolaylatrabilmek iin integrali hesaplanan
fonksiyonun ayrca grafii de izilmitir. Tm metotlarda [a,b] aral 20 ye blnm,
hassasiyet=0.000001 alnmtr(virglden sonraki 6. hane yuvarlanm). Ayn integraller
Mathematica1 ile de hesaplanm, Mathematica sonular doru varsaylarak, her metodun
hatal haneleri koyu krmz olarak iaretlenmitir.

I1 =
1

13( x x 2 )
e3x

dx

Metot

I1

Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson

-2.630988
-2.630988
-2.630988
-2.630988
-2.630988

TanhKurali

-2.630987
-2.630988

Mathematica 4

Mathematica 4: Wolfram Reserch tarafndan gelitirilmi, analitik ve nmerik hesap yapabilen profesyonel yazlm
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

336

337

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

I2 =

/2

1 + Cos 2 ( x)

dx

I2
1.437642
1.437642
1.437642
1.437642
1.437642
1.437642
1.437642

Metot

Ln(1 + x)Sin(10 x)dx


0

-0.197627
-0.197627
-0.197627

AdapteSimpson

-0.197628
-0.197627
-0.197627
-0.197627

em
de
r

sn
o

RecursiveAdapteSimpson
TanhKurali
Mathematica 4

I4 =

e +1
x

dx

w
.e

I5 =

Sin(8 x )
ex

+ 1dx

Metot

I4

Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson

4.095902
4.095902
4.095902
4.095902
4.095902

TanhKurali

4.095901
4.095902

Mathematica 4

Metot

I5

Simpson

3.388868

Romberg
GaussLegendre

3.388868
3.388869

AdapteSimpson

3.388868

RecursiveAdapteSimpson

3.388868

TanhKurali

3.388868
3.388869

Mathematica 4

Metot
1

I 6 = x dx
0

I3

Simpson
Romberg
GaussLegendre

tla

I3 =

ri.
co

Metot
Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson
TanhKurali
Mathematica 4

I6

Simpson

0.666666

Romberg

0.666666
0.666667
0.666667
0.666667
0.666667
0.666667

GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson
TanhKurali
Mathematica 4

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

337

338

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Metot

I 7 = x x dx
0

1241.816715
1241.816715
1241.816715

AdapteSimpson

1241.816719

I7

Simpson
Romberg
GaussLegendre

RecursiveAdapteSimpson

1241.816719

TanhKurali

1241.816714
1241.816715

ri.
co

Mathematica 4

Metot

/2

Tan( x)dx

1.5

em
de
r
1

x2
2

1013
Yn tamas (Stack overflow)
Yaknsamad
Yaknsamad

Metot

I9

Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson
TanhKurali
Mathematica 4

-0.166312
-0.166312
-0.166312
-0.166312
-0.166312
-0.166312
-0.166312

dx

w
.e

I 10 = e

AdapteSimpson

RecursiveAdapteSimpson
TanhKurali
Mathematica 4

sn
o

I 9 = Cos(Tan( x))dx

Yaknsamad
Yaknsamad
Yaknsamad

tla

I8 =

I8

Simpson
Romberg
GaussLegendre

I10
2.392576
2.392576
2.392576
2.392576
2.392576
2.392575
2.392576

Metot
Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson
TanhKurali
Mathematica 4

Metot
200

I 11 =

Sin( x)
dx
x

I11

TanhKurali

Say tamas
Say tamas
1.568382
Say tamas
Say tamas
1.568380

Mathematica 4

1.568320

Simpson
Romberg
GaussLegendre
AdapteSimpson
RecursiveAdapteSimpson

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

338

339

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Metot

1.494268
1.494268
1.494268

AdapteSimpson

1.494267

RecursiveAdapteSimpson

1.494267

TanhKurali

1.494267
1.494268

I 12 = Sin( x 2 )dx

I12

Simpson
Romberg
GaussLegendre

ri.
co

Mathematica 4

Metot

I13

2.587109

Simpson

tla

I 13 = 3 Sin( x) dx

2.587109
2.587110

Romberg

GaussLegendre

TanhKurali

2.586384
Yn tamas
(Stack overflow)
2.587109

Mathematica 4

2.587110

AdapteSimpson

sn
o

RecursiveAdapteSimpson

50

em
de
r

1
I 14 =
dx
Ln( x)
2

w
.e

40

I 15 =

x 4 + 1dx

40

Metot

I14

Simpson
Romberg
GaussLegendre
AdapteSimpson

17.423533
17.423533
17.423533
17.423533

RecursiveAdapteSimpson

17.423534

TanhKurali

17.423524
17.423533

Mathematica 4

Metot

I15

Romberg
GaussLegendre

4691.846448
4691.846447
4691.846447

AdapteSimpson

4691.846451

RecursiveAdapteSimpson

4691.846450

TanhKurali

4691.846435
4691.846447

Simpson

Mathematica 4

Metot

40

I 16 =

40

1
3

x4 +1

dx

I16

Simpson

6.027112

Romberg

6.027112

GaussLegendre

6.027112

AdapteSimpson

6.027113

RecursiveAdapteSimpson

6.027114
6.027099
6.027099

TanhKurali
Mathematica 4

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

339

340

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Karlatrma

I1

Simpson

Romberg

-2.630988

-2.630988

GaussLegendre AdapteSimpson RecursiveAdapteSimpson TanhKural Mathematica


-2.630988

-2.630988

-2.630988

-2.630987

-2.630988

I2

1.437642

1.437642

1.437642

1.437642

1.437642

1.437642

I3

-0.197627

-0.197627

-0.197627

-0.197628

-0.197627

-0.197627

-0.197627

I4

4.095902

4.095902

4.095902

4.095902

4.095902

4.095901

4.095902

I5

3.388868

3.388868

3.388869

3.388638

3.388868

3.388868

3.388869

I6

0.666666

0.666666

0.666667

0.666667

I7

1241.816715

1241.816715

1241.816715

1241.816719

I8

Yaknsamad

Yaknsamad

Yaknsamad

I9

-0166312

-0166312

-0166312

I10

2.392576

2.392576

2.392576

2.392576

I11

Say
Tamas

Say
Tamas

1.568382

Say
Tamas

I12

1.494268

1.494268

1.494268

1.494267

ri.
co

1.437642

0.666667

0.666667

0.666667

1241.816719

1241.816714

1241.816715

1013

Yn tamas
(Stack overflow)

Yaknsamad

Yaknsamad

-0166312

-0166312

-0166312

-0166312

2.392576

2.392575

2.392576

Say Tamas

1.568380

1.568320

tla

Analitik zm olmayan integraller:

1.494266

1.494267

1.494268

2.587109

2.587110

2.586384

17.423533

17.423533

17.423533

17.423534

17.423524

17.423533

4691.846448

4691.846447

4691.846447

4691.846451

4691.846450

4691.846435

4691.846447

6.027112

6.027112

6.027112

6.027113

6.027114

6.027099

6.027112

2.587109

I14

17.423533

I15
I16

2.587109

em
de
r

I13

sn
o

2.587110

Yn tamas
(Stack overflow)

YORUM:
Yukardaki tablo incelendiinde, tm metotlarn, uygulama asndan, tatminkr sonu verdii sylenebilir. Her
integrali hesaplayabilen ideal bir metot yoktur. Bir sralama yapmak gerekirse; GaussLegendre, Simpson,
Romberg en iyi integrasyon metodudur denilebilir.
zellikle

I8 =

/2

/2

Tan( x)dx integraline dikkat ekmek gerekir. Bu integralin teorik sonucu I8 =

Tan( x)dx = +

dur, bilgisayarda hesaplamak mmkn deildir. nk bilgisayarda byk yoktur. AdapteSimpson 1013
gibi, uygulama asndan olduka byk bir say vermi, dierleri yaknsamamtr. Bu sonu, teorik olarak
yanl olmakla birlikte, AdapteSimpson metodunun [a,b] aralnda srekli olan, fakat eimi ani ve hzla deien
fonksiyonlarda daha iyi sonu verecei anlamna gelir.
200

Sin( x)
dx integralinde baz metotlarn Say Tamas vermesi beklenen bir sonutur. nk integralin
x

w
.e

I 11 =

alt snr iin sfr blm olumaktadr. Ayn integral iin GaussLegendre ve Tanh metotlarnn sonu vermesi de
doaldr, nk bu metotlar integral araln deitirerek hesaplarlar.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

340

341

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

ki katl integral rnekleri:

Aadaki iki katl integraller ad verilen programlar ile hesaplanm, sonular


karlatrlmtr. Hassasiyet=0.01 alnmtr. Ayn integraller Mathematica ile de
hesaplanm, Mathematica sonular doru varsaylarak, her metodun hatal hane says
koyu krmz olarak iaretlenmitir.

I1 =

x2 y2

dydx

5.94

5.94

5.94

0.52

0.52

0.52

4.44

4.44

4.44

4.44

4.44

1.00

1.00

1.00

1.00

1.00

2 1

/2 1

(1 y
0

)Cos ( x) 2 dydx

I3 =

(4 x

2 y 2 )dydx

2 e

I4 =

x + y dydx

0 1 x

I5 =

/2

Sin ( x )

( x + y )dydx

xx

(x

+ y 2 )dydx

0 x

0.52

0.52

0.43

0.43

0.43

0.43

20.80

20.80

20.80

20.80

20.80

134.03

134.03

134.04

134.04

134.04

1.02

1.01

1.01

1.02

1.00

16 x 2 )

I7 =

5.94

0.43

em
de
r

I6 =

Tan ( x / 2 )

5.94

tla

( 4 x 2 ) / 2

sn
o

I2 =

ri.
co

Yamuk2 Simpson2 Romberg2 GaussLegendre2 Mathematica 4

I8 =

16 x
8x

16 x 2 y 2 dydx

dydx

x2

YORUM:
Yukardaki tablo incelendiinde, tm metotlarn, uygulama asndan, iyi sonu verdii sylenebilir.
GaussLegendre2 ve Simpson2 hzl yaknsama sergilerken Yamuk2 ve zellikle Romberg2 programlarnn yava
kald gzlenmitir.
ki katl integral rneklerinin tmnde hassasiyet=0.01 alnmtr. Hassasiyetin daha kk seilmesi, rnein:
hassasiyet=0.00001, doru hane saysn hemen hi deitirmemektedir. Sonu olarak, iki katl integrallerde,
hassasiyetin kk seilmesi hibir kazan salamazken hesap sresinin ar uzamasna neden olmaktadr.

w
.e

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

341

342

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

katl integral rnekleri:

GaussLegendre3 Gerek deer


1 2 3

I1 =

y 2 z 2 dz dy dx

8.00

8.00

9 y 2

2 3

I2 =

z dz dy dx
2

0 0

0
2
4 x x2 2 x y

4 x 2

I4 =

dz dy dx

4 x 2 y 2

-2 4 x 2
6 (12 2 x ) / 3

dz dy dx

I5 =

Sin ( x ) 2

dz dy dx

Sin( x) + Cos( x) + Sin( z)dz dy dx

x y

51.20

12.57

8.00

8.0

17.30

17.30

em
de
r

/2 Sin ( x ) 2

x+ y

51.20

12.57

0
(12 2 x 3 y ) / 6

31.81

tla

I3 =

31.81

sn
o

I6 =

ri.
co

0 0 0

Aadaki katl integraller Hassasiyet=0.01 alnarak GaussLegendre3 program ile


hesaplanm, sonular gerek deerler ile karlatrlmtr.

YORUM:

w
.e

katl integral rneklerinin tmnde hassasiyet=0.01 alnmtr. Hassasiyetin daha kk seilmesi, rnein:
hassasiyet=0.00001, doru hane saysn hemen hi deitirmemektedir. Sonu olarak, ok katl integrallerde,
hassasiyetin kk seilmesi hibir kazan salamazken hesap sresinin ar uzamasna neden olmaktadr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

342

343

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'-----------------------Ana program Simpson----------------------' f(x) fonksiyonun [a,b] aralnda tek katl entegralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' Metot: Simpson

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

'
'
'
'
'

Tek katl integral:


Simpson integrasyon metodu
(ana program)

'
'
'
'

ri.
co

' f(x) fonksiyonu ana programda DEF fnF(x)=... ile tanmlanmaldr.


kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

DEFINT A-I
DEFDBL A-H, O-Z
DECLARE SUB Simpson (ai, bi, Hassasiyet, Altintegral, iHata)

' Araln ve f(x) fonksiyonunun tanmlanmas


Pi = 4 * ATN(1) ' Pi=3.14... says

tla

' arlan alt program: Simpson


'----------------------------------------------------------------

sn
o

a = 1: b = 4: DEF fnF (x) = 13 * (x - x * x) * EXP(-3 * x / 2)


'a = 0: b = Pi / 2: DEF fnF (x) = x ^ 3 / SQR(1 + COS(x) ^ 2)
'a = 0: b = 2 * pi: DEF fnF (x) = LOG(1 + x) * SIN(10 * x)
'a = 0: b = 5: DEF fnF (x) = x ^ 3 / (EXP(x) + 1)
'a = -2: b = 2: DEF fnF (x) = EXP(-.5 * x) * SIN(8 * x ^ 2 ^ (1 / 3)) + 1
'a = 0: b = 1: DEF fnF (x) = SQR(x)
'a = 0: b = 5: DEF fnF (x) = x ^ x
'a = 0: b = Pi / 2: DEF fnF (x) = TAN(x)
'a = 1: b = 1.5: DEF fnF (x) = COS(TAN(x))

ntegrali hesaplanacak fonksiyonlar


' iareti olmayan fonksiyon hesaplanr. Bu
iareti ieren fonksiyon devre ddr.

em
de
r

' analitik zm olmayan integraller:


'a = -2: b = 2: DEF fnF (x) = EXP(-x ^ 2 / 2)
'a = 0: b = 1: DEF fnF (x) = SIN(x) / x
'a = -4: b = 4: DEF fnF (x) = SIN(x ^ 2)
'a = 0: b = Pi: DEF fnF (x) = SIN(x) ^ (1 / 3)
'a = 2: b = 50: DEF fnF (x) = 1 / LOG(x)
'a = -40: b = 40: DEF fnF (x) = (1 + x ^ 4) ^ (1 / 3)
'a = -40: b = 40: DEF fnF (x) = 1 / (1 + x ^ 4) ^ (1 / 3)
CLS

Hassasiyet = .000001' deitirilebilir,(1E-4 - 1E-12 aras normal)


MaxAralik = 20
' deitirilebilir,(2-100 aras normal)
Delta = (b - a) / MaxAralik
bi = a

w
.e

Toplamintegral = 0
FOR iAralik = 1 TO MaxAralik
ai = bi
bi = ai + Delta
IF iAralik = MaxAralik THEN bi = b

CALL Simpson(ai, bi, Hassasiyet, Altintegral, iHata)


Toplamintegral = Toplamintegral + Altintegral
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(Simpson)"
PRINT "Hesaplanan yaklak deer="; Toplamintegral
END
END IF

NEXT iAralik
PRINT "ntegral(Simpson)="; Toplamintegral
END ' Simpson ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

343

344

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

h = .5 * (bi - ai)
s = 2 * fnF(ai + h)
r = fnF(ai) + fnF(bi)
c=h/3
EskiAltintegral = c * (r + 2 * s)
FOR i = 2 TO m
h = .5 * h
r=r+s

sn
o

' arlan program: yok


'--------------------------------------------------------------------iHata = 0
m = 14 ' m>14 tam say tamasna neden olabilir

tla

' f(x) fonksiyonu aran programda DEF fnF(x)=... ile tanmlanmaldr.

ri.
co

'
'
'
'
'

Tek katl integral:


Simpson integrasyon metodu
(alt program)

SUB Simpson (ai, bi, Hassasiyet, Altintegral, iHata)


'--------------------------------------------------------------------' f(x) fonksiyonunun [ai,bi] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Simpson

em
de
r

s=0
iAltaralikSayisi = 2 ^ i
FOR iAltAralikNo = 1 TO iAltaralikSayisi STEP 2
x = ai + h * iAltAralikNo
IF iAltAralikNo = iAltaralikSayisi THEN x = bi
s = s + fnF(x)
NEXT iAltAralikNo
s=2*s
c = .5 * c
Altintegral = c * (r + 2 * s)

Hata = ABS(Altintegral - EskiAltintegral)


IF i > 2 AND Hata <= Hassasiyet THEN EXIT SUB
EskiAltintegral = Altintegral

NEXT i

w
.e

iHata = 1

END SUB ' Simpson sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

344

345

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Tek katl integral:


Romberg integrasyon metodu
(ana program)

'----------------------Ana Program Romberg-------------------------' f(x) fonksiyonunun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Romberg

' f(x) fonksiyonu ana programda DEF fnF(x)=... ile tanmlanmaldr.


kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

' arlan alt program: Romberg


'------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Romberg (ai, bi, Hassasiyet, Altintegral, iHata)
' Araln ve f(x) fonksiyonunun tanmlanmas
Pi = 4 * ATN(1) ' Pi=3.14... says

tla

'
'
'
'

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

ri.
co

'
'
'
'
'

sn
o

a = 1: b = 4: DEF fnF (x) = 13 * (x - x * x) * EXP(-3 * x / 2)


'a = 0: b = Pi / 2: DEF fnF (x) = x ^ 3 / SQR(1 + COS(x) ^ 2)
'a = 0: b = 2 * pi: DEF fnF (x) = LOG(1 + x) * SIN(10 * x)
'a = 0: b = 5: DEF fnF (x) = x ^ 3 / (EXP(x) + 1)
'a = -2: b = 2: DEF fnF (x) = EXP(-.5 * x) * SIN(8 * x ^ 2 ^ (1 / 3)) + 1
'a = 0: b = 1: DEF fnF (x) = SQR(x)
'a = 0: b = 5: DEF fnF (x) = x ^ x
a = 0: b = Pi / 2: DEF fnF (x) = TAN(x)
a = 1: b = 1.5: DEF fnF (x) = COS(TAN(x))

em
de
r

' analitik zm olmayan integraller:


'a = -2: b = 2: DEF fnF (x) = EXP(-x ^ 2 / 2)
'a = 0: b = 1: DEF fnF (x) = SIN(x) / x
'a = -4: b = 4: DEF fnF (x) = SIN(x ^ 2)
'a = 0: b = Pi: DEF fnF (x) = SIN(x) ^ (1 / 3)
'a = 2: b = 50: DEF fnF (x) = 1 / LOG(x)
'a = -40: b = 40: DEF fnF (x) = (1 + x ^ 4) ^ (1 / 3)
'a = -40: b = 40: DEF fnF (x) = 1 / (1 + x ^ 4) ^ (1 / 3)
CLS

Hassasiyet = .000001' deitirilebilir, (1E-4 - 1E-12 aras normal)


MaxAralik = 20 ' deitirilebilir, (2-100 aras normal)
Delta = (b - a) / MaxAralik
bi = a

w
.e

Toplamintegral = 0
FOR iAralikNo = 1 TO MaxAralik
ai = bi: bi = ai + Delta
IF iAralikNo = MaxAralik THEN bi = b

CALL Romberg(ai, bi, Hassasiyet, Altintegral, iHata)


Toplamintegral = Toplamintegral + Altintegral
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(Romberg)"
PRINT "hesaplananyaklak deer="; Toplamintegral
END
END IF

NEXT iAralikNo
PRINT "ntegral(Romberg)="; Toplamintegral
END ' Romberg ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

345

346

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

SUB Romberg (ai, bi, Hassasiyet, Altintegral, iHata)


'--------------------------------------------------------------------' f(x) fonksiyonunun [ai,bi] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Romberg

' f(x) fonksiyonu aran programda DEF fnF(x)=... ile tanmlanmaldr.


kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

' arlan program: yok


'--------------------------------------------------------------------DIM Sayici1 AS LONG ' 4 Byte(32 bit) integer
DIM Sayici2 AS LONG
DIM i AS LONG, m AS LONG

tla

'
'
'
'

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

ri.
co

'
'
'
'
'

Tek katl integral:


Romberg integrasyon metodu
(alt program)

Maxiterasyon = 10 ' Romberg iterasyon says(4-12 aras normal)

sn
o

IF Maxiterasyon < 4 THEN Maxiterasyon = 4


n = Maxiterasyon + 1
n = (n * n - n) / 2 + n
DIM Tablo(n) ' Romberg tablosu
m = 2 ^ 12' Maksimum alt aralk says

em
de
r

Delta = bi - ai
Deltax = Delta
Sayici1 = 1
Sayici2 = 2
EskiAltintegral = 0
Tablo(1) = .5 * (fnF(ai) + fnF(bi))

' Yamuk kural


FOR iterasyonNo = 1 TO Maxiterasyon
x = ai + .5 * Deltax
fx = 0
FOR i = 1 TO Sayici1
fx = fx + fnF(x)
x = x + Deltax
NEXT i
t1 = .5 * Tablo(1) + fx / Sayici2

w
.e

' Romberg tablosu


FOR i = 1 TO iterasyonNo
t2 = t1 + (t1 - Tablo(i)) / (4 ^ i - 1)
Tablo(i) = t1
t1 = t2
NEXT i

Altintegral = Delta * t1
Hata = ABS(Altintegral - EskiAltintegral)
IF iterasyonNo > 2 AND Hata <= Hassasiyet GOTO 1
EskiAltintegral = Altintegral
Tablo(iterasyonNo + 1) = t1
Sayici1 = 2 * Sayici1
Sayici2 = 2 * Sayici2
Deltax = .5 * Deltax

IF Sayici1 > m OR Sayici2 > m THEN EXIT FOR


NEXT iterasyonNo
iHata = 1
EXIT SUB
1 iHata = 0
END SUB ' Romberg sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

346

347

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'-----------------------Ana program GaussLegendre---------------------' f(x) fonksiyonun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' Kullanlan metot: Gauss-Legendre

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

'
'
'
'
'

Tek katl integral:


GaussLegendre integrasyon
metodu (ana program)

'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

' arlan alt program: GaussLegendre


'------------------------------------------------------------------------

' Araln ve f(x) fonksiyonunun tanmlanmas


Pi = 4 * ATN(1) ' Pi=3.14... says

tla

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussLegendre (a, b, Hassasiyet, Toplamintegral, iHata)
DECLARE SUB GauLeg (Ai, Bi, x(), w(), n)

ri.
co

' f(x) fonksiyonu ana programda DEF fnF(x)=... ile tanmlanmaldr.

sn
o

a = 1: b = 4: DEF fnf (x) = 13 * (x - x * x) * EXP(-3 * x / 2)


'a = 0: b = Pi / 2: DEF fnf (x) = x ^ 3 / SQR(1 + COS(x) ^ 2)
'a = 0: b = 2 * pi: DEF fnf (x) = LOG(1 + x) * SIN(10 * x)
'a = 0: b = 5: DEF fnf (x) = x ^ 3 / (EXP(x) + 1)
'a = -2: b = 2: DEF fnf (x) = EXP(-.5 * x) * SIN(8 * x ^ 2 ^ (1 / 3)) + 1
'a = 0: b = 1: DEF fnf (x) = SQR(x)
'a = 0: b = 5: DEF fnf (x) = x ^ x
'a = 0: b = Pi / 2: DEF fnf (x) = TAN(x)
'a = 1: b = 1.5: DEF fnf (x) = COS(TAN(x))

em
de
r

' analitik zm olmayan integraller:


'a = -2: b = 2: DEF fnf (x) = EXP(-x ^ 2 / 2)
'a = 0: b = 200: DEF fnf (x) = SIN(x) / x
'a = -4: b = 4: DEF fnf (x) = SIN(x ^ 2)
'a = 0: b = Pi: DEF fnf (x) = SIN(x) ^ (1 / 3)
'a = 2: b = 50: DEF fnf (x) = 1 / LOG(x)
'a = -40: b = 40: DEF fnf (x) = (1 + x ^ 4) ^ (1 / 3)
'a = -40: b = 40: DEF fnf (x) = 1 / (1 + x ^ 4) ^ (1 / 3)
CLS

Hassasiyet = .000001' deitirilebilir(1E-4 -1E-12 aras normal)


CALL GaussLegendre(a, b, Hassasiyet, Toplamintegral, iHata)

w
.e

IF iHata <> 0 THEN


PRINT "ntegral yaknsamad(GaussLegendre)"
PRINT "Hesaplanan yaklak deer="; Toplamintegral
ELSE
PRINT "ntegral(GaussLegendre)="; Toplamintegral
END IF

END ' GaussLegendre ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

347

348

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Tek katl integral:


Gauss-Legendre integrasyon
metodu (alt program)

SUB GaussLegendre (a, b, Hassasiyet, Toplamintegral, iHata)


'------------------------------------------------------------------------------' f(x) fonksiyonun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' Kullanlan metot: Gauss-Legendre

' f(x) fonksiyonu aran programda DEF fnF(x)=... ile tanmlanmaldr.


'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

Toplamintegral = 0
FOR iAralik = 1 TO MaxAralik
Ai = Bi: Bi = Ai + Delta
IF iAralik = MaxAralik THEN Bi = b

em
de
r

Eskiintegral = 0
FOR i = 1 TO m
n=2^i

sn
o

Delta = (b - a) / MaxAralik
Bi = a

tla

' arlan alt program: GauLeg


'------------------------------------------------------------------------------MaxAralik = 20
' deitirilebilir(2-100 aras normal)
MaxNokta = 1024 ' deitirilebilir(300-3000 aras normal)
' MaxNokta alt st snrn kontrol et
IF MaxNokta < 2 THEN MaxNokta = 8
IF MaxNokta > 2 ^ 13 THEN MaxNokta = 2 ^ 13
m = LOG(MaxNokta) / LOG(2)
MaxNokta = 2 ^ m
DIM x(MaxNokta), w(MaxNokta)

CALL GauLeg(Ai, Bi, x(), w(), n)

Altintegral = 0
FOR j = 1 TO n
Altintegral = Altintegral + w(j) * fnf(x(j))
NEXT j

IF ABS(Altintegral - Eskiintegral) <= Hassasiyet GOTO 1


Eskiintegral = Altintegral
NEXT i

iHata = 1
EXIT SUB

Toplamintegral = Toplamintegral + Altintegral


NEXT iAralik

w
.e

END SUB ' GaussLegendre sonu

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

ri.
co

'
'
'
'
'

GauLeg alt program


GaussLegendre program
tarafndan arlr

SUB GauLeg (Ai, Bi, x(), w(), n)


'------------------------------------------------------------------' Gauss-Legendre integrasyon ordinatlar ve arlklar hesaplanr
' ai: integralin alt snr
' bi: integralin st snr
' x(n): Gauss-Legendre ordinatlarnn depoland vektr
' w(n): Gauss-Legendere arlklarnn depoland vektr
' n: Gaus-Legendre integral nokta says

' arlan alt program: yok


' Fortran kodu http://www.haoli.org/nr/bookf/f4-5.ps den alnmtr
'------------------------------------------------------------------x1 = Ai
x2 = Bi
Pi = 4 * ATN(1)' Pi=3.14... says
Hassasiyet = 3E-14: ' Gauleg iin hassasiyet(deitirmeyiniz!)
m = (n + 1) / 2
xm = .5 * (x2 + x1)
x1 = .5 * (x2 - x1)
FOR i = 1 TO m
z = COS(Pi * (i - .25) / (n + .5))
' # iareti DOUBLE anlamndadr
z1 = 0
WHILE ABS(z - z1) > Hassasiyet
p1 = 1
p2 = 0
FOR j = 1 TO n
p3 = p2
p2 = p1
p1 = ((2 * j - 1) * z * p2 - (j - 1) * p3) / j
NEXT j
pp = n * (z * p1 - p2) / (z * z - 1)
z1 = z
z = z1 - p1 / pp
WEND
x(i) = xm - x1 * z
x(n + 1 - i) = xm + x1 * z
w(i) = 2 * x1 / ((1 - z * z) * pp * pp)
w(n + 1 - i) = w(i)
NEXT i
END SUB ' Gauleg sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

348

349

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Tek katl integral:


Adapte Simpson integrasyon
metodu (ana program)

'----------------------Ana program Adapte Simpson-------------------' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010
' f(x) fonksiyonunun [a,b] araldaki tek katl inegralini hesaplar

' Kullanlan metot: Adapte(adaptive) Simpson kural

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

' f(x) fonksiyonu ana programda DEF fnF(x)=... ile tanmlanmaldr.


'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

' arlan alt program: AdapteSimpson


'--------------------------------------------------------------------

sn
o

TYPE AraBilgiler
a AS DOUBLE
c AS DOUBLE
b AS DOUBLE
s AS DOUBLE
Hassasiyet AS DOUBLE
Kontrol AS INTEGER
END TYPE

tla

DEFINT I-N
DEFDBL A-H, O-Z

ri.
co

'
'
'
'
'

DECLARE SUB AdapteSimpson (a, b, Hassasiyet, Toplamintegral, iHata)


DECLARE SUB SimpsonKurali (a, b, YariHassasiyet, AraBilgiVektoru AS AraBilgiler)
DECLARE SUB AralikYarila (iAralikNo, AraBilgiMatrisi() AS AraBilgiler, iAltAralikSayaci, itrasyonDevamEdiyor)

em
de
r

' araln ve f(x) fonksiyonunun tanmlanmas


Pi = 4 * ATN(1) ' Pi=3.14... says

a = 1: b = 4: DEF fnF (x) = 13 * (x - x * x) * EXP(-3 * x / 2)


'a = 0: b = Pi / 2: DEF fnF (x) = x ^ 3 / SQR(1 + COS(x) ^ 2)
'a = 0: b = 2 * pi: DEF fnF (x) = LOG(1 + x) * SIN(10 * x)
'a = 0: b = 5: DEF fnF (x) = x ^ 3 / (EXP(x) + 1)
'a = -2: b = 2: DEF fnF (x) = EXP(-.5 * x) * SIN(8 * x ^ 2 ^ (1 / 3)) + 1
'a = 0: b = 1: DEF fnF (x) = SQR(x)
'a = 0: b = 5: DEF fnF (x) = x ^ x
'a = 0: b = Pi / 2: DEF fnF (x) = TAN(x)
'a = 1: b = 1.5: DEF fnF (x) = COS(TAN(x))

w
.e

' analitik zm olmayan integraller:


'a = -2: b = 2: DEF fnF (x) = EXP(-x ^ 2 / 2)
'a = 0: b = 1: DEF fnF (x) = SIN(x) / x
'a = -4: b = 4: DEF fnF (x) = SIN(x ^ 2)
'a = 0: b = Pi: DEF fnF (x) = SIN(x) ^ (1 / 3)
'a = 2: b = 50: DEF fnF (x) = 1 / LOG(x)
'a = -40: b = 40: DEF fnF (x) = (1 + x ^ 4) ^ (1 / 3)
'a = -40: b = 40: DEF fnF (x) = 1 / (1 + x ^ 4) ^ (1 / 3)
CLS

Hassasiyet = .000001 ' deitirilebilir(1E-04 - 1E-12 aras normal)


CALL AdapteSimpson(a, b, Hassasiyet, Toplamintegral, iHata)
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(AdapteSimpson)"
PRINT "Hesaplanan yaklak deer="; Toplamintegral
ELSE
PRINT "ntegral(AdapteSimpron)="; Toplamintegral
END IF

END ' Adapte Simpson ana

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

349

350

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

SUB AdapteSimpson (a, b, Hassasiyet, Toplamintegral, iHata)


'--------------------------------------------------------------------------' f(x) fonksiyonunun [a,b] araldaki inegralini hesaplar
' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010

Tek katl integral:


Adapte Simpson integrasyon
metodu (alt program)

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

' f(x) fonksiyonu aran programda DEF fnF(x)=... ile tanmlanmaldr.


kt:
Toplamintegral: integralin hesaplanan deeri
iHata=0 : integral yaknsad
iHata<>0 : integral yaknsamad

tla

'
'
'
'

ri.
co

'
'
'
'
'

' Kullanlan metot: Adaptive Simpson kural


' 1.Mathews, H. J., Numerical Methods for Mathematics, Science &
' Engineering, Prentice Hall, 1992
' 2.Conte, S., D., Boor, C., Elementary Numerical Analysis, McGraw-Hill, 1980

iHata = 0
Toplamintegral = 0

em
de
r

Delta = (b - a) / MaxAralik
bi = a
FOR iAralik = 1 TO MaxAralik
ai = bi
bi = ai + Delta
IF iAralik = MaxAralik THEN bi = b

sn
o

' Programn yalanc kodu yukarda verilen birinci kaynaktan alnmtr


' arlan alt programlar: AralikYarila, SimpsonKurali
'--------------------------------------------------------------------------MaxAralik = 20
' deitirilebilir(2-100 aras normal)
MaxAltAralik = 500 ' programda ngrlen maksimum alt aralk says
DIM AraBilgiMatrisi(MaxAltAralik + 1) AS AraBilgiler
DIM AraBilgiVektoru AS AraBilgiler

CALL SimpsonKurali(ai, bi, Hassasiyet, AraBilgiVektoru)


AraBilgiMatrisi(1) = AraBilgiVektoru

iAltAralikSayaci = 1
itrasyonDevamEdiyor = 1 '( =1 TRUE =0 FALSE anlamnda )
WHILE itrasyonDevamEdiyor = 1
n = iAltAralikSayaci
FOR iAralikNo = n TO 1 STEP -1
CALL AralikYarila(iAralikNo, AraBilgiMatrisi(), iAltAralikSayaci, itrasyonDevamEdiyor)

Altintegral = 0
FOR j = 1 TO iAltAralikSayaci
Altintegral = Altintegral + AraBilgiMatrisi(j).s
NEXT j
Toplamintegral = Toplamintegral + Altintegral

NEXT iAralik
END SUB ' AdapteSimpson sonu

w
.e

' zin verilen maksimum aralk saysna ulald m?


IF iAltAralikSayaci = MaxAltAralik THEN
iHata = 1
EXIT SUB
END IF
NEXT iAralikNo
WEND

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

350

351

SUB AralikYarila (iAralikNo, AraBilgiMatrisi() AS AraBilgiler, iAltAralikSayaci, itrasyonDevamEdiyor)


'---------------------------------------------------------------------------------------------------' f(x) fonsiyonunun eiminin byk olduu blgelerde kk aralklar, eimin kk olduu blgelerde
' byk aralklar otomatik olarak seilir
'---------------------------------------------------------------------------------------------------DIM AraBilgiVektoru0 AS AraBilgiler
DIM AraBilgiVektoru1 AS AraBilgiler, AraBilgiVektoru2 AS AraBilgiler

Bu alt program AdapteSimpson


alt pogram tarafndan arlr

a = AraBilgiVektoru0.a
c = AraBilgiVektoru0.c
b = AraBilgiVektoru0.b
Hassasiyet = AraBilgiVektoru0.Hassasiyet
Kontrol = AraBilgiVektoru0.Kontrol

tla

IF Kontrol = 1 THEN EXIT SUB


CALL SimpsonKurali(a, c, .5 * Hassasiyet, AraBilgiVektoru1)
CALL SimpsonKurali(c, b, .5 * Hassasiyet, AraBilgiVektoru2)
Hata = ABS(AraBilgiVektoru0.s - AraBilgiVektoru1.s - AraBilgiVektoru2.s)

ri.
co

itrasyonDevamEdiyor = 0
AraBilgiVektoru0 = AraBilgiMatrisi(iAralikNo)

IF iAltAralikSayaci > 1 AND Hata < 10 * Hassasiyet THEN


AraBilgiVektoru0.Kontrol = 1 ' kriter saland anlamnda

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

AraBilgiMatrisi(iAralikNo).s = AraBilgiVektoru1.s + AraBilgiVektoru2.s

sn
o

ELSE
iAltAralikSayaci = iAltAralikSayaci + 1
FOR j = iAltAralikSayaci TO iAralikNo STEP -1
AraBilgiMatrisi(j) = AraBilgiMatrisi(j - 1)
NEXT j

AraBilgiMatrisi(iAralikNo) = AraBilgiVektoru1
AraBilgiMatrisi(iAralikNo + 1) = AraBilgiVektoru2

em
de
r

itrasyonDevamEdiyor = 1
END IF

END SUB ' AralikYarila sonu

Bu alt program AdapteSimpson


alt pogram tarafndan arlr

END SUB ' SimpsonKurali sonu

w
.e

SUB SimpsonKurali (a, b, YariHassasiyet, AraBilgiVektoru AS AraBilgiler)


'----------------------------------------------------------------------' f(x) fonsiyonunun [a,b] alt aralndaki integralini hesaplar
' Kullanlan metot: adapte Simpson kural
'----------------------------------------------------------------------c = (a + b) / 2
s = (b - a) * (fnF(a) + 4 * fnF(c) + fnF(b)) / 6
AraBilgiVektoru.a = a
AraBilgiVektoru.c = c
AraBilgiVektoru.b = b
AraBilgiVektoru.s = s
AraBilgiVektoru.Hassasiyet = YariHassasiyet
AraBilgiVektoru.Kontrol = 0

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

351

352

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'-----------------Ana program Recursive Adapte Simpson---------------' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010
' f(x) fonksiyonunun [a,b] aralndaki tek katl inegralini hesaplar

Tek katl integral:


Recursive adapte simpson
integrasyon metodu (ana program)

' Kullanlan metot: Recursive Adapte(adaptive) Simpson

' f(x) fonksiyonu ana programda DEF fnF(x)=... ile tanmlanmaldr.


'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : integral yaknsamad

DEFINT I-N
DEFDBL A-H, O-Z

tla

' arlan alt program: RecursiveAdapteSimpson


'--------------------------------------------------------------------

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

ri.
co

'
'
'
'
'

DECLARE SUB RecursiveAdapteSimpson (ai, bi, Hassasiyet, iAltaralikSayisi, Simpsonintegrali, iHata)


' Araln ve f(x) fonksiyonunun tanmlanmas
Pi = 4 * ATN(1) ' Pi=3.14... says

em
de
r

sn
o

a = 1: b = 4: DEF fnf (x) = 13 * (x - x * x) * EXP(-3 * x / 2)


'a = 0: b = Pi / 2: DEF fnf (x) = x ^ 3 / SQR(1 + COS(x) ^ 2)
'a = 0: b = 2 * pi: DEF fnf (x) = LOG(1 + x) * SIN(10 * x)
'a = 0: b = 5: DEF fnf (x) = x ^ 3 / (EXP(x) + 1)
'a = -2: b = 2: DEF fnf (x) = EXP(-.5 * x) * SIN(8 * x ^ 2 ^ (1 / 3)) + 1
'a = 0: b = 1: DEF fnf (x) = SQR(x)
'a = 0: b = 5: DEF fnf (x) = x ^ x
'a = 0: b = Pi / 2: DEF fnf (x) = TAN(x)
'a = 1: b = 1.5: DEF fnf (x) = COS(TAN(x))
' analitik zm olmayan integraller:
'a = -2: b = 2: DEF fnf (x) = EXP(-x ^ 2 / 2)
'a = 0: b = 1: DEF fnf (x) = SIN(x) / x
'a = -4: b = 4: DEF fnf (x) = SIN(x ^ 2)
'a = 0: b = Pi: DEF fnf (x) = SIN(x) ^ (1 / 3)
'a = 2: b = 50: DEF fnf (x) = 1 / LOG(x)
'a = -40: b = 40: DEF fnf (x) = (1 + x ^ 4) ^ (1 / 3)
'a = -40: b = 40: DEF fnf (x) = 1 / (1 + x ^ 4) ^ (1 / 3)
CLS

Hassasiyet = .000001 ' deitirilebilir(1E-04 - 1E-12 aras normal)


MaxAralik = 20
' deitirilebilir(2-100 aras normal)

w
.e

iHata = 0
Toplamintegral = 0

Delta = (b - a) / MaxAralik
bi = a
FOR iAralik = 1 TO MaxAralik
ai = bi
bi = ai + Delta
IF iAralik = MaxAralik THEN bi = b
iAltaralikSayisi = 0
CALL RecursiveAdapteSimpson(ai, bi, Hassasiyet, iAltaralikSayisi, Simpsonintegrali, iHata)
Toplamintegral = Toplamintegral + Simpsonintegrali
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(RecursiveAdapteSimpson)"
PRINT "Hesaplanan yaklak deer="; Toplamintegral
END
END IF
NEXT iAralik
PRINT "ntegral(RecursiveAdapteSimpson)="; Toplamintegral

END ' Recursive adapte Simpson ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

352

353

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab


SUB RecursiveAdapteSimpson (ai, bi, Hassasiyet, iAltaralikSayisi, Simpsonintegrali, iHata)
'--------------------------------------------------------------------------' f(x) fonksiyonunun [ai,bi] araldaki inegralini hesaplar

Tek katl integral:


Recursive adapte simpson
integrasyon metodu (alt program)

' Kullanlan metot: Recursive Adaptive Simpson kural


' Cheney, W., Kincaid D., Numerical Mathematics and Computing,
' Books/Cole Publishing Co., California, 1994

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

' f(x) fonksiyonu aran programda DEF fnF(x)=... ile tanmlanmaldr.


'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

' Yalanc program kodu yukarda verilen kaynaktan alnmtr

tla

' arlan alt programlar: yok


'--------------------------------------------------------------------------MaxAltaralik = 500 ' programda ngrlen maksimum alt aralk says

ri.
co

'
'
'
'
'

em
de
r

sn
o

iAltaralikSayisi = iAltaralikSayisi + 1
h = bi - ai
c = .5 * (ai + bi)
Fai = fnf(ai)
Fbi = fnf(bi)
Fc = fnf(c)
d = .5 * (ai + c)
e = .5 * (c + bi)
Fd = fnf(d)
Fe = fnf(e)
OneSimpson = h / 6 * (Fai + 4 * Fc + Fbi)
TwoSimpson = h / 12 * (Fai + 4 * Fd + 2 * Fc + 4 * Fe + Fbi)
IF iAltaralikSayisi > MaxAltaralik THEN
iHata = 1
EXIT SUB
ELSE
IF ABS(TwoSimpson - OneSimpson) < 10 * Hassasiyet THEN
Simpsonintegrali = TwoSimpson
ELSE
CALL RecursiveAdapteSimpson(ai, c, .5 * Hassasiyet, iAltaralikSayisi, ALeftSimpson, iHata)
CALL RecursiveAdapteSimpson(c, bi, .5 * Hassasiyet, iAltaralikSayisi, RightSimpson, iHata)
Simpsonintegrali = ALeftSimpson + RightSimpson
END IF
END IF

w
.e

END SUB ' RecursiveAdapteSimpson sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

353

354

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Tek katl integral:


Tanh integrasyon kural
(ana program)

'----------------------Ana Program Tanh Kural----------------------' f(x) fonksiyonunun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Tanh kural

' f(x) fonksiyonu ana programda DEF fnF(x)=... ile tanmlanmaldr.


kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

' arlan alt program: TanhKurali


'------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB TanhKurali (ai, bi, hassasiyet, Altintegral, iHata)
' Araln ve f(x) fonksiyonunun tanmlanmas
Pi = 4 * ATN(1) ' Pi=3.14... says

tla

'
'
'
'

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

ri.
co

'
'
'
'
'

sn
o

a = 1: b = 4: DEF fnf (x) = 13 * (x - x * x) * EXP(-3 * x / 2)


'a = 0: b = Pi / 2: DEF fnf (x) = x ^ 3 / SQR(1 + COS(x) ^ 2)
'a = 0: b = 2 * pi: DEF fnf (x) = LOG(1 + x) * SIN(10 * x)
'a = 0: b = 5: DEF fnf (x) = x ^ 3 / (EXP(x) + 1)
'a = -2: b = 2: DEF fnf (x) = EXP(-.5 * x) * SIN(8 * x ^ 2 ^ (1 / 3)) + 1
'a = 0: b = 1: DEF fnf (x) = SQR(x)
'a = 0: b = 5: DEF fnf (x) = x ^ x
'a = 0: b = Pi / 2: DEF fnf (x) = TAN(x)
'a = 1: b = 1.5: DEF fnf (x) = COS(TAN(x))

em
de
r

' analitik zm olmayan integraller:


'a = -2: b = 2: DEF fnf (x) = EXP(-x ^ 2 / 2)
'a = 0: b = 200: DEF fnf (x) = SIN(x) / x
'a = -4: b = 4: DEF fnf (x) = SIN(x ^ 2)
'a = 0: b = Pi: DEF fnf (x) = SIN(x) ^ (1 / 3)
'a = 2: b = 50: DEF fnf (x) = 1 / LOG(x)
'a = -40: b = 40: DEF fnf (x) = (1 + x ^ 4) ^ (1 / 3)
'a = -40: b = 40: DEF fnf (x) = 1 / (1 + x ^ 4) ^ (1 / 3)
CLS

hassasiyet = .000001' deitirilebilir, (1E-4 - 1E-12 aras normal)


MaxAralik = 20 ' deitirilebilir, (2-100 aras normal)
Delta = (b - a) / MaxAralik
bi = a

w
.e

Toplamintegral = 0
FOR iAralikNo = 1 TO MaxAralik

ai = bi: bi = ai + Delta
IF iAralikNo = MaxAralik THEN bi = b
CALL TanhKurali(ai, bi, hassasiyet, Altintegral, iHata)
Toplamintegral = Toplamintegral + Altintegral

NEXT iAralikNo

IF iHata <> 0 THEN


PRINT "ntegral yaknsamad(TanhKurali)"
PRINT "Hesaplanan yaklak deer="; Toplamintegral
ELSE
PRINT "ntegral(TanhKurali)="; Toplamintegral
END IF

END ' Tanh ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

354

355

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

SUB TanhKurali (ai, bi, hassasiyet, Altintegral, iHata)


'------------------------------------------------------------------' f(x) fonksiyonunun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Tanh kural

' f(x) fonksiyonu aran programda DEF fnF(x)=... ile tanmlanmaldr.


'
'
'
'

kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad

Sabit = .5 / NoktaSayisi
h = Pi * SQR(Sabit) - Sabit
Delta = .5 * (bi - ai)
x = .5 * (ai + bi)
Altintegral = fnf(x)
Eskiintegral = Altintegral

em
de
r

FOR i = 1 TO NoktaSayisi
hi = h * i
Sinh = .5 * (EXP(hi) - EXP(-hi))
Cosh = .5 * (EXP(hi) + EXP(-hi))
Tanh = Sinh / Cosh
y = Delta * Tanh

sn
o

iHata = 0
Pi = 4 * ATN(1) ' Pi=3.14... says
NoktaSayisi = 100 'deitirilebilir(20-1000 aras normal)

tla

' arlan alt program: yok


'-------------------------------------------------------------------

Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet

ri.
co

'
'
'
'
'

Tek katl integral:


Tanh integrasyon kural
(alt program)

Altintegral = Altintegral + (fnf(x + y) + fnf(x - y)) / Cosh ^ 2

IF ABS(Eskiintegral - Altintegral) < hassasiyet THEN


Altintegral = Delta * h * Altintegral
EXIT SUB
END IF
Eskiintegral = Altintegral
NEXT i
iHata = 1 ' yaknsamad

w
.e

END SUB ' TanhKurali sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

355

356

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'----------------------Ana program Yamuk2----------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998


' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral yamuk kural ile hesaplanr.

ki katl integral:
Yamuk kural ile integrasyon
(ana program)

Aralklar ve f(x,y,z) ana programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'arlan alt program: Yamuk2


'----------------------------------------------------------------------

sn
o

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Yamuk2 (Xa, Xb, Hassasiyet, Dintegral, iHata)
DECLARE SUB YamukKurali (Xa, Xb, iAralikSayisi, Dintegral)
DECLARE SUB Yintegral (x, iAralikSayisi, Yint)

tla

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

ri.
co

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

' aralklarn ve F(x,y) fonksiyonunun tanmlanmas


Pi = 4 * ATN(1)

' Pi=3.14... says

em
de
r

Xa = -2: Xb = 2
DEF FnYa (x) = -1: DEF FnYb (x) = 1
DEF FnF (x, y) = EXP(-x * x * y * y)

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = 0: DEF FnYb (x) = 1
'DEF FnF (x, y) = (1 - y * y) * COS(x) ^ 2
'Xa = 0: Xb = 2
'DEF FnYa (x) = 0
'DEF FnYb (x) = SQR((4 - x * x) / 2)
'DEF FnF (x, y) = 4 - x * x - 2 * y * y
'Xa = 0: Xb = 2
'DEF FnYa (x) = 1 - x
'DEF FnYb (x) = EXP(-x)
'DEF FnF (x, y) = SQR(x + y)

w
.e

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = TAN(x / 2)
'DEF FnYb (x) = SIN(x)
'DEF FnF (x, y) = x + y

'Xa = 0: Xb = 2
'DEF FnYa (x) = -x ^ x: DEF FnYb (x) = x ^ x
'DEF FnF (x, y) = x * x + y * y
'Xa = -4: Xb = 4
'DEF FnYa (x) = -SQR(ABS(16 - x * x))
'DEF FnYb (x) = SQR(ABS(16 - x * x))
'DEF FnF (x, y) = SQR(ABS(16 - x * x - y * y))
'Xa = 0: Xb = 2
'DEF FnYa (x) = x * x: DEF FnYb (x) = SQR(8 * x)
'DEF FnF (x, y) = EXP(-x * SQR(y))
CLS
Hassasiyet = .01' Deitirilebilir, 1E-02 -1E-4 aras normal deer
CALL Yamuk2(Xa, Xb, Hassasiyet, Dintegral, iHata)
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(Yamuk2)"
PRINT "Hesaplanan yaklak deer="; Dintegral
ELSE
PRINT "ntegral="; Dintegral
END IF

END ' Yamuk2 ana sonu


Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

356

357

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

SUB Yamuk2 (Xa, Xb, Hassasiyet, Dintegral, iHata)


'---------------------------------------------------------------------' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral yamuk kural ile hesaplanr.

ki katl integral:
Yamuk kural ile integrasyon
(alt program)

Aralklar ve f(x,y,z) aran programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

x = Xa
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = Yint

em
de
r

x = Xb
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = .5 * (Dintegral + Yint)

sn
o

FOR iAralikSayisi = 100 TO MaxAralikSayisi STEP 100


Dintegral = 0
' yamuk kurali ile integral hesabi
DeltaX = (Xb - Xa) / iAralikSayisi

tla

'arlan alt program: Yintegral


'---------------------------------------------------------------------iHata = 0
MaxAralikSayisi = 2000 ' deitirilebilir(100-3000 aras normal)
Eskiintegral = 0

ri.
co

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

x = Xa
FOR k = 1 TO iAralikSayisi - 1
x = x + DeltaX
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = Dintegral + Yint
NEXT k

Dintegral = DeltaX * Dintegral

hata = ABS(Dintegral - Eskiintegral)


IF hata <= Hassasiyet THEN EXIT SUB
Eskiintegral = Dintegral
NEXT iAralikSayisi

w
.e

iHata = 1 ' Yaknsamad

END SUB ' Yamuk2 sonu


SUB Yintegral (x, iAralikSayisi, Yint)
'------------------------------------' X=sabit icin y boyunca integral
Ya = FnYa(x)
Yb = FnYb(x)
deltay = (Yb - Ya) / iAralikSayisi
Yint = .5 * (FnF(x, Ya) + FnF(x, Yb))
y = Ya
FOR j = 1 TO iAralikSayisi - 1
y = y + deltay
Yint = Yint + FnF(x, y)
NEXT j
Yint = deltay * Yint
END SUB 'Yintegral sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

357

358

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'--------------------Ana program Simpson2-----------------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998


' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral Simpson metodu ile hesaplanr.

ki katl integral:
Simpson metodu ile integrasyon
(ana program)

Aralklar ve f(x,y,z) ana programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'arlan alt program: Simpson2


'---------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Simpson2 (Xa, Xb, Hassasiyet, Dintegral, iHata)

Pi = 4 * ATN(1)

' Pi=3.14... says

Xa = -2: Xb = 2
DEF FnYa (x) = -1: DEF FnYb (x) = 1
DEF FnF (x, y) = EXP(-x * x * y * y)

sn
o

' aralklarn ve F(x,y) fonksiyonunun tanmlanmas

tla

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

ri.
co

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

em
de
r

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = 0: DEF FnYb (x) = 1
'DEF FnF (x, y) = (1 - y * y) * COS(x) ^ 2
'Xa = 0: Xb = 2
'DEF FnYa (x) = 0
'DEF FnYb (x) = SQR((4 - x * x) / 2)
'DEF FnF (x, y) = 4 - x * x - 2 * y * y
'Xa = 0: Xb = 2
'DEF FnYa (x) = 1 - x
'DEF FnYb (x) = EXP(-x)
'DEF FnF (x, y) = SQR(x + y)

w
.e

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = TAN(x / 2)
'DEF FnYb (x) = SIN(x)
'DEF FnF (x, y) = x + y

'Xa = 0: Xb = 2
'DEF FnYa (x) = -x ^ x: DEF FnYb (x) = x ^ x
'DEF FnF (x, y) = x * x + y * y
'Xa = -4: Xb = 4
'DEF FnYa (x) = -SQR(ABS(16 - x * x))
'DEF FnYb (x) = SQR(ABS(16 - x * x))
'DEF FnF (x, y) = SQR(ABS(16 - x * x - y * y))
'Xa = 0: Xb = 2
'DEF FnYa (x) = x * x: DEF FnYb (x) = SQR(8 * x)
'DEF FnF (x, y) = EXP(-x * SQR(y))
CLS
Hassasiyet = .01 'deitirilebilir, 1E-2 - 1E-4 aras normal deer
CALL Simpson2(Xa, Xb, Hassasiyet, Dintegral, iHata)
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(Simpson2)"
PRINT "Hesaplanan yaklak deer:"; Dintegral
ELSE
PRINT "ntegral(Simpson2)="; Dintegral
END IF

END ' Simpson2 ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

358

359

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'
'
'
'
'
'

Aralklar ve f(x,y,z) aran programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'arlan alt program: Yok


'---------------------------------------------------------------------Maxiterasyon = 20 'deitirilebilir (10-100 aras normal)
iHata = 0
Dintegral = 0
Eskiintegral = 0

tla

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

ki katl integral:
Simpson metodu ile integrasyon
(alt program)

ri.
co

SUB Simpson2 (Xa, Xb, Hassasiyet, Dintegral, iHata)


'----------------------------------------------------------------------' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral Simpson metodu ile hesaplanr.

w
.e

em
de
r

sn
o

FOR iterasyonNo = 1 TO Maxiterasyon


iAralikSayisiX = 10 * iterasyonNo
iAralikSayisiY = 10 * iterasyonNo
iTamSayi = iAralikSayisiX / 2
iAralikSayisiX = 2 * iTamSayi
iTamSayi = iAralikSayisiY / 2
iAralikSayisiY = 2 * iTamSayi
IF Xb < Xa THEN
iHata = 1
EXIT SUB
END IF
Hx = (Xb - Xa) / iAralikSayisiX
Toplam1 = 0
Toplam2 = 0
Toplam4 = 0
NoktaSayisiX = iAralikSayisiX + 1
NoktaSayisiY = iAralikSayisiY - 1
' y boyunca integral
FOR iNoktaX = 1 TO NoktaSayisiX
x = Xa + (iNoktaX - 1) * Hx
IF iNoktaX = NoktaSayisiX THEN x = Xb
Ya = FnYa(x)
Yb = FnYb(x)
Hy = (Yb - Ya) / iAralikSayisiY
F1 = FnF(x, Ya)
F1 = F1 + FnF(x, Yb)
F2 = 0
F4 = 0
FOR iNoktaY = 1 TO NoktaSayisiY
y = Ya + iNoktaY * Hy
Fxy = FnF(x, y)
iTamSayi = iNoktaY / 2
IF iNoktaY = 2 * iTamSayi THEN
F2 = F2 + Fxy
ELSE
F4 = F4 + Fxy
END IF
NEXT iNoktaY
' x boyunca integral
ToplamY = Hy / 3 * (F1 + 2 * F2 + 4 * F4)
IF iNoktaX = 1 OR iNoktaX = NoktaSayisiX THEN
Toplam1 = Toplam1 + ToplamY
ELSE
iTamSayi = iNoktaX / 2
IF 2 * iTamSayi = iNoktaX THEN
Toplam4 = Toplam4 + ToplamY
ELSE
Toplam2 = Toplam2 + ToplamY
END IF
END IF
NEXT iNoktaX
Dintegral = Hx / 3 * (Toplam1 + 2 * Toplam2 + 4 * Toplam4)
Hata = ABS(Dintegral - Eskiintegral)
IF Hata <= Hassasiyet THEN EXIT SUB
Eskiintegral = Dintegral
NEXT iterasyonNo
iHata = 2 'yaknsamyor
END SUB

' Simpson2 sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

359

360

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Aralklar ve f(x,y,z) ana programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad
'arlan alt program: Romberg2
'----------------------------------------------------------------------

sn
o

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB Romberg2 (Xa, Xb, Hassasiyet, Dintegral, iHata)
DECLARE SUB YamukKurali (Xa, Xb, iAralikSayisi, Dintegral)
DECLARE SUB Yintegral (x, iAralikSayisi, Yint)

tla

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

ki katl integral:
Romberg metodu ile integrasyon
(ana program)

ri.
co

'----------------------Ana program Romberg2----------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998


' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral Romberg metodu ile hesaplanr.

' aralklarn ve F(x,y) fonksiyonunun tanmlanmas


Pi = 4 * ATN(1)

' Pi=3.14... says

'Xa = -2: Xb = 2
'DEF FnYa (x) = -1: DEF FnYb (x) = 1
'DEF FnF (x, y) = EXP(-x * x * y * y)

em
de
r

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = 0: DEF FnYb (x) = 1
'DEF FnF (x, y) = (1 - y * y) * COS(x) ^ 2
'Xa = 0: Xb = 2
'DEF FnYa (x) = 0
'DEF FnYb (x) = SQR((4 - x * x) / 2)
'DEF FnF (x, y) = 4 - x * x - 2 * y * y
'Xa = 0: Xb = 2
'DEF FnYa (x) = 1 - x
'DEF FnYb (x) = EXP(-x)
'DEF FnF (x, y) = SQR(x + y)

w
.e

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = TAN(x / 2)
'DEF FnYb (x) = SIN(x)
'DEF FnF (x, y) = x + y

'Xa = 0: Xb = 2
'DEF FnYa (x) = -x ^ x: DEF FnYb (x) = x ^ x
'DEF FnF (x, y) = x * x + y * y
'Xa = -4: Xb = 4
'DEF FnYa (x) = -SQR(ABS(16 - x * x))
'DEF FnYb (x) = SQR(ABS(16 - x * x))
'DEF FnF (x, y) = SQR(ABS(16 - x * x - y * y))
Xa = 0: Xb = 2
DEF FnYa (x) = x * x: DEF FnYb (x) = SQR(8 * x)
DEF FnF (x, y) = EXP(-x * SQR(y))
CLS
Hassasiyet = .01 '1E-2 - 1E-4 aras normal deer
CALL Romberg2(Xa, Xb, Hassasiyet, Dintegral, iHata)
IF iHata <> 0 THEN
PRINT "ntegral yaknsamad(Romberg2)"
PRINT "Hesaplanan yaklak deer="; Dintegral
ELSE
PRINT "ntegral(Romberg2)="; Dintegral
END IF

END ' Romberg2 ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

360

361

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab


SUB Romberg2 (Xa, Xb, Hassasiyet, Dintegral, iHata)
'---------------------------------------------------------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998
' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral Romberg metodu ile hesaplanr.

ki katl integral:
Romberg metodu ile integrasyon
(alt program)

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

x = Xa
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = Yint

'arlan alt program: YamukKurali


'----------------------------------------------------------------------

CALL YamukKurali(Xa, Xb, iAralikSayisi, Dintegral)


t(1, 1) = Dintegral

em
de
r

FOR i = 1 TO MaxRomberg
iAralikSayisi = 2 * iAralikSayisi
CALL YamukKurali(Xa, Xb, iAralikSayisi, Dintegral)
i1 = i + 1
t(i1, 1) = Dintegral

' Romberg tablosu


FOR j = 1 TO i
t(i1, j + 1) = t(i1, j) + (t(i1, j) - t(i, j)) / (4 ^ j - 1)
NEXT j
Dintegral = t(i1, i1)
Hata = ABS(t(i1, i1) - t(i, i))
IF Hata <= Hassasiyet THEN EXIT SUB
NEXT i
iHata = 1 ' yaknsamad

x = Xa
FOR k = 1 TO iAralikSayisi - 1
x = x + DeltaX
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = Dintegral + Yint
NEXT k
Dintegral = DeltaX * Dintegral

END SUB ' YamukKural sonu

SUB Yintegral (x, iAralikSayisi, Yint)


'------------------------------------' X=sabit icin y boyunca integral
Ya = FnYa(x)
Yb = FnYb(x)
deltay = (Yb - Ya) / iAralikSayisi
Yint = .5 * (FnF(x, Ya) + FnF(x, Yb))
y = Ya
FOR j = 1 TO iAralikSayisi - 1
y = y + deltay
Yint = Yint + FnF(x, y)
NEXT j
Yint = deltay * Yint
END SUB ' Yintegral sonu

w
.e

END SUB ' Romberg2 sonu

x = Xb
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = .5 * (Dintegral + Yint)

sn
o

iAralikSayisi = 10 ' deitirilebilir(10-20 aras normal)


MaxRomberg = 10 ' deitirilebilir(5-10 aras normal)
DIM t(MaxRomberg + 1, MaxRomberg + 1)
iHata = 0
IF Xb < Xa THEN
iHata = 1 ' aralk hatal
EXIT SUB
END IF

SUB YamukKurali (Xa, Xb, iAralikSayisi, Dintegral)


'------------------------------------------------------' sabit x iin y boyunca yamuk kurali ileintegral hesab
' arlan alt program: Yintegral
'------------------------------------------------------Dintegral = 0
' yamuk kurali ile integral hesabi
DeltaX = (Xb - Xa) / iAralikSayisi

ri.
co

Aralklar ve f(x,y,z) aran programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

tla

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

361

362

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

'----------------------Ana program GaussLegendre2--------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998


' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral Gauss-Legendre metodu ile hesaplanr.

ki katl integral:
Gauss-Legendre metodu ile
integrasyon (ana program)

Aralklar ve f(x,y,z) ana programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'arlan alt program: GaussLegendre2


'----------------------------------------------------------------------

tla

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

ri.
co

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

sn
o

DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussLegendre2 (Xa, Xb, Hassasiyet, Dintegral, iHata)
DECLARE SUB GauLeg (ai, bi, x(), w(), n)
' aralklarn ve F(x,y) fonksiyonunun tanmlanmas
Pi = 4 * ATN(1)

' Pi=3.14... says

Xa = -2: Xb = 2
DEF FnYa (x) = -1: DEF FnYb (x) = 1
DEF FnF (x, y) = EXP(-x * x * y * y)

em
de
r

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = 0: DEF FnYb (x) = 1
'DEF FnF (x, y) = (1 - y * y) * COS(x) ^ 2
'Xa = 0: Xb = 2
'DEF FnYa (x) = 0
'DEF FnYb (x) = SQR((4 - x * x) / 2)
'DEF FnF (x, y) = 4 - x * x - 2 * y * y
'Xa = 0: Xb = 2
'DEF FnYa (x) = 1 - x
'DEF FnYb (x) = EXP(-x)
'DEF FnF (x, y) = SQR(x + y)

w
.e

'Xa = 0: Xb = Pi / 2
'DEF FnYa (x) = TAN(x / 2)
'DEF FnYb (x) = SIN(x)
'DEF FnF (x, y) = x + y

'Xa = 0: Xb = 2
'DEF FnYa (x) = -x ^ x: DEF FnYb (x) = x ^ x
'DEF FnF (x, y) = x * x + y * y
'Xa = -4: Xb = 4
'DEF FnYa (x) = -SQR(ABS(16 - x * x))
'DEF FnYb (x) = SQR(ABS(16 - x * x))
'DEF FnF (x, y) = SQR(ABS(16 - x * x - y * y))
'Xa = 0: Xb = 2
'DEF FnYa (x) = x * x: DEF FnYb (x) = SQR(8 * x)
'DEF FnF (x, y) = EXP(-x * SQR(y))
CLS
Hassasiyet = .01 'Deitirilebilir,1e-2 - 1E-4 aras normal deer
CALL GaussLegendre2(Xa, Xb, Hassasiyet, Dintegral, iHata)
IF iHata <> 0 THEN
PRINT "Yaknsamad, yaklak deer(GaussLegendre2)="; Dintegral
ELSE
PRINT "ntegral(GaussLegendre2)="; Dintegral
END IF

END ' GaussLegendre2 ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

362

363

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

SUB GaussLegendre2 (Xa, Xb, Hassasiyet, Dintegral, iHata)


'---------------------------------------------------------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1998
' F(x,y) fonksiyonunun [Xa,Xb] ve [Ya(x),Yb(x)] aralnda iki katl
' integral Gauss-Legendre metodu ile hesaplanr.

ki katl integral:
Gauss-Legendre metodu ile
integrasyon (alt program)

Aralklar ve f(x,y,z) aran programda aadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
Def fnF(x,y)=... (integral hesaplanacak fonksiyon)

'arlan alt program: GauLeg


'----------------------------------------------------------------------

tla

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

ri.
co

'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y) : integral alnacak fonksiyon
' Hassasiyet: Hassasiyet

iMax = LOG(MaxNokta) / LOG(2)


iHata = 0
Eskiintegral = 0

sn
o

MaxNokta = 1024 ' ngrlen maksimum Gauss-Legendre nokta says


DIM x(MaxNokta), w(MaxNokta)

SUB GauLeg (ai, bi, x(), w(), n)


'------------------------------------------------------------------' Gauss-Legendre integrasyon ordinatlar ve arlklar hesaplanr
' ai: integralin alt snr
' bi: integralin st snr
' x(n): Gauss-Legendre ordinatlarnn depoland vektr
' w(n): Gauss-Legendere arlklarnn depoland vektr
' n: Gaus-Legendre integral nokta says

em
de
r

FOR i = 4 TO iMax
NoktaSayisi = 2 ^ i
' Gauss-Lgendre koordinatlar:
CALL GauLeg(-1, 1, x(), w(), NoktaSayisi)

GauLeg: Bu alt program


GaussLegendre2 tarafndan arlr

Hx = .5 * (Xb - Xa)
HxOrta = .5 * (Xb + Xa)
Dintegral = 0

FOR NoktaX = 1 TO NoktaSayisi


x = Hx * x(NoktaX) + HxOrta
Xint = 0
Ya = FnYa(x)
Yb = FnYb(x)
Hy = .5 * (Yb - Ya)
HyOrta = .5 * (Yb + Ya)

w
.e

FOR NoktaY = 1 TO NoktaSayisi


y = Hy * x(NoktaY) + HyOrta
Fxy = FnF(x, y)
Xint = Xint + w(NoktaY) * Fxy
NEXT NoktaY

Dintegral = Dintegral + w(NoktaX) * Hy * Xint


NEXT NoktaX

Dintegral = Dintegral * Hx
hata = ABS(Dintegral - Eskiintegral)
IF hata <= Hassasiyet THEN EXIT SUB
Eskiintegral = Dintegral

NEXT i
iHata = 1' Yaknsamad
END SUB ' GaussLegendre2 sonu

' arlan alt program: yok


' Fortran kodu http://www.haoli.org/nr/bookf/f4-5.ps den alnmtr
'------------------------------------------------------------------x1 = ai
x2 = bi
Pi = 4 * ATN(1)' Pi=3.14... says
Hassasiyet = 3E-14: ' Gauleg iin hassasiyet(deitirmeyiniz!)
m = (n + 1) / 2
xm = .5 * (x2 + x1)
x1 = .5 * (x2 - x1)

FOR i = 1 TO m
z = COS(Pi * (i - .25) / (n + .5))
' # iareti DOUBLE anlamndadr
z1 = 0
WHILE ABS(z - z1) > Hassasiyet
p1 = 1
p2 = 0
FOR j = 1 TO n
p3 = p2
p2 = p1
p1 = ((2 * j - 1) * z * p2 - (j - 1) * p3) / j
NEXT j
pp = n * (z * p1 - p2) / (z * z - 1)
z1 = z
z = z1 - p1 / pp
WEND
x(i) = xm - x1 * z
x(n + 1 - i) = xm + x1 * z
w(i) = 2 * x1 / ((1 - z * z) * pp * pp)
w(n + 1 - i) = w(i)
NEXT i
END SUB ' Gauleg sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

363

364

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

Aralklar ve f(x,y,z) ana programda Xaadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
DEF FnZa(x,y)=... (sabit say veya fonksiyon)
DEF FnZb(x,y)=... (sabit say veya fonksiyon)
Def fnF(x,y,z)=... (integral hesaplanacak fonksiyon)

tla

'
'
'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' Za(x,y), Zb(x,y): z ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y,z) : integral hesaplanacak fonksiyon
' Hassasiyet: Hassasiyet

katl integral:
GaussLegendre metodu ile
integrasyon (ana program)

ri.
co

'----------------------Ana program GaussLegendre 3--------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 2010
' F(x,y,z) fonksiyonunun [Xa,Xb], [Ya(x),Yb(x)] ve [Za(x,y),Zb(x,y)]
' aralnda katl integralini Gauss-Legendre metodu ile hesaplar.

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

sn
o

'arlan alt program: GaussLegendre3


'---------------------------------------------------------------------DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussLegendre3 (Xa, Xb, Hassasiyet, Dintegral, iHata)
DECLARE SUB GauLeg (Ai, Bi, x(), w(), n)
Pi = 4 * ATN(1) ' Pi=3.14... says

em
de
r

Xa = 0: Xb = 1
DEF fnYa (x) = 0: DEF fnYb (x) = 2
DEF fnZa (x, y) = 0: DEF fnZb (x, y) = 3
DEF fnF (x, y, z) = x * x * y * y * z * z

'Xa = 0: Xb = 2
'DEF fnYa (x) = 0: DEF fnYb (x) = 3
'DEF fnZa (x, y) = 0: DEF fnZb (x, y) = SQR(9 - y * y)
'DEF fnF (x, y, z) = z * z
'Xa = 0: Xb = 4
'DEF fnYa (x) = 0: DEF fnYb (x) = SQR(4 * x - x * x)
'DEF fnZa (x, y) = 0: DEF fnZb (x, y) = 2 * x * x * y
'DEF fnF (x, y, z) = 1

'Xa = -2: Xb = 2
'DEF fnYa (x) = -SQR(4 - x * x): DEF fnYb (x) = SQR(4 - x * x)
'DEF fnZa (x, y) = 0: DEF fnZb (x, y) = SQR(4 - x * x - y * y)
'DEF fnF (x, y, z) = z

w
.e

'Xa = 0: Xb = 6
'DEF FnYa (x) = 0: DEF FnYb (x) = (12 - 2 * x) / 3
'DEF fnZa (x, y) = 0: DEF fnZb (x, y) = (12 - 2 * x - 3 * y) / 6
'DEF FnF (x, y, z) = 1
'Xa = -Pi / 2: Xb = Pi
'DEF FnYa (x) = -SIN(x) ^ 2: DEF FnYb (x) = SIN(x) ^ 2
'DEF fnZa (x, y) = -x - y: DEF fnZb (x, y) = x + y
'DEF FnF (x, y, z) = SIN(x) + COS(y) + SIN(z)

CLS
Hassasiyet = .01 ' Deitirilebilir, 0.01-0.0001 aras normal deer
CALL GaussLegendre3(Xa, Xb, Hassasiyet, Dintegral, iHata)
IF iHata <> 0 THEN
PRINT "Yaknsamad, yaklak deer(GaussLegendre3)="; Dintegral
ELSE
PRINT "ntegral(GaussLegendre3)="; Dintegral
END IF
END ' GaussLegendre3 ana sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

364

365

39. PROGRAMLAR: Tek ve ok katl belirli integral hesab

SUB GaussLegendre3 (Xa, Xb, Hassasiyet, Dintegral, iHata)


'---------------------------------------------------------------------' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 2010
' F(x,y,z) fonksiyonunun [Xa,Xb], [Ya(x),Yb(x)] ve [Za(x,y),Zb(x,y)]
' aralnda katl integralini Gauss-Legendre metodu ile hesaplar.

katl integral:
Gauss-Legendre metodu ile
integrasyon (alt program)

Aralklar ve f(x,y,z) aran programda Xaadaki gibi tanmlanmaldr:


Xa=...
(sabit say)
Xb=...
(sabit say)
DEF FnYa(x)=... (sabit say veya fonksiyon)
DEF FnYb(x)=... (sabit say veya fonksiyon)
DEF FnZa(x,y)=... (sabit say veya fonksiyon)
DEF FnZb(x,y)=... (sabit say veya fonksiyon)
Def fnF(x,y,z)=... (integral hesaplanacak fonksiyon)

tla

'kt:
' Dintegral: hesaplanan integral
' iHata=0 : integral yaknsad
' iHata<>0: integral yaknsamad

ri.
co

'
'
'
'
'
'
'
'

'Veri:
' Xa, Xb : x ekseni boyunca integralin alt ve st snr
' Ya(x), Yb(x): y ekseni boyunca alt ve st snrn fonksiyonu
' Za(x,y), Zb(x,y): z ekseni boyunca alt ve st snrn fonksiyonu
' F(x,y,z) : integral hesaplanacak fonksiyon
' Hassasiyet: Hassasiyet

iHata = 0
Eskiintegral = 0
iMax = LOG(MaxNokta) / LOG(2)

sn
o

'arlan alt program: GaussLegendre3


'---------------------------------------------------------------------MaxNokta = 1024 ' =2^10 ngrlen maksimum Gauss-Legendre nokta says
DIM x(MaxNokta), w(MaxNokta)

SUB GauLeg (Ai, Bi, x(), w(), n)


'------------------------------------------------------------------' Gauss-Legendre integrasyon ordinatlar ve arlklar hesaplanr
' Ai: integralin alt snr
' Bi: integralin st snr
' x(n): Gauss-Legendre ordinatlarnn depoland vektr
' w(n): Gauss-Legendere arlklarnn depoland vektr
' n: Gaus-Legendre integral nokta says

em
de
r

FOR i = 4 TO iMax
NoktaSayisi = 2 ^ i
NoktaSayisiX = NoktaSayisi ' x yn nokta says
NoktaSayisiY = NoktaSayisi ' y yn nokta says
NoktaSayisiZ = NoktaSayisi ' z yn nokta says
' Gauss-Lgendre koordinatlar:
CALL GauLeg(-1, 1, x(), w(), NoktaSayisi)
Hx = .5 * (Xb - Xa)
HxOrta = .5 * (Xb + Xa)
Dintegral = 0
FOR iX = 1 TO NoktaSayisiX
x = Hx * x(iX) + HxOrta
AintX = 0
Ya = fnYa(x)
Yb = fnYb(x)
Hy = .5 * (Yb - Ya)
HyOrta = .5 * (Yb + Ya)

w
.e

FOR iY = 1 TO NoktaSayisiY
y = Hy * x(iY) + HyOrta
aintY = 0
Za = fnZa(x, y)
Zb = fnZb(x, y)
Hz = .5 * (Zb - Za)
HzOrta = .5 * (Zb + Za)

FOR iZ = 1 TO NoktaSayisiZ
z = Hz * x(iZ) + HzOrta
Fxyz = fnF(x, y, z)
aintY = aintY + w(iZ) * Fxyz
NEXT iZ
AintX = AintX + w(iY) * Hz * aintY

NEXT iY
Dintegral = Dintegral + w(iX) * Hy * AintX
NEXT iX
Dintegral = Dintegral * Hx
hata = ABS(Dintegral - Eskiintegral)
IF hata <= Hassasiyet THEN EXIT SUB
Eskiintegral = Dintegral
NEXT i

GauLeg: Bu alt program


GaussLegendre3 tarafndan arlr

' arlan alt program: yok


' Fortran kodu http://www.haoli.org/nr/bookf/f4-5.ps den alnmtr
'------------------------------------------------------------------x1 = Ai
x2 = Bi
Pi = 4 * ATN(1)' Pi=3.14... says
Hassasiyet = 3E-14: ' Gauleg iin hassasiyet(deitirmeyiniz!)
m = (n + 1) / 2
xm = .5 * (x2 + x1)
x1 = .5 * (x2 - x1)

FOR i = 1 TO m
z = COS(Pi * (i - .25) / (n + .5))
' # iareti DOUBLE anlamndadr
z1 = 0
WHILE ABS(z - z1) > Hassasiyet
p1 = 1
p2 = 0
FOR j = 1 TO n
p3 = p2
p2 = p1
p1 = ((2 * j - 1) * z * p2 - (j - 1) * p3) / j
NEXT j
pp = n * (z * p1 - p2) / (z * z - 1)
z1 = z
z = z1 - p1 / pp
WEND
x(i) = xm - x1 * z
x(n + 1 - i) = xm + x1 * z
w(i) = 2 * x1 / ((1 - z * z) * pp * pp)
w(n + 1 - i) = w(i)
NEXT i

iHata = 1' Yaknsamad


END SUB ' Gauleg sonu
END SUB ' GaussLegendre3 sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

365

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz
Ahmet TOPU

sn
o

tla

Ders notlar 2014

Saysal sralama

em
de
r

26.7
2.09

a=
8.88

0.975

w
.e

lhan

Zeynep
a = ala

irin
Ik

8.88
0.975

a=
2.09

26.7

Trke metin sralama

ala
Ik

a = lhan

irin
Zeynep

40

SIRALAMA-ARAMA METOTLARI
(Sorting-Searching)
Sralama metotlar:
Bubble sralama
Insertion sralama
Shell sralama
Quick sralama
Gnome sralama

Arama metotlar:
Squential arama
Binary arama
Jump arama

367

40. SIRALAMA(SORTING) VE ARAMA(SEARCHING) METOTLARI

40. SIRALAMA(SORTING) VE ARAMA(SEARCHING) METOTLARI

Bilgisayar gldr, ancak yk de ardr. ntelin kurucularndan Gordon Moore 1975


ylnda bilgisayarlarn gcnn her iki ylda bir katlanacan ne srm ve bu ngrs
genelde gereklemitir(Moore yasas). Bilgisayarlarn giderek artan gcne paralel olarak,
ilenecek veri de katlanmtr. Milyonlarca veriye hzl eriimi salamak iin sralama ve
arama yntemleri de nem kazanmtr.

ri.
co

Sralama(sorting): Elemanlar rastgele dizilmi bir listenin abuk eriilebilir ekilde


dzenlenmesidir, rnek: Telefon rehberi. Sadece saylar ieren, n elemanl bir a vektrnn
elemanlar kkten bye veya bykten ke sralanmak istenebilir. Veya, alfasaysal
dizi (karakter ve rakamlardan oluan dizi) ieren a vektrnn A dan Z ye veya Z den A ya
sralanmas gerekebilir. i=1, 2, , n-1 iin

tla

ai<ai+1 salanyorsa kkten-bye doru sral


ai>ai+1 salanyorsa bykten-ke doru sral(ters sral)

denir. Uygulamada ounlukla kkten-bye sralama gerekli olur.

sn
o

a vektr alfasaysal olsa dahi bu koullar geerlidir. nk karakterlerin karl (kodu)


gene bir saydr. A=65, B=66, , Z=90 gibi(ASCII kod tablosu) . Dolaysyla A<B dir. Ancak
bu durum sadece ngiliz alfabesi iin geerlidir. Trkeye zg IiOoUu
karakterlerinin kod tablolarnda mantkl bir sras yoktur, ounluu Z harfinden sonra gelir.
rnein Z< dir.

em
de
r

Sralamann tanm ok basit gzkmekle birlikte, uygulamas olduka karmaktr. yi bir


sralama metodu zetle yle tanmlanr:
1. Hzl olmal
2. Mmkn olduunca az bellek gerektirmeli

Bu iki koul 1980 li yllarda da geerliydi, bugn de geerlidir. 1980 li yllarda ilenecek veri az fakat
bilgisayarlar ok yava ve dk bellekli idiler(rnek: 4 MH ilemci hz, 64 Kb ana bellek, 320 KB disket. Renk,
grafik, hard disk, CD, fare, Trke klavye, bilgisayarlar aras uyumluluk yok). Gnmz bilgisayarlar ok hzl,
yksek bellekli fakat ilenecek veri ok fazladr (rnek: 3 GH oklu ilemci, 3-8 GB ana bellek, 1 Tera Byte hard
disk. Renk, grafik, DVD, fare, Trke klavye, bilgisayarlar aras uyumluluk var).

w
.e

Farkl amaca ynelik onlarca sralama yntemi vardr. Uygulamada ad ska geen aadaki
sralama yntemlerinin programlar ve karlatrmal test sonular bir sonraki blmde
verilecektir. Ad geen sralama yntemlerinin bellek gereksinimi hemen hemen ayndr.
ngilizce
ad

Bubble
sort

Insertion
sort

Heap sort

Trke ad

Kabarck
veya elemeli
sralama
Eklemeli
sralama
Yn
sralama

Shell sort

Shell veya
kabuk
sralama

Quick sort
Gnome
sort

1
2

Hz
En iyi1
En kt
durumda durumda

Aklama

n2

Genelde ok yavatr, fakat herkesin aklna ncelikle gelen basit bir


program vardr. Bu nedenle Student sort (renci sralamas) da
denir. Hemen hi kullanlmaz.

n2

Sral bir listeye yeni bir eleman eklenecekse ok hzldr. Program


basittir.

n Log(n)

n Log(n)

n Log2(n)

Hzl sralama

n Log(n)

n Log(n)

Cce srlama

n2

Hz Quick sort a yakn, program daha basit bir sralamadr.


Insertion sort un genelletirilmi eklidir. Donald Shell tarafndan
1959 ylnda gelitirilmitir. Program olduka basittir. Kabuk
sralama olarak Trkeletirilmesi uygun deildir, nk Shell
aratrmacnn soyaddr.
Genelde en hzl ve en ok kullanlan yntemdir. 1960-1961
yllarnda C.A.R Hoare tarafndan Rusa-ngilizce szln
sralanmas amacyla gelitirilmi ve birok aratrmac tarafndan
iyiletirilmitir. Program olduka karmaktr2.
Insert ve bubble sort arasnda bir sralamadr. Yavatr. Hamid
Sarbazi-Azad tarafndan 2000 ylnda gelitirilmitir.

En iyi durumda veya En kt durumda yntemin n ye bal ilem says(sorgulama (if ) ve yer deitime (swap) says) olarak alglanabilir.
Quick sort 20. yzyln en iyi 10 algoritmasndan biri seilmitir: http://amath.colorado.edu/resources/archive/topten.pdf
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

367

368

40. SIRALAMA(SORTING) VE ARAMA(SEARCHING) METOTLARI

Trke karakter sralama: Trke metin ieren(ad-soyad gibi) listelerin sralanmas zorluk yaratr. nk
yukarda akland gibi, Trkeye zg IiOoUu karakterleri iletim sistemine baml olarak kod
tablolarnda gelii gzel yer almaktadr. Bu nedenle Trke metin ieren listelerin sralanabilmesi iin zel kod
oluturulmas ve sralama programnn zel olarak hazrlanmas zorunludur. Sonraki blmde rnek bir program
verilecektir.

ri.
co

Arama(searching): n elemanl a(n) vektrnde aranan bir deerin a(n) nin hangi satrnda
olduunun belirlenmesi ilemidir. a(n) nn elemanlar sadece saylar veya alfasaysal(adsoyad gibi) dizi ierebilir. Uygulamada Sequential search(dorusal arama), ikili
arama(binary search) ve Blok ikili arama(Jump search) yntemleri ska kullanlmaktadr.
Dorusal arama(sequantial veya linear search): 1 ile n ilem gerektirir. a(n)
vektr sral veya srasz olabilir. Tesadfen; a(1)=aranan ise bir ilemde, a(n)=aranan
ise n ilemde arama ilemi son bulur. Genelde ok yavatr, fakat herkesin aklna
ncelikle gelen basit bir program vardr. Bu nedenle Student arama (renci aramas)
da denir. a(n) sral deilse kullanlr. a(n) sral olmas durumunda kullanlmaz.

kili arama(binary search): a(n) vektr sral olmak zorundadr. lem says 1 ile
Log(n) arasnda deiir. Bilinen en hzl arama yntemidir, program ok basittir.

Blok ikili arama(block veya Jump seach): ikili arama ynteminin benzeridir. a(n)
vektr sral olmak zorundadr. lem says 1 ile Log(n) arasnda deiir.

sn
o

tla

Sonraki blmde arama programlarna ve test sonularna yer verilecektir.

w
.e

em
de
r

Burada yer verilmeyen baka onlarca arama ynteminin olduunu da belirtelim. rnek:
Fibonacci arama, Radix arama.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

368

ESKEHR OSMANGAZ NVERSTES

ri.
co

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: ogu.ahmet.topcu@gmail.com
Web: http://mmf2.ogu.edu.tr/atopcu

Bilgisayar Destekli

Nmerik Analiz
Ahmet TOPU

sn
o

tla

Ders notlar 2014

Saysal sralama

em
de
r

26.7
2.09

a=
8.88

0.975

w
.e

lhan

Zeynep
a = ala

irin
Ik

PROGRAMLAR:

Bubble sralama
Insertion sralama
Shell sralama
Quick sralama
Gnome sralama

8.88
0.975

a=
2.09

26.7

Trke metin sralama

ala
Ik

a = lhan

irin
Zeynep

41
Sralama (Sorting)metotlar

370

41. PROGRAMLAR: Sralama (sorting) metotlar

41. PROGRAMLAR: Sralama (sorting) metotlar


Saysal sralama:

ri.
co

Bubble, Insertion, Heap, Shell, Quick ve Gnome sralama metotlarnn test sonular ve
programlar aada verilmitir. Bu metotlarn hepsi de hemen ayn miktarda bellek
kullanmaktadr. Gerek saylardan oluan n elemanl a(n) vektr kullanlarak her metodun
hz belirlenmitir. a(n) vektrnn yapsna bal olarak sralama yntemleri ok deiik
davran gstermektedir. Tek bir vektr ile karlatrma yapmak yanl sonuca gtrr. Bu
nedenle farkl yapda a(n) vektr seilmitir. Ayn tip bir vektr kkten-bye tm
sralama metotlar ile ayr ayr sralanarak her metodun hz belirlenmitir. Test iin
kullanlan a(n) vektrleri aadaki gibi seilmitir:
t tipi: a(n)=[n, n-1, , 2, 1] tamamen ters sral n tane ondalk say ieren vektr.

tla

h tipi: a(n)=[2,3, , n-1, n, 1] hemen hemen sral n tane ondalk say ieren
vektr(sadece 1 says doru yerinde deil).

r tipi: a(n)=[ rasgele saylar ] n tane rasgele ondalk say ieren srasz vektr.

sn
o

Eleman says n=100, 200, ,1000 alnarak a(n) vektr kurulmu ve 1000 kez
sralanmtr. Ayn vektrn 1000 kez sralanmasnn amac, llebilir bir zaman elde
etmeye yneliktir. Test sonularnn n-zaman(saniye) grafikleri izleyen sayfalarda
verilmitir.

em
de
r

Programlarda a(n) vektr deikeni tek hassasiyetli(SINGLE) tanmlanmtr. stenirse ift


hassasiyetli veya baka bir tip olarak (DOUBLE, INTEGER,) tanmlanabilir. Ayrca
sralanacak a(n) vektrnn tamamnn bellekte olduu varsaylmtr.

Alfasaysal sralama:

IiOoUuu gibi Trkeye zg karakterlerin kod tablolarnda mantkl bir sra


izlememesi nedeniyle Trke metinlerin sralanmas zel kod ve program gerektirir. rnek
olmas asndan, Quick sralama yntemi kullanlarak yazlm bir program verilmitir. Bu
programda sadece
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789

w
.e

karakterleri dikkate alndndan, bunlar dnda (rnein , , , $, {, @, gibi) karakterler


ieren metinler doru sralanamayacaktr. Ancak; listede olmayan karakterler eklenerek
program gelitirilebilir.

Not: Uygulamada genellikle


1.

a(n) vektr ana bellekte deil, bir evre depolama biriminde (hard disk, flash bellek) zerindedir.

2.

Bir vektr sralannca o vektre bal birok bilginin de beraber tanmas gerekir. rnein vatandalk
numarasna gre kiiler sralanacaksa, kiilerin ad, soyad, v.s. gibi bilgilerinin de beraber tanmas veya
bu bilgilerin adresinin de tanmas zorunludur.
Akas sralama problemi gerekte daha karmaktr. Burada verilen alt programlar temel alnarak amaca
cevap verecek ekilde iyiletirilebilirler.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

370

371

41. PROGRAMLAR: Sralama (sorting) metotlar

Karlatrma

Saniye
250

200

200

150

Bubble sralama

150

100

100

50

50
n
400

600

800

1000

200

Saniye
8

400

600

800

1000

600

800

1000

600

800

1000

sn
o

Saniye
8

6
5

Insertion sralama

tla

200

ri.
co

Saniye
250

t tipi: a=[n, n-1, , 2, 1] tamamen ters sral saysal vektr iin:

6
5

Heap sralama

Shell sralama

em
de
r

200

400

600

800

1000

Saniye
8

200

400

Saniye
250

Quick sralama

200
150

Gnome sralama

100

3
2

50

n
200

400

600

800

1000

n
200

400

w
.e

Tamamen ters sral vektr iin Gnome en yava, Quick en hzl sralamadr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

371

372

41. PROGRAMLAR: Sralama (sorting) metotlar

h tipi: a=[2,3, , n-1, n, 1] hemen hemen sral saysal vektr iin:

Saniye
60

50

5
4

Bubble sralama

30

20

10

1
n
400

600

800

1000

200

400

600

800

1000

600

800

1000

Saniye
6

600

800

1000

sn
o

Saniye
6

5
4

Heap sralama

Shell sralama

em
de
r

200

400

600

800

w
.e

1000

Saniye
6

tla

200

Insertion sralama

ri.
co

40

Saniye
6

200

Saniye
6

5
4

Quick sralama

200

400

Gnome sralama

n
400

600

800

1000

n
200

400

Hemen hemen sral vektr iin Bubble en yava, Insertion ve Gnome en hzl sralamadr.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

372

373

41. PROGRAMLAR: Sralama (sorting) metotlar

Saniye
120

Saniye
120

100

100
80
Bubble sralama

Insertion sralama

60

60

40

40

20

20
n
400

600

800

sn
o
8

Heap sralama

800

1000

600

800

1000

600

800

1000

Shell sralama

em
de
r

200

400

600

800

200

1000

Saniye
12

Saniye
120

10

100

80

w
.e

600

10

10

400

Saniye
12

Saniye
12

200

1000

tla

200

ri.
co

80

r tipi: a=[ rasgele saylar ] rasgele saylardan oluan srasz vektr iin:

60

Quick sralama

40

20

200

400

Gnome sralama

n
400

600

800

1000

n
200

400

Rasgele saylardan oluan srasz bir vektr iin Gnome en yava, Quick en hzl sralamadr.

SONU: En iyi sralama metodu hangisidir?


1. Sralanacak vektr hemen hemen sral ise: Uygulamada ou kez vektr sraldr ve zaman zaman yeni bir
eleman eklenmesi ve yeniden sralanmas gerekir. Bu durumda en hzl sralama metodu Insertion veya Gnome
sralamadr, Insertion ncelikle tercih edilir.
2. Dier her tip vektr iin: Quick sralama.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

373

374

41. PROGRAMLAR: Sralama (sorting) metotlar

'-----------------Sralama(Sorting) test---------------------' Ahmet TOPU, Anadolu niversitesi, Eskiehir,1985


' Eskiehir Osmangazi niversitesi, 2010

Sralama ana program

' Saysal vektrlerin sralama yntemleri:


' Bubble Sort, Insertion Sort, Heap Sort, Shell Sort
' QuickSort, GnomeSort

Kuruldu = 0
FOR i = 0 TO 7
READ s$(i)
NEXT i

em
de
r

sn
o

100 CLS
FOR i = 0 TO 7
PRINT i; s$(i)
NEXT i
IF Kuruldu = 0 THEN
PRINT "Vektr kurulu deil!"
ELSE
' kurulan b yi a ya kopyala
FOR i = 1 TO n
a(i) = b(i): PRINT a(i);
NEXT i
PRINT : PRINT
PRINT "n="; n; " Elemanl vektr kurulu:"
END IF

tla

DATA A Vektrn kur,Bubble,Insertion,Heap,Shell,Quick,Gnome,Son


n = 100 ' a vektrnn eleman says. test iin n<=10000)
DIM s$(7), a(n), b(n)

ri.
co

' a(n):sralanacak vektr


' b(n):yardmc vektr(sadece test iin gerekli)
' n:vektrn eleman says
'------------------------------------------------------------DEFINT I-N
DEFSNG A-H, O-Z
DECLARE SUB BubbleSort (n, a())
DECLARE SUB insertionSort (n, a())
DECLARE SUB HeapSort (n, a())
DECLARE SUB ShellSort (n, a())
DECLARE SUB QuickSort (n, a())
DECLARE SUB GnomeSort (n, a())
DECLARE SUB VektorKur (n, b(), ihata)
DECLARE SUB Checkit (n, a())

PRINT
INPUT "Seenek="; iSecenek
IF iSecenek = 7 THEN END
IF iSecenek <> 0 AND Kuruldu = 0 THEN
PRINT "nce vektr kurunuz!"
PRINT
INPUT "Enter tuuna basnz"; z$
GOTO 100
END IF

w
.e

t = TIMER
SELECT CASE iSecenek
CASE 0
CALL VektorKur(n, b(), ihata)
IF ihata <> 0 THEN GOTO 100
' kurulan b yi a ya kopyala
FOR i = 1 TO n
a(i) = b(i)
NEXT i
Kuruldu = 1
CASE 1
CALL BubbleSort(n, a())
CASE 2
CALL insertionSort(n, a())
CASE 3
CALL HeapSort(n, a())
CASE 4
CALL ShellSort(n, a())
CASE 5
CALL QuickSort(n, a())
CASE 6
CALL GnomeSort(n, a())
CASE 7
END

CASE ELSE
GOTO 100
END SELECT

Sralama ana programnn


devam sonraki sayfada

VektorKur alt program

SUB VektorKur (n, b(), ihata)


'----------------------------------------------' n elemanl b(n) vektrn saylar ile doldurur

' t:ters sral saylardan oluan vektru kur


' h:hemen hemen sral saylardan oluan vektr kur
' r:rasgele saylardan oluan vektr kur
' bu alt program sadece test iin gereklidir.
'----------------------------------------------' b vektrnn kurulmas
ihata = 0
PRINT n; " elemanl vektr kurulacak, vektr tipini sein:"
INPUT "Vektrn tipi(t,h,r)="; Tip$
' Hemen hemen sral
IF Tip$ = "h" THEN
FOR i = 1 TO n - 1
b(i) = i + 1
NEXT i
b(n) = 1
EXIT SUB
END IF
' Tamamen ters sral
IF Tip$ = "t" THEN
FOR i = 1 TO n
b(i) = n - i + 1
NEXT i
EXIT SUB
END IF
' rasgele
IF Tip$ = "r" THEN
FOR i = 1 TO n
b(i) = RND(1)
NEXT i
ELSE
ihata = 1
PRINT "Yanl veri=": INPUT "Enter tuuna basnz"; z$
END IF
END SUB 'VektorKur sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

374

375

41. PROGRAMLAR: Sralama (sorting) metotlar

Sure = TIMER - t
PRINT : PRINT s$(iSecenek); " n="; n; : PRINT

Sralama ana programnn


devam

END ' sralama Test sonu

ri.
co

PRINT : PRINT : PRINT s$(iSecenek); " n="; n; "Sre="; Sure; "Saniye"


INPUT "Enter tuuna basnz"; z$
GOTO 100

' sralama doru mu? Kontrol et


IF iSecenek <> 0 THEN CALL Checkit(n, a())
' a y yazdr
FOR i = 1 TO n
PRINT a(i);
NEXT i

tla

BubbleSort alt program

sn
o

SUB insertionSort (n, a())


'----------------------------------------' gerek saylardan oluan a(n) vektr
' Insertion sralama yntemi ile kkten
' bye doru sralanr.
' n: vektrn eleman says
'----------------------------------------FOR j = 2 TO n
i=j
b = a(j)
40 i = i - 1
IF a(i) > b THEN
a(i + 1) = a(i)
IF i > 0 GOTO 40
END IF
a(i + 1) = b
NEXT j

em
de
r

SUB BubbleSort (n, a())


'----------------------------------------' gerek saylardan oluan a(n) vektr
' Bubble sralama yntemi ile kkten
' bye doru sralanr.
' n: vektrn eleman says
'----------------------------------------FOR i = 1 TO n - 1
k=i
c = a(k)
FOR j = i + 1 TO n
IF a(j) < c THEN
k=j
c = a(k)
END IF
NEXT j
b = a(i)
a(i) = c
a(k) = b
NEXT i

END SUB ' BubbleSort sonu

insertSort alt program

END SUB '

ShellSort alt program

w
.e

SUB ShellSort (n, a())


'----------------------------------------' gerek saylardan oluan a(n) vektr
' Shell sralama yntemi ile kkten
' bye doru sralanr.
' n: vektrn eleman says
'-----------------------------------------

L = 2 ^ INT(LOG(n) / LOG(2)) - 1
WHILE L > 2
L = INT(L / 2)
FOR j = 1 TO L
FOR k = j + L TO n STEP L
i=k
b = a(i)
DO
IF a(i - L) <= b THEN EXIT DO
a(i) = a(i - L)
i=i-L
LOOP WHILE i > L
a(i) = b
NEXT k
NEXT j
WEND

END SUB 'ShellSort sonu

SUB GnomeSort (n, a())


'----------------------------------------' gerek saylardan oluan a(n) vektr
' Genome sralama yntemi ile kkten
' bye doru sralanr.
' n: vektrn eleman says
'-----------------------------------------

GnomeSort alt program

i=2
j=2
WHILE i <= n
IF a(i - 1) <= a(i) THEN
i=j
j=j+1
ELSE
SWAP a(i - 1), a(i)
i=i-1
IF i = 1 THEN
i=j
j=j+1
END IF
END IF
WEND
EXIT SUB
END SUB ' GnomeSort sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

375

376

41. PROGRAMLAR: Sralama (sorting) metotlar

HeapSort alt program

SUB HeapSort (n, a())


'----------------------------------------' gerek saylardan oluan a(n) vektr
' Heap sralama yntemi ile kkten
' bye doru sralanr.
' n: vektrn eleman says
'-----------------------------------------

tla

WHILE iS1 > 0


L1 = L(iS1)
iR1 = iR(iS1)
iS1 = iS1 - 1

QuickSort alt program

WHILE L1 < iR1


iL2 = L1
iR2 = iR1
b = a(INT((L1 + iR1) / 2))
WHILE iL2 <= iR2
WHILE a(iL2) < b
iL2 = iL2 + 1
WEND

em
de
r

i=L
j=L+L
2 IF j <= m THEN
IF j < m THEN
IF a(j) < a(j + 1) THEN j = j + 1
END IF
IF b < a(j) THEN
a(i) = a(j)
i=j
j=j+j
ELSE
j=m+1
END IF
GOTO 2
END IF
a(i) = b

SUB QuickSort (n, a())


'----------------------------------------' gerek saylardan oluan a(n) vektr
' Quick sralama yntemi ile kkten
' bye doru sralanr.
' n: vektrn eleman says
'----------------------------------------DIM L(40), iR(40)
iS1 = 1
L(1) = 1
iR(1) = n

sn
o

1 IF L > 1 THEN
L=L-1
b = a(L)
ELSE
b = a(m)
a(m) = a(1)
m=m-1
IF m = 1 THEN
a(1) = b
EXIT SUB
END IF
END IF

ri.
co

L=n/2+1
m=n

GOTO 1

w
.e

END SUB 'HeapSort sonu

WHILE b < a(iR2)


iR2 = iR2 - 1
WEND

IF iL2 <= iR2 THEN


SWAP a(iL2), a(iR2)
iL2 = iL2 + 1
iR2 = iR2 - 1
END IF
WEND

IF iL2 < iR1 THEN


iS1 = iS1 + 1
L(iS1) = iL2
iR(iS1) = iR1
END IF
iR1 = iR2
WEND
WEND

END SUB 'QuickSort sonu

Checkit alt program

SUB Checkit (n, a())


'-----------------------------------------------' sralamann doru olup olmadn kontrol eder.
' bu alt program sadece test iin gereklidir
'-----------------------------------------------FOR i = 1 TO n - 1
IF a(i) > a(i + 1) THEN
PRINT : PRINT "Sralama hatal!":
INPUT "Enter tuuna basnz!"; z$
EXIT SUB
END IF
NEXT i

END SUB ' Check it sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

376

377

41. PROGRAMLAR: Sralama (sorting) metotlar

'------------------Ana program QuickAlfa test------------------' Ahmet TOPU, Anadolu niversitesi, 1985


' Satrlar Trke harf dizini ieren a$(n) vektr
' Quick sralama yntemi ile A dan Z ye alfabetik sralanr
' n: vektrn satr says
' iEsas: Sralamaya esas alnacak karakter says
' iEsas=0: dizinin tm karakterlerini dikkate al ve srala
' iEsas=1 Dizinin sadece ilk karakterini dikkate al ve srala
' iEsas=3 Dizinin sadece ilk karakterini dikkate al ve srala
'----------------------------------------------------------------

ri.
co

QuickAlfa ana program

DATA 40 : ' n nin deeri


DATA 0 : ' iEsas deeri(satrdaki tm karakterleri dikkate al)

DEFINT I-N
SUB
SUB
SUB
SUB

QuickSortAlfa (n, a$())


TurkceKodaDondur (n, a$(), iEsas, TurkceKod$)
TurkceKodTablosu (TR$, TurkceKod$)
TurkceKaraktereDondur (n, a$(), iEsas, TR$)

CLS
READ n
' a$ n satr says
DIM a$(n) ' a$ iin yer ayr

sn
o

DECLARE
DECLARE
DECLARE
DECLARE

Buradaki Trke karakterler


program Windows ortamna
tandnda dzgn
grntlenmez, tandktan
sonra dzeltilmelidir

tla

' A$ n satr verileri


DATA brahim,kr,nal,Defne TOPU,ener ZOR
DATA ebnem AY,etin INAR,mer BA,Ali AKIR,Sema
DATA Uur,Ouz,engl,akr-2,mit Kara
DATA lker,Emre TA,irin,Adnan,Betl YA
DATA Filiz,Cem,Glen,Havva TOPU,akr-1
DATA Ziya,Yusuf TOPU,Ik,Tamer,Yelda
DATA ar en,aatay,elen,zer,Kemal ER
DATA Timur,zcan,nci,Irmak,ebnem TA

em
de
r

READ iEsas ' sralamaya esas alnacak karakter says


FOR i = 1 TO n
READ a$(i)
NEXT i
PRINT "Sralanmam vektr (QuickAlfa):"
FOR i = 1 TO n
PRINT a$(i)
NEXT i
PRINT
INPUT "Enter tuuna basnz"; b$

CALL TurkceKodTablosu(TR$, TurkceKod$)


CALL TurkceKodaDondur(n, a$(), iEsas, TurkceKod$)
CALL QuickSortAlfa(n, a$())

CALL TurkceKaraktereDondur(n, a$(), iEsas, TR$)

w
.e

CLS
PRINT "Sralanm vektr (QuickAlfa):"
FOR i = 1 TO n
PRINT a$(i)
NEXT i

END ' Quick Alfa Test sonu

SUB TurkceKodTablosu (TR$, TurkceKod$)


'------------------------------------------------' Trke karakter tablosu ve kodlarn hazrlar
'------------------------------------------------' Trke harfler ve rakamlar:
TR$ = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
TR$ = TR$ + "0123456789"
TR$ = TR$ + SPACE$(255 - LEN(TR$))

' TR$ iindeki her karaktere 1,2,3,.. kodlarn ata


TurkceKod$ = SPACE$(255) 'TurkceKod->trke karl vektr
FOR i = 1 TO 255
k = ASC(MID$(TR$, i, 1))
MID$(TurkceKod$, k, 1) = CHR$(i)
NEXT i

TurkceKodTablosu alt
program

Buradaki Trke karakterler


program Windows ortamna
tandnda dzgn
grntlenmez, tandktan
sonra dzeltilmelidir

END SUB 'TurkceKodTablosu sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

377

378

41. PROGRAMLAR: Sralama (sorting) metotlar

FOR j = 1 TO L
k = ASC(MID$(a$(i), j, 1))
MID$(a$(i), j, 1) = MID$(TR$, k, 1)
NEXT j
NEXT i

Alt programlar

TurkceKaraktereDondur
TurkceKodaDondur

ri.
co

SUB TurkceKaraktereDondur (n, a$(), iEsas, TR$)


'---------------------------------------------' a$(n) n her satrnn ilk iEsas karakterini
' Trke karaktere geri dndrr
'---------------------------------------------FOR i = 1 TO n
L = iEsas
L1 = LEN(a$(i))
IF iEsas >= 1 AND iEsas < L1 THEN
L = iEsasa
ELSE
L = L1
END IF

END SUB ' TurkceKaraktereDondur sonu

SUB QuickSortAlfa (n, a$())


'---------------------------------------------------------' Ahmet TOPU, Anadolu niversitesi, 1985
' Satrlar Trke harf dizini ieren a$(n) vektr
' Quick sralama yntemi ile A dan Z ye alfabetik sralanr
' bye doru sralanr.
' n: vektrn satr says
'---------------------------------------------------------DIM L(40), iR(40)
' index1-index2 arasn srala
index1 = 1
index2 = n
IF index1 < 1 OR index1 > index2 THEN EXIT SUB
IF index2 < index1 OR index2 > n THEN EXIT SUB

em
de
r

sn
o

SUB TurkceKodaDondur (n, a$(), iEsas, TurkceKod$)


'---------------------------------------------------------------' A$(n) n her satrnn ilk iEsas karakterinin
' kodunu program koduna evirir
' iEsas: Sralamaya esas alnacak karakter says
' iEsas=0: dizinin tm karakterlerini dikkate al ve srala
' iEsas=1 Dizinin sadece ilk karakterini dikkate al ve srala
' iEsas=3 Dizinin sadece ilk karakterini dikkate al ve srala
'---------------------------------------------------------------FOR i = 1 TO n
L = iEsas
L1 = LEN(a$(i))
IF iEsas >= 1 AND iEsas < L1 THEN
L = iEsasa
ELSE
L = L1
END IF

tla

QuickAlfa alt program

FOR j = 1 TO L
k = ASC(MID$(a$(i), j, 1))
MID$(a$(i), j, 1) = MID$(TurkceKod$, k, 1)
NEXT j
NEXT i

w
.e

END SUB ' TurkceKodaDondur sonu

index1 = 1
L(1) = 1
iR(1) = index2
WHILE index1 > 0
L1 = L(index1)
iR1 = iR(index1)
index1 = index1 - 1
WHILE L1 < iR1
iL2 = L1
iR2 = iR1
b$ = a$(INT((L1 + iR1) / 2))
WHILE iL2 <= iR2
WHILE a$(iL2) < b$
iL2 = iL2 + 1
WEND
WHILE b$ < a$(iR2)
iR2 = iR2 - 1
WEND
IF iL2 <= iR2 THEN
SWAP a$(iL2), a$(iR2)
iL2 = iL2 + 1
iR2 = iR2 - 1
END IF
WEND
IF iL2 < iR1 THEN
index1 = index1 + 1
L(index1) = iL2
iR(index1) = iR1
END IF
iR1 = iR2
WEND
WEND
END SUB ' QuickAlfa sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

378

ESKEHR OSMANGAZ NVERSTES

ri.
co

Bilgisayar Destekli

Mhendislik Mimarlk Fakltesi


naat Mhendislii Blm
E-Posta: atopcu@ogu.edu.tr
Web: http://mmf2.ogu.edu.tr/atopcu

Nmerik Analiz

w
.e

em
de
r

Ahmet TOPU

sn
o

tla

Ders notlar 2014

PROGRAMLAR:

Sral(Sequential) arama
kili(Binary) arama
Blok ikili(Jump) arama

42
Arama (Searching) metotlar

380

42. PROGRAMLAR: Arama (searching) metotlar

42. PROGRAMLAR: Arama (searching) metotlar


Saysal arama:

ri.
co

Dorusal arama(Sequential veya Linear search), kili arama(Binary search) ve Blok ikili
arama(Jump search) metotlarnn test sonular ve programlar aada verilmitir. Bu
metotlarn hepsi de hemen ayn miktarda bellek kullanmaktadr. Gerek saylardan oluan n
elemanl a(n) vektr kullanlarak her metodun hz belirlenmitir. Aranan saynn a(n)
vektrnde bulunduu yere bal olarak arama yntemleri farkl davran sergilerler. Bu
nedenle testler
a(n)=[1, 2, 3, , n-1, n] sral vektrnde
1 ve n-1 says iin yaplmtr.

tla

Eleman says n=100, 200, ,1000 alnarak a(n) vektr kurulmu, 1 veya n-1 says
1000000 (bir milyon) kez aranmtr. Ayn vektrde ayn saynn 1000000 kez aranmasnn
nedeni, llebilir bir zaman elde etmee yneliktir. Test sonularnn n-zaman(saniye)
grafikleri izleyen sayfalarda verilmitir.

sn
o

Programlarda a(n) vektr deikeni tek hassasiyetli(SINGLE) tanmlanmtr. stenirse ift


hassasiyetli veya baka bir tip olarak (DOUBLE, INTEGER,) tanmlanabilir. Ayrca a(n)
vektrnn tamamnn bellekte olduu varsaylmtr.

Karlatrma:

em
de
r

a=[1, 2, , n-1, n] saysal vektrnde 1 saysnn aranmas:

Saniye
5

Saniye
6

5.75

4
3

5.5
5.25

Sral arama
(sequential search)

4.75
4.5

w
.e

kili sralama
(Binary search)

4.25

n
400

600

800

1000

200

400

600

800

1000

Saniye
6

5.75
5.5
5.25

kili blok arama


(Jump search)

5
4.75
4.5
4.25
n
200

400

600

800

1000

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

380

381

42. PROGRAMLAR: Arama (searching) metotlar

Saniye
7

120

6.5

100

Sral arama
(sequential search)

80
5.5
60
5

40

4.5

20
n
400

600

1000

200

400

600

800

1000

sn
o

Saniye
7

6.5
6

800

tla

200

kili sralama
(Binary search)

ri.
co

Saniye
140

a=[1, 2, , n-1, n] saysal vektrnde n-1 saysnn aranmas:

kili blok arama


(Jump search)

5.5

em
de
r

4.5

200

400

600

800

1000

SONU: En iyi arama metodu hangisidir?

w
.e

1. Vektr srasz ise ve sralanmak istenmiyorsa: Sral arama kullanlr dierleri kullanlamaz.
2. Vektr sral ise: kili ve Blok ikili sralama kullanlr. kili arama tercih edilir. Zaman asndan ikili ve Blok
ikili arama arasnda hemen hi fark yoktur. kili aramann program daha basittir.

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

381

382

42. PROGRAMLAR: Arama (searching) metotlar

'-----------------Arama(Searching) test----------------------' Ahmet TOPU, Anadolu niversitesi, Eskiehir, 1985


' Eskiehir Osmangazi niversitesi, 2010

Arama ana program

' Saysal vektrlerde arama yntemleri:


' Sral arama(Sequential search), ikili arama(binary earch)

ri.
co

' a(n): Saylar ieren vektr


' n:vektrn eleman says
' Aranan: A(n) vektr iinde aranacak deer
' index=0 aranan deer bulunamad
' index>0 aranan deer index nolu satrda bulundu
'------------------------------------------------------------DEFINT I-N
DEFSNG A-H, O-Z
DECLARE FUNCTION iSequentialSearch (n, a(), Aranan)
DECLARE FUNCTION iBinarySearch (n, a(), Aranan)
DECLARE FUNCTION JumpSearch (n, a(), Aranan)
DIM i AS LONG
DATA Sequential,Binary,Jump,Son
' n elemanl a vektr olutur:
n = 10000
DIM s$(4), a(n)

'veri:
' a(n): kkten-bye sral saylar ieren vektr
' Aranan: aranan deer

sn
o

Aranan = n - 1' bu deerin bulunduu satr bul

'kt:
' iBinarySearch=iNdex : Aranan deer iNdex nolu satrda bulundu
' iBinarySearch=0: Aranan deer bulunamad
'-------------------------------------------------iStart = 0
iEnd = n
' iStart+1 ile iEnd arasnda aranan deerini ara
WHILE iStart <= iEnd

em
de
r

PRINT
INPUT "Seenek="; iSecenek
IF iSecenek = 4 THEN END

tla

FUNCTION iBinarySearch (n, a(), Aranan)


'-------------------------------------------------' a(n) sral vektrnde Aranan deerini arar

FOR i = 1 TO n
a(i) = i
NEXT i

100 CLS
RESTORE
FOR i = 1 TO 4
READ s$(i)
PRINT i; s$(i)
NEXT i

iBnarySearch alt program

w
.e

t = TIMER
SELECT CASE iSecenek
CASE 1
FOR i = 1 TO 1000000
iNdex = iSequentialSearch(n, a(), Aranan)
NEXT i
CASE 2
FOR i = 1 TO 1000000
iNdex = iBinarySearch(n, a(), Aranan)
NEXT i
CASE 3
FOR i = 1 TO 1000000
iNdex = JumpSearch(n, a(), Aranan)
NEXT i
CASE 4
END
CASE ELSE
GOTO 100
END SELECT

iNdex = (iStart + iEnd) / 2


IF a(iNdex) = Aranan THEN
iBinarySearch = iNdex ' index nolu satrda bulundu
EXIT FUNCTION
END IF
IF a(iNdex) > Aranan THEN
iEnd = iNdex - 1
ELSE
iStart = iNdex + 1
END IF

WEND
iBinarySearch = 0 ' bulunamad

END FUNCTION ' iBinarySearch sonu

Sure = TIMER - t
PRINT s$(iSecenek); " Arama: "
PRINT Aranan; " saysnn bulunduu index="; iNdex
PRINT : PRINT "Sre="; Sure; "Saniye"
INPUT "Enter tuuna basnz"; z$
GOTO 100

END ' Arama test sonu

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

382

383

42. PROGRAMLAR: Arama (searching) metotlar

FUNCTION JumpSearch (n, a(), Aranan)


'-------------------------------------------------' a(n) vektrnde Aranan deerini arar

JumpSearch alt program

LenBlok = n ^ (2 / 3)
iBlokSayisi = INT(n / LenBlok)
iStart = LenBlok
iEnd = n

tla

iNdex = 0
JumpSearch = 0
FOR i = iStart TO iEnd STEP LenBlok
IF a(i) >= Aranan THEN
iNdex = i
EXIT FOR
END IF
NEXT i

ri.
co

'kt:
' JumpSearch=index : Aranan deer index nolu satrda bulundu
' JumpSearch=0: Aranan deer bulunamad
'--------------------------------------------------

'veri:
' a(n): saylar ieren vektr(sral olmas gerekmez)
' n: a vektrnn satr says
' Aranan: aranan deer

sn
o

IF iNdex = 0 THEN
IF a(n) < Aranan THEN EXIT FUNCTION
iStart = iBlokSayisi * LenBlok + 1
ELSE
IF a(iNdex) = Aranan THEN
JumpSearch = iNdex
EXIT FUNCTION
END IF
iStart = (INT(iNdex / LenBlok) - 1) * LenBlok + 1
iEnd = iNdex
END IF

em
de
r

iSequentialSearch alt program

' Block iinde binary search


WHILE iStart <= iEnd
iNdex = (iStart + iEnd) / 2
IF a(iNdex) = Aranan THEN
JumpSearch = iNdex
EXIT FUNCTION
END IF

IF a(iNdex) > Aranan THEN


iEnd = iNdex - 1
ELSE
iStart = iNdex + 1
END IF
WEND
JumpSearch = 0

'veri:
' a(n): saylar ieren vektr(sral olmas gerekmez)
' Aranan: aranan deer
'kt:
' iBinarySearch=index : Aranan deer index nolu satrda bulundu
' iBinarySearch=0: Aranan deer bulunamad
'-------------------------------------------------index1 = 1
index2 = n
' index1 ile index2 satrlar arasnda aranan deerini ara
FOR iNdex = index1 TO index2
IF a(iNdex) = Aranan THEN
iSequentialSearch = iNdex ' index nolu satrda bulundu
EXIT FUNCTION
END IF
NEXT iNdex
iSequentialSearch = 0 ' bulunamad
END FUNCTION ' iSequentialSearch sonu

w
.e

END FUNCTION

FUNCTION iSequentialSearch (n, a(), Aranan)


'-------------------------------------------------' a(n) vektrnde Aranan deerini arar

Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/

383

You might also like