• (bkz: determinant)
  • eger kagit kalemle yapiyosaniz. cok dikkatli yapmaniz gerekir. cunku tamamen toplama ve carpma islemlerinden olusan bir hamalliktir. ozellikle sinavlarda cok dikkat etmek gerekir.bir kerede ama dikkatlice yapmak en dogrusudur.yoksa oturup kontrol etmeniz gerekir ki edemezsiniz daha cok bok edersiniz.
  • dikkatle dinleyin,

    matris çarpımının altından kolaylıkla kalkabilmeniz için öncelikle şu iki sırayı ezberlemeniz gerekiyor:

    1) sütun-satır
    2) satır-sütun

    ilk satır, iki matrisin çarpılabilmesi için gerekli koşulu içeriyor, yani birinci matriste kaç tane sütun varsa, ikincisinde o kadar satır olacak. yoksa bu iki matrisi çarpamazsınız.

    ikinci satır da çarpım sonrasında elde edeceğiniz matrisin yapısını içeriyor. çarpım sonucu matrisi, birincisinin satırları kadar satır ve ikincisinin sütunları kadar sütun içerecek.

    ilk ders bitti, biraz dinlenin; (bkz: #25497274)

    ----------------------------------------------------------------------------------------------------------------------------

    1- dinlenmeniz bittiyse derin bir nefes alıp çarpmaya başlayalım:

    yukarıda anlattığımız gibi, birincinin satırlarını ikincinin sütunları ile çarpıyoruz. matrisler arasındaki yolculuğumuz başlıyor.

    a matrisinin ilk satırındayız.
    b matrisinin de ilk sütunundayız.

    hemmen a matrisinin birinci satırının ilk elemanını (en soldaki) ve b matrisinin ilk sütununun ilk elemanını (en üsttekini) buluyoruz. bu ikisini çarpıyoruz.

    çarptık mı? peki. sonucu yazın. sonra hemen a matrisine dönün. ilk satırda sağa doğru başka eleman var mı? eğer varsa, b'nin ilk sütununda da aşağıya doğru ikinci bir eleman olmalı. niye? bakınız bir ve iki numaralı kurallar. ilkinde kaç sütun varsa ikincisinde de o kadar satır olacak. ne kadar ekmek o kadar köfte.

    a nın ilk satırının ikinci elemanını da b nin ilk sütununun ikinci elemanı ile çarpın ve demin bulduğunuz sayıya ekleyin bakalım koçerolar. bu şekilde devam edin, a'nın ilk satırının üçüncü elemanını b'nin ilk sütununun üçüncü elemanıyla, a'nın ilk satırının dördüncü elemanını b'nin ilk sütununun dördüncü elemanı ile çarpıp çarpıp birbirine ekleyin, ta ki,a matrisinin ilk satırının sonuna gelene kadar. tebrikler! a x b'nin ilk elemanını, yani c11'i buldunuz ve bir teneffüsü hak ettiniz. beş dakika sonra tekrar buradayız; (bkz: #25487882)

    --------------------------------------------------------------------------------------------------------------------------

    2- tekrar hoşgeldiniz. az önce a matrisinin ilk satırını kullanarak b matrisinin ilk sütununu "harcadık". ama a matrisinin ilk satırı ile işimiz bitmedi. şimdi de a matrisinin ilk satırına b matrisinin (eğer varsa) ikinci sütununu harcatıyoruz panpalar. tüm olayımız bu. satırlara sütunları harcatmak. b'nin tüm sütunlarını harcayana kadar a'nın satırlarının çilesi bitmeyecek. aynı sırayı takip ediyoruz, yani;

    a matrisinin birinci satırının ilk, yani en soldaki elemanını (en soldaki) ve b matrisinin ikinci sütununun ilk elemanını (en üstteki) ile çarpıyoruz. a'nın birinci satırının ikinci elemanı ve b'nin ikinci sütununun ikinci elemanını çarpıyoruz, a'nın birinci satırının üçüncü elemanı ve b'nin ikinci sütununun üçüncü elemanı ile çarpıyoruz ve a'nın ilk satırının sonuna gelene kadar bu şekilde devam edip, bu çarpımların hepsini topluyoruz. tebrikler! yeni matrisin ikinci elemanını, yani c12'yi buldunuz. şu anda görüntü şöyle:

    c11 c12

    şimdi sizi zor bir görev bekliyor, a'nın ilk satırına b'deki tüm sütunları kırdırmak. b'deki sütunlar tükenene kadar üstte iki kere tekrarladığım işlemi tekrar edin. iş bittiğinde şöyle bir şey mi elde ettiniz acaba?

    c11 c12 c13 ... c1j

    burada j, b'nin sütun sayısı ise tebrikler! ilk satırınız ortaya çıktı. bir teneffüsü daha hak ettiniz ama bu sefer gerçekten yoruldunuz, bu teneffüsü biraz uzun tutalım: (bkz: #25047537), (bkz: #24932177)

    ------------------------------------------------------------------------------------------------------------------------------

    3- artık olayı araklamış olmalısınız, zira ilk satırla işimiz bittiğinde sıra ikinci satırımıza geldi. 1 ve 2'deki işlemleri ikinci satır için de yapın. eğer kafanız karıştı ise yapmanız gereken şey basit, 1 ve 2'de "birinci satır" yazan tüm yerleri "ikinci satır" ile değiştirip ona göre işlem yapmak! a 'nın ikinci satırına da b'nin tüm sütunlarını harcattıktan sonra şöyle bir şey elde edeceksiniz:

    c11 c12 c13 ... c1j
    c21 c22 c23 ... c2j

    size bu yollar helal, şimdi biraz soluklanın bakalım: (bkz: #22793094)

    ------------------------------------------------------------------------------------------------------------------------------

    4- olay budur. şimdi gidin ve bu şekilde, kalan satırlara tek tek tüm sütunları harcatın. en sonunda karşınıza şöyle bişey çıkacak:

    c11 c12 c13 ... c1j
    c21 c22 c23 ... c2j
    ...
    ci1 ci2 ci3 ... cij

    eğer i a matrisinin satır numarası, j de b matrisinin sütun numarası ise siz artık bir matris canavarı oldunuz demektir. tebrikler, ders bitti.
  • an itibariyle uc berkeley'de virginia vassilevska williams tarafindan o(n^{2.3727}) zamanda hesaplanabilecegi gosterilmis islem. (bkz: computational complexity)
    (bkz: siz daha iyisini yapana kadar en iyisi bu)
  • http://matrixmultiplication.xyz/

    adresinden nasıl yapılacağını gözlerinizle görebileceğiniz.
  • bunu nasil tam turkce sekilde yazabilecegimi bilmiyorum ama;

    her matris aslinda bir graph* temsil ettiginden, iki matrisin carpimi aslinda iki graph'in birbirine baglanmis kenarlarindaki path'lerin takip edilip, agirliklarinin toplanmasidir.

    bu ve bunun gibi birkac bilgi icin kaynak

    edit: matris- graph iliskisini kafanizda canlandiramiyorsaniz once adjacency matrix nedir bakabilirsiniz. meshur pagerank gibi social network analysis * tabanli bircok algoritma aslinda bu komsuluk matrislerinin graph temsiliyle elde edilmistir.
  • değişmeli (bkz: commutative) olmayan bir işlemdir.

    yani a ve b (skaler olmayan ve çarpılabilir) iki matris ise, a*b her zaman b*a'ya eşit olmak zorunda değildir. zaten bu iki matris her zaman eşit olsaydı doğrusal cebir kimbilir ne kadar kolay olurdu.

    enterasan olan şey skaler durumda çarpma operasyonun değişmeli olmasıdır. yani a ve b iki skaler ise, a*b=b*a eşitliği her zaman sağlanır. ancak skaler'ler de zaten 1x1'lik matrislerdir. peki bu güzel özelliğin daha büyük matrislerdeki karşılığı nedir?

    bu soruya cevap verebilmek için doğrusal cebirde hep yaptığımız gibi a*b ve b*a matrislerinin özdeğerlerine bakmak gerekmektedir. yine skaler duruma dönelim: a ve b'nin iki skaler olduğu durumda a*b ve b*a değerleri de skaler olurlar. yani a*b ve b*a 1x1'lik matrislerdir. 1x1 matrislerin özdeğerleri kendileridir ve bu durumda a*b=b*a olduğundan diyebiliriz ki skaler durumda a*b ile b*a'nın özdeğerleri birbirlerine eşittir.

    matris durumu bundan tabii ki daha zorludur. zira a*b ve b*a'nın boyutları bile birbirlerine eşit olmak zorunda değildir. örneğin a nxm'lik, b de mxn'lik bir matrisse, a*b nxn'lik b*a da mxm'lik bir matris olur ve n = m değilse a*b ve b*a matrislerinin boyutları farklıdır. ancak n = m eşitliğinin sağlandığı, yani a ve b matrislerinin kare olduğu, kolay durumda aşağıdaki teorem verilebilmektedir.

    teorem: a ve b iki nxn boyutlu matris ise, a*b ve b*a matrislerinin özdeğerleri aynıdır.

    görüldüğü gibi skaler durumda tutan özellik matris durumunda da, a*b=b*a eşitliği geçerli olmasa da, sağlanmaktadır. bu teorem a veya b'den herhangi birinin tersi alınabilir olduğunda çok kolay ispatlanabilmektedir.

    ispat: doğrusal cebirde matrisler hakkında bilinen en önemli özelliklerden birisi benzerlik dönüşümünün (bkz: similarity transformation) matris özdeğerlerini değiştirmediğidir. yani a matrisi ile herhangi bir tersi alınabilen p matrisi için c = inv(p)*a*p matrislerinin özdeğerleri aynıdır. önce bunu bir ispatlayalım:

    a matrisinin özdeğerleri onun karakteristik polinomu olan d_a( lambda ) polinomunun kökleridir.

    d_a( lambda ) = det ( lambda*ı - a ).

    c = inv(p)*a*p matrisinin özdeğerleri ise

    d_c( lambda ) = det ( lambda*ı - inv(p)*a*p )

    polinomunun kökleridir. burada ı ile gösterdiğimiz birim matrisi ı = inv(p)* p olarak yazarsak

    d_c( lambda ) = det ( lambda*inv(p)* p - inv(p)*a*p )
    = det ( inv(p) * (lambda*ı - a) * p )

    olur. şimdi determinantın matris çarpımı üzerine dağılımını kullanalım.

    d_c( lambda ) = det( inv(p) ) * det ( lambda*ı - a ) * det( p )
    =det( inv(p) ) * d_a ( lambda ) * det( p )

    bulduk. yine herhangi bir tersi alınabilen p matrisi için determinantın

    det( inv(p) ) = inv (det (p) ) = 1/det(p)

    özelliği ile

    d_c( lambda ) = d_a( lambda )

    çıkar ki bu durum c = inv(p)*a*p matrisi ile a matrisinin karakteristik polinomlarının aynı olduğunu söyler. bu da tabii ki c = inv(p)*a*p matrisi ile a matrisinin özdeğerlerinin aynı olduğunu gösterir.

    şimdi asıl problemimiz olan, a*b ve b*a matrislerinin bu iki matristen herhangi birisinin tersi alınabilir olduğu durumdaki özdeğerlerine, benzerlik dönüşümünün özdeğerleri değiştirmediği bilgisi ışığında bakalım. genellik kaybı olmadan (bkz: without loss of generality) diyelim ki a matrisinin tersi alınabilir. bu durumda a*b matrisine p = a matrisi ile benzerlik dönüşümü uygulayalım.

    inv(p) * ( a*b ) * p = inv(a) * ( a*b ) * a = inv(a) * a*b * a = b*a

    çıktı. yani a*b ve b*a matrisleri birbirine benzer çıktı. dolayısıyla bu iki matrisin karakteristik polinomları, dolayısıyla da özdeğerleri eşit olmak zorundadır. qed

    aslında bu ispat bize a*b ve b*a matrislerinin karakteristik polinomlarının birbirine eşit olduğunu da söylediği için aşağıdaki eşitliği de yan ürün olarak ispatlamış olduk.

    tr ( a*b ) = tr ( b*a )

    bunun sebebi herhangi bir a matrisinin karakteristik polinomunun bir katsayısının matrisin izi (bkz: trace) olmasıdır. a*b ve b*a matrislerinin karakteristik polinomları aynı olduğu için bu matrislerin izleri de aynı olmalıdır.

    a ve b matrislerinin kare ve eşit boyutlu olduğu durumda bu matrislerden herhangi birisinin tersi alınabiliyorsa a*b ve b*a matrislerinin özdeğerlerinin aynı olduğunu gösterdik. matrislerin ikisinin de tersi alınamadığı durumda da ispatlamak daha zor olsa da teoremimiz tutmaktadır. sonuç olarak bir bakıma çarpmada matris elemanları uzayında değişme özelliği bulunmasa da (a*b = b*a matris eşitliği her zaman sağlanmıyor), (aynı boyutlu kare matrisler için) özdeğer uzayında değişme özelliği bulunmaktadır ( lambda ( a*b ) = lambda ( b*a ) eşitliği sağlanıyor).

    peki daha genel durum için, yani a matrsinin nxm, b matrisinin de mxn boyutlu olduğu durum için ne söylenebilir? bu durumda da gösterilebilir ki a*b ( nxn boyutlu ) ve b*a ( mxm boyutlu ) matrislerinin sıfır olanlar dışındaki bütün özdeğerleri aynıdır.

    ispat: diyelim ki a*b matrisinin sıfırdan farklı lambda diye bir özdeğeri olsun. bu özdeğere ait özvektörlerden birisine (en az bir tane olmalı) x diyelim. özvektör x tanım gereği sıfırdan farklı bir vektördür ve aşağıdaki denklemi sağlar.

    a*b*x = lambda *x.

    şimdi bu denklemi soldan b matrisi ile çarpalım.

    b*a*b*x = lambda *b*x.

    matris çarpımının birleşme özelliğinden yararlanarak biraz parantez kullanırsak

    (b*a)*(b*x) = lambda *(b*x)

    denklemini elde ediyoruz. bu denklem de bize b*x vektörü sıfır değilse (bir özvektörün sağlaması gereken koşul), b*a matrsinin de bir özdeğerinin lambda olduğunu söyler. ispatımızda açıkta kalan tek durum b*x vektörünün sıfır olup olamayacağıdır. şimdi bunu anlamaya çalışalım. yukarıda kullandığımız

    a*b*x = lambda *x

    denkleminde b*x sıfır ise sol taraf sıfır olur. sağ taraf ise lambda sıfırdan farklı, x de (özvektör) sıfırdan farklı olduğu için her zaman sıfırdan farklıdır. dolayısıyla b*x kesinlikle sıfır olamaz. dolayısıyla ispatımız tamamlanmıştır. qed

    sonuç olarak a*b matrisinin sıfır olmayan lambda diye bir özdeğeri varsa, lambda aynı zamanda b*a matrisinin de özdeğeridir.

    yukarıda yaptığımız ispat iki matrisin de sahip olduğu sıfırdan farklı lambda özdeğerlerinin sayıları (katları) hakkında bir bilgi vermemektedir. yani bu ispata göre lambda bir matriste tek katlı, diğer matriste çift katlı bir özdeğer olabilir. ancak biraz daha gelişmiş bir teori bunun da imkansız olduğunu göstermektedir. yani sıfırdan farklı lambda özdeğeri a*b matrisinde kaç katlı ise b*a matrisinde de o kadar katlı olmalıdır. dolayısla a*b ve b*a matrislerinin sıfırdan farklı bütün özdeğerleri aynıdır ve bu matrislerin özdeğer kümeleri sadece sıfırda bulunan ekstra veya eksik özdeğerler nedeniyle farklı olabilir.
  • lineer cebirde bir matriste yapılan işlem sonucu başka bir matris çifti üreten ikili işlemlerin genel ismidir. inşaattan mühendisliğinden bilgisayara mühendisliğine sosyolojiye psikolojiye kadar inanılmaz geniş bir kullanım ağı vardır.
  • volker strassen tarafından geliştirilen optimum matris çarpımı yöntemi, 50 yıl sonra deepmind tarafından geliştirilen alphatensor ile iyileştirilerek yapay zeka'nın temel matematik problemlerinde de kullanıldığı dönem başlamıştır.
  • a *b carpimi o(n^{2.37}) zaman alir ama a*b=c islemini verify etmek kucuk bir hata payi ile randomized bir algoritma ile o(n^2) zamanda halledilebilir.

    bu algoritmada iki tarafi {0,1}^n luk x matrixi ile carpiyoruz. abx = cx yani.
    sonrasinda abx = cx islemini verify etmek o(n^2) zaman aliyor. o minik hata payida {0,1}^n luk x matrixinin random secilmesinden geliyor.
hesabın var mı? giriş yap