Matris çarpımı. Matris çarpımı: örnekler, eylem algoritması, ürünün özellikleri Matris ürününün temel özellikleri


Her vektör tek sütunlu veya tek satırlı bir matris olarak düşünülebilir. Tek sütunlu matrise sütun vektörü ve tek satırlı matrise satır vektörü adını vereceğiz.

A, m*n boyutunda bir matrisse, sütun vektörü b'nin boyutu n'dir ve satır vektörü b'nin boyutu m'dir.

Bu nedenle, bir matrisi bir vektörle çarpmak için, vektörü bir sütun vektörü olarak düşünmeliyiz. Bir vektör bir matrisle çarpılırken satır vektörü olarak ele alınmalıdır.

Çarpma matrisi

karmaşık bir vektöre

Sonucu alıyoruz

Gördüğünüz gibi vektör boyutu değişmeden iki çözümümüz olabilir.

Birinci ve ikinci versiyondaki matrislerin aynı değerlere rağmen tamamen farklı (farklı boyutlara sahip) olduğuna dikkatinizi çekmek isterim.

İlk durumda vektör bir sütun olarak kabul edilir ve daha sonra gerekli olur. matrisi vektörle çarpma ve ikinci durumda bir satır vektörümüz var ve sonra elimizde bir vektör ile bir matrisin çarpımı.

Bu bot aynı zamanda karmaşık değerlere sahip vektörleri ve matrisleri de çarpar. Daha eksiksiz bir hesap makinesine dayalı: Çevrimiçi karmaşık değerlerle matris çarpımı

Matris-vektör çarpımının özellikleri

Matris

Vektör sütunu

Satır vektörü

Rasgele sayı

1. Bir matrisin sütun vektörlerinin toplamına göre çarpımı, her bir vektörün matrisin çarpımlarının toplamına eşittir.

2. Satır vektörleri ile matrisin toplamının çarpımı, vektörlerin ve matrisin çarpımlarının toplamına eşittir

3. Bir vektörün ortak faktörü, bir matrisin çarpımının dışına bir vektör/vektörün bir matris ile alınabilir.

4. Bir satır vektörünün çarpımı ile bir matris ve bir sütun vektörünün çarpımı, bir satır vektörü ile bir matris ve bir sütun vektörünün çarpımının çarpımına eşdeğerdir.

Ders 6. Hesaplamalı matematiğin tipik problemlerini çözmek için paralel sayısal algoritmalar: matris çarpımı.

Bir matrisin bir vektörle çarpılması. Mümkün olan en yüksek performansı elde etmek. Orta düzey paralellikten yararlanılıyor. P = n'de paralel hesaplamanın organizasyonu. Sınırlı sayıda işlemci kullanılması. Matris çarpımı. Problem çözme algoritmalarının makro-işlemsel analizi. Veri paylaşımına dayalı paralellik organizasyonu.

Bir matrisin bir vektörle çarpılması

Bir matrisi bir vektörle çarpma problemi ilişkilerle tanımlanır.

Böylece, sonuçta ortaya çıkan vektörün elde edilmesi, matrisin ve vektörün satırlarının çarpılmasına ilişkin benzer işlemlerin tekrarlanmasını içerir. Bu tür işlemlerin her birinin elde edilmesi, bir matris satırının ve bir vektörün elemanlarının eleman bazında çarpılmasını ve elde edilen çarpımların daha sonra toplanmasını içerir. Gerekli skaler işlemlerin toplam sayısı, miktara göre tahmin edilir.

Bir matris ile bir vektörün çarpılması sırasında gerçekleştirilen işlemlerden aşağıdaki gibi, paralel yöntemler Sorunun çözümleri paralel toplama algoritmalarına dayalı olarak elde edilebilir (bkz. paragraf 4.1). Bu bölümde paralelleştirme yöntemlerinin analizi, kullanıma hazır işlemci sayısına bağlı olarak paralel hesaplamanın düzenlenmesi konuları dikkate alınarak desteklenecektir. Ek olarak, bir matrisin bir vektörle çarpılması problemi örneğini kullanarak, işlemciler arası etkileşimi organize etme maliyetlerini azaltmak için bilgi işlem sisteminin en uygun topolojisini (işlemciler arasındaki mevcut iletişim kanalları) seçme ihtiyacına dikkat çekilecektir.

Mümkün olan en yüksek performansı elde etmek ()

Seçim için matris-vektör çarpım algoritmasındaki bilgi bağımlılıklarını analiz edelim. olası yollar paralelleştirme. Gördüğünüz gibi hesaplamalar sırasında bir matrisin tek tek satırlarını bir vektörle çarpma işlemleri bağımsızdır ve paralel olarak gerçekleştirilebilir;



Her satırın bir vektörle çarpılması bağımsız eleman bazında çarpma işlemlerini içerir ve paralel olarak da gerçekleştirilebilir;

Bir matris satırının bir vektörle çarpılmasının her işleminde elde edilen ürünlerin toplamı, toplama algoritmasının daha önce dikkate alınan varyantlarından biri (sıralı algoritma, geleneksel ve değiştirilmiş basamaklı şemalar) kullanılarak gerçekleştirilebilir.

Böylece, gereken maksimum işlemci sayısı değere göre belirlenir.

Bu kadar çok sayıda işlemcinin kullanımı aşağıdaki gibi temsil edilebilir. Birçok işlemci gruplara ayrılmıştır

,

bunların her biri, bir matrisin tek bir satırının bir vektörle çarpılması işlemini gerçekleştirmek için kullanılan bir dizi işlemciyi temsil eder. Hesaplamaların başında gruptaki her işlemciye bir matris satır elemanı ve buna karşılık gelen bir vektör elemanı gönderilir. Daha sonra her işlemci bir çarpma işlemi gerçekleştirir. Sonraki hesaplamalar daha sonra kademeli toplama şeması kullanılarak gerçekleştirilir. Şekil 2'deki gösterim için. Şekil 6.1, matris boyutuna sahip bir grubun işlemcileri için hesaplama şemasını göstermektedir.

Pirinç. 6.1. Bir matris satırını bir vektörle çarpmak için hesaplama şeması

İşlemciler kullanılırken paralel bir algoritmanın yürütme süresi, paralel çarpma işleminin yürütme süresi ve kademeli devrenin yürütme süresi ile belirlenir.

Sonuç olarak algoritmanın verimlilik göstergeleri aşağıdaki ilişkilerle belirlenir:

Söz konusu matris-vektör çarpımı problemi için en uygun topolojiler aşağıdakileri sağlayan yapılardır: hızlı aktarım kademeli toplama devresindeki veriler (birim uzunluktaki yollar) (bkz. Şekil 4.5). Bu tür topolojiler aşağıdakilere sahip bir yapıdır: komple sistem bağlantılar ( grafiği tamamla) Ve hiperküp. Diğer topolojiler, daha uzun veri aktarım yolları nedeniyle iletişim süresinin artmasına neden olur. Böylece, yalnızca sol ve sağdaki en yakın komşularla bağlantı sistemine sahip işlemcilerin doğrusal bir sıralamasıyla ( cetvel veya yüzük) bir kademeli şema için, yinelemede alınan her bir kısmi toplamın iletim yolunun uzunluğu , ,'ye eşittir. Doğrusal yapıya sahip topolojilerde bir yol uzunluğu boyunca veri iletiminin veri iletim işlemleri gerektirdiğini varsayarsak, veri iletiminin toplam paralel işlem sayısı (toplam yol süresi) değere göre belirlenir.

(işlemcilerin ilk yüklemesi için veri aktarımları hariç).

Dikdörtgen topolojiye sahip bir bilgi işlem sisteminin uygulanması iki boyutlu kafes boyut, gerçekleştirilen hesaplamaların basit ve net bir şekilde yorumlanmasına yol açar (ağın yapısı, işlenen verilerin yapısına karşılık gelir). Böyle bir topoloji için matris sıralarının yatay ızgaralar boyunca yerleştirilmesi en çok tavsiye edilendir; bu durumda vektörün elemanları hesaplama sisteminin dikeyleri boyunca dağıtılmalıdır. Bu veri düzenlemesiyle hesaplamalar ızgara çizgileri boyunca paralel olarak gerçekleştirilebilir; sonuç olarak, toplam veri aktarımı sayısı cetvel() sonuçlarıyla eşleşir.

Belirli bir görevi çözerken gerçekleştirilen iletişim eylemleri, MCS işlemci çiftleri arasında veri aktarımından oluşur. Bu tür operasyonların uygulama süresinin ayrıntılı bir analizi paragraf 3.3'te gerçekleştirilir.

