6. Matritsani matritsaga ko’paytirish.
Matritsani matritsaga ko’paytirish uchun birinchi matritsaning satr elementlari soni ikkinchisining ustun elementlari soniga teng bo’lishi talab qilinadi. Boshqacha qilib aytganda birinchi matritsaning ustunlari soni ikkinchi matritsaning satrlari soniga teng bo’lishi kerak, aks holda bunday matritsalarni bir-biriga ko’paytirib bo’lmaydi. Ularni bir-biriga ko’paytirish uchun:
- birinchi matritsa birinchi sart elementlarini ikkichi matritsaning birinchi mos ustun elementlariga ko’paytirish va natijalarni qo’shib, hosil qilinadigan yangi matritsaning birinchi satr va birinchi ustun elementi hosil qilinadi;
- birinchi matritsa birinchi sart elementlarini ikkichi matritsaning ikkinchi mos ustun elementlariga ko’paytirish va natijalarni qo’shib, hosil qilinadigan yangi matritsaning birinchi satr va ikkinchi ustun elementi hosil qilinadi va jarayon shu tariqa davom ettiriladi.
Qisqacha qilib aytganda yangi cij matritsaning har bir elementi birinchi matritsaning i – satr elementlarini ikkinchi matritsaning j – ustun elementlariga ko’paytirib, natijalarini qo’shishdan hosil qilinadi.
# Ikki a va b matrisalarni ko'paytirish
n = int(input("a matritsaning satrlari soni = "))
k = int(input("a matritsaning ustunlari soni = "))
t = int(input("b matritsaning satrlari soni = "))
m = int(input("b matritsaning ustunlati soni = "))
while k != t:
print("Xato yuz berdi:/n/
a matritsaning satr elementlari soni - B matritsaning ustun elementlari soniga teng bo‘lishi kerak!/n/
Iltimos, b matritsaning satr va ustunlar sonini qaytadan kiriting!")
n = int(input(f"a matritsaning ustunlari sonini kiriting, t = "))
m = int(input(f"b matritsaning satrlari sonini kiriting, m = "))
# a matritsa elementlarini 0 ga tenglash
a=[]
for i in range(n):
a.append([0]*k)
print(a) # tekshirish uchun
# b matritsa elementlarini 0 ga tenglash
b=[]
for i in range(k):
b.append([0]*m)
print(b) # tekshirish uchun
# Yaratiladigan c matritsa elementlarini 0 ga tenglash
c=[]
for i in range(n):
c.append([0]*m)
print(c) # tekshirish uchun
# a matritsa elementlarini kiritish
for i in range(n):
for j in range(k):
print('a[', i, ',', j, ']=', end = ' ')
a[i][j] = int(input())
print(a) # tekshirish uchun
# b matritsa elementlarini kiritish
for i in range(k):
for j in range(m):
print('b[', i, ',', j, ']=', end = ' ')
b[i][j] = int(input())
print(b) # tekshirish uchun
# Hisoblash bloki
for i in range(n):
for j in range(m):
s=0
for l in range(k):
s=s+a[i][l]*b[l][j]
c[i][j]qs
print(c)
Matritsalarni ko’paytirishning ikkinchi usuli bilan tanishib o’taylik. Bu holda hisoblash bloki bir xil bo’lib, matritsa elementlarini append() metodidan foydalanilgan. Shuningdek, birinchi matritsa satr elementlari soni (ya’ni ustunlari soni) ikkinchi matritsaning ustun elementlari soni (satrlar soni)ga teng bo’lishi tekshirilmagan.
# Ikki a va b matrisalarni ko'paytirish II usul
n=int(input('a Satrlar sonini kiriting - '))
k=int(input('a Ustunlar sonini kiriting - '))
m=int(input('b Ustunlar sonini kiriting - '))
# Yaratiladigan c matritsa elementlarini 0 ga tenglash
C=[]
for i in range(n):
print(c) # tekshirish uchun
c.append([0]*m)
# a matritsa elementlarini kiritish
a = []
for i in range(n):
a1=[]
for j in range(k):
print('a[', i, ',', j, ']=', end = ' ')
a1.append(int(input()))
a.append(a1)
# b matritsa elementlarini kiritish
b = []
for i in range(k):
b1q[]
for j in range(m):
print('a[', i, ',', j, ']=', end = ' ')
b1.append(int(input()))
b.append(b1)
# asosiy hisoblash bloki
for i in range(n):
for j in range(m):
s=0
for l in range(k):
s=s+a[i][l]*b[l][j]
c[i][j]=s
print(c)
Do'stlaringiz bilan baham: |