Matrix multiplication shine ainihin aiki a cikin algebra na layi.
Gabaɗaya muna amfani da shi a aikace-aikace masu yawa kamar sarrafa hoto, koyon injin, da ƙari mai yawa. NumPy sanannen fakitin Python ne don lissafin kimiyya.
Koyaya, a cikin wannan post ɗin, zamu kalli hanyoyi daban-daban don yin haɓaka matrix a cikin Python ba tare da amfani da NumPy ba.
Za mu yi amfani madaukai madaidaici, ginanniyar taswirar () aikin, da kuma fahimtar lissafi.
Bugu da ƙari, za mu dubi fa'idodi da lahani na kowace dabara, da kuma lokacin da za a yi amfani da kowannensu. Idan kun kasance sababbi ga algebra na layi kuma kuna son ƙarin koyo game da haɓaka matrix; ci gaba da karatu.
A ina Muke Amfani da Matrix Multiplication?
Ana amfani da multiplication na Matrix a ciki zanen komputa don canza abubuwan gani na 2D da 3D. Misali, zaku iya juyawa, sikeli, da fassara abubuwa akan allon. Ana amfani da matrix don sarrafa hoto don wakiltar hotuna azaman tsararrun pixels. Bayan haka, ana iya amfani da matrix don gudanar da ayyuka kamar tace hoto.
Hakanan muna amfani da matrix a ciki injin inji. Za su iya taimaka mana mu wakilci bayanai da sigogin samfuri. Za mu iya gudanar da ayyuka da yawa, kamar samfuran ɗigo na lissafin lissafi da samfuran matrix-vector.
Tabbas, wannan aiki kuma yana da fa'ida sosai a ayyukan kimiyya. Za mu iya amfani da shi a cikin ilimin lissafi da injiniyanci don bayyana adadin jiki. Saboda haka, za mu iya aiki tare da vectors da tenors.
Me yasa Ba Za Mu Zaɓa Don Amfani da NumPy ba?
Yayin da NumPy ke a Python library, ba koyaushe shine zaɓin da ya dace don haɓaka matrix ba. Wataƙila ba za mu zaɓi amfani da NumPy ba saboda dalilai kamar girma da dogaro, koyo, da tsarin gado.
Amfani da ginanniyar ayyukan Python ko haɓaka lambar al'ada na iya zama mafi inganci a wasu lokuta. Yana da mahimmanci a lura, duk da haka, cewa NumPy babban ɗakin karatu ne. Bayan haka, zaku iya amfani da shi don haɓaka matrix.
Yanzu, bari mu kalli yadda za mu iya cimma yawan matrix ba tare da NumPy ba.
Hanyar madaukai
Dabarar madaukai na gida tana amfani da madaukai masu rarrafe don aiwatar da haɓaka matrix a cikin Python. Aikin yana jujjuyawa akan kowane nau'in matrix. Kuma, yana haɓaka su ta amfani da jerin madaukai na gida. Ayyukan yana mayar da sakamakon, wanda aka adana a cikin sabon matrix.
Wannan hanya madaidaiciya ce don fahimta. Koyaya, maiyuwa bazai zama mai inganci kamar sauran hanyoyin ba, musamman ga manyan matrices. Duk da haka, zaɓi ne mai ban sha'awa a gare ku idan kun kasance sababbi ga algebra na layi.
def matrix_multiplication(A, B):
# Determine the matrices' dimensions.
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
# Sanya matrix sakamako zuwa sifilai.
result = [[0 for row in range(cols_B)] for col in
range(rows_A)]
# Iterate through rows of A
for s in range(rows_A):
# Iterate through columns of B
for j in range(cols_B):
# Iterate through rows of B
for k in range(cols_A):
result[s][j] += A[s][k] * B[k][j]
return result
Bari mu sami misalin yadda ake yin wannan. Kuna iya ƙara waɗannan layukan lambar da ke ƙasa don gwada wannan misalin.
# Sample matrices
A = [[1, 4, 3], [4, 9, 6]]
B = [[7, 8], [9, 10], [11, 12]]
# Perform matrix multiplication
result = matrix_multiplication(A, B)
# Print the result
print(result)
# Output: [[76, 84], [175, 194]]
Amfani:
- Sauƙi don fahimta.
- Mai girma ga sababbin ko waɗanda ke neman zurfin fahimtar haɓaka matrix.
disadvantages:
- Ba shi da tasiri kamar madadin dabaru, musamman don manyan matrices.
- Ba a iya karanta shi kamar yadda sauran hanyoyin ke bi.
hanyar aiki taswira().
Hanyar aikin taswira() tana ba da wata hanya dabam don yin yawan matrix a Python. A wannan hanyar, muna amfani da aikin ginanniyar taswira(). Don haka, muna amfani da kayan aikin shirye-shirye mai aiki wanda ke aiwatar da aikin da aka bayar ga kowane nau'in da ba a iya jurewa (jeri, tuple, da sauransu). Hakanan, aikin taswira() yana karɓar sigogi biyu, aiki da mai iya maimaitawa. Kuma, yana mayar da mai maimaitawa wanda ke amfani da aikin ga kowane nau'i mai sauƙi.
A wannan hanyar, muna bi ta kowane memba na matrix kuma muna yin ninka ta amfani da aikin taswirar gida ().
Ana amfani da aikin zip() don maimaita ta kowane kashi na matrices a layi daya.
A ƙarshe, ana amfani da aikin jimlar() don ƙara sakamako.
def matrix_multiplication(A, B):
# To get the dimensions of the matrices
rows_A = len(A)
cols_A = len(A[0])
rows_B = len(B)
cols_B = len(B[0])
# We use map() function for multiplication.
result = [[sum(a * b for a, b in zip(row_a, col_b)) for
col_b in zip(*B)] for row_a in A]
return result
Yanzu, kuma, za mu iya gwada lambar mu tare da misali.
# Example matrices
A = [[3, 2, 3], [4, 5, 6]]
B = [[7, 8], [9, 10], [11, 12]]
# Use map() function to perform matrix multiplication
result = list(map(lambda x: list(map(lambda y: sum(i*j
for i,j in zip(x,y)), zip(*B))), A))
# Print the result
print(result)
# Output: [[72, 80], [139, 154]]
Abũbuwan amfãni
- Ya fi tasiri fiye da tsarin madaukai masu tarin yawa
- Yana amfani da shirye-shirye na aiki don sanya lambar ta zama mai sauƙi.
disadvantages
- Wasu mutanen da ba su saba da shirye-shirye masu aiki ba na iya samun ƙarancin karantawa.
- Yana da ƙarancin fahimta fiye da dabarar madaukai na gida.
Hanyar fahimtar lissafi
Fahimtar lissafin yana ba ku damar ƙirƙirar sabon jeri a cikin layi ɗaya na lamba. Don haka, wannan ta hanyar amfani da magana ga kowane memba na lissafin da ke akwai.
A wannan hanyar, ana yin ninka ta hanyar maimaita maimaitawa ta kowane memba na matrix. Muna amfani da fahimtar lissafin layi.
# Sample matrices
A = [[1, 12, 3], [14, 5, 6]]
B = [[7, 8], [9, 10], [12, 12]]
# Matrix multiplication using list comprehension
result = [[sum(A[i][k] * B[k][j] for k in range(len(A[0])))
for j in range(len(B[0]))] for i in range(len(A))]
# Print the result
print(result)
[[151, 164], [215, 234]]
amfanin
- Idan aka kwatanta da hanyar aikin taswira(), gajarta kuma ana iya karantawa.
disadvantages
- Yana iya zama ƙasa da tasiri fiye da amfani da aikin taswira, musamman don manyan matrices.
- Yana da wahala fiye da kusancin madaukai na gida.
Kammalawa
A cikin wannan sakon, mun kalli madadin amfani da NumPy lokacin da ake ninka matrices a Python. Mun yi matrix da yawa a cikin madaukai na gida, aikin ginanniyar taswira(), da fahimtar lissafin.
Mafi kyawun dabarun zai dogara da takamaiman bukatun aikin ku.
Kowannen dabarun yana da ribobi da fursunoni na nasa. Don tabbatar da aikin yana aiki da kyau, yana da kyau a ƙara wasu lokuta na gwaji tare da ma'auni daban-daban da ƙima.
Hakanan ya kamata ku haɗa da wasu gwaje-gwajen aiki don kwatanta yadda waɗannan hanyoyin ke aiki da kyau.
Leave a Reply