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:
Matris çarpımı çizimi
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:
Matris çarpma sonucu çizimi
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.
Çarpın ve mul[i][j] += m1[i][k] * m2[k][j] formülünü kullanarak öğeleri toplayın ve çarpmanın sonucunu elde edilen matriste saklayın.
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ı bu GitHub deposunda mevcuttur 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. Ana işlevi bildirin ve kullanıcıdan print() işlevini kullanarak her iki matris için sütun ve satır sayısını girmesini isteyin .
Girdi almak için scanf() işlevini kullanın. %d , programın girişi bir sayı olarak okumasını sağlayan ondalık biçim belirleyicisidir.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int r1, r2, c1, c2;
printf(“Enter the number of rows for the first matrix:n”);
scanf(“%d”, &r1);
printf(“Enter the number of columns for the first matrix:n”);
scanf(“%d”, &c1);
printf(“Enter the number of rows for the second matrix:n”);
scanf(“%d”, &r2);
printf(“Enter the number of columns for the second matrix:n”);
scanf(“%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.
if (c1 != r2) {
printf(“The matrices cannot be multiplied together”);
exit(-1);
}
Her şey yolundaysa , kullanıcının sağladığı boyutta iki çok boyutlu dizi, m1 ve m2 tanımlayın. Kullanıcıdan her iki matrisin öğelerini birer birer girmesini isteyin. Matrisin hem satırı hem de sütunu için girdi almak üzere iç içe bir for döngüsü kullanın. Dış for döngüsü, matrisin satırları üzerinde ve iç döngü, matrisin sütunu üzerinde yinelenir.
int m1[r1][c1], m2[r2][c2];
printf(“Enter the elements of the first matrixn”);
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c1; j++) {
scanf(“%d”, &m1[i][j]);
}
}
printf(“Enter the elements of the second matrixn”);
for (int i = 0; i < r2; i++) {
for (int j = 0; j < c2; j++) {
scanf(“%d”,&m2[i][j]);
}
}
Sonucu depolamak için r1 * c2 mertebesinde üçüncü bir matris ( mul ) tanımlayın. Çarpmayı gerçekleştirmek için iç içe bir for döngüsü kullanın. 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. Matrisin elemanlarını çarpmak için mul[i][j] += m1[i][k] * m2[k][j] formülünü kullanın .
Formül , hesaplanan ifadeye mul[i][j] eklemek ve onu depolamak için += kısayol operatörünü kullanır . Eklemeden önce sonucu sıfır olarak başlatmayı unutmayın.
int mul[r1][c2];
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c2; j++) {
mul[i][j] = 0;
for (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(“The multiplied matrix is: n”);
for (int i = 0; i < r1; i++) {
for (int j = 0; j < c2; j++) {
printf(“%dt”, mul[i][j]);
}
printf(“n”);
}
return 0;
}
Matris Çarpma Programının Çıktısı
Matris çarpma programını çalıştırdığınızda aşağıdaki gibi bir çıktı görmelisiniz:
Matris Çarpımının Çıktısı
Geçersiz girdi girerseniz, matris çarpımı başarısız olur ve şöyle bir şey görürsünüz:
Mümkün olmadığında Matris Çarpımının Çıktısı
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.