4. Paralel bir algoritmanın uygulanmasına yönelik öneriler. Paralel bir algoritma uygularken, kullanılan işlemcilerin ilk verilerle yüklenmesinin ilk aşamasını vurgulamanız önerilir. En basit haliyle, böyle bir başlatma, bir bilgisayar sisteminin topolojisi ile şu şekilde bir topoloji ile sağlanır: grafiği tamamla(indirme, bir paralel veri aktarım işlemi kullanılarak sağlanır). Formda birden fazla işlemciyi düzenlerken hiperküp Merkezi kontrol işlemcisinin matris ve vektör satırlarının işlemci gruplarının kontrol işlemcilerine gönderilmesini sağladığı ve bu işlemcilerin de matrisin elemanlarını gönderdiği önyükleme sürecinin iki seviyeli kontrolüne sahip olmak faydalı olabilir. ve yürütme işlemcilerine vektör satırları. Formdaki topolojiler için Cetveller veya yüzükleröğelerden aktarılan veri miktarının giderek azaldığı sıralı veri aktarım işlemlerini gerektirir.

Orta düzey paralelliği kullanma()

1. Paralel hesaplama yönteminin seçilmesi. Kullanılabilir işlemci sayısı () azaldığında, matris satırlarını vektörle çarpma işlemlerini gerçekleştirirken olağan basamaklı toplama şeması uygulanamaz hale gelir. Materyalin sunumunu basitleştirmek için değiştirilmiş bir basamak şemasını varsayalım ve kullanalım. Bu durumda her işlemcinin başlangıç ​​yükü artar ve işlemci () matris ve vektör satırlarının bazı kısımları tarafından yüklenir. Bir matrisi bir vektörle çarpma işleminin yürütme süresi şu şekilde tahmin edilebilir:

Değiştirilmiş kademeli şemayı uygulamak için gereken işlemci sayısını kullanırken, ör. en , bu ifade yürütme süresine ilişkin bir tahmin verir (en).

İşlemci sayısı olduğu zaman, algoritmanın yürütme süresi şu şekilde tahmin edildiğinde, hesaplamaların paralel yürütülmesi için yeni bir şema önerilebilir; burada basamaklı toplamanın her yinelemesi için, örtüşmeyen işlemci setleri. Bu yaklaşımla, mevcut işlemci sayısının yalnızca bir matris satırı ile bir vektörü çarpma işlemini gerçekleştirmek için yeterli olduğu ortaya çıkar. Ayrıca, basamaklı toplamanın bir sonraki yinelemesini gerçekleştirirken, önceki tüm yinelemelerin yürütülmesinden sorumlu işlemciler ücretsizdir. Ancak önerilen yaklaşımın bu dezavantajı, boşta kalan işlemcilerin matrisin sonraki satırlarını işlemek için kullanılmasıyla avantaja dönüştürülebilir. Sonuç olarak aşağıdaki şema oluşturulabilir. konveyör matris ve vektör çarpımının gerçekleştirilmesi:

Bir dizi işlemci ayrık işlemci gruplarına bölünmüştür

,

bu durumda, grup işlemcilerden oluşur ve basamaklı algoritmanın yinelemelerini gerçekleştirmek için kullanılır (grup, öğe bazında çarpmayı uygulamak için kullanılır); toplam işlemci sayısı;

Hesaplamaların başlatılması, grup işlemcilerinin 1 satırlık matris ve vektör değerleriyle öğe bazında yüklenmesinden oluşur; ilk yüklemeden sonra, eleman bazında çarpmanın paralel bir işlemi ve ardından olağan basamaklı toplama devresinin uygulanması gerçekleştirilir;

Hesaplamalar yapılırken her eleman bazında çarpma işlemi tamamlandıktan sonra grubun işlemcilerine matrisin bir sonraki satırının elemanları yüklenir ve yeni yüklenen veriler için hesaplama işlemi başlatılır.

Açıklanan algoritmanın uygulanmasının bir sonucu olarak, birçok işlemci, bir matris satırını bir vektörle çarpma işlemini gerçekleştirmek için bir boru hattı uygular. Böyle bir konveyör üzerinde, işlemin farklı aşamalarında aynı anda birkaç ayrı matris sırası bulunabilir. Yani, örneğin, ilk satırın elemanlarının ve vektörün eleman bazında çarpımından sonra, grubun işlemcileri matrisin ilk satırı için basamaklı algoritmanın ilk yinelemesini gerçekleştirecek ve grubun işlemcileri, matrisin ikinci satırındaki değerlerin eleman bazında çarpımını gerçekleştirin, vb. Şekil 2'deki gösterim için. 6.2, boru hattının 2 yinelemesinden sonraki hesaplama sürecinin durumunu gösterir.

Pirinç. 6.2. 2 yinelemeyi tamamladıktan sonra bir matris satırını bir vektörle çarpma işlemine ilişkin işlem hattının durumu

2. Algoritma performans göstergelerinin değerlendirilmesi. İlk satırın basamak şemasına göre vektör ile çarpılması, () paralel işlemlerin yürütülmesinden sonra her zamanki gibi tamamlanacaktır. Diğer satırlar için - hesaplamaların düzenlenmesine ilişkin boru hattı şemasına uygun olarak - her bir sonraki satırın çarpım sonuçlarının görünümü, boru hattının sonraki her yinelemesinin tamamlanmasından sonra gerçekleşecektir. Sonuç olarak matris-vektör çarpım işleminin toplam yürütme süresi şu şekilde ifade edilebilir:

Bu değerlendirmeönceki paragrafta () açıklanan paralel algoritmanın yürütme süresinden biraz daha uzundur, ancak yeni önerilen yöntem daha az iletilen veri gerektirir (vektör yalnızca bir kez gönderilir). Ek olarak, bir boru hattı şemasının kullanılması bazı hesaplama sonuçlarının daha erken ortaya çıkmasına yol açar (bu, birçok veri işleme durumunda faydalı olabilir).

Sonuç olarak algoritmanın verimlilik göstergeleri aşağıdaki ilişkilerle belirlenir:

3. Bilgi işlem sisteminin topolojisinin seçilmesi. Bir bilgi işlem sisteminin uygun topolojisi tamamen bilgi işlem devresi tarafından belirlenir; bu tam bir topolojidir. ikili ağaç yükseklik Böyle bir ağ topolojisiyle veri aktarımlarının sayısı, boru hattı tarafından gerçekleştirilen toplam yineleme sayısına göre belirlenir;

Hesaplamaların başlatılması ağacın yapraklarıyla başlar, toplama sonuçları kök işlemcide toplanır.

Diğer işlemciler arası iletişim topolojilerine sahip bilgi işlem sistemleri için gerçekleştirilen iletişim eylemlerinin karmaşıklığının analizinin bağımsız bir görev olarak gerçekleştirilmesi beklenir (ayrıca bkz. Madde 3.4).

Paralel hesaplamanın organizasyonu

1. Paralel hesaplama yönteminin seçilmesi. Bir matrisi bir vektörle çarpmak için işlemciler kullanıldığında, kılavuzda daha önce açıklanan paralel satır satır çarpma algoritması kullanılabilir; burada matris satırları işlemciler arasında satır satır dağıtılır ve her işlemci bunu uygular. matrisin herhangi bir satırını bir vektörle çarpma işlemi. Paralel hesaplamayı düzenlemenin başka bir olası yolu da oluşturmak olabilir. Bir matris satırının bir vektörle çarpılması işlemi için boru hattı devresi(vektörlerin skaler çarpımı) mevcut tüm işlemcileri doğrusal bir sıraya göre düzenleyerek ( Cetveller).

Böyle bir hesaplama şeması aşağıdaki gibi tanımlanabilir. İşlemci kümesini doğrusal bir sıra olarak hayal edelim (bkz. Şekil 4.7):

Her işlemci, bir matris sütununun elemanlarını ve bir vektör elemanını çarpmak için kullanılır. Her bir işlemci üzerinde gerçekleştirilen hesaplamalar aşağıdaki gibidir:

Matris sütununun bir sonraki elemanı talep edilir;

ve elemanları çarpılır;

Önceki işlemcinin hesaplamalarının sonucu istenir;

Değerler eklenir;

Ortaya çıkan sonuç bir sonraki işlemciye gönderilir.

Pirinç. 6.3. İki yineleme gerçekleştirdikten sonra bir matris satırını bir vektörle çarpma işlemi için doğrusal boru hattının durumu

Açıklanan şemayı başlatırken bir dizi ek eylem gerçekleştirmelisiniz:

İlk yinelemeyi gerçekleştirirken, her işlemci ek olarak vektörün bir öğesini talep eder;

