Matrisler, bilgisayar grafikleri, kriptografi ve kablosuz iletişim dahil olmak üzere birçok farklı alanda hayati bir rol oynamaktadır. Matris, matematiksel bir nesneyi veya onun özelliğini temsil etmek için kullanılan, satırlar ve sütunlar halinde düzenlenmiş dikdörtgen bir sayı dizisidir.
Bunlar üzerinde yapmanız gerekebilecek işlemlerden biri de matris çarpımıdır. Bu, aerodinamik hesaplamalar, sinyal işleme, görüntü işleme ve sismik analiz gibi birçok alanda kullanım alanı bulur. Ama matrisleri tam olarak nasıl çarparsınız?
İki Matris Nasıl Çarpılır
Bir matrisin sırasını, satır sayısının (m) ve sütun sayısının (n) çarpımı olarak temsil edersiniz. İki matrisi çarpmak için birinci matrisin sütun sayısı ikinci matrisin satır sayısına eşit olmalıdır.
İki matrisiniz varsa, m × n mertebesinden A matrisi ve n x p mertebesinden B matrisi, çarpım matrisinin mertebesi m x p olacaktır. Örneğin, iki satır (m) ve üç sütun (n) içeren bir A matrisiniz ve üç satır (n) ve iki sütun (p) içeren bir B matrisiniz olduğunu varsayalım. Ortaya çıkan matris iki satır ve iki sütundan oluşacaktır:
Nokta çarpımı kullanarak iki matrisi çarparsınız. Elde edilen matrisin ilk elemanının değerini elde etmek için, birinci matrisin ilk satırının elemanları ile ikinci matrisin ilk satırının elemanlarını şu şekilde çarpın ve ekleyin:
(1, 2, 3) • (7, 9, 11) = 1×7 + 2×9 + 3×11 = 58
Benzer şekilde, ikinci eleman için, birinci matrisin ilk satırı ile ikinci matrisin ikinci sütununu şu şekilde çarpın:
(1, 2, 3) • (8, 10, 12) = 1×8 + 2×10 + 3×12 = 64
Üçüncü eleman için, birinci matrisin ikinci satırı ile ikinci matrisin ilk sütununu şu şekilde çarpın:
(4, 5, 6) • (7, 9, 11) = 4×7 + 5×9 + 6×11 = 139
Dördüncü eleman için, birinci matrisin ikinci satırı ile ikinci matrisin ikinci sütununu şu şekilde çarpın:
(4, 5, 6) • (8, 10, 12) = 4×8 + 5×10 + 6×12 = 154
Böylece, sonuç matrisi:
Aşağıdakiler gibi matrisler üzerinde farklı işlemler için farklı programlar keşfedebilir ve oluşturabilirsiniz:
- iki matrisi toplama ve çıkarma
- bir matrisin devriğini bulma
- iki matrisin aynı olup olmadığını kontrol etme
İki Matrisi Çarpmak İçin Bir Algoritma
Herhangi iki matrisin çarpımına yönelik programı oluşturmak için bu algoritmayı izleyin:
- Programı başlatın.
- İlk matrisin satırlarını ve sütunlarını girin.
- İkinci matrisin satırlarını ve sütunlarını girin.
- Matrisler çarpma için uyumlu değilse, bir hata yazdırın ve çıkın.
- Bir matris tanımlayın ve ilk matristeki sayıları girin.
- Başka bir matris tanımlayın ve ikinci matristeki sayıyı girin.
- İki matrisin çarpımının sonucunu saklamak için bir matris tanımlayın.
- İlk matrisin satırı üzerinde yinelenecek bir döngü ayarlayın.
- İkinci matrisin sütunu üzerinde yineleme yapmak için bir iç döngü kurun.
- İlk matrisin sütunu üzerinde yinelemek için başka bir iç döngü ayarlayın.
- Formülü kullanarak öğeleri çarpın ve ekleyin mul[i][j] += m1[i][k] * m2[k][j] ve çarpmanın sonucunu elde edilen matriste saklar.
- Elde edilen matrisi görüntüleyin.
- Programdan çıkın.
C Kullanarak Matris Çarpımı Nasıl Yapılır?
C kullanarak matris çarpımı için kaynak kodun tamamı burada mevcuttur. GitHub deposu ve kullanımı ücretsizdir.
Numaraları girmek ve çıktıyı buna göre görüntülemek için stdio kitaplığını içe aktarın. beyan etmek ana işlevini kullanarak kullanıcıdan her iki matris için sütun sayısını ve satır sayısını girmesini isteyin. Yazdır() işlev.
Kullan taramak() girdi alma işlevi. %D programın girişi bir sayı olarak okumasını sağlayan ondalık biçim belirleyicisidir.
#katmak
#katmakintana()
{
int r1, r2, cl, c2;
printf("Satır sayısını giriniz. için ilk matris:\n");
taramak("%d", &r1);
printf("Sütun sayısını girin için ilk matris:\n");
taramak("%d", &c1);
printf("Satır sayısını giriniz. için ikinci matris:\n");
taramak("%d", &r2);
printf("Sütun sayısını girin için ikinci matris:\n");
taramak("%d", &c2);
Matris çarpımının mümkün olup olmadığını kontrol edin. Birinci matrisin sütun sayısı ikinci matrisin satır sayısına eşit değilse bir hata gösterip çıkın.
eğer (c1 != r2) {
printf("Matrisler birlikte çarpılamaz");
çıkış(-1);
}
Her şey yolundaysa, iki çok boyutlu diziyi tanımlayın, m1 Ve m2, kullanıcının sağladığı boyutta. Kullanıcıdan her iki matrisin öğelerini birer birer girmesini isteyin. İç içe kullanın için matrisin hem satırı hem de sütunu için girdi almak için döngü. Dış for döngüsü, matrisin satırları üzerinde ve iç döngü, matrisin sütunu üzerinde yinelenir.
intm1[r1][c1], m2[r2][c2];
printf("İlk matrisin elemanlarını girin\n");için (int ben = 0; ben için (int j = 0; j < c1; j++) {
taramak("%D", &m1[i][j]);
}
}
printf("İkinci matrisin elemanlarını girin\n");
için (int ben = 0; ben < r2; ben++) {
için (int j = 0; j < c2; j++) {
taramak("%D",&m2[i][j]);
}
}
Üçüncü bir matris tanımlayın, mul, sonucu saklamak için r1 * c2 sırası. İç içe kullanın için çarpma işlemini gerçekleştirmek için döngü. En dıştaki for döngüsü satırlar üzerinde yinelenir, bir sonraki iç döngü sütunlar üzerinde yinelenir ve en içteki döngü çarpma işlemini gerçekleştirir. formülü kullan mul[i][j] += m1[i][k] * m2[k][j] matrisin elemanlarını çarpmak için.
Formül, steno işlecini kullanır += eklemek mul[i][j] hesaplanan ifadeye ekleyin ve saklayın. Eklemeden önce sonucu sıfır olarak başlatmayı unutmayın.
intmul[r1][c2];için (int ben = 0; ben için (int j = 0; j < c2; j++) {
mul[i][j] = 0;
için (int k = 0; k < c1; k++) {
mul[i][j] += m1[i][k] * m2[k][j];
}
}
}
Elde edilen matrislerin satırları ve sütunları üzerinde yinelenen iç içe bir for döngüsü kullanarak çarpılan matrisi görüntüleyin. Satırların her birini ayrı bir satırda görüntülemek için yeni satır karakterini (\n) kullanın. Ana işlevden ve programdan çıkmak için 0'a dönün.
printf("Çarpılan matris: \n"); için (int ben = 0; ben için (int j = 0; j < c2; j++) {
printf("%d\t", mul[i][j]);
}
printf("\N");
}
geri dönmek0;
}
Matris Çarpma Programının Çıktısı
Matris çarpma programını çalıştırdığınızda aşağıdaki gibi bir çıktı görmelisiniz:
Geçersiz girdi girerseniz, matris çarpımı başarısız olur ve şöyle bir şey görürsünüz:
Matrislerin Birçok Kullanımı Vardır
Bilim, ticaret, ekonomi, jeoloji, robotik ve animasyon gibi çeşitli alanlar matrisleri kullanır. Matematikte matrisleri esas olarak lineer denklemleri çözmek ve döndürme veya öteleme gibi dönüşümleri temsil etmek için kullanacaksınız. Matrisler, elektrik devrelerinde AC ağ denklemlerini çözmenin yanı sıra yansıma ve kırılma miktarını hesaplayabilir.
Matrisleri eğitim uygulamalarının yanı sıra anket verilerinin, oylama verilerinin, hesaplama öğesi listelerinin ve diğer veri kümelerinin analizi için kullanabilirsiniz.