• bütün özdeğerleri pozitif olan matrislere verilen sıfat.
  • orjinal tanimiyla:
    a positive definite bir matrix ise, tum negatif olmayan x vektorleri icin (x >= 0), x a x' > 0.
  • iki matrisin buyukluklerini karsilastirmada kullanilabilecek tek kriterdir.
    ornegin a ve b ayni boyutta iki matris olsun. bu durumda a>b ifadesi ancak ve ancak (a-b)'nin bir positive definite matris olmasi ile mumkundur.

    her ne kadar cok super bir ozellikmis gibi gozukse de pratikte hala daha bir uygulamasini bulabilmis degilim bu yaklasimin. eldeki iki matrisin normlari uzerinden bir karsilastirma yapmak benim daha kolayima geliyor acikcasi. sorun benim tembelligimden mi yoksa tanimdaki nonlinearlikten mi kaynaklaniyor bilemiyorum.

    yine de ispatlarda yukaridaki ozelligi kullanmak en yavan ispata bile cok klas bir hava katar haberiniz olsun. o yuzden daha junior siniftan itibaren ogrenilmesi farzdir bu matrix inequalities kavramlarinin.
  • bir matris ise türkçede "kesin artı matris" denebilir.
  • x bir vektör, a ise positive definite bir matris olsun. bu durumda, x vektörü sıfır vektör olmadığı sürece,

    transpose(x)*a*x skaleri her zaman pozitif olmak zorundadır. mesela a*x vektörü, sıfır olmayan bir x vektörü için sıfıra eşitse matris posdef olamaz. demek ki, invertible olmayan matrisler posdef değildir çünkü,

    ax=0 denkleminin nonzero bir x vektörü için çözümünün olması demek, ax=0*x demektir. bu durumda 0 a için bir özdeğerdir. demek ki a-ı*0 matrisinin yani a matrisinin determinantı sıfırdır ve a singular bir matristir.

    posdef bir matrisin invertible olmak zorunda olduğunu kanıtlamış olduk.

    şimdi tekrar tanıma gelelim. n boyutlu uzaydaki bütün nonzero vektörler için, transpose(x)*a*x sıfırdan büyük olacaktır.

    n boyutlu x vektörünün sadece ilk bileşeninin sıfırdan farklı olduğu varsayalım,

    bu durumda, transpose(x)*a*x=a_11*x_1^2 şeklinde yazılır. reel uzayda, nonzero x_1'in karesi pozitif olduğuna göre, a_11 pozitif olmak zorundadır.

    aynı durumu, x vektörünün sadece 2., 3., ...., n. bileşeninin nonzero olduğu durum için tekrarlayın. bu durumda a posdef matrisinin bütün diagonal elemanları pozitif olmak zorundadır.

    bu elde dursun. şimdi de,

    n boyutlu x vektörünün sadece ilk iki bileşeninin sıfırdan farklı olduğu varsayalım,

    bu durumda, transpose(x)*a*x=a_11*x_1^2+a_12*x_1*x_2+a_21*x_1*x_2+a_22*x_2^2 şeklinde yazılır ve bunun sıfırdan büyük olması gerekir. a_11*x_1^2 teriminin sıfırdan büyük olması gerektiğini önceden ispatlamıştık. o zaman bütün ifadeyi bu terime bölersek elde ettiğimiz sonucun da sıfırdan büyük olması gerekir. dilerseniz, a_22*x_2^2 terimine bölmeyi de tercih edebilirsiniz.

    bu durumda, 1 + (a_12+a_21)*(x_2/x_1)/a_11+a_22*(x_2/x_1)^2/a_11 değerinin de pozitif olması gerekir. değişkenlerim x_1 ve x_2 olduğuna göre, bu ifadenin en küçük değerinin pozitif olduğunu ispatlarsam her durumda pozitif olduğunu ispatlamış olurum. o halde, x2/x1'e göre türevini alıp sıfıra eşitlersek,

    2*(a_22/a11)*x2/x1+(a_12+a_21)/a11=0 ve x2/x1= - (a12+a21)/2a22 bu durumda,

    1-(a12+a21)^2/2a22*a11+(a12+a21)^2/4*a22*a11>0

    bu durumda,

    1>(a12+a21)^2/4*a22*a11

    4*a11*a22>a12^2+2*a21*a12+a21^2

    4*(a11*a22-a21*a12)>a12^2-2a12*a21+a21^2=(a12-a21)^2

    (a11*a22-a21*a12)>(a12-a21)^2/4

    soldaki ifade 2x2'lik matrisin determinantıyken, sağdaki ifade reel sayılar için en iyi ihtimalle sıfır olabilir. bu durumda 2x2'lik matrisin determinantının pozitif olması şarttır.

    x vektörünün herhangi iki bileşenini sıfırdan farklı olarak alıp a matrisinde ona karşılık gelen 4 elemandan oluşan hangi kombinasyonu seçersek seçelim determinantının pozitif olması gerekiyormuş, eğer a matrisi posdef olacaksa.

    bu matrisi bu şekilde aça aça gittiğinizde de, en sonunda diyagonal elemanları asıl matrisin diyagonal elemanları olacak her türlü determinant kombinasyonunun pozitif olması gerektiği görülür.

    bu aslında şu demekdir,

    trans(x)*a*x değerinin her zaman sıfırdan büyük olması için x vektörünü sınıflandırmak gerekir.

    mesela hiçbir 0 bileşeni olmayan n uzayındaki x vektörleri için, a matrisinin determinantının pozitif olması gerekir.

    sadece bir bileşeni 0 olan n uzayındaki x vektörleri için, a matrisinden vektörün 0 bileşeninin olduğu satır ve sütun çıkarıldığında kalan n kombinasyonlu bütün alt matrislerin determinantının pozitif olması gerekir.

    .
    .
    .
    .
    .

    sadece bir bileşeni 0'dan farklı olan n uzayındaki x vektörleri için, a matrisinin nonzero vektör endeksine karşılık gelebilecek n kombinasyonlu bütün alt matrislerin, yani direkt olarak a matrisinin diyagonal elemanlarının sıfırdan büyük yani pozitif olması gerekir. böylece, n boyutlu reel uzaydaki bütün nonzero x vektörlerini bitirmiş olduk.

    bu ne demektir?

    a matrisi üzerinden tanıma geri dönelim trans(x)*a*x pozitif olacak,

    a matrisinin özdeğerlerine bakalım, a*v=lambda*v, özvektör de aynı uzayda olduğuna göre,

    trans(v)*a*v=trans(v)*lambda*v (özdeğer skaler olduğuna göre) =lambda*trans(v)*v

    trans(v)*v vektörün normunun karesi olduğu için pozitif olmak zorundadır, nonzero v vektörü için.

    bu durumda a matrisinin bütün özdeğerlerinin pozitif olması gerekir. bunun bir başka yorumu da, bütün özdeğerlerinin çarpımı o matrisin determinantına eşit olduğuna göre, a matrisinin determinantının da pozitif olması gerekir. ama bu da yetmez.

    neden?

    çünkü trans(x)*a*x skalerinin bütün muhtemel x vektörlerini sıfır yapmaya a'nın bütün özdeğerlerinin pozitif olması yetmez. bu sadece hiçbir nonzero bileşeni olmayan x vektörleri için yeterlidir ama uzayda zero bileşeni olan x vektörleri de vardır.

    skaler açıdan değerlendirildiğinde eğer x vektöründe zero bileşenler varsa, yeni bir b matrisi ve y vektörü tanımlamak gerekir. öyle ki, y vektörü x vektöründeki bütün zero bileşenlerin çıkarıldığı m boyutunda bir vektör ve b matrisi de x vektöründeki bütün zero indexlerin olduğu satır ve sütunların çıkarıldığı bir mxm matris olabilir. sonra da şunu yazabiliriz.

    trans(x)*a*x=trans(y)*b*y ve böylece y vektörü içinde hiç zero barındırmayan bir vektör olur. bu durumda b matrisinin determinantının pozitif olması bütün nonzero y vektörleri için trans(x)*a*x skalerini pozitif yapacaktır.

    edit: düzeltmeler için repercussion’a teşekkürler
  • cebirsel tanımının çok şık geometrik bir anlamı olan matris türü.

    yıllar önce optimizasyon dersi alırken dersin hocası dahil bir allahın kulu bana bunu söylemediği için teessüflerimi sunup buraya yazıyorum.

    positive definite matrisin cebirsel tanımı şudur.

    cebirsel tanım: sıfırdan farklı bütün x vektörleri için x^t * a * x > 0 eşitsizliğini sağlayan a matrisine positive definite matris denir (burada ^t transpose operatörünü göstermektedir).

    bu tanımı bu şekilde yazınca buna cebirsel tanım diyorum. işler bu tanımı geometrik bir kavram olan iç çarpım (inner product) ile bağlayınca güzelleşiyor. n boyutlu gerçel vektör uzayında x ve y diye iki vektörümüz olsun. bu vektörlerin elemanlarını x1,...,xn, ve y1,...,yn olarak adlandıralım. biliyoruz ki n boyutlu uzayda standart iç çarpım

    < x, y > = x1 * y1 + x2 * y2 +...+ xn * yn

    olarak tanımlanır. bu iç çarpımın vektörel ifadesi

    < x, y > = y^t * x = x^t * y

    olur. bir de şu bilgimiz var: yukarıdaki iç çarpım, vektörlerin büyüklükleri (norm) cinsinden aşağıdaki şekilde verilir.

    < x, y > = || x || * || y || * cos(theta)

    burada theta, x ve y vektörlerinin arasındaki açıdır. şimdi positive definite kavramının cebirsel tanımını aşağıdaki eşitliği kullanarak geometrik bir tanıma dönüştürebiliriz.

    x^t * a * x = < x, a * x >

    yani x^t * a * x karesel formu aslında x vektörüyle x vektörünün a ile transform edilmiş halinin iç çarpımıdır. dolayısıyla positive definite matrisin cebirsel tanımındaki eşitsizlik < x, a * x > > 0 eşitsizliğiyle aynıdır. peki bu ne demektir? bunu anlamak için

    < x, y > = || x || * || y || * cos(theta)

    ifadesine geri döneceğiz. bu ifadede sağ tarafın pozitif olması sizce ne anlama gelir?

    sağ taraf pozitif ise || x || ve || y || terimleri her zaman sıfırdan büyük veya eşit olduğu için cos(theta) pozitif olmak durumundadır (aslında || x || ve || y || terimleri de pozitif olmalıdır ama onlar bizi şu anda ilgilendirmiyor). peki cos(theta) pozitif ise theta açısı için ne diyebiliriz? tabii ki theta açısı şu eşitsizliği sağlamalıdır.

    -90 < theta < +90

    burada gördüğünüz gibi -90 ve +90'ı dahil etmedik çünkü o açıların kosinüsü sıfır. sonuç olarak eğer iki vektörün arasındaki iç çarpım sıfırdan büyükse o iki vektörün arasındaki açı(nın mutlak değeri) her zaman 90 dereceden küçüktür, yani o açı dar açıdır. bu durumda ilgilendiğimiz < x, a * x > > 0 eşitsizliği size ne der?

    x ve a * x vektörlerinin arasındaki açı dar açıdır. artık geometrik positive definite matris tanımımıza hazırız:

    geometrik tanım: sıfırdan farklı bütün x vektörlerini, x vektörüyle dar açı yapan sıfırdan farklı bir vektöre transform eden a matrisine positive definite matris denir.

    artık huşu içinde bu tanımı kafanızda canlandırabilir, öğrenmek isteyenlere tahtaya çizerek anlatabilirsiniz.

    burdan sonrası opsiyonel.

    peki bu tanımın optimizasyonla ilgisi nedir? burayı biraz kısa keseceğim. optimizasyonda birden fazla değişkene bağlı bir fonksiyonu minimize etmek isterseniz, uygulayabileceğiniz bir yöntem bir noktadan başlayıp hep gradyanın tam tersi yönünde gitmektir (bkz: steepest descent). ancak gradyanın tam tersi yönünde gitmeniz açgözlü (greedy) ve miyop bir strateji olup uzun vadede sizi çok yavaş ilerletebilir. bu durumda gradyanın tersine alternatif gidiş yönleri ararsınız. bu alternatif yönleri de fonksiyonun değerini her zaman düşürecek şekilde seçmek isteyeceğinizden bu yönlerin her zaman negatif gradyanla dar açı yapmasını istersiniz (bkz: yönlü türev). işte burada positive definite matrisler işin içine girer. bilirsiniz ki negatif gradyanınızı positive definite bir matrisle çarparsanız çıkacak yeni yön her zaman negatif gradyanla dar açı yapacaktır. dolayısıyla gradyanınızı g ile gösterirsek a positive definite bir matrisken -a * g yönünde giderseniz fonksiyonunuzun değerini hala düşürebilirsiniz. buradaki a matrisini değiştirerek değişik pek çok optimizasyon algoritması türetebilirsiniz. bu tür algoritmaların en ünlüsü de a matrisinin hessian matrisinin tersi olarak seçildiği newton yöntemidir.
hesabın var mı? giriş yap