Hesaplamaları senkronize etmek için (devrenin bir sonraki yinelemesini gerçekleştirirken, önceki işlemcinin hesaplama sonucu istenir) başlatma aşamasında işlemci () bir bekleme döngüsü gerçekleştirir.

Ek olarak, daha önce işlemcisi olmayan ilk işlemci için açıklanan devrenin homojenliği için boş bir toplama işleminin uygulanması tavsiye edilir ( ).

Şekil 2'deki gösterim için. Şekil 6.3, işlem hattının ikinci yinelemesinden sonraki hesaplama sürecinin durumunu göstermektedir.

2. Algoritma performans göstergelerinin değerlendirilmesi. Açıklanan boru hattı şemasına göre ilk satırın vektörle çarpılması, () paralel işlemlerin yürütülmesinden sonra tamamlanacaktır. Aşağıdaki satırların çarpılmasının sonucu, ardışık düzenin her bir sonraki yinelemesinin tamamlanmasından sonra ortaya çıkacaktır (her işlemcinin yinelemesinin, çarpma ve toplama işlemlerinin yürütülmesini içerdiğini hatırlayın). Sonuç olarak, bir matris-vektör çarpım işleminin toplam yürütme süresi şu şekilde ifade edilebilir:

Bu tahmin aynı zamanda paralel algoritmanın mümkün olan minimum yürütme süresinden de daha büyüktür. Bir boru hattı hesaplama şeması kullanmanın faydası, önceki paragrafta belirtildiği gibi, iletilen veri miktarının azaltılması ve bazı hesaplama sonuçlarının daha erken ortaya çıkmasıdır.

Bu hesaplama şemasının verimlilik göstergeleri aşağıdaki ilişkilerle belirlenir:

, ,

3. Bilgi işlem sisteminin topolojisinin seçilmesi. Açıklanan algoritmayı yürütmek için bilgi işlem sisteminin gerekli topolojisi, önerilen hesaplama şeması tarafından benzersiz bir şekilde belirlenir - bu, doğrusal olarak sıralanmış bir işlemci kümesidir ( cetvel).

Sınırlı sayıda işlemci kullanma ()

1. Paralel hesaplama yönteminin seçilmesi. İşlemci sayısını bir değere düşürerek, satır satır çarpma algoritmasının uyarlanmasıyla matris-vektör çarpımı için paralel hesaplama şeması elde edilebilir. Bu durumda, eleman bazında çarpma sonuçlarının toplanmasına yönelik basamak devresi dejenere olur ve bir matris satırının bir vektörle çarpılması işlemi tamamen tek bir işlemci üzerinde gerçekleştirilir. Bu yaklaşımla elde edilen hesaplama şeması şu şekilde belirtilebilir:

Mevcut işlemcilerin her birine bir vektör ve matris satırları gönderilir;

Bir matris-vektör satır çarpma işleminin gerçekleştirilmesi, geleneksel bir sıralı algoritma kullanılarak gerçekleştirilir.

Matris boyutunun işlemci sayısının katı olamayabileceği ve bu durumda matris satırlarının işlemciler arasında eşit olarak bölünemeyeceği unutulmamalıdır. Bu durumlarda, işlemcilerin tekdüze yüklenmesi gerekliliğinden sapabilir ve daha basit bir hesaplama şeması elde etmek için, verilerin işlemcilere yalnızca satır satır yerleştirilmesi kuralını kabul edebilirsiniz (yani matrisin bir satırındaki öğeler birkaç işlemci arasında bölünebilir). Eşit olmayan sayıda satır, işlemciler üzerinde farklı hesaplama yüküne yol açar; Böylece, hesaplamaların tamamlanması (toplam problem çözme süresi), en çok yüklü işlemcinin çalışma süresine göre belirlenecektir (bu durumda, bu toplam sürenin bir kısmı, bireysel işlemciler kendi paylarının tükenmesi nedeniyle boşta kalabilir) hesaplamalar). İşlemcilerin eşit olmayan yükü MCS kullanımının verimliliğini azaltır ve bu örneği dikkate aldığımızda şu sonuca varabiliriz: dengeleme sorunu

3. Bilgi işlem sisteminin topolojisinin seçilmesi. Önerilen hesaplama şemasında gerçekleştirilen işlemciler arası etkileşimlerin doğasına uygun olarak, işlemcilerin organizasyonu şu şekildedir: yıldızlar(bkz. Şekil 1.1). Böyle bir topolojiye sahip bir kontrol işlemcisi, bilgisayar işlemcilerine başlangıç ​​verilerini yüklemek ve gerçekleştirilen hesaplamaların sonuçlarını almak için kullanılabilir.

Matris çarpımı

Matris-matris çarpımı problemi ilişkilerle tanımlanır.

.

(Sunum kolaylığı için, çarpılan matrislerin ve kare olduğunu ve sıralı olduğunu varsayacağız).

Bu görevin paralel yürütülmesi için olası yöntemlerin analizi, bir matrisin bir vektörle çarpılması probleminin dikkate alınmasına benzetme yoluyla gerçekleştirilebilir. Böyle bir analizi bağımsız çalışmaya bırakarak, bir problem örneğini kullanarak göstereceğiz. matris çarpımı karmaşık problemleri çözmek için paralel yöntemlerin oluşturulmasına izin veren birkaç genel yaklaşımın kullanılması.

Önceki derste matrislerde toplama ve çıkarma kurallarına baktık. Bunlar o kadar basit işlemlerdir ki çoğu öğrenci bunları kelimenin tam anlamıyla hemen anlar.

Ancak erken sevinirsiniz. Freebie bitti - hadi çarpma işlemine geçelim. Sizi hemen uyarıyorum: İki matrisin çarpılması, düşündüğünüz gibi, aynı koordinatlara sahip hücrelerdeki sayıların çarpılması değildir. Burada her şey çok daha eğlenceli. Ve ön tanımlarla başlamamız gerekecek.

Eşleşen matrisler

Biri en önemli özellikler matris onun boyutudur. Bundan zaten yüzlerce kez bahsettik: $A=\left[ m\times n \right]$ gösterimi, matrisin tam olarak $m$ satırlara ve $n$ sütunlara sahip olduğu anlamına gelir. Ayrıca satırlarla sütunların nasıl karıştırılmaması gerektiğini de daha önce tartışmıştık. Artık başka bir şey önemli.

Tanım. İlk matristeki sütun sayısının satır sayısıyla çakıştığı $A=\left[ m\times n \right]$ ve $B=\left[ n\times k \right]$ biçimindeki matrisler ikincisinde tutarlı olarak adlandırılır.

Tekrar ediyorum: İlk matristeki sütun sayısı, ikincideki satır sayısına eşittir! Buradan aynı anda iki sonuç çıkarıyoruz:

  1. Matrislerin sırası bizim için önemlidir. Örneğin, $A=\left[ 3\times 2 \right]$ ve $B=\left[ 2\times 5 \right]$ matrisleri tutarlıdır (ilk matriste 2 sütun ve ikincide 2 satır) , ancak tam tersi — $B=\left[ 2\times 5 \right]$ ve $A=\left[ 3\times 2 \right]$ matrisleri artık tutarlı değil (ilk matristeki 5 sütun 3 satır değil) saniyede ).
  2. Tutarlılık, tüm boyutların birbiri ardına yazılmasıyla kolayca kontrol edilebilir. Önceki paragraftaki örneği kullanırsak: "3 2 2 5" - ortada aynı sayılar vardır, dolayısıyla matrisler tutarlıdır. Ancak ortada farklı sayılar olduğundan “2 5 3 2” tutarlı değildir.

Ek olarak, Kaptan Açıklık aynı boyuttaki $\left[ n\times n \right]$ kare matrislerinin her zaman tutarlı olduğunu ima ediyor gibi görünüyor.

Matematikte, nesnelerin listelenme sırası önemli olduğunda (örneğin, yukarıda tartışılan tanımda matrislerin sırası önemlidir), genellikle sıralı çiftlerden bahsederiz. Onlarla okulda tanışmıştık: $\left(1;0 \right)$ ve $\left(0;1 \right)$ koordinatlarının düzlemdeki farklı noktaları tanımlamasının hiç de akıllıca olmadığını düşünüyorum.

Yani: koordinatlar aynı zamanda sayılardan oluşan sıralı çiftlerdir. Ancak hiçbir şey matrislerden böyle bir çift yapmanızı engellemez. O zaman şunu söyleyebiliriz: “Birinci matristeki sütun sayısı ikinci matristeki satır sayısıyla aynıysa, $\left(A;B \right)$ sıralı bir matris çifti tutarlıdır.”

