numpy で解いてもらいたい 6 つの方程式のセットがあります。そこで、係数の 6x6 行列を作成し、さまざまな値を入力します。しかし、これを行うために最終的に作成するコードは非常に読みにくく、コードの読者に解きたい方程式についてほとんど伝えていません。
たとえば、係数行列を埋めると、次のようになります。
# Coefficients matrix
# Order of variables: w, X, Y, Z, s, t
A = np.mat( np.zeros((6,6)) )
A[0:3,0] = cam_inv[...,2]
A[0:3,1:4] = -np.identity(3)
A[3:6,1:4] = np.identity(3)
A[3:,4] = -eigvecs[...,0]
A[3:,5] = -eigvecs[...,1]
# Constants matrix (RHS of equation)
b = np.mat( np.zeros((6,1)) )
b[0:3,0] = -cam_inv[...,0:2] * point
b[3:,] = mean.T
res = np.linalg.solve(A,b)
(cam_inv、eigvecs、mean、および point は、他の場所で計算された他の行列です。)
もちろん、上記のコードにはさらにコメントを付けることができますが、いくつかのコメントを付けても、解かれている基礎となる方程式を実際に伝えることができないと感じています。方程式をソルバーに入力して、より読みやすいコードにするより良い方法はありますか?