1
私は複素数でscipy.optimize.leastsqを使用しようとしています。私はすでにこれについていくつかの質問があることを知っていますが、私はまだ複雑な数から実数へのキャストに不平を言う私の簡単な例を得ることができません。私はそれをしなかった場合Scipyの複素数の最小値
権利を解決するには、以下のx=[1+1j,2j]
次のようになります。
import numpy as np
from scipy.optimize import leastsq
def cost_cpl(x,A,b):
return np.abs(np.dot(A,x)-b)
A=np.array([[1,1],[2j,0]],dtype=np.complex128)
b=np.array([1+3j,-2+2j],dtype=np.complex128)
x,r=leastsq(cost_cpl,np.array([0+0j,0+0j]),args=(A,b))
print x
print r
しかし、私は
TypeError: Cannot cast array data from dtype('complex128') to dtype('float64') according to the rule 'safe'
EDITを取得しています:私はnp.array([0+0j,0+0j])
からnp.array([0,0])
に最初の推測を変更した場合関数が実行されますが、私は間違った答え(実際のもの)を取得します。