行列の固有値にその転置を掛けたものを見つけようとしましたが、numpyを使用して見つけることができませんでした。
testmatrix = numpy.array([[1,2],[3,4],[5,6],[7,8]])
prod = testmatrix * testmatrix.T
print eig(prod)
この製品では、次の結果が得られると期待していました。
5 11 17 23
11 25 39 53
17 39 61 83
23 53 83 113
および固有値:
0.0000
0.0000
0.3929
203.6071
代わりに私はValueError: shape mismatch: objects cannot be broadcast to a single shape
testmatrix
にその転置を掛けるとき。
これはMatLabでは機能しますが(コードではなく乗算)、pythonアプリケーションで使用する必要があります。
誰かが私が間違っていることを教えてもらえますか?
要素ごとの乗算を使用しています。2つのNumpy行列の*
演算子は、Matlabの.*
演算子と同等です。使用する
prod = numpy.dot(testmatrix, testmatrix.T)