Skim Gillette (1983) and still do not understand the matrix and spectra connection. Perhaps previous references therein should be read first. Mixture spectra matrix
D = ( 0.26 0.22 0.14 0.20 0.40 0.80 1.60 1.20 0.40 0.12 0.14 0.18 )
\mathbf{D} = \left(
\begin{array}{ccc}
0.26 & 0.22 & 0.14 \newline
0.20 & 0.40 & 0.80 \newline
1.60 & 1.20 & 0.40 \newline
0.12 & 0.14 & 0.18
\end{array}
\right)
D = 0.26 0.20 1.60 0.12 0.22 0.40 1.20 0.14 0.14 0.80 0.40 0.18 Covariance / correlation marix
C = ( 2.682 2.074 0.858 2.074 1.668 0.856 0.858 0.856 0.852 )
\mathbf{C} = \left(
\begin{array}{ccc}
2.682 & 2.074 & 0.858 \newline
2.074 & 1.668 & 0.856 \newline
0.858 & 0.856 & 0.852
\end{array}
\right)
C = 2.682 2.074 0.858 2.074 1.668 0.856 0.858 0.856 0.852 Relation
C = D T D .
\mathbf{C} = \mathbf{D}^T \mathbf{D}.
C = D T D . Code https://onecompiler.com/python/3zrz763xa import numpy as np
D = np. array(
[
[0.26 , 0.22 , 0.14 ],
[0.20 , 0.40 , 0.80 ],
[1.60 , 1.20 , 0.40 ],
[0.12 , 0.14 , 0.18 ]
]
)
print(D)
DT = D. T
print(DT)
C = DT @ D
print(C)
[[ 0.26 0.22 0.14]
[ 0.2 0.4 0.8 ]
[ 1.6 1.2 0.4 ]
[ 0.12 0.14 0.18]]
[[ 0.26 0.2 1.6 0.12]
[ 0.22 0.4 1.2 0.14]
[ 0.14 0.8 0.4 0.18]]
[[ 2.682 2.074 0.858]
[ 2.074 1.668 0.856]
[ 0.858 0.856 0.852]]
Using previous C \mathbf{C} C . Relation C E = E L \mathbf{C}\mathbf{E} = \mathbf{E} \mathbf{L} CE = EL . Result
E = ( 0.745 − 0.400 0.000 0.596 0.039 0.000 0.300 0.916 0.000 )
\mathbf{E} = \left(
\begin{array}{ccc}
0.745 & -0.400 & 0.000 \newline
0.596 & 0.039 & 0.000 \newline
0.300 & 0.916 & 0.000
\end{array}
\right)
E = 0.745 0.596 0.300 − 0.400 0.039 0.916 0.000 0.000 0.000
L = ( 4.688 0.000 0.000 0.000 0.514 0.000 0.000 0.000 0.000 )
\mathbf{L} = \left(
\begin{array}{ccc}
4.688 & 0.000 & 0.000 \newline
0.000 & 0.514 & 0.000 \newline
0.000 & 0.000 & 0.000
\end{array}
\right)
L = 4.688 0.000 0.000 0.000 0.514 0.000 0.000 0.000 0.000 Code https://onecompiler.com/python/3zrzg7yfj import numpy as np
from numpy import linalg as la
C = np. array(
[
[2.682 , 2.074 , 0.858 ],
[2.074 , 1.668 , 0.856 ],
[0.858 , 0.856 , 0.852 ],
]
)
print("C =" ,)
print(C)
print()
print("CE = EL" )
L, E = la. eig(C)
print("E =" )
print(E. round(3 ))
print()
print("L =" )
print(np. diag(L). round(3 ))
print()
print("C @ E =" )
print((C @ E). round(3 ))
print()
print("E @ L =" )
print((E @ np. diag(L)). round(3 ))
print()
C =
[[ 2.682 2.074 0.858]
[ 2.074 1.668 0.856]
[ 0.858 0.856 0.852]]
CE = EL
E =
[[ -0.745 -0.535 -0.4 ]
[ -0.596 0.802 0.039]
[ -0.3 -0.267 0.916]]
L =
[[ 4.688 0. 0. ]
[ 0. 0. 0. ]
[ 0. 0. 0.514]]
C @ E =
[[ -3.491 0. -0.205]
[ -2.796 0. 0.02 ]
[ -1.405 0. 0.471]]
E @ L =
[[ -3.491 -0. -0.205]
[ -2.796 0. 0.02 ]
[ -1.405 -0. 0.471]]
Notice that eigenvalues are the same but not the eigenvectors. ComparisonE Gillette (1983) NumPy 1 [0.745, 0.596, 0.300]
[-0.745, -0.596, -0.300]
2 [−0.400, 0.039, 0.916]
[-0.535, 0.802, -0.267]
3 [0.000, 0.000, 0.000]
[-0.400, 0.039, 0.916]
Explanation: N/A. import numpy as np
D = np. array(
[
[0.26 , 0.22 , 0.14 ],
[0.20 , 0.40 , 0.80 ],
[1.60 , 1.20 , 0.40 ],
[0.12 , 0.14 , 0.18 ],
]
)
E = np. array(
[
[0.745 , - 0.400 ],
[0.596 , 0.039 ],
[0.300 , 0.916 ],
]
)
A = D @ E
print("D =" ); print(D); print()
print("E =" ); print(E); print()
print("A =" ); print(A. round(3 )); print()
D =
[[ 0.26 0.22 0.14]
[ 0.2 0.4 0.8 ]
[ 1.6 1.2 0.4 ]
[ 0.12 0.14 0.18]]
E =
[[ 0.745 -0.4 ]
[ 0.596 0.039]
[ 0.3 0.916]]
A =
[[ 0.367 0.033]
[ 0.627 0.668]
[ 2.027 -0.227]
[ 0.227 0.122]]
30-oct-2023
Matrices c, d
, c, e, l
, a, d, e
, next last page of main ref.Paul C. Gillette, Jerome B. Lando, Jack L. Koenig, “Factor analysis for separation of pure component spectra from mixture spectra”, Analytical Chemistry, vol 55, no 4, pp 630-633, Apr 1983, url https://doi.org/10.1021/ac00255a011 . pr5ye 06-nov-2023
Value less that 1 0 − 8 10^{-8} 1 0 − 8 is assumed to be 0 0 0 is proposed by Aria.Results: All are confirmed 7d9d71e How to get the mixture spectra matrix D \mathbf{D} D from the mixture, e.g. Figs. 7 and 8 is still still unknown. 30-oct-2023
A reference, Gillette (1983), is given. pr5ye 26-oct-2023
Google drive links is given for current available data. 762au