[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