Peki ne olmuş?

çarpmanın tanımı

İki tutarlı matrisi düşünün: $A=\left[ m\times n \right]$ ve $B=\left[ n\times k \right]$. Ve onlar için çarpma işlemini tanımlıyoruz.

Tanım. Eşleşen iki $A=\left[ m\times n \right]$ ve $B=\left[ n\times k \right]$ matrisinin çarpımı yeni matris $C=\left[ m\times k \ right] $, elemanları aşağıdaki formül kullanılarak hesaplanır:

\[\begin(align) & ((c)_(i;j))=((a)_(i;1))\cdot ((b)_(1;j))+((a)_ (i;2))\cdot ((b)_(2;j))+\ldots +((a)_(i;n))\cdot ((b)_(n;j))= \\ & =\sum\limits_(t=1)^(n)(((a)_(i;t))\cdot ((b)_(t;j))) \end(align)\]

Böyle bir çarpım standart şekilde gösterilir: $C=A\cdot B$.

Bu tanımı ilk kez görenlerin aklına hemen iki soru geliyor:

  1. Bu nasıl vahşi bir oyundur?
  2. Neden bu kadar zor?

İlk önce ilk şeyler. İlk soruyla başlayalım. Bütün bu endeksler ne anlama geliyor? Ve gerçek matrislerle çalışırken nasıl hata yapılmaz?

Öncelikle $((c)_(i;j))$ hesaplamak için uzun satırın (kafanın karışmaması için indekslerin arasına özellikle noktalı virgül koydum ama koymanıza gerek yok) dikkat çekiyoruz. genel - Ben de tanımın içine formülü yazmaktan yoruldum) aslında basit bir kurala iniyor:

  1. İlk matristeki $i$'ıncı satırı alın;
  2. İkinci matristeki $j$th sütununu alın;
  3. İki sayı dizisi elde ediyoruz. Bu dizilerin elemanlarını aynı sayılarla çarpıyoruz ve elde edilen çarpımları topluyoruz.

Bu işlemi resimden anlamak kolaydır:


İki matrisi çarpma şeması

Bir kez daha: birinci matristeki $i$ satırını, ikinci matristeki $j$ sütununu düzeltiriz, aynı sayılarla öğeleri çarparız ve sonra elde edilen çarpımları ekleriz - $((c)_(ij))$ elde ederiz . Ve bu şekilde tüm $1\le i\le m$ ve $1\le j\le k$ için böyle devam eder. Onlar. Toplamda bu tür "sapkınlıklardan" $m\timek$ olacaktır.

Aslında, okul müfredatında matris çarpımıyla zaten karşılaştık, ancak büyük ölçüde azaltılmış bir biçimde. Vektörler verilsin:

\[\begin(align) & \vec(a)=\left(((x)_(a));((y)_(a));((z)_(a)) \right); \\ & \overrightarrow(b)=\left(((x)_(b));((y)_(b));((z)_(b)) \right). \\ \end(hizala)\]

O zaman skaler çarpımları tam olarak ikili çarpımların toplamı olacaktır:

\[\overrightarrow(a)\times \overrightarrow(b)=((x)_(a))\cdot ((x)_(b))+((y)_(a))\cdot ((y )_(b))+((z)_(a))\cdot ((z)_(b))\]

Temel olarak, ağaçların daha yeşil ve gökyüzünün daha parlak olduğu zamanlarda, $\overrightarrow(a)$ satır vektörünü $\overrightarrow(b)$ sütun vektörüyle çarptık.

Bugün hiçbir şey değişmedi. Artık bu satır ve sütun vektörlerinden daha fazlası var.

Ama yeterli teori! Gerçek örneklere bakalım. Ve en basit durum olan kare matrislerle başlayalım.

Kare matris çarpımı

Görev 1. Çarpmayı yapın:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\]

Çözüm. Yani iki matrisimiz var: $A=\left[ 2\times 2 \right]$ ve $B=\left[ 2\times 2 \right]$. Tutarlı oldukları açıktır (aynı boyuttaki kare matrisler her zaman tutarlıdır). Bu nedenle çarpma işlemini gerçekleştiriyoruz:

\[\begin(align) & \left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \ begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot \left(-2 \right)+2\cdot 3 & 1\cdot 4+2\cdot 1 \\ -3\cdot \left(-2 \right)+4\cdot 3 & -3\cdot 4+4\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 4 & 6 \\ 18 & -8 \\\ bitiş(dizi)\sağ]. \end(hizala)\]

Bu kadar!

Cevap: $\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(array) \right]$.

Görev 2. Çarpmayı yapın:

\[\left[ \begin(matrix) 1 & 3 \\ 2 & 6 \\\end(matrix) \right]\cdot \left[ \begin(array)(*(35)(r))9 & 6 \\ -3 & -2 \\\end(dizi) \sağ]\]

Çözüm. Yine matrisler tutarlı olduğundan şu eylemleri gerçekleştiririz:\[\]

\[\begin(align) & \left[ \begin(matrix) 1 & 3 \\ 2 & 6 \\\end(matrix) \right]\cdot \left[ \begin(array)(*(35)( ) r)) 9 & 6 \\ -3 & -2 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 1\cdot 9+3\cdot \ left(-3 \right) & 1\cdot 6+3\cdot \left(-2 \right) \\ 2\cdot 9+6\cdot \left(-3 \right) & 2\cdot 6+6 \ cdot \left(-2 \right) \\\end(array) \right]= \\ & =\left[ \begin(matrix) 0 & 0 \\ 0 & 0 \\\end(matrix) \right ] . \end(hizala)\]

Gördüğünüz gibi sonuç sıfırlarla dolu bir matristir.

Cevap: $\left[ \begin(matrix) 0 & 0 \\ 0 & 0 \\\end(matrix) \right]$.

Yukarıdaki örneklerden matris çarpımının o kadar da karmaşık bir işlem olmadığı açıktır. En azından 2'ye 2'lik kare matrisler için.

Hesaplamalar sürecinde, belirli bir hücreye hangi sayıların dahil edildiğini doğrudan tanımladığımız bir ara matris derledik. Gerçek sorunları çözerken yapılması gereken de tam olarak budur.

Matris ürününün temel özellikleri

