46 lines
1.1 KiB
Python
Executable File
46 lines
1.1 KiB
Python
Executable File
################################################################################
|
|
# 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)
|