6
量子力学のルーチンをコーディングすると、私はPythonのNumPyの興味深い動作を発見しました。 2つ以上の配列でNumPyの乗算を使用すると、結果が正しくありません。以下のコードでは、私は正しい結果を生成する:Pythonのいくつかの配列の要素的な乗算Numpy
f = np.multiply(rowH,colH)
A[row][col]=np.sum(np.multiply(f,w))
を書く必要があります。しかし、私の最初の処方はこれでした:
A[row][col]=np.sum(np.multiply(rowH, colH, w))
これはエラーメッセージを生成しませんが、間違った結果です。私がnumpyの乗算ルーチンに3つの配列を与えることができると思うのはどこですか?
はここで完全なコードです:
from numpy.polynomial.hermite import Hermite, hermgauss
import numpy as np
import matplotlib.pyplot as plt
dim = 3
x,w = hermgauss(dim)
A = np.zeros((dim, dim))
#build matrix
for row in range(0, dim):
rowH = Hermite.basis(row)(x)
for col in range(0, dim):
colH = Hermite.basis(col)(x)
#gaussian quadrature in vectorized form
f = np.multiply(rowH,colH)
A[row][col]=np.sum(np.multiply(f,w))
print(A)
:: NOTE ::このコードは唯一numpyの1.7.0以降で動作します!
ok、私の悪い:-)。この投稿を削除する必要がありますか、それとも他のユーザーにとって役立つと思いますか? – seb
それを残す。助けて頂きました :) – mrjrdnthms