Professional Documents
Culture Documents
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
em
de
r
Ahmet TOPU
tla
a12
a22
.
an 2
... a1m
... a2 m
... .
... anm
A 10x10
5 7.7
26 3
3
16
12
8
3
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
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
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
x
e dx ,
2
Sin x
a x dx ,
Sin x dx ,
2
Sin x dx,
1
dx,
x
n
l
em
de
r
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
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.
.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.
em
de
r
sn
o
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?
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,
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
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.
nat mhendislii yap statii dersinin bilgisayar ncesi vazgeilmez nmerik metotlar:
Cross metodu: Hardy Cross(1885-1959), Kani Metodu: Gaspar Kani(1910-1968),
w
.e
ri.
co
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
(1.1)
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/
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
(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
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
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
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
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
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
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
=
.
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
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
13
ri.
co
Seyrek matris
tla
A10 x10
6
6
1 2
2
4
=
9
2
3 3
6
1
4
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
Blnm matris
Alt matris
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
13
14
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
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
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
15
Bir kolon matrisin(kolon vektrn) transpozu satr matrisi, bir satr matrisin(satr
vektrn) transpozu kolon matrisidir.
7
A = 9.6
2
T
-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
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
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
15
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
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
a ii
ij
j=1
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|
3
3
5
|-7|>|3|+|-3|
|8|>|-2|+|-3
|5|>|1|+|3|
16
olmas,
17
zellikle
iterasyon
ile
denklem
sistemi
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 ]
teori
... a1m
a11 a12
a a
... a2m
21 22
.
... .
.
... anm
an1 an2
Diyagonal matris:
a11
a22
A=
.
.
[ a a ... a ]
11 22
1n
.
ann
[ 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
em
de
r
teori
... a1m
... a2m
... .
... anm
sn
o
a11 a12
a a
A = 21 22
.
.
an1 an2
ri.
co
tla
teori
a1
a
A = 2 veya A = [a1 a2 . an ]
.
an
teori
w
.e
a11
a
a22
L = 21
.
.
an1 an 2
a11
a21 a22
.
. .
.
... ann an1 an 2
... ann
veya
st gen matris:
a22 ... a2 n
a22
U =
.
.
.
.
.
.
a
nn
... a1n
... a2 n
.
.
ann
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
17
18
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
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
veya
veya
0
0
[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
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
Yar bant
Bilgisayarda iki boyutlu
depolama
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 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
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
x
x
x
x
x
x
Simetrik
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
x
x
ri.
co
x
x
tla
teori
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
2. kolon
1. kolon
3. kolon
4. kolon
n. kolon
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
19
20
a14
a33
a34
a44
0
a25
0
0
a55
tla
ja [1 3 4 2 5 1 3 4 2 4 2 5]
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:
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
tla
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
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
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
em
de
r
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
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
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.
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
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
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
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
23
24
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 ,
(i sabit),
det A =
j=1
(1)
i =1
i+ j
a ij A ij ,
(j sabit)
(2.5)
ri.
co
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
2 3
5
4
sn
o
tla
-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
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
24
25
det a11
det a 22
, det A = det
a 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|
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
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
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.
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
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.
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
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
tla
A B = B + A
A (B C) = (A B) C
(A B)T = A T BT
sn
o
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
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
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
28
29
Yukarda verilen kurallar veya daha ok matrisin arpm iin aynen uygulanr, rnek:
Uygunluk koulu:
Eit olmal
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
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.
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
5. A A A= Ak
k defa
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
29
30
4 11
CE =
7 17
4 7
EC =
11 17
5
AF =
1
FA = ?
A F tanml, F A tanmsz!
a 22
...
a nn
b11
B=
b22
...
bnn
a11b11
AB = B A =
I2 =
3 1 6
A = 2 7 4
2 1 5
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
4 1
B = 1 3
2 1
tla
I 1 = 1
a 22 b22
...
a nn bnn
ri.
co
a11
A=
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.
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
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
... a nm
a 21
a 22
.
an2
a 21
a 22
.
an2
d 22
d11 a12
d 22 a 22
.
d nn a n 2
d 12 a12
... d nn a nm
ri.
co
d 22
a11
a
21
.
a n1
... 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
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
2 1
A=
1 3
3 2
B=
2 3
8 1
AB =
9 7
8 9
BA =
1 7
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
31
32
3 2
B=
2 3
-1 1
A+ B =
1 6
2 1
A=
1 3
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
tla
A (B+C)=0
A (B-C)=A (D+E)
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
w
.e
A nn satrdaki alt matris says B nin kolondaki alt matris saysna eit olmal (uygunluk
koulu).
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
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
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
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
a
A = 11
a 21
a12
,
a 22
A =
1 a 22
det A a 21
a12
,
a11
1.
2.
3.
4.
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)
A 1 =
adj A
,
det A
(2.13)
det A 0
tla
1
A = 1
1
3
1 ,
1
1
0
2
A =?
sn
o
rnek:
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
w
.e
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
a
A = 11
a 21
a12
,
a 22
1 a 22
det A a 21
a12
,
a11
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
34
35
...
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
1
=
a 33
1 4
...
1
a nn
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
0.333
0.083 0.25
=
0.083
0.083 0.167
0.25
0.083 0.021
=
0.167 -0.104
0.125
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
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
Anxm
F=A
T
nxm
dikdrtgen
matrisinin
kolonlar
dorusal
bamsz
ise,
yani
rank=m
= (A
T
nxm
ise,
A nxm ) 1
Bmxs= 0
Sfr matris
F matrisi, det F 0, F-1 var.
Dolaysyla bu matris
ksaltlabilir.
ri.
co
Anxm Bmxs=0
Bmxs-Cmxs=(Anxm)T(Dnxs+Enxs)
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 A-1= C dir
B= A-1C A D dir
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
36
37
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
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.
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
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
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
Trev vektr:
x = [x1
T
x2 ... xn ] olsun.
vektrnn
x
1
= x
x 2
.
xn
w
.e
Trev operatr
x = [x1
x2 ... xn ]
olan y = [ y1
T
y 2 ... y m ] kolon vektr verilmi olsun. y vektrnn x vektrne gre
x
1
1)
y = x 2
x
.
x n
y
1
y2
.
y m
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
38
39
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
...
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
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
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
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
x ve
y kolon vektr,
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
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
=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
Ax = b
bulunur. Bu bant sistemin denge kouludur ve dorusal bir denklem sistemidir. Denklem sistemi zlerek
tla
Analitik integral
A = [a1
sn
o
Bir matrisin tek veya ok katli integrali, her elemann integrali alnarak bulunur, rnekler:
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
B A dx dy dz
D dx dy dz
integrali hesaplanr.
41
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
em
de
r
sn
o
Ahmet TOPU
Klasik notasyon
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
Klasik: a11x1=b1
matris: [a11][x1]=[b1]
Klasik:
ri.
co
a11 x1 + a12 x 2 = b1
a11
a 21
matris:
a 21 x1 + a 22 x 2 = b2
a11
a
21
Matris:
.
a n1
a12
a 22
.
sn
o
a12 x1 b1
=
a 22 x 2 b2
tla
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
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
43
44
rnek:
... a1m x1 b1
... a 2m x 2 b 2
=
... . . .
... a nm x m bn
x1
2 x 2 22
4 2 1
1 6 3 2 x = 41
x4
... 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
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
... 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
em
de
r
a11 a12
a
a22
A x = 0 21
.
.
an1 an2
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
... 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
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
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
y=
2 1 x 2
Ax = b
= , det A = 2 1 (1) 1 = 3
1 1 y 4
+
-x
Tek zm var
tla
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
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
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 st ste
dyor: Sonsuz zm var
em
de
r
sn
o
tla
Kesime noktas
tek zm var
Dzlemler birbirine
paralel: zm yok
Dzlemler kesimiyor:
zm yok
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
A x=b
ri.
co
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
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
47
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
13
PROGRAMLAR:
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
.
.
.
.
.
.
b1n
b2 n
bnn
.
.
ri.
co
a11 a12
a
21 a22
.
.
.
an1 an 2
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
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
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
em
de
r
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
Sonular yazdrlyor
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
132
ri.
co
sn
o
tla
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
133
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
Ahmet TOPU
tla
em
de
r
n=m
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
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
+ 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
+ l nn x n = bn
1. Adm:
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
.
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
.
.
.
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
1. Adm:
x1 = 3 / 6 = 0.500
2. Adm:
3. Adm:
4. Adm:
Gzlem:
1. Adm:
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
49
50
...
+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
= b1
+ u 2 n x n = b2
.
.
+ u ( n 1) n x n = bn 1
u nn x n
= bn
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:
n-1. Adm:
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
.
.
unn
i. 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:
3. Adm:
2. Adm:
x3 = (4 2 1.250) / 7 = 0.214
1. Adm:
x4 = 5 / 4 = 1.250
Gzlem:
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
50
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
Ahmet TOPU
tla
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
5
DENKLEM SSTEM ZM, DREKT
METOTLAR
Basit GAUSS indirgeme metodu
52
a n1 x1
+ an2 x2
...
.
+ 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:
...
.
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
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:
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
ndirgenen bilinmeyen
(5.3)
Sfrlanan saylar
eklini alr.
Burada
a ij(1)
ve
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
52
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.
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
= b1
= b2(1)
+0
.
( 2)
+ a33
x3 + ... + a3( n2 ) xn
.
...
.
= b3( 2 )
.
+0
( 2)
+ an( 23) x3 + ... + ann
xn
= bn( 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.
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)
(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:
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
53
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
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
tla
l21=12/6=2
6 2
2 4
0.5 12
2
1
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
em
de
r
l42=2/(-4)=-0.5
Pivot eleman
sn
o
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
w
.e
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
Gzlem:
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
55
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
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
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
Pivot eleman
l21=6/12=0.5
l31=3/12=0.25
l41=-6/12=-0.5
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
em
de
r
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
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
56
57
Pivot eleman
ri.
co
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
57
58
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
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) .
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
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
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
Hata yzdesi (bal hata) gerek deerin birim hatas olarak da yorumlanabilir:
59
x
x = x gerek
x gerek
Hata(mutlak):
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
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
60
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:
Vektr normlar:
x2
sn
o
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.
em
de
r
T
x 2 = x x = x12 + x22 + ... + xn2 (l2 normu veya klid normu veya x in uzunluu denir)
x = max xi
rnek: x gerek = 2
x gerek
= 2 + 3 + 0 + 1 + 4 = 10
= 4 + 9 + 0 + 1 + 16 = 5.477226
w
.e
x gerek
x gerek
x hesap
x hesap
x hesap
= max( 2,3,0,1,4) = 4
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
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
Olduundan
ri.
co
Matris normlar:
sn
o
tla
normunun kk olmas zmn doru olduunun nemli bir bir gstergesidir, fakat yeterli bir koul deildir.
zleyen rneklerde bu durum aklk kazanacaktr.
Aj
j. Kolonun l1 normu)
A = max Ai
Ai
i. Satrn l1 normu)
em
de
r
A 1 = max A j
w
.e
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
61
62
rnek:
1 9
0.097826 0.021739
=
0.010870 0.108696
max
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
sn
o
det A = 92
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
rnek:
x =?
w
.e
det A
V
Det A=10-8
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
62
63
0.150516
x=
0.773585
Hata vektr:
=
7
0.1440 0.2161 0.1441 0.773585 1.06 10
ri.
co
2
x=
2
dir, yerine koyarak hata var m? Grelim:
sn
o
=
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
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
a12
a 22
a13
a 23
a 32
a 33
an2
a n3
... a1n
... a 2 n
... a 3n
... .
... a nn
Kare matris
w
.e
u12
u 22
Prescott Duran
Crout (1907-1984)
Andr-Louis
Cholesky (1875 1918)
65
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
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
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
y bulunur
(6.4)
u11 u12 u13
u22 u23
Ux = y
u33
... u1n x1 y1
... u2 n x2 y2
... u3n x3 = y3
... . . .
unn xn1 yn1
bulunur
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
65
66
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
... .
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
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
em
de
r
1.Adm:
...
1 u1n = a1n u1n = a1n
w
.e
2.Adm:
...
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
l31 u13 + l32 u 23 + 1 u33 = a33 u33 = a33 l31 u13 l32 u 23
...
...
l31 u1n + l32 u 2 n + 1 u3n = a3n u3n = a3n l31 u1n l32 u 2 n
n.Adm:
U nun n.satrnn hesab:
L nin n.satr ARPI U nun n.kolonu=A nn n.satrdr
lnn = 1
66
67
Genel formller:
1. adm:
l11 = 1 ,
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
tla
u ii 0
sn
o
em
de
r
Kolon deitirme
vektr
Pivot aday
w
.e
U nun i. satrnda
pivot ara
Kolon deitirme
vektr
Pivot
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
67
68
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.
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=?
6
12
A=
3
2
8
13
4
2
6
9
1
4
10
3
18
Kolon deitirme
vektr balang
deerleri
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
68
69
1.Adm:
Pivot
6
2
0 .5
2
8
2
6
13
4
9
1
4
10
3
18
ri.
co
2.Adm:
6
2
2
4
2
2
0 .5
1
3
0.5
9
1
4]
4
2
3
18
tla
Pivot
sn
o
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
6
2
Pivot
0 .5
1
2
4
4
2
3
0 .5
5
18
3]
2
2
2
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
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
Pivot
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
69
70
Sonu:
3]
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
sn
o
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
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
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
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 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
CROUT1 LU metodu
A verilmi olsun, det A 0 olmak ve uii=1 alnmak kaydyla
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
...
ln1 1 = an1 ln1 = an1
tla
...
l11 u1n = a1n u1n = a1n / l11
2.Adm:
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:
sn
o
...
l21 u1n + l22 u2n = a2 n u2 n = (a2 n l21 u1n ) / l22
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
...
...
l31 u1n + l32 u2 n + l33 u3n = a3n u3n = (a3n l31 u1n l32 u2 n ) / l33
w
.e
n.Adm:
u nn = 1
72
73
Genel formller:
u11 = 1 ,
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
tla
sn
o
topla, aji
L nin i. admda
hesaplanacak kolonu
em
de
r
Satr deitirme
vektr
w
.e
Pivot aday
L nin i.kolonunda
pivot ara
Pivot
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
73
74
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
1
2
,
3
4
6
12
A=
3
8
13
6
9
4
10
3
18
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
74
75
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
2
2
4
13
9
3
4
1
18
6
tla
1
2
3 ,
4
Pivot
sn
o
2.Adm:
Pivot
2
3
1 ,
4
3 10.999999 9
18
6 0.000002 1
Pivot aday
em
de
r
2
1
3 ,
4
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
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
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
Pivot
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
75
76
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
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
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 =?
b = [ 16
26
- 34
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
76
77
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
uygulanmtr.
y1 2.166667
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
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
b = [ 24.68
64.20
56.51
x =?
56.51
- 33.31
24.68 ]T alnmaldr. Bu
w
.e
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
12
y1 64.20
3 10.999999
y 56.51
2 =
Ly = b
6 0.000002
y 3 33.31
4
y1 5.35
y 2 = 3.678182
y3 0.302498
y3 = (33.31 (6) 5.35 (0.000002)(3.678182) / 4 = 0.302498
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
77
78
x1 2.749983
x2 = 3.499937
x3 0.250077
x4 0.170023
ri.
co
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
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
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
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
UT U = A
UT
u11
u
12 u22
u13 u23
.
.
u1n u2 n
u33
.
u3n
...
... unn
u22 u23
u33
ri.
co
unn an1 an 2
a13
a23
a33
.
an 3
... a1n
... a2 n
... a3n
... .
... ann
tla
1. adm
em
de
r
sn
o
2. adm
...
3. adm
w
.e
n. adm
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
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:
k =1
i 1
ik u kj ) / uii
k =1
tla
, j = i + 1, i + 2 , ..., n
sn
o
uii= (aii -
em
de
r
w
.e
UT depolanmaz
aii
i 1
ik ui k
k =1
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
80
81
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:
2.Adm:
26
7
9
4
11
7
65
4
1 3
9
7
65
em
de
r
sn
o
tla
3.Adm:
w
.e
4
1 3
2
6
65
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
81
82
T.
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
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
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
(6.5)
82
83
ri.
co
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
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
.
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
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
Ahmet TOPU
sn
o
tla
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
zm
terasyon no
Philipp Ludwig
von SEIDEL
(18211896)
85
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
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)
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,
4.
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
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
85
86
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
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
=0.0001 seelim.
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!
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
86
87
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
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
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
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 =
=0.0001 seelim.
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!
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
x ik xik
deerleri kullanlarak x i
( xik x ik 1 ) 2
xik 2 x ik 1 + x ik 2
dir.
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)
0.1875
(0.1875 0.1250) 2
= 0.1667
0.1875 2 0.1250 + 0.2500
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
ri.
co
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 x=b
(7.4)
denklem sisteminin
w
.e
f ( x) =
1 T
x Ax x T b
2
(7.5)
89
90
ri.
co
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
rk
r k r k ise durdur!
T
r 2 As 2
T
r 3 r 3 ise durdur!
k =
r k As k
T
s k As k
s k +1 = r k + k s k
sfr genelde yakalanamaz, hatalarn karelerinin karekk kabul edilebilir hata snr altnda kalnca iterasyonu
durdurmak daha iyi bir yoldur:
i k iin
ri
ve
rk
ortogonaldr,
r i r k = 0 olmaldr.
T
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
s1=[1 2 0 1]T
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
90
91
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
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
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
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
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).
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.
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
sn
o
Ahmet TOPU
em
de
r
m=n
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
94
(8.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
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.
w
.e
Tn T2 T1 A=I
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
94
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
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.
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 )
95
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
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
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
97
1 0 0
I = T 3 C = 0 1 0
0 0 1
-1
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
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.
tam dolu
97
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
Ahmet TOPU
tla
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
99
ri.
co
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
min
(9.3)
w
.e
En kk kareler metodu
f ( h) = h h = ( A x b) T ( A x b) = x A A x x A b b A x + b b
T
f ( x) = x A A x 2 x A b + b b min
T
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
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
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
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
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
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=-(-2.410)=2.410 m
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
100
101
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
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
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:
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
w
.e
1
4
3.3
x
0
2 4
8 10 12 14 16 18 20 22 24
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
102
2020 130
1328
T
T
B= A A=
, c= A b=
130 10
88.9
ri.
co
130 10 b 88.9
b 2.10242
8 10 12 14 16
2 4
y=0.52x+2.10
olur. Bu doru sada grlen x-y dzleminde izilmitir.
h = A x b ,
tla
rnek 4:
sn
o
4
10
5
5
12
3
6
14
2
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
509
20
T
5887 , c = A b = 167
1637
71825
49
6
B = A A = 49 509
509 5887
T
49
6
B x = c 49 509
509 5887
509 a 0 20
a 0 1.59881
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
102
103
2 4
y=-1.5988+1.6791x-0.1035x2
h h = 1.0013
T
rnek 5:
sn
o
tla
h = Ax b
ri.
co
em
de
r
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
103
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.
sn
o
tla
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
104
105
rnek 7:
= 180 ( + ) = 27 + = 153
ri.
co
Denklemler ve zm:
= 410
= 113 0
tla
+ = 153 0
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
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.
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
106
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
w
.e
em
de
r
sn
o
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
106
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
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
108
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.
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)
a 0 x 0 + a 1 x1 = 0
1
x 0 = a 0 a 1 x 1
(10.3)
(10.4)
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
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
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.
w
.e
109
110
rnek 1:
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
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
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
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
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
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
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
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
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
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 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
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
3.adm:
114
x1=S3Hiperstatik bilinmeyen
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
1 0.7071
0 0.7071
0
0
0
0
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
-1S3=-1 1
S3=1
2
4
-1
.4
14
2
1m
S1 1.0
S 1.4142
2
S = S 3 = 1.0
S 4 1.4142
S 5 1.0
1.0
42
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
115
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
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
115
116
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
ri.
co
1 0.7071
0 0.7071
0
0
0
0
1m
10 kN
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
S1 = 0
em
de
r
S2 = 0
sn
o
1 0.7071
0 0.7071
0
0
0
0
1m
4
0.
0
w
.e
S3=0
-10.0
5
1m
10.0 kN
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
117
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
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
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
118
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
tla
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
119
1 2 1 x 1 6
1 4 3 x = 10 zm?
1 3 2 x 3 8
Basit GAUSS ile indirgeme:
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
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
11
121
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
w
.e
NEXT i
DO
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.
rank = 0: v = 1: Zero = 0
satr
rank = 0
v=1
Zero = 0
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
121
122
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
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
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
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
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
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
CHOLESKY
Karekk:
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
s
Yukardan aa veya
aadan yukar
doru hesap
x = b
L
n
arpma :
Toplama:
Blme:
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
124
Toplama:
Blme:
ns
Toplam :
2nbs b 2 s
sn
o
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
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
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 :
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
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.
8.
9.
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
12
PROGRAMLAR:
127
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
ri.
co
sn
o
tla
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
w
.e
Programn sonular
. 8
K=
det C
V
36
= 0.07
519.2
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
127
128
sn
o
tla
em
de
r
ri.
co
w
.e
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
129
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
14
PROGRAMLAR:
CholeskyFull
135
.
.
a11 a12
a22
Sim.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a1n x1 b1
a2 n x2 b2
=
ann xn bn
a1n
a2 n
A
ann
.
.
ri.
co
.
.
tla
a11 a12
a22
Sim.
.
b [b1 b2 bn]
sn
o
em
de
r
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
135
136
DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB CholeskyFull (n, a(), b(), iHata)
CLS
st gendeki eleman
says hesaplanyor
READ n
iES = (n * n - n) \ 2 + n: 'a matrisindeki eleman says
tla
em
de
r
Sonular
yazdrlyor
CholeskyFull
alt program
w
.e
sn
o
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
136
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
w
.e
em
de
r
Ahmet TOPU
tla
15
PROGRAMLAR:
CholeskyBant1
138
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
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
x 0 0 0
sn
o
x
.
x
.
x
em
de
r
A nxn
Simetrik
x
x
1. kolon
2. kolon
m. kolon
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.
138
139
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
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
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
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
READ n, iBant, m
CLS
DIM a(n * iBant) ' A iin yer ayr
DIM b(n * m): ' b iin yer ayr
em
de
r
Sonular yazdrlyor
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
140
141
arpanlarn hesaplar U st
genini A da depolar
em
de
r
sn
o
tla
ri.
co
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
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
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
sn
o
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
142
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
w
.e
em
de
r
Ahmet TOPU
tla
16
PROGRAMLAR:
CholeskyBant2
144
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
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
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
144
145
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
sn
o
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
sn
o
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
w
.e
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
CholeskyBant2
alt program
Sonular yazdrlyor
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
146
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
w
.e
em
de
r
Ahmet TOPU
tla
17
PROGRAMLAR:
CHOLESKY Skyline(ufuk izgisi) teknii
148
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
ri.
co
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
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
[ 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
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
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
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
DEFINT I-N
DEFDBL A-H, O-Z
CLS
m
ri.
co
sn
o
Ana program
tla
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
'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
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
150
151
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
CholeskySkyline
alt program
tla
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
151
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
18
PROGRAMLAR:
Ters matris hesab (GAUSS-JORDAN teknii)
153
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
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
153
154
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
GAUSSJORDAN
alt programn ar
Sonucu yaz
em
de
r
GAUSSJORDAN
Alt program
w
.e
sn
o
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
154
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
19
PROGRAMLAR:
Simetrik Ters matris (GAUSS-JORDAN teknii)
156
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
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:
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
ri.
co
DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB 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
Sonucu yaz
em
de
r
sn
o
GAUSSJORSim
Alt program
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
157
ri.
co
Bilgisayar Destekli
Nmerik Analiz
Ahmet TOPU
em
de
r
sn
o
tla
AnxmXm=bn
w
.e
nm
20
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
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
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
159
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
em
de
r
sn
o
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
160
'
'
'
'
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
'
'
'
'
'
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
161
em
de
r
xi deerlerini oku
yi deerlerini oku
w
.e
Polinomu yaz
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
161
'
'
'
'
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
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
'
'
'
'
'
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
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
163
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
em
de
r
161.678
h
1 4 159.265
1 1
2.410
h
satrlar ile QR programna verilerek x = 3 bilinmeyen vektr hesaplanmtr.
h4
w
.e
QR programnn sonucu
h 161 .681375
x = 3 =
h4 159 .271125
Hatalarn karelerinin toplam=0.000097
163
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
em
de
r
sn
o
tla
denklem sisteminde n=6 denklem ve m=3 bilinmeyen vardr, n>m dir. n, m, A ve b nin
deerleri
w
.e
a0 = 1.5988
a1 = 1.6791
a2 = 0.1035
olur.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
164
QR ana program
DEFINT I-N
DEFDBL A-H, O-Z
tla
1. rnein verileri
sn
o
ri.
co
165
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
w
.e
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
' This program can be used for curve fitting problems olso.
QR alt program
ri.
co
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
'
'
'
166
167
A B0 = I
ri.
co
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
B0
Bx
w
.e
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 = ?
167
168
ri.
co
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
' 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
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
Devam
IF m > n THEN
PRINT "Dorusal baml kolonlarn numaras(BoBx):"
FOR i = n + 1 TO m
PRINT iSp(i);
NEXT i
PRINT
PRINT
tla
sn
o
ri.
co
IF iHata = 1 THEN
PRINT "Matrisin satrlar dzensiz(BoBx)"
END
END IF
169
em
de
r
w
.e
Devam var
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
169
ri.
co
sn
o
Devam
tla
170
em
de
r
w
.e
END SUB
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
170
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
21
PROGRAMLAR:
terasyon ile denklem sistemi zm
Gauss-Seidel metodu
172
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
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
zm var, fakat
GaussSeidel raksyor
1
2
172
CLS
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
A okunuyor
em
de
r
w
.e
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)
ri.
co
DEFINT I-N
DEFDBL A-H, O-Z
DECLARE SUB GaussSeidel (n, a(), b(), x(), itersay, ihata)
tla
173
ihata = 0
maxit = 200: ' maximum iterasyon says
Eps = .000001: 'tolerans
itersay = 0: ' iterasyon no
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
173
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
22
PROGRAMLAR:
terasyon ile denklem sistemi zm
CG (Conjugate Gradient) metodu
22. PROGRAMLAR: terasyon ile denklem sistemi zm-CG (Conjugate Gradient) metodu
175
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
terasyon srasnda A nn pozitif tanml olmad anlalrsa veya n+2 iterasyon sonunda
zm yaknsamazsa CG alt program iHata 0 ile dner.
tla
1 1 0 x1 1
4 0 1 x 2 2 , x=?
=
0 4 1 x 3 0
1 1 4 x 4 1
em
de
r
4
1
sn
o
rnek:
w
.e
0.1667
0.4167
x=
0.0833
0.1667
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
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
em
de
r
b okunuyor
w
.e
zm yazdrlyor
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
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
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
w
.e
'
'
'
'
'
'
'
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
177
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
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
Kondisyon iyiletirmesi
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:
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:
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
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
READ n
DIM a(n, n), x(n), b(n)
em
de
r
b okunuyor
zm yazdrlyor
w
.e
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
sn
o
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
'
'
'
'
'
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
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
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 ]
sn
o
tla
a11 0
0 a
22
a = a31 0
0 a42
0 a52
ri.
co
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:
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:
iA
[1
3 4 4 5 5]
jA
[1
5 2 4 3 5]
[3 13 76 206 137]
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
'----- 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.
tla
24. PROGRAMLAR: iterasyon ile seyrek katsayl denklem sistemi zm- PCGsparse (Preconditioned Conjugate Gradient) metodu184
sn
o
em
de
r
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
READ ites
CALL PCGsparse(n, ites, iA(), jA(), a(), b(), x(), iTer, iHata)
zm yazdrlyor
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
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
tla
'
'
'
'
'
'
'
'
'
'
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
em
de
r
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
em
de
r
sn
o
Ahmet TOPU
tla
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
187
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
Katsaylar matrisi
Ax = x
(25.1)
ri.
co
(25.2)
a11
a
A x = I x = 21
.
a n1
sn
o
... 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
(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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
187
diyagonal elemanlarndan
188
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
sn
o
2
2
=
=0
det
3
3
1
1
em
de
r
= (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
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
1
x1 = 0
0
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
188
189
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
ri.
co
2 2
x2
x2
0
x 2 = 1
0
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
em
de
r
1
x1 0
4 x = 0
2
0 x 3 0
sn
o
2 3
x3
0
x 3 = 0
1
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
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
190
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
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
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
x1
w
.e
2 x1 0
0 1
5 - 1 x = 0
1 x3 0
1
x 1 = 0
0
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
Son denklemden:
4x3=0 x3=0
- 0.2
x 2 = 1
0
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
190
191
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
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
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
x
7 2 x1
Ax = x
= 1 , =?
2 2 x 2
x2
x=?
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
192
x1
x1
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
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.
- 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
x
2 2 x1
Ax = x
= 1 , =?
2 2 x 2
x2
x=?
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:
i = 1, i 2 = 1 dr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
192
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
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
x2
x2
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.
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
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
(25.5)
vardr.
Her bir
sn
o
tla
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 ]
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
AX =
(25.7)
A = X X
A = A A A... A A = X X X X X X .... X X X X
n
A = X X
n
X ... X
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
194
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
tla
sn
o
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
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
- 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
196
T
~
x = ~
x3 ~
x = 0.8616402 + 0.1230912 + 0.4923662 = 0.999999 1
Kontrol:
1.
2.
3.
4.
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.
7.
Elemanlar gerek saylardan oluan A simetrik (AT=A) ise, tm zdeerler de gerek saylardan oluur.
Simetrik matrisin zvektrleri ortogonaldr: XTX=I
8.
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
ise A -1 in zdeeri
1 i
dir.
i = 0
durumunda
1 i
+ 2 + ... + n .
2 ... n .
w
.e
i = 0
x
x
x
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
196
197
3 1 0
A = 1 2 1 verildiine gre ( A I ) x = 0 zdeer problemini znz.
0 1 3
ri.
co
( 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
f ( ) = (1) (1+1) (3 )
f ( ) = 3 + 82 19 + 12 = 0
Son
terimin
1 3
em
de
r
1 3
f ( ) = (3 )[(2 )(3 ) 1] + (3 + ) = 0
=0
zdenklem
1.3.4=12
arpanlarndan
kkler 1 = 1, 2 = 3, 3 = 4 bulunur.
Bunlar
nn
w
.e
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
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
2 1 0 x1 0
0 0.5 1 x = 0
2
0 0
0 x3 0
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
~
x1 =
1 0 . 5
1
~
x 1 = 2 = 1
2
1 0.5
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
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 =
Normalletirilmi zvektr
(uzunluu=1)
1 0.707108
0=
12 + 0 + 12
1 0.707108
1
w
.e
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 =
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
199
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
1
0. 5 1
~
X = 1
0 1 ,
0.5 1 1
sn
o
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
bilindii
gibi,
diyagonal
100
det( A I ) =
110
120
130
140
150
199
200
w
.e
em
de
r
sn
o
tla
ri.
co
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
200
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
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
202
K 2 M = 0
(26.1)
ri.
co
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
em
de
r
i = i2 olduundan
i = i
(26.4)
Periyot:
w
.e
Fizik, dinamik veya yap dinamii derslerinden hatrlanaca gibi asal frekans ile periyot
arasnda
T =
(26.5)
Ti =
(26.6)
dir. Ti nin birimi s dir. Bir titreim srecinin ka saniye srd anlamndadr.
Frekans:
Periyodun tersidir.
fi =
1
Ti
(26.7)
202
203
1.Yol:
I =M M
(M
K M
alnarak
( A I ) = 0
M ) = 0
ifadesinde
A=M K
ri.
co
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
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
ifadesinde
I =K K
I + A) = 0
ve
ifadesinde
A= K M
alnarak
(I A) = 0
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
den bulunur.
den bulunur.
den bulunur.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
203
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
KU
U U U = 0
T
(U
1 T
) =U
ile gsterilir ve
=I
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
alnarak
Veya
( A I )x = 0
sn
o
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.
-T
u ii = mii
. U nun
-1
em
de
r
=U
m 11
m 22
...
m nn
ile 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
=U
xi
bulunur.
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
205
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
Li
em
de
r
L1
12 EI
3 i
Li
12 EI i
L3i
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
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
206
Saysal rnek 1:
Titreim
yn
m3=20 t
k6
m2
m2=25 t
k3
k4
k1
m1
k1=k1+k2
k2
k2=k3+k4
m1=40 t
k3=k5+k6
tla
k5
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.
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
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
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
( K M ) = 0 :
0
125598.96 88333.34
40 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
0
4416.67 4416.67
1 3
Simetrik deil!
(26.14)
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
206
207
-0.71
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
0 . 30
= 1
0 . 71
Mod
b) ( A I ) = 0 n en kk zdeeri ve zvektr:
sn
o
em
de
r
En kk zdeer: = 377.9
Titreim modu:
0.73
= 0.91
1
0.91
En kk frekans: f =
2
= 0.32 s
19.44
1
1
=
= 3.1 Hz
T 0.32
w
.e
3. yol ile 26.13 den zdeer, zvektr, asal frekans, periyot, frekans ve mod hesab:
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
A=U
KU
Simetrik ve bant
0
3139.42 2793.10
0
3139.42 2793.10
1 0 0 x1
x=M
1/ 2
dir
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
207
208
A nn tm zdeerleri ve zvektrleri:
x1
x2
x3
ri.
co
2 = 10623.22
3 = 3621.45
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
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 =
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
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
209
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
6279.95 - 2
= 0 f ( ) = 4416.67
4416.67 -
0
0
4416.67
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
sn
o
em
de
r
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
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
210
Verilerin hazrlanmas:
ri.
co
tla
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:
em
de
r
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
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
210
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
211
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
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
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
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
m4
0
0
0
0
0
0
0
0
m4
0
0
m5
tla
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
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.
zdeerler ve normalletirilmi
zvektrler ( modlar)
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
212
1 = 26854.29
T1 =
213
2
= 0.038 s
163.87
f1 =
1
= 26.3 Hz
0.038
Nokta no
ri.
co
1. mod
2
= 0.023 s
270.65
tla
2 = 73250.87
T2 =
f2 =
1
= 43.5 Hz
0.023
Nokta no
sn
o
em
de
r
2. mod
3 = 202211 .35
T3 =
2
= 0.014 s
449.70
5
f3 =
1
= 71.4 Hz
0.014
Nokta no
3. mod
2
= 0.010 s
606.87
5
f4 =
1
= 100 Hz
0.010
Nokta no
w
.e
4. mod
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
213
T5 =
2
= 0.009 s
734.68
214
f5 =
1
= 111.1 Hz
0.009
Nokta no
ri.
co
5. mod
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
sn
o
em
de
r
6. mod
7 = 875544 .82
1
T7 =
4
2
= 0.007 s
935.71
5
Nokta no
7. mod
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
214
215
ri.
co
70 cm
Titreim
yn
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:
w
.e
K 2 M = 0
Burada K sistemin rijitlik matrisi, M ktle matrisi ve
alnarak
( K M ) = 0
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
215
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.
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
tla
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
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
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
denklemi
sn
o
em
de
r
1.170
0
0.2025 0.14625
0
0
0
121193 181790
0
0
0
0
242386
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
218
1.Mod:
tla
2.Mod:
ri.
co
em
de
r
sn
o
3.Mod:
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
218
ri.
co
Bilgisayar Destekli
Nmerik Analiz
em
de
r
Ahmet TOPU
sn
o
tla
w
.e
A x=x
A x=B x
PROGRAMLAR:
27
zdeer ve zvektr hesab
220
1. PowerMises:
Ax = x standart zdeer probleminin mutlak deerce en byk zdeerini ve buna
ri.
co
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
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
6. Eigen03:
7. Eigen04:
w
.e
8. DSearch:
A x = B x Genel zdeer probleminin en kk m tane veya tm zdeerlerini hesaplar.
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
A x=x
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
28
PROGRAMLAR:
222
Ax = x
ri.
co
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:
ya ait zvektr:
1
0.3633
x = 0.7357
05179
0.4439
w
.e
rnek:
2
1
A=
15 10
1 = 5.5 + 3.1225i
ve
1 = 5.5 3.1225i .
PowerMises yaknsamaz.
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
222
223
ri.
co
' -----------------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
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
em
de
r
Sonular yazdrlyor
w
.e
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
223
ri.
co
Bilgisayar Destekli
Nmerik Analiz
A x=x
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
29
PROGRAMLAR:
225
ri.
co
Ax = x
A simetrik deilse
Tm zdeerler sanal ise
Tekrarlanan zdeerler varsa: 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
0.8859
0.6254
0.5742
225
226
' -----------------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
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
FOR i = 1 TO n
FOR j = 1 TO n
READ a(i, j)
NEXT j
NEXT i
A okunuyor
sn
o
em
de
r
Sonular yazdrlyor
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
226
227
em
de
r
w
.e
m
GaussLU
alt program
sn
o
iTerate = 1
' iterasyona bala
DO
FOR i = 1 TO n
b(i) = x(i)
NEXT i
tla
ri.
co
AsagiYukari
alt program
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
A x=x
30
PROGRAMLAR:
229
Ax = x
a 22
simetrik
a32
a33
a n2
a n3
...
2.satr
3.satr
n.satr
1.satr
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]
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
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
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)
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
tla
A nn boyutu okunuyor
sn
o
READ n
A nn kolonlar okunuyor
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)
Sonular yazdrlyor
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
230
231
Jacobi
alt program
w
.e
em
de
r
sn
o
tla
ri.
co
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
JNormalize
Alt program
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
232
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
w
.e
em
de
r
sn
o
Ahmet TOPU
A x=x
31
PROGRAMLAR:
234
ri.
co
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
234
235
1
0.4474
1
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.0742
1
0.9354
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
READ n
A nn boyutu okunuyor
w
.e
Sonular yazdrlyor
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
235
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
A x=x
w
.e
em
de
r
sn
o
Ahmet TOPU
32
PROGRAMLAR:
237
ri.
co
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
em
de
r
DATA 8
DATA 1
DATA 8
w
.e
verilir:
175.3221
346
.
4545
526.2148
595
.
8819
665.4290
747.0953
838.3913
905.2110
zdeerler
237
238
1
0.4474
1
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.0742
1
0.9354
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
A nn boyutu
sn
o
tla
verilir:
Eigen02 programnn
sonucu: ilk zdeer ve
zvektr
em
de
r
DATA 8
DATA 5
DATA 2
w
.e
verilir:
Eigen02 programnn
sonucu: 5. ve 6. zdeer
ve zvektrler
DATA 8
DATA 6
DATA 2
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
ri.
co
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
w
.e
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
239
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
A x=B x
w
.e
em
de
r
Ahmet TOPU
tla
33
PROGRAMLAR:
241
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
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?
A nn boyutu
Eigen03 programnn
sonucu: Tm zdeerler
ve zvektrler
w
.e
verilir:
241
242
A nn boyutu
Eigen03 programnn
sonucu: ilk zdeer ve
zvektr
ri.
co
verilir:
DATA 8
DATA 5
DATA 2
A nn boyutu
sn
o
tla
em
de
r
verilir:
Eigen03 programnn
sonucu: 5. ve 6. zdeer
ve zvektrler
A nn boyutu
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
Eigen 03 ana
program
'
'
'
'
'
'
'
'
'
em
de
r
sn
o
tla
ri.
co
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
243
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
A x=B x
w
.e
em
de
r
Ahmet TOPU
tla
34
PROGRAMLAR:
245
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
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?
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
245
246
A nn boyutu
A nn yar bant genilii
Hesaplanmas istenen ilk zdeerin numaras
Eigen04 programnn
sonucu: Tm zdeerler
ve zvektrler
DATA
DATA
DATA
DATA
em
de
r
sn
o
tla
ri.
co
verilir:
8
4
1
3
A nn boyutu
Eigen04 programnn
sonucu: ilk zdeer ve
zvektr
w
.e
verilir:
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
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
DATA
DATA
DATA
DATA
tla
Eigen 04 ana
program
sn
o
'
'
'
'
'
'
'
'
'
'
'
ri.
co
verilir:
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
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
READ n
READ mb
READ m1
READ m
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
247
248
ri.
co
Eigen 04 ana
program (devam)
sn
o
Tm veriler tekrar okunuyor
em
de
r
tla
' A y dntr
CALL reduce(n, mb, a(), b(), iErr)
w
.e
zvektrler dntrlyor
zvektrler normalletiriliyor
248
249
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
ri.
co
'
'
'
'
'
' Input:
' N: Dimension of Z
' Z(n,n): input matrix. Must be real symmetric
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
249
250
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.
w
.e
em
de
r
sn
o
tla
'
'
'
'
' 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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
250
251
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
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
em
de
r
sn
o
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
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
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
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.
em
de
r
sn
o
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
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)
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
255
256
'
'
'
'
'
'
'
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.
em
de
r
sn
o
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
'
'
'
'
'
'
'
'
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
256
257
sn
o
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
w
.e
em
de
r
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
257
258
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
'
'
'
'
'
'
'
'
'
'
'
n2 = n - 2
FOR k = 1 TO n2
Maxr = Min(n - k, m1)
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
258
259
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
NEXT iR
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
259
260
'
'
'
'
'
'
'
'
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.
sn
o
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.
em
de
r
iErr = -1
IF m <= 0 THEN EXIT SUB
iErr = 0
x0 = 0
m1 = mb - 1
m21 = m1 + mb
w
.e
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
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
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
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
sn
o
ri.
co
devam
tla
FOR i = 2 TO n
RV6(i) = xu
NEXT i
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
261
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
A x=B x
w
.e
em
de
r
Ahmet TOPU
tla
35
PROGRAMLAR:
263
ri.
co
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
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
Yar bant=4
w
.e
121193 181790
0
0
0.2025
0.14625
242386
1.170
727160 181790 181790
0
0
242386
1.170
121193 181790
0.14625
0
0
0.2025
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
263
264
' kt:
' ALamda(n,2): zdeerler
' X(n,m): zvektrler
sn
o
' A=K
DATA
DATA
DATA
DATA
DATA
DATA
DATA
tla
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
DEFINT I-N
DEFDBL A-H, O-Z
DECLARE
DECLARE
DECLARE
DECLARE
SUB
SUB
SUB
SUB
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
264
265
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
265
266
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
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
w
.e
Dsearch
devam
ediyor
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
266
267
Dsearch
devam
sn
o
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
w
.e
Dsearch
devam
ediyor
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
267
268
Dsearch devam
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
ri.
co
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
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
sn
o
Ahmet TOPU
tla
f(x)=0
em
de
r
w
.e
x1
x3
x
x2
f(x)
36
Bolzano
Modified Regula Falsi
Dekker-Brent
Newton-Raphson
Bairstow
Mller
Jenkins-Traub
Metodlar
270
ri.
co
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
w
.e
Basit rnekler:
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
270
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
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
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
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
271
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
Saysal rnek 1:
f(x)=x3-2x+1=0 fonksiyonunun [a,b]=[0,0.9] aralnda kk var mdr? Varsa kk
belirleyiniz.
tla
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
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
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
273
ex
- Sin x
Sa taraftan
hesplanan yeni x
nceki x
=x+
Adm x
ri.
co
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
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
w
.e
Newton-raphson(Newton) metodu:
f(x) fonksiyonun trevi olan f'(x) fonksiyonu da biliniyorsa kullanlabilir. Basit iterasyon
metoduna nazaran daha hzl yaknsar.
KK
=
dr.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
273
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
"
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
sn
o
terasyon admlar:
ve
"
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
w
.e
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:
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
274
f x =
1
ex
275
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
=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
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
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
x1
x2
x3
x4
Kk
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
276
x
k
( x k x k 1 ) 2
x k 2x k 1 + x k 2
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
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
PROGRAMLAR:
w
.e
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.
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
276
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:
ri.
co
1
+ x 3 e Tan(x) e x , aralk [0.1, 1]
Cos(x)
tla
5. f(x) = Sin
Bolzano sonular:
+ 1 , aralk [ , 3 ]
Bernard Bolzano
1781-1848, talyan asll Avusturyal
sn
o
8. f ( x ) = Sin (8 x ) e
Cos ( x )
em
de
r
bulunabilen kkleri:
w
.e
bulunabilen kkleri:
bulunabilen kkleri:
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
277
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:
sn
o
tla
kkleri:
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
278
sn
o
tla
CLS
CALL Bolzano(a, b, x(), MaxBul, iBulundu)
IF iBulundu = 0 THEN PRINT "Kk bulunamad(Bolzano)": END
ri.
co
279
em
de
r
w
.e
iF1 = SGN(f1)
iF2 = SGN(f2)
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
279
280
Regula-Falsi Metodu
(Method of false position, (Linear interpolation method)
rnekler:
ri.
co
1
+ x 3 e Tan(x) e x , aralk [0.1, 1]
Cos(x)
tla
5. f(x) = Sin
RegulaFalsi sonular:
sn
o
em
de
r
bulunabilen kkleri:
w
.e
bulunabilen kkleri:
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
280
281
ri.
co
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
tla
bulunabilen kkleri:
bulunabilen kkleri:
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
281
tla
CLS
CALL RegulaFalsi(a, b, x(), iFind, iFound)
ri.
co
282
sn
o
em
de
r
w
.e
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
283
Dekker-Brent metodu
DekkerBrent program f(x) transandant fonksiyonunun [a, b] aralndaki gerek kklerini
bulur. Aadaki rnekler iin test edilmitir.
rnekler:
ri.
co
1
5. f(x) = Sin
+ x 3 e Tan(x) e x , aralk [0.1, 1]
Cos(x)
Bolzano sonular:
sn
o
tla
em
de
r
bulunabilen kkleri:
w
.e
bulunabilen kkleri:
bulunabilen kkleri:
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
283
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:
sn
o
tla
kkleri:
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
284
DekkerBrent
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
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
285
286
' 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
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
sn
o
' Machep
Eps = 1
DO
Eps = Eps / 2
s = 1 + Eps
LOOP UNTIL s <= 1
Eps = 3 * Eps
tla
ri.
co
' INPUTS
' x1,x2 : interval to be search for a root of f(x)
' Maxit : maximum number of iterations
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
286
287
Newton-Raphson(Newton) metodu
rnekler:
2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4
ri.
co
NewtonRaphson sonular:
sn
o
8. f ( x ) = x 4 10 x 3 + 35 x 2 50 x + 24
tla
em
de
r
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
288
em
de
r
6. f(x) = x 3 21x 20 = 0
sn
o
tla
ri.
co
4. f(x) = x 8 1 = 0
w
.e
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
ri.
co
sn
o
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
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
289
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
290
291
Bairstow metodu
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
em
de
r
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
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
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
ri.
co
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
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
293
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
sn
o
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
295
Mller metodu
2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4
ri.
co
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:
sn
o
tla
em
de
r
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/
295
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
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
297
ri.
co
sn
o
tla
em
de
r
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
297
298
Muller devam
x3 = x2 + h3
z = x3
GOSUB 4
f3 = fzrdfL
ri.
co
tla
em
de
r
sn
o
EXIT SUB
w
.e
fzrdfL = fzrdfL / sq
NEXT j
RETURN
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
298
299
Jenkins-Traub metodu
2. f(x) = x 5 3 x 4 + 4 x 3 + 2 x 2 10 x 4
ri.
co
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:
sn
o
8. f ( x ) = x 4 10 x 3 + 35 x 2 50 x + 24
tla
em
de
r
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
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
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
JenkinsTraub
' 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
ri.
co
301
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
SUB
em
de
r
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
sn
o
DEFINT I-N
DEFDBL A-H, O-Z
w
.e
CLS
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
301
ri.
co
sn
o
em
de
r
'
'
'
'
'
'
'
'
'
'
'
'
'
tla
302
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
302
w
.e
em
de
r
sn
o
tla
ri.
co
303
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
303
m
ri.
co
tla
w
.e
em
de
r
sn
o
304
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
304
305
w
.e
em
de
r
sn
o
tla
ri.
co
305
306
w
.e
em
de
r
sn
o
tla
ri.
co
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
306
m
ri.
co
tla
w
.e
em
de
r
sn
o
307
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
307
m
ri.
co
tla
em
de
r
sn
o
308
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
308
m
ri.
co
tla
sn
o
309
em
de
r
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
309
310
Karlatrma
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
tla
2.polinomun akan ve birbirine ok yakn kkleri vardr: x1, 2 ,3, 4 = 10, x 5 = 9.999
sn
o
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.
w
.e
em
de
r
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
310
311
ri.
co
tla
em
de
r
sn
o
Yorum: En baarl: JenkinsTraub ve Bairstow, en baarsz: NewtonRaphson. Muller zaten sanal kk bulmaz.
w
.e
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
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
sn
o
Ahmet TOPU
w
.e
em
de
r
Min f(x)=?
37
Min-Max
Bir fonksiyonun minimummaksimum deerlerinin
belirlenmesi
313
ri.
co
sn
o
tla
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
313
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
Min
sn
o
tla
GoldenRatioSearch sonucu
4 x( x 2)
( x 2 + 1)( x 2)
ri.
co
Min
em
de
r
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
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
ri.
co
315
sn
o
GoldenRatioSearch sonucu
1000
= 10.84 cm bulunur.
5.42 2
em
de
r
V = r 2 h = 1000 h =
'--------------------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
316
IF iBulundu = 0 THEN
PRINT "["; a; ","; b; "] aralnda minimum bulunamad(GoldenRatioSearch)!":
END
END IF
ri.
co
em
de
r
Epsilon = 1E-08
Maxit = 100
iHata = 0
Rone = (SQR(5) - 1) / 2
Rtwo = Rone * Rone
sn
o
tla
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
316
317
4 x( x 2)
( x 2 + 1)( x 2)
tek
ri.
co
Brent sonucu
tla
Min
Min
sn
o
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
'--------------------Ana program Brent------------------------------' f(x) fonksiyonunun [a,b] aralndaki minimum deerlerini bulur
' Ahmet TOPU, Eskiehir, 2010
' arlan alt program: Brent
'--------------------------------------------------------------------
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
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
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
318
sn
o
tla
ri.
co
319
w
.e
em
de
r
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
319
320
A
B
tla
ri.
co
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
w
.e
NelderMead
alt
programna
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
321
1000
ab
1000
1000
+a
ab
ab
2000 1000
S = 2ab +
+
a
b
ri.
co
S = 2ab + 2b
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
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
tla
CLS
Deiken says okunuyor
READ n
DIM P(n + 1, n), Y(n + 1), PT(n + 1)
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
em
de
r
Sonular yazdrlyor
f(x,y)= x2 + y2 - 4 x - y - xy
fonksiyonunun programda tanmlanmas
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
322
323
tla
sn
o
ri.
co
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
324
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.
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:
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
em
de
r
w
.e
Sonular yazdrlyor
NelderMead sonucu
324
325
tla
ri.
co
SteepestDescent sonucu
sn
o
em
de
r
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
CLS
325
tla
ri.
co
' 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
326
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
326
327
ri.
co
tla
sn
o
Max
deikenli
fonksiyonunun
[-6,6]
aralndaki
maksimumu SteepestDescent ile aranacaktr.
em
de
r
b) Soldaki tepe noktasn bulmak iin ana programn DATA satrlar aadaki gibi deitirilir:
w
.e
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
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
ri.
co
em
de
r
w
.e
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
tla
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
Dikdrtgen kural
Dikdrtgen orta nokta kural
Simpson kural
Romberg metodu
Gauss-Legendre metodu
Adapte Simpson metodu
Recursive Simpson metodu
Tanh kural
330
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:
x2
2
dx
tla
sn
o
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 = I = f ( x ) dx A1 + A2 + ... + An
b
h
x0
x1
A1
h
x2
A2
x3
xn
A3
An
w
.e
i =1
Alan = I = f ( x) dx h y i
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
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
Simpson kural:
sn
o
em
de
r
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=
xi
2ah 3
+ 2ch
3
Ai
h
( yi + 4 yi +1 + yi+ 2 )
3
i =1
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
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
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=
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=
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
332
333
Yamuk(trapez) kural:
f (x) =
4
I=
13 ( x x 2 )
e3x
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
Yorum:
dx = 2.6310
w
.e
13( x x 2 )
e3x
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
333
334
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
Ahmet TOPU
sn
o
tla
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
336
f ( x) dx
1. Simpson : I =
a
b
f ( x) dx
ri.
co
2. Romberg: I =
a
b
3. GaussLegendre: I =
f ( x) dx
a
b
4.
AdabteSimpson: I =
f ( x) dx
tla
a
b
5.
RecursiveAdapteSimpson: I =
f ( x) dx
a
b yb ( x )
7. Yamuk2: I = [
sn
o
6. TanhKurali: I =
f ( x, y) dy] dx
a ya ( x )
b yb ( x )
8. Simpson2: I = [
f ( x, y) dy] dx
em
de
r
a ya ( x )
b yb ( x )
9. Romberg2: I = [
f ( x, y) dy] dx
a ya ( x )
xb yb ( x )
10.GaussLegendre2: I = [
f ( x, y) dy] dx
xa ya ( x )
xb yb( x ) zb ( x , y )
11.
GaussLegendre3: I = {
f ( x, y, z) dz] dy} dx
xa ya ( x ) za ( x , y )
w
.e
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
I2 =
/2
1 + Cos 2 ( x)
dx
I2
1.437642
1.437642
1.437642
1.437642
1.437642
1.437642
1.437642
Metot
-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
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
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
Karlatrma
I1
Simpson
Romberg
-2.630988
-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
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 = +
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
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
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
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
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
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
'-----------------------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
'
'
'
'
'
'
'
'
'
ri.
co
DEFINT A-I
DEFDBL A-H, O-Z
DECLARE SUB Simpson (ai, bi, Hassasiyet, Altintegral, iHata)
tla
sn
o
em
de
r
w
.e
Toplamintegral = 0
FOR iAralik = 1 TO MaxAralik
ai = bi
bi = ai + Delta
IF iAralik = MaxAralik THEN bi = b
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
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
tla
ri.
co
'
'
'
'
'
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)
NEXT i
w
.e
iHata = 1
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
344
345
'----------------------Ana Program Romberg-------------------------' f(x) fonksiyonunun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Romberg
tla
'
'
'
'
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
ri.
co
'
'
'
'
'
sn
o
em
de
r
w
.e
Toplamintegral = 0
FOR iAralikNo = 1 TO MaxAralik
ai = bi: bi = ai + Delta
IF iAralikNo = MaxAralik THEN bi = b
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
tla
'
'
'
'
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
ri.
co
'
'
'
'
'
sn
o
em
de
r
Delta = bi - ai
Deltax = Delta
Sayici1 = 1
Sayici2 = 2
EskiAltintegral = 0
Tablo(1) = .5 * (fnF(ai) + fnF(bi))
w
.e
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
346
347
'-----------------------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
'
'
'
'
'
'
'
'
'
kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : ntegral yaknsamad
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
sn
o
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
347
348
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
Altintegral = 0
FOR j = 1 TO n
Altintegral = Altintegral + w(j) * fnf(x(j))
NEXT j
iHata = 1
EXIT SUB
w
.e
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
ri.
co
'
'
'
'
'
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
348
349
'----------------------Ana program Adapte Simpson-------------------' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010
' f(x) fonksiyonunun [a,b] araldaki tek katl inegralini hesaplar
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
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
'
'
'
'
'
em
de
r
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
349
350
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
tla
'
'
'
'
ri.
co
'
'
'
'
'
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
350
351
a = AraBilgiVektoru0.a
c = AraBilgiVektoru0.c
b = AraBilgiVektoru0.b
Hassasiyet = AraBilgiVektoru0.Hassasiyet
Kontrol = AraBilgiVektoru0.Kontrol
tla
ri.
co
itrasyonDevamEdiyor = 0
AraBilgiVektoru0 = AraBilgiMatrisi(iAralikNo)
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
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
351
352
'-----------------Ana program Recursive Adapte Simpson---------------' Ahmet Topu, Eskiehir Osmangazi niversitesi, 2010
' f(x) fonksiyonunun [a,b] aralndaki tek katl inegralini hesaplar
kt:
Toplamintegral: Hesaplanan integral deeri
iHata=0 : integral yaknsad
iHata<>0 : integral yaknsamad
DEFINT I-N
DEFDBL A-H, O-Z
tla
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
ri.
co
'
'
'
'
'
em
de
r
sn
o
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
352
353
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
tla
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
353
354
'----------------------Ana Program Tanh Kural----------------------' f(x) fonksiyonunun [a,b] aralnda tek katl integralini hesaplar
' Ahmet TOPU, Osmangazi niversitesi, Eskiehir, 1994
' kullanlan metod: Tanh kural
tla
'
'
'
'
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
ri.
co
'
'
'
'
'
sn
o
em
de
r
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
354
355
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
Veri:
a: integraln alt snr
b: integraln st snr
f(x) : integrali hesaplanacak fonksiyon
Hassasiyet: hassasiyet
ri.
co
'
'
'
'
'
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
355
356
ki katl integral:
Yamuk kural ile integrasyon
(ana program)
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
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
356
357
ki katl integral:
Yamuk kural 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
em
de
r
x = Xb
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = .5 * (Dintegral + Yint)
sn
o
tla
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
w
.e
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
357
358
ki katl integral:
Simpson metodu ile integrasyon
(ana program)
Pi = 4 * ATN(1)
Xa = -2: Xb = 2
DEF FnYa (x) = -1: DEF FnYb (x) = 1
DEF FnF (x, y) = EXP(-x * x * y * y)
sn
o
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
358
359
'
'
'
'
'
'
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
w
.e
em
de
r
sn
o
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
359
360
'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
'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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
360
361
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
em
de
r
FOR i = 1 TO MaxRomberg
iAralikSayisi = 2 * iAralikSayisi
CALL YamukKurali(Xa, Xb, iAralikSayisi, Dintegral)
i1 = i + 1
t(i1, 1) = Dintegral
x = Xa
FOR k = 1 TO iAralikSayisi - 1
x = x + DeltaX
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = Dintegral + Yint
NEXT k
Dintegral = DeltaX * Dintegral
w
.e
x = Xb
CALL Yintegral(x, iAralikSayisi, Yint)
Dintegral = .5 * (Dintegral + Yint)
sn
o
ri.
co
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
ki katl integral:
Gauss-Legendre metodu ile
integrasyon (ana program)
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)
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
362
363
ki katl integral:
Gauss-Legendre metodu ile
integrasyon (alt program)
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
em
de
r
FOR i = 4 TO iMax
NoktaSayisi = 2 ^ i
' Gauss-Lgendre koordinatlar:
CALL GauLeg(-1, 1, x(), w(), NoktaSayisi)
Hx = .5 * (Xb - Xa)
HxOrta = .5 * (Xb + Xa)
Dintegral = 0
w
.e
Dintegral = Dintegral * Hx
hata = ABS(Dintegral - Eskiintegral)
IF hata <= Hassasiyet THEN EXIT SUB
Eskiintegral = Dintegral
NEXT i
iHata = 1' Yaknsamad
END SUB ' GaussLegendre2 sonu
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
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
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
katl integral:
Gauss-Legendre metodu ile
integrasyon (alt program)
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
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
365
ri.
co
Bilgisayar Destekli
Nmerik Analiz
Ahmet TOPU
sn
o
tla
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
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
ri.
co
tla
sn
o
em
de
r
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
n2
n Log(n)
n Log(n)
n Log2(n)
Hzl sralama
n Log(n)
n Log(n)
Cce srlama
n2
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
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
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
Ahmet TOPU
sn
o
tla
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
ala
Ik
a = lhan
irin
Zeynep
41
Sralama (Sorting)metotlar
370
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
Alfasaysal sralama:
w
.e
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
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
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
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
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.
373
374
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
ri.
co
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
374
375
Sure = TIMER - t
PRINT : PRINT s$(iSecenek); " n="; n; : PRINT
ri.
co
tla
sn
o
em
de
r
w
.e
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
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
tla
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
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
376
377
ri.
co
DEFINT I-N
SUB
SUB
SUB
SUB
CLS
READ n
' a$ n satr says
DIM a$(n) ' a$ iin yer ayr
sn
o
DECLARE
DECLARE
DECLARE
DECLARE
tla
em
de
r
w
.e
CLS
PRINT "Sralanm vektr (QuickAlfa):"
FOR i = 1 TO n
PRINT a$(i)
NEXT i
TurkceKodTablosu alt
program
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
377
378
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
em
de
r
sn
o
tla
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
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
ri.
co
Bilgisayar Destekli
Nmerik Analiz
w
.e
em
de
r
Ahmet TOPU
sn
o
tla
PROGRAMLAR:
Sral(Sequential) arama
kili(Binary) arama
Blok ikili(Jump) arama
42
Arama (Searching) metotlar
380
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
Karlatrma:
em
de
r
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
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
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
5.5
em
de
r
4.5
200
400
600
800
1000
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
ri.
co
'veri:
' a(n): kkten-bye sral saylar ieren vektr
' Aranan: aranan deer
sn
o
'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
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
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
WEND
iBinarySearch = 0 ' bulunamad
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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
382
383
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
'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
Ahmet TOPU, Bilgisayar Destekli Nmerik Analiz, Eskiehir Osmangazi niversitesi, 2014, http://mmf2.ogu.edu.tr/atopcu/
383