################################################################################ # s = eps * [[beta, -alpha], # [-alpha, gamma]] # R = R(1)->(2) # s2 = R * s1 * RT # # s2_11 = s1_11 * R11**2 + 2 * s1_12 * R11 * R12 + s1_22 * R12**2 # # A = [[R11,1**2, 2 * R11,1 * R12,1, R12,1**2], # [R11,2**2, 2 * R11,2 * R12,2, R12,2**2], # ... # [R11,n**2, 2 * R11,n * R12,n, R12,n**2], # B = [s2_11,1, # s2_11,2, # ... # s2_11,n] # X = [s1_11, # s1_12, # s1_22] # # A * X = B ################################################################################ import numpy as np n = 5 bet = [1.74450, 1.34220, 0.99999, 0.71557, 0.48651] eps = 25.0E-6 # m.rad R11 = [ 0.85800, 0.71000, 0.56400, 0.42000, 0.27900] R12 = [ 0.44100, 0.41900, 0.39800, 0.37600, 0.35500] #A = [[1.0,2.0],[3.0,4.0],[2.0,3.0]] #B = [[-1.0],[-1.0],[-1.2]] #X = [[1.0],[-1.0]] A = [] B = [] for i in range(0, n): A.append([R11[i]**2, 2 * R11[i] * R12[i], R12[i]**2]) B.append([bet[i] * eps]) A = np.matrix(A) B = np.matrix(B) X = np.linalg.inv(A.T.dot(A)).dot(A.T).dot(B) print(X)