[Tutor] matrix multiplication
Msd De
mmssdd1920 at gmail.com
Fri Aug 6 05:19:14 EDT 2021
I have to take product of three matrices
Q = Nn.P1.M in the code below
where M = M2.M3.M4...............Mn
I would like to know whether the dot is appropriately used.
The output is not what I expected.
Thanks in advance
d_list=[2.0,2.5,3.0,3.5,4.0,4.5,5.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0]
#15 values
*for id in range(len(d_list)):*
d=d_list[id]
R_list = [20] #for test purpose
for r in range(len(R_list)):
R=R_list[r]
etatip=np.sqrt(d/(d+R))
UB=etatip
evb_list = [3.0] #for test purpose
#########################
for v in range(len(evb_list)):
evb=evb_list[v]
.............
DEx_11 = []; DF = []
Fj1prxj = [];Fj2prxj = []; Fjmin11prxj =[];Fjmin12prxj = [];
Integrand_11 = []
dist=d_list[id]
M = [[1,1],[1,1]] #initialise M matrix
m=40
*for j in range(1,m+1):*
ak1 = np.sqrt(2*FCON*Ex)
ak2 = np.sqrt(2*FCON*(Ex- deltaprime))
............
...................................
det_albe = alfajmin1xj*betajmin1xj -
betajmin1xj*alfajmin1xjp1
Fjmin11prxj.append(Xprjmin1j*(alfaprjmin1xj*betajmin1xj -
alfajmin1xjp1*betaprjmin1xj )/det_albe)
Fjmin12prxj.append(Xprjmin1j*(alfajmin1xj*betaprjmin1xj -
betajmin1xj*alfaprjmin1xj )/det_albe)
G11_2 = Fj2prxj[0]
G11_1 = Fj1prxj[0]
P111 =1.0
P112 = 1.0
P121 =(1j*ak1-G11_1)/G11_2
P122 = (G11_1 - 1j*ak1)/G11_2
*P1 =[[P111,P112],[P121,P122]]*
GNNp1_1 =Fj1prxj[m-1] #cos number starts fron zero
GNNp1_2 = Fj2prxj[m-1]
Nn11 =GNNp1_1/1j*ak2
Nn12 = GNNp1_2/1j*ak2
Nn21 = 0.0
Nn22 = 1.0
*Nn =[[Nn11,Nn12],[Nn21,Nn22]]*
for n in range(1,m): #M_2,M_3,............M_N
Gjj2 = Fj2prxj[n]
Gjmin1j1 =Fjmin11prxj[n]
Gjmin1j2 =Fjmin12prxj[n]
Mj11 = 1.0
Mj12 = 0.0
Mj21 = (Gjmin1j1-Gjj2)/Gjj2
Mj22 = (Gjmin1j2)/Gjj2
Mj = [[Mj11,Mj12],[Mj21,Mj22]]
*M = np.dot(M,Mj)*
Q = np.dot(Nn,np.dot(M,P1))
Q11=Q[0][0]
Q12=Q[0][1]
Q21=Q[1][0]
Q22=Q[1][1]
T = (Q11*Q22 - Q12*Q21)*np.exp(-1j*ak2*d)/(Q22-Q12)
DEx_11 = ak2*abs(T)**2/ak1
DF=(np.log(1+np.exp(-BETA*(Ex-eta1)))/BETA) -
(np.log(1+np.exp(-BETA*(Ex-eta1+evb)))/BETA)
Integrand_11=DEx_11*DF*CONST
print Integrand_11
More information about the Tutor
mailing list