Kısaca. Matris çarpımı:

  1. Değişmeyen: genel durumda $A\cdot B\ne B\cdot A$. Elbette $A\cdot B=B\cdot A$ eşitliğine sahip özel matrisler vardır (örneğin, birim matris $B=E$ ise), ancak çoğu durumda bu işe yaramaz ;
  2. İlişkisel olarak: $\left(A\cdot B \right)\cdot C=A\cdot \left(B\cdot C \right)$. Burada hiçbir seçenek yok: yakınlarda durmak Matrisler, bu iki matrisin sağında ve solunda ne olduğuna bakılmaksızın çarpılabilir.
  3. Dağılımsal olarak: $A\cdot \left(B+C \right)=A\cdot B+A\cdot C$ ve $\left(A+B \right)\cdot C=A\cdot C+B\cdot C $ (çarpımın değişmezliği nedeniyle sağ ve sol dağılabilirliğini ayrı ayrı belirtmek gerekir.

Ve şimdi - her şey aynı, ancak daha ayrıntılı olarak.

Matris çarpımı birçok yönden klasik sayı çarpımına benzer. Ama farklılıklar var ve en önemlisi bu. Matris çarpımı genel olarak değişmeli değildir.

Problem 1'deki matrislere tekrar bakalım. Bunların direkt çarpımını zaten biliyoruz:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]=\left[ \begin(array)(*(35)(r))4 & 6 \\ 18 & -8 \\\end(dizi) \sağ]\]

Ancak matrisleri değiştirirsek tamamen farklı bir sonuç elde ederiz:

\[\left[ \begin(array)(*(35)(r)) -2 & 4 \\ 3 & 1 \\\end(array) \right]\cdot \left[ \begin(array)(* (35)(r)) 1 & 2 \\ -3 & 4 \\\end(array) \right]=\left[ \begin(matrix) -14 & 4 \\ 0 & 10 \\\end(matrix )\Sağ]\]

$A\cdot B\ne B\cdot A$ olduğu ortaya çıktı. Ek olarak, çarpma işlemi yalnızca $A=\left[ m\times n \right]$ ve $B=\left[ n\times k \right]$ tutarlı matrisleri için tanımlanmıştır, ancak hiç kimse bunların garanti edilemeyeceğini garanti etmemiştir. değiştirilirse tutarlı kalacaktır. Örneğin, $\left[ 2\times 3 \right]$ ve $\left[ 3\times 5 \right]$ matrisleri belirtilen sırada oldukça tutarlıdır, ancak aynı matrisler $\left[ 3\times 5 \right] $ ve $\left[ 2\times 3 \right]$ yazılır Ters sipariş artık üzerinde anlaşmaya varılamamıştır. Üzgün.:(

Belirli bir $n$ boyutundaki kare matrisler arasında, hem doğrudan hem de ters sırada çarpıldığında her zaman aynı sonucu verenler olacaktır. Tüm bu matrislerin nasıl tanımlanacağı (ve genel olarak kaç tane olduğu) ayrı bir dersin konusudur. Bugün bu konuyu konuşmayacağız. :)

Ancak matris çarpımı ilişkiseldir:

\[\left(A\cdot B \sağ)\cdot C=A\cdot \left(B\cdot C \sağ)\]

Bu nedenle, arka arkaya birkaç matrisi aynı anda çarpmanız gerektiğinde, bunu hemen yapmanız hiç de gerekli değildir: bazı bitişik matrislerin çarpıldığında ilginç bir sonuç vermesi oldukça mümkündür. Örneğin, yukarıda tartışılan Problem 2'deki gibi bir sıfır matrisi.

Gerçek problemlerde çoğu zaman $\left[ n\times n \right]$ boyutunda kare matrisleri çarpmamız gerekir. Bu tür matrislerin tümü $((M)^(n))$ ile gösterilir (yani, $A=\left[ n\times n \right]$ ve \ girdileri aynı anlama gelir) ve bu, mutlaka birim matris adı verilen $E$ matrisini içerir.

Tanım. $n$ boyutunda bir birim matrisi, herhangi bir kare matris için $A=\left[ n\times n \right]$ eşitliği sağlayacak şekilde bir $E$ matrisidir:

Böyle bir matris her zaman aynı görünür: Ana köşegeninde birler vardır ve diğer tüm hücrelerde sıfırlar vardır.

\[\begin(align) & A\cdot \left(B+C \right)=A\cdot B+A\cdot C; \\ & \left(A+B \right)\cdot C=A\cdot C+B\cdot C. \\ \end(align)\]

Başka bir deyişle, bir matrisi diğer iki matrisin toplamı ile çarpmanız gerekiyorsa, onu bu "diğer iki" ile çarpabilir ve ardından sonuçları ekleyebilirsiniz. Uygulamada genellikle tam tersi işlemi yapmamız gerekir: Aynı matrisi fark ederiz, onu parantezlerden çıkarırız, toplama işlemini gerçekleştiririz ve böylece hayatımızı basitleştiririz. :)

Not: Dağılımı tanımlamak için iki formül yazmamız gerekiyordu: toplamın ikinci faktörde olduğu ve toplamın birincide olduğu yer. Bu tam olarak matris çarpımının değişmeli olmaması nedeniyle gerçekleşir (ve genel olarak değişmeli olmayan cebirde sıradan sayılarla çalışırken akla bile gelmeyen pek çok eğlenceli şey vardır). Ve örneğin, bir sınavda bu özelliği yazmanız gerekiyorsa, her iki formülü de yazdığınızdan emin olun, aksi takdirde öğretmen biraz sinirlenebilir.

Tamam, bunların hepsi kare matrislerle ilgili peri masallarıydı. Dikdörtgen olanlara ne dersiniz?

Dikdörtgen matrislerin durumu

Ama hiçbir şey - her şey kare olanlarla aynı.

Görev 3. Çarpmayı yapın:

\[\left[ \begin(matrix) \begin(matrix) 5 \\ 2 \\ 3 \\\end(matrix) & \begin(matrix) 4 \\ 5 \\ 1 \\\end(matrix) \ \\end(matrix) \right]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]\]

Çözüm. İki matrisimiz var: $A=\left[ 3\times 2 \right]$ ve $B=\left[ 2\times 2 \right]$. Boyutları belirten sayıları arka arkaya yazalım:

Gördüğünüz gibi merkezi iki sayı çakışıyor. Bu, matrislerin tutarlı olduğu ve çarpılabileceği anlamına gelir. Ayrıca çıktıda $C=\left[ 3\times 2 \right]$ matrisini elde ederiz:

\[\begin(align) & \left[ \begin(matrix) \begin(matrix) 5 \\ 2 \\ 3 \\\end(matrix) & \begin(matrix) 4 \\ 5 \\ 1 \\ \end(matrix) \\\end(matrix) \right]\cdot \left[ \begin(array)(*(35)(r)) -2 & 5 \\ 3 & 4 \\\end(array) \right]=\left[ \begin(array)(*(35)(r)) 5\cdot \left(-2 \right)+4\cdot 3 & 5\cdot 5+4\cdot 4 \\ 2 \cdot \left(-2 \right)+5\cdot 3 & 2\cdot 5+5\cdot 4 \\ 3\cdot \left(-2 \right)+1\cdot 3 & 3\cdot 5+1 \cdot 4 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 2 & 41 \\ 11 & 30 \\ -3 & 19 \ \\end(dizi) \sağ]. \end(hizala)\]

Her şey açık: son matriste 3 satır ve 2 sütun var. Oldukça $=\left[ 3\times 2 \right]$.

Cevap: $\left[ \begin(array)(*(35)(r)) \begin(array)(*(35)(r)) 2 \\ 11 \\ -3 \\\end(array) & \begin(matrix) 41 \\ 30 \\ 19 \\\end(matrix) \\\end(array) \right]$.

Şimdi matrislerle yeni çalışmaya başlayanlar için en iyi eğitim görevlerinden birine bakalım. İçinde sadece iki tableti çarpmanız değil, ilk önce şunu belirlemeniz gerekiyor: böyle bir çarpmaya izin verilebilir mi?

Problem 4. Matrislerin tüm olası ikili çarpımlarını bulun:

\\]; $B=\left[ \begin(matrix) \begin(matrix) 0 \\ 2 \\ 0 \\ 4 \\\end(matrix) & \begin(matrix) 1 \\ 0 \\ 3 \\ 0 \ \\end(matrix) \\\end(matrix) \right]$; $C=\left[ \begin(matrix)0 & 1 \\ 1 & 0 \\\end(matrix) \right]$.

Çözüm. Öncelikle matrislerin boyutlarını yazalım:

\;\ B=\left[ 4\times 2 \right];\ C=\left[ 2\times 2 \right]\]

$A$ matrisinin yalnızca $B$ matrisiyle uzlaştırılabileceğini bulduk, çünkü $A$'ın sütun sayısı 4'tür ve yalnızca $B$ bu sayıda satıra sahiptir. Bu nedenle ürünü bulabiliriz:

\\cdot \left[ \begin(array)(*(35)(r)) 0 & 1 \\ 2 & 0 \\ 0 & 3 \\ 4 & 0 \\\end(array) \right]=\ left[ \begin(array)(*(35)(r))-10 & 7 \\ 10 & 7 \\\end(array) \right]\]

Okuyucunun ara adımları bağımsız olarak tamamlamasını öneririm. Sadece ortaya çıkan matrisin boyutunu herhangi bir hesaplamadan önce bile önceden belirlemenin daha iyi olacağını not edeceğim:

\\cdot \sol[ 4\times 2 \right]=\left[ 2\times 2 \right]\]

Başka bir deyişle, matrislerin tutarlılığını sağlayan “geçiş” katsayılarını basitçe kaldırıyoruz.

Başka hangi seçenekler mümkündür? Elbette $B\cdot A$ bulunabilir, çünkü $B=\left[ 4\times 2 \right]$, $A=\left[ 2\times 4 \right]$, yani sıralı $\ çifti left(B ;A \right)$ tutarlıdır ve ürünün boyutu şöyle olacaktır:

\\cdot \sol[ 2\times 4 \right]=\left[ 4\times 4 \right]\]

Kısacası çıktı, katsayıları kolayca hesaplanabilen bir $\left[ 4\times 4 \right]$ matrisi olacaktır:

\\cdot \left[ \begin(array)(*(35)(r)) 1 & -1 & 2 & -2 \\ 1 & 1 & 2 & 2 \\\end(array) \right]=\ left[ \begin(array)(*(35)(r))1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(dizi) \sağ]\]

Açıkçası, $C\cdot A$ ve $B\cdot C$ üzerinde de anlaşabilirsiniz - hepsi bu. Bu nedenle, ortaya çıkan ürünleri basitçe yazıyoruz:

Kolaydı.:)

Cevap: $AB=\left[ \begin(array)(*(35)(r)) -10 & 7 \\ 10 & 7 \\\end(array) \right]$; $BA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 2 & -2 & 4 & -4 \\ 3 & 3 & 6 & 6 \\ 4 & -4 & 8 & -8 \\\end(array) \right]$; $CA=\left[ \begin(array)(*(35)(r)) 1 & 1 & 2 & 2 \\ 1 & -1 & 2 & -2 \\\end(array) \right]$; $BC=\left[ \begin(array)(*(35)(r))1 & 0 \\ 0 & 2 \\ 3 & 0 \\ 0 & 4 \\\end(array) \right]$.

Genel olarak bu görevi kendiniz yapmanızı şiddetle tavsiye ederim. Ve ev ödevinde olan benzer bir görev daha. Görünüşte basit olan bu düşünceler, matris çarpımının tüm önemli aşamalarını uygulamanıza yardımcı olacaktır.

Ancak hikaye burada bitmiyor. Çarpmanın özel durumlarına geçelim. :)

Satır vektörleri ve sütun vektörleri

En yaygın matris işlemlerinden biri, bir satırı veya bir sütunu olan bir matrisle çarpma işlemidir.

Tanım. Bir sütun vektörü $\left[ m\times 1 \right]$ boyutunda bir matristir; birkaç satır ve yalnızca bir sütundan oluşur.

Bir satır vektörü $\left[ 1\times n \right]$ boyutunda bir matristir; bir satır ve birkaç sütundan oluşur.

Aslında bu nesnelerle zaten karşılaştık. Örneğin, stereometriden elde edilen sıradan bir üç boyutlu vektör $\overrightarrow(a)=\left(x;y;z \right)$ bir satır vektöründen başka bir şey değildir. Teorik açıdan bakıldığında satırlar ve sütunlar arasında neredeyse hiçbir fark yoktur. Yalnızca çevredeki çarpan matrisleriyle koordinasyon yaparken dikkatli olmanız gerekir.

Görev 5. Çarpmayı yapın:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\end(array) \right] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]\]

Çözüm. Burada eşleşen matrislerin çarpımı var: $\left[ 3\times 3 \right]\cdot \left[ 3\times 1 \right]=\left[ 3\times 1 \right]$. Bu parçayı bulalım:

\[\left[ \begin(array)(*(35)(r)) 2 & -1 & 3 \\ 4 & 2 & 0 \\ -1 & 1 & 1 \\\end(array) \right] \cdot \left[ \begin(array)(*(35)(r)) 1 \\ 2 \\ -1 \\\end(array) \right]=\left[ \begin(array)(*(35) )(r)) 2\cdot 1+\left(-1 \sağ)\cdot 2+3\cdot \left(-1 \sağ) \\ 4\cdot 1+2\cdot 2+0\cdot 2 \ \ -1\cdot 1+1\cdot 2+1\cdot \left(-1 \right) \\\end(array) \right]=\left[ \begin(array)(*(35)(r) ) -3 \\ 8 \\ 0 \\\end(dizi) \sağ]\]

Cevap: $\left[ \begin(array)(*(35)(r))-3 \\ 8 \\ 0 \\\end(array) \right]$.

Görev 6. Çarpmayı yapın:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end(array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(array) \right]\]

Çözüm. Yine her şey kabul edildi: $\left[ 1\times 3 \right]\cdot \left[ 3\times 3 \right]=\left[ 1\times 3 \right]$. Ürünü sayıyoruz:

\[\left[ \begin(array)(*(35)(r)) 1 & 2 & -3 \\\end(array) \right]\cdot \left[ \begin(array)(*(35) (r)) 3 & 1 & -1 \\ 4 & -1 & 3 \\ 2 & 6 & 0 \\\end(array) \right]=\left[ \begin(array)(*(35)( ) r))5 & -19 & 5 \\\end(array) \right]\]

Cevap: $\left[ \begin(matrix) 5 & -19 & 5 \\\end(matrix) \right]$.

Gördüğünüz gibi bir satır vektörü ile bir sütun vektörünü çarparken Kare matris her zaman çıktıyla aynı boyutta bir satır veya sütun elde ederiz. Bu gerçeğin birçok uygulaması vardır - doğrusal denklemlerin çözülmesinden her türlü koordinat dönüşümüne (sonuçta denklem sistemlerine de iner, ancak üzücü şeyler hakkında konuşmayalım).

Burada her şeyin açık olduğunu düşünüyorum. Bugünkü dersin son kısmına geçelim.

Matris üssü

Tüm çarpma işlemleri arasında üs alma işlemi özel ilgiyi hak eder; bu, aynı nesneyi kendisiyle birkaç kez çarptığımız zamandır. Matrisler de istisna değildir; çeşitli kuvvetlere de yükseltilebilirler.

Bu tür çalışmalar her zaman üzerinde anlaşmaya varılmıştır:

\\cdot \left[ n\times n \right]=\left[ n\times n \right]\]

Ve sıradan derecelerle tamamen aynı şekilde belirlenirler:

\[\begin(align) & A\cdot A=((A)^(2)); \\ & A\cdot A\cdot A=((A)^(3)); \\ & \underbrace(A\cdot A\cdot \ldots \cdot A)_(n)=((A)^(n)). \\ \end(hizala)\]

İlk bakışta her şey basit. Bunun pratikte neye benzediğini görelim:

Görev 7. Matrisi belirtilen güce yükseltin:

$((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))$

Çözüm. Tamam, hadi inşa edelim. İlk önce karesini alalım:

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(2))=\left[ \begin(matrix) ) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1\cdot 1+1\cdot 0 & 1\cdot 1+1\cdot 1 \\ 0\cdot 1+1\cdot 0 & 0\cdot 1+1\cdot 1 \\\end(array) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \ \\end(array) \right] \end(align)\]

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))=((\left[ \begin (matris) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end( matris) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 2 \\ 0 & 1 \\\end(array) \right]\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left[ \begin(array)(*(35)(r)) 1 & 3 \\ 0 & 1 \\\end(array) \right] \end(align)\]

Bu kadar.:)

Cevap: $\left[ \begin(matrix)1 & 3 \\ 0 & 1 \\\end(matrix) \right]$.

Problem 8. Matrisin belirtilen güce yükseltilmesi:

\[((\sol[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(10))\]

Çözüm. Artık “derece çok büyük”, “dünya adil değil” ve “öğretmenler kıyılarını tamamen kaybetmiş” diye ağlamayın. Aslında çok kolay:

\[\begin(align) & ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(10))=((\left[ \begin (matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))\cdot ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\ end(matrix) \right])^(3))\cdot ((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(3))\ cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left(\left[ \begin(matrix) 1 & 3 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 3 \\ 0 & 1 \\\end(matrix) \right] \right)\cdot \left(\left[ \begin(matrix) 1 & 3 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right ] \right)= \\ & =\left[ \begin(matrix) 1 & 6 \\ 0 & 1 \\\end(matrix) \right]\cdot \left[ \begin(matrix) 1 & 4 \\ 0 & 1 \\\end(matrix) \right]= \\ & =\left[ \begin(matrix) 1 & 10 \\ 0 & 1 \\\end(matrix) \right] \end(align)\ ]

İkinci satırda çarpma ilişkiselliğini kullandığımıza dikkat edin. Aslında önceki görevde de kullanmıştık ama orada örtülüydü.

Cevap: $\left[ \begin(matrix) 1 & 10 \\ 0 & 1 \\\end(matrix) \right]$.

Gördüğünüz gibi, bir matrisin üssünü yükseltmekte karmaşık bir şey yoktur. Son örneközetlemek mümkündür:

\[((\left[ \begin(matrix) 1 & 1 \\ 0 & 1 \\\end(matrix) \right])^(n))=\left[ \begin(array)(*(35) (r)) 1 & n \\ 0 & 1 \\\end(array) \right]\]

Bu gerçeği matematiksel tümevarım veya doğrudan çarpma yoluyla kanıtlamak kolaydır. Ancak bir güce yükselirken bu tarz kalıpları yakalamak her zaman mümkün olmuyor. Bu nedenle dikkatli olun: genellikle birkaç matrisi "rastgele" çarpmanın, bir tür kalıp aramaktan daha kolay ve daha hızlı olduğu ortaya çıkar.

Genel olarak, hiçbir şeyin olmadığı yerde daha yüksek bir anlam aramayın. Sonuç olarak, $\left[ 3\times 3 \right]$ kadar daha büyük bir matrisin üssünü ele alalım.

Problem 9. Matrisin belirtilen güce yükseltilmesi:

\[((\left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^(3))\]

Çözüm. Kalıp aramayalım. İleriye doğru çalışıyoruz:

\[((\sol[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^(3))=(( \left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^(2))\cdot \left[ \begin (matrix)0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right]\]

İlk önce bu matrisin karesini alalım:

\[\begin(align) & ((\left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^( 2))=\left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right]\cdot \left[ \begin(matrix) ) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right]= \\ & =\left[ \begin(array)(*(35)(r )) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\end(array) \right] \end(align)\]

Şimdi küpünü alalım:

\[\begin(align) & ((\left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right])^( 3))=\left[ \begin(array)(*(35)(r)) 2 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 2 \\\end(array) \right] \cdot \left[ \begin(matrix) 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\\end(matrix) \right]= \\ & =\left[ \begin( dizi)(*(35)(r)) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(array) \right] \end(align)\]

Bu kadar. Problem çözüldü.

Cevap: $\left[ \begin(matrix) 2 & 3 & 3 \\ 3 & 2 & 3 \\ 3 & 3 & 2 \\\end(matrix) \right]$.

Gördüğünüz gibi hesaplamaların hacmi büyüdü ama anlamı hiç değişmedi. :)

Bu, dersi sonlandırıyor. Bir dahaki sefere ters işlemi ele alacağız: mevcut çarpımı kullanarak orijinal faktörleri arayacağız.

Muhtemelen zaten tahmin ettiğiniz gibi, ters matris ve onu bulma yöntemlerinden bahsedeceğiz.

MatLab sisteminde matrisler ve vektörler üzerinde matematiksel işlemler yapmak oldukça basittir. Önce matrislerin ve vektörlerin basit toplama ve çarpma işlemlerini ele alalım. İki vektör verilsin

bir =; % satır vektörü
b = ; %kolon vektörü

o zaman bu iki vektörün çarpımı şu şekilde yazılabilir:

c = a*b; % c=1+2+3+4+5=16
d = b*a; % d – 5x5 elemanlı matris

Vektörler üzerinde yapılan işlemlere göre bir satır vektörünün bir sütun vektörü ile çarpılması bir sayıyı, bir sütun vektörünün bir satır vektörü ile çarpılması ise iki boyutlu bir matrisi verir ki bu da yukarıdaki örnekteki hesaplamaların sonucudur;

İki vektörün toplanması ve çıkarılması şu şekilde yazılır:

a1 = ;
a2 = ;
c = a1+a2; % c = ;
c = a2-a1; % c = ;

Toplama ve çıkarma işlemlerinin iki sütun vektörü veya iki satır vektörü arasında yapılabileceğini unutmayın. Aksi halde MatLab bir hata mesajı görüntüleyecektir çünkü Farklı türdeki vektörler eklenemez. Bu, tüm yasa dışı aritmetik işlemlerde geçerlidir: eğer hesaplanamıyorsa, MatLab bir hata rapor edecek ve program ilgili satırda sonlandırılacaktır.

Matrisler arasındaki çarpma ve toplama işlemleri benzer şekilde gerçekleştirilir:

bir =;
B = birler(3);
C = A+B; Aynı boyuttaki iki matrisin yüzde toplamı
D = A+5; Matris ve sayının % eklenmesi
E = A*B; A matrisinin B ile % çarpımı
F = B*A; B matrisinin A ile % çarpımı
G = 5*A; % bir matrisin bir sayıyla çarpılması

Ters matrisin hesaplanması ve matrislerin ve vektörlerin yer değiştirme işlemleri aşağıdaki gibi yazılır:

bir =; % satır vektörü
b = a'; tarafından oluşturulan % sütun vektörü
% a satır vektörünün transpozisyonunu kullanarak.
bir =; % 3x3 eleman matrisi
B = a*A; %B = – satır vektörü
C = A*b; %C = – sütun vektörü
D = a*A*a'; % D = 45 – sayı, A matrisinin elemanlarının toplamı
E = A'; % E – aktarılmış matris A
F = inv(A); % F – ters matris A
G = A^-1; % G – ters matris A

Yukarıdaki örnekten, matrislerin ve vektörlerin yer değiştirme işleminin, vektör veya matrisin adından sonra yerleştirilen ' sembolü (kesme işareti) ile belirtildiği açıktır. Bir matrisin tersinin hesaplanması, inv() işlevi çağrılarak veya matrisin -1 üssüne yükseltilerek yapılabilir. Her iki durumda da sonuç aynı olacaktır ve farklı algoritmalar uygulanırken kullanım kolaylığı sağlamak için iki hesaplama yöntemi yapılmıştır.

Hesaplamalar sürecinde bir vektörün veya matrisin elemanlarını tek tek çarpmak, bölmek veya yükseltmek gerekiyorsa, bunun için aşağıdaki operatörler kullanılır:

.* - öğe bazında çarpma;
./ ve.\ - öğe bazında bölümler;
.^ - öğe bazında üstel alma.

Aşağıdaki örneği kullanarak bu operatörlerin nasıl çalıştığına bakalım.

bir =; % satır vektörü
b = ; % satır vektörü
c = a.*b; %c=
A = birler(3); % 3x3 olanlardan oluşan matris
B = ; % 3x3 matris
C = A.*B; % 3x3 matristen oluşan
D = A./B; % 3x3 matristen oluşan
E = A.\B; % 3x3 matristen oluşan
F = A.^2; % A matrisinin elemanlarının karesi alınır

Bu bölümü sonuçlandırmak için vektörler ve matrislerle çalışırken yararlı olan çeşitli fonksiyonları ele alacağız.

Bir vektör öğesinin maksimum değerini bulmak için, öğenin bulunan maksimum değerini ve konumunu (indeks) döndüren standart max() işlevini kullanın:

bir =;
= maksimum(a); % v = 6, ben = 2;

v = maksimum(a); % v = 6;

Yukarıdaki örnekte iki tane gösteriliyor Farklı yollar max() işlevini çağırmak. İlk durumda, hem elemanın maksimum değeri hem de vektördeki indeksi belirlenir, ikincisinde ise sadece elemanın maksimum değeri belirlenir.

Matrisler söz konusu olduğunda bu fonksiyon, aşağıdaki örnekte gösterildiği gibi sütunlarda duran maksimum değerleri belirler:

bir =;
= maksimum(A); %V=,ben=
V = maksimum(A); %V=

max() fonksiyonunun tam sözdizimi, MatLab komut penceresine komut yazılarak bulunabilir.

yardım<название функции>

min() işlevi de benzer şekilde çalışır; Minimum değer Bir vektörün veya matrisin elemanı ve indeksi.

Bir diğer faydalı fonksiyon matrisler ve vektörlerle çalışmak, vektör elemanlarının veya matris sütunlarının değerlerinin toplamını hesaplayan sum() işlevidir:

bir =;
s = toplam(a); % s = 3+5+4+2+1=15
bir =;
S1 = toplam(A); %S1=
S2 = toplam(toplam(A)); % S2=39

S2 toplamı hesaplanırken, A matrisinin elemanlarının değerlerinin toplamı önce sütunlarda, sonra satırlarda hesaplanır. Sonuç olarak S2 değişkeni, A matrisinin tüm elemanlarının değerlerinin toplamını içerir.

Bir vektörün veya matrisin eleman değerlerini artan veya azalan düzende sıralamak için sort() fonksiyonunu aşağıdaki gibi kullanın:

bir =;

b1 = sıralama(a); %b1=
b2 = sıralama(a, 'azalan'); %b2=
b3 = sıralama(a, 'yükselme'); %b3=

matrisler için

bir =;
B1 = sıralama(A); %B1=
B2 = sıralama(A, 'azalan'); %B2=

Pek çok pratik problemde, genellikle bir vektör veya matriste belirli bir öğeyi bulmanız gerekir. Bu kullanılarak yapılabilir standart fonksiyon Gerekli öğelerin bulunduğuna göre bir koşulu argüman olarak alan find(), örneğin:

bir =;
b1 = bul(a == 2); % b1 = 4 – eleman 2'nin indeksi
b2 = bul(a ~= 2); % b2 = – 2'siz indeksler
b3 = bul(a > 3); % b3 =

Verilen örnekte '==' sembolü eşitliğin kontrol edilmesi anlamına gelir ve '~=' sembolü a vektörünün elemanlarının değerlerinin eşitsizliğini kontrol eder. Bu operatörler Koşullu Operatörler bölümünde daha ayrıntılı olarak açıklanacaktır.

Vektörler ve matrislerle çalışmak için başka bir yararlı işlev, aritmetik ortalamayı hesaplamak için aşağıdaki gibi çalışan ortalama () işlevidir:

bir =;
m = ortalama(a); % m = 3
bir =;
M1 = ortalama(A); % M1 =
M2 = ortalama(ortalama(A)); % M2 = 4,333

Tanım 1

Matris çarpımı (C = AB), yalnızca A matrisinin sütun sayısının B matrisinin satır sayısına eşit olduğu eşleşen A ve B matrisleri için bir işlemdir:

C ⏟ m × n = Bir ⏟ m × p × B ⏟ p × n

örnek 1

Verilen matrisler:

  • A = m × n boyutlarında a (i j);
  • p × n boyutlarında B = b (i j)

C i j elemanları aşağıdaki formül kullanılarak hesaplanan C matrisi:

c ben j = a ben 1 × b 1 j + a ben 2 × b 2 j + . . . + a ben p × b p j , ben = 1 , . . . m, j = 1, . . . M

Örnek 2

AB=BA çarpımlarını hesaplayalım:

bir = 1 2 1 0 1 2 , B = 1 0 0 1 1 1

Matris çarpım kuralını kullanan çözüm:

bir ⏟ 2 × 3 × B ⏟ 3 × 2 = 1 2 1 0 1 2 × 1 0 0 1 1 1 = 1 × 1 + 2 × 0 + 1 × 1 1 × 0 + 2 × 1 + 1 × 1 0 × 1 + 1 × 0 + 2 × 1 0 × 0 + 1 × 1 + 2 × 1 = = 2 3 2 3 ⏟ 2 × 2

B ⏟ 3 × 2 × Bir ⏟ 2 × 3 = 1 0 0 1 1 1 × 1 2 1 0 1 2 = 1 × 1 + 0 × 0 1 × 2 + 0 × 1 1 × 1 + 0 × 2 0 × 1 + 1 × 0 0 × 2 + 1 × 1 0 × 1 + 1 × 2 1 × 1 + 1 × 0 1 × 2 + 1 × 1 1 × 1 + 1 × 2 = 1 2 1 0 1 2 1 3 3 ⏟ 3×3

A B ve B A çarpımı bulunur, ancak matrislerdir farklı boyutlar: A B, B A'ya eşit değildir.

Matris çarpımının özellikleri

Matris çarpımının özellikleri:

  • (A B) C = A (B C) - matris çarpımının ilişkilendirilebilirliği;
  • A (B + C) = A B + A C - çarpmanın dağıtılabilirliği;
  • (A + B) C = A C + B C - çarpmanın dağıtılabilirliği;
  • λ (A B) = (λ A) B
örnek 1

1 numaralı özelliği kontrol edelim: (A B) C = A (B C):

(A × B) × A = 1 2 3 4 × 5 6 7 8 × 1 0 0 2 = 19 22 43 50 × 1 0 0 2 = 19 44 43 100,

A (B × C) = 1 2 3 4 × 5 6 7 8 1 0 0 2 = 1 2 3 4 × 5 12 7 16 = 19 44 43 100.

Örnek 2

2 numaralı özelliği kontrol edelim: A (B + C) = A B + A C:

A × (B + C) = 1 2 3 4 × 5 6 7 8 + 1 0 0 2 = 1 2 3 4 × 6 6 7 10 = 20 26 46 58,

A B + A C = 1 2 3 4 × 5 6 7 8 + 1 2 3 4 × 1 0 0 2 = 19 22 43 50 + 1 4 3 8 = 20 26 46 58.

Üç matrisin çarpımı

Üç A B C matrisinin çarpımı 2 şekilde hesaplanır:

  • A B'yi bulun ve C ile çarpın: (A B) C;
  • veya önce B C'yi bulun ve ardından A (B C) ile çarpın.
Örnek 3

Matrisleri 2 şekilde çarpın:

4 3 7 5 × - 28 93 38 - 126 × 7 3 2 1

Eylem algoritması:

  • 2 matrisin çarpımını bulun;
  • sonra tekrar 2 matrisin çarpımını bulun.

1). A B = 4 3 7 5 × - 28 93 38 - 126 = 4 (- 28) + 3 × 38 4 × 93 + 3 (- 126) 7 (- 28) + 5 × 38 7 × 93 + 5 (- 126 ) = 2 - 6 - 6 21

2). A B C = (A B) C = 2 - 6 - 6 21 7 3 2 1 = 2 × 7 - 6 × 2 2 × 3 - 6 × 1 - 6 × 7 + 21 × 2 - 6 × 3 + 21 × 1 = 2 0 0 3.

A B C = (A B) C formülünü kullanırız:

1). B C = - 28 93 38 - 126 7 3 2 1 = - 28 × 7 + 93 × 2 - 28 × 3 + 93 × 1 38 × 7 - 126 × 2 38 × 3 - 126 × 1 = - 10 9 14 - 12

2). A B C = (A B) C = 7 3 2 1 - 10 9 14 - 12 = 4 (- 10) + 3 × 14 4 × 9 + 3 (- 12) 7 (- 10) + 5 × 14 7 × 9 + 5 (- 12) = 2 0 0 3

Cevap: 4 3 7 5 - 28 93 38 - 126 7 3 2 1 = 2 0 0 3

Bir matrisi bir sayıyla çarpmak

Tanım 2

A matrisinin k sayısına göre çarpımı, tüm elemanlarının belirli bir sayı ile çarpılmasıyla orijinalden elde edilen aynı büyüklükteki B = A k matrisidir:

b ben, j = k × a i, j

Bir matrisi bir sayıyla çarpmanın özellikleri:

  • 1 × Bir = Bir
  • 0 × A = sıfır matris
  • k (A + B) = k A + k B
  • (k + n) Bir = k Bir + n Bir
  • (k × n) × Bir = k (n × Bir)
Örnek 4

A = 4 2 9 0 matrisinin 5'e çarpımını bulalım.

5 A = 5 4 2 9 0 5 × 4 5 × 2 5 × 9 5 × 0 = 20 10 45 0

Bir matrisin bir vektörle çarpılması

Tanım 3

Bir matris ile bir vektörün çarpımını bulmak için "satır sütun" kuralını kullanarak çarpmanız gerekir:

  • bir matrisi bir sütun vektörüyle çarparsanız, matristeki sütun sayısı, sütun vektöründeki satır sayısıyla eşleşmelidir;
  • Bir sütun vektörünün çarpılmasının sonucu yalnızca bir sütun vektörüdür:

A B = a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋯ ⋯ ⋯ ⋯ a m 1 a m 2 ⋯ a m n b 1 b 2 ⋯ b 1 n = a 11 × b 1 + a 12 × b 2 + ⋯ + a 1 n × b n a 21 × b 1 + a 22 × b 2 + ⋯ + a 2 n × b n ⋯ ⋯ ⋯ ⋯ a m 1 × b 1 + a m 2 × b 2 + ⋯ + a m n × b n = c 1 s 2 ⋯ s 1 m

  • bir matrisi bir satır vektörüyle çarparsanız, çarpılacak matrisin yalnızca bir sütun vektörü olması ve sütun sayısının satır vektöründeki sütun sayısıyla eşleşmesi gerekir:

A B = a a ⋯ a b b ⋯ b = a 1 × b 1 a 1 × b 2 ⋯ a 1 × b n a 2 × b 1 a 2 × b 2 ⋯ a 2 × b n ⋯ ⋯ ⋯ ⋯ a n × b 1 a n × b 2 ⋯ bir n × b n = c 11 c 12 ⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋯ ⋯ ⋯ ⋯ c n 1 c n 2 ⋯ c n n

Örnek 5

A matrisi ile B sütun vektörünün çarpımını bulalım:

A B = 2 4 0 - 2 1 3 - 1 0 1 1 2 - 1 = 2 × 1 + 4 × 2 + 0 × (- 1) - 2 × 1 + 1 × 2 + 3 × (- 1) - 1 × 1 + 0 × 2 + 1 × (- 1) = 2 + 8 + 0 - 2 + 2 - 3 - 1 + 0 - 1 = 10 - 3 - 2

Örnek 6

A matrisi ile B satır vektörünün çarpımını bulalım:

bir = 3 2 0 - 1 , B = - 1 1 0 2

A B = 3 2 0 1 × - 1 1 0 2 = 3 × (- 1) 3 × 1 3 × 0 3 × 2 2 × (- 1) 2 × 1 2 × 0 2 × 2 0 × (- 1) 0 × 1 0 × 0 0 × 2 1 × (- 1) 1 × 1 1 × 0 1 × 2 = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

Cevap: A B = - 3 3 0 6 - 2 2 0 4 0 0 0 0 - 1 1 0 2

Metinde bir hata fark ederseniz, lütfen onu vurgulayın ve Ctrl+Enter tuşlarına basın.