Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调用scipy.sparse.csr_矩阵时,scipy.optimize.minimize错误最小化_Python_Optimization_Scipy_Sparse Matrix_Minimize - Fatal编程技术网

Python 调用scipy.sparse.csr_矩阵时,scipy.optimize.minimize错误最小化

Python 调用scipy.sparse.csr_矩阵时,scipy.optimize.minimize错误最小化,python,optimization,scipy,sparse-matrix,minimize,Python,Optimization,Scipy,Sparse Matrix,Minimize,我正在尝试以过滤方式使用scipy.optimize.minimize: fi=最小化(fun=二次函数,x0=fi,args=(alfa,Ks,Kf),方法='Nelder-Mead')。x 其中fi是要优化的参数。二次函数的性质是,在每次调用中,都应该构造一个scipy.sparse.csr_矩阵。因此,除其他错误外,我还发现了以下错误(很抱歉混合了西班牙语和英语名称): 文件“/Users/angle/Dropbox/Intercambio CIMAT/Solver/V2/sistemas

我正在尝试以过滤方式使用scipy.optimize.minimize:

fi=最小化(fun=二次函数,x0=fi,args=(alfa,Ks,Kf),方法='Nelder-Mead')。x

其中fi是要优化的参数。二次函数的性质是,在每次调用中,都应该构造一个scipy.sparse.csr_矩阵。因此,除其他错误外,我还发现了以下错误(很抱歉混合了西班牙语和英语名称):

文件“/Users/angle/Dropbox/Intercambio CIMAT/Solver/V2/sistemas/explicito.py”,第56行,在Solver\u explicito中 Matriz_Biot_菌株=esfuerzos_Biot(malla,因子,P,Q,R,N)

文件“/Users/angle/Dropbox/Intercambio CIMAT/Solver/V2/sistemas/sigma_biot.py”,第172行,在esfuerzos_biot中 sistema=csr_矩阵((VAL,(行,列)),shape=(4*节点,4*节点),dtype=np.64)

文件“/Users/angel/anaconda/lib/python2.7/site packages/scipy/sparse/compressed.py”,第48行,在init 其他=自身。类(coo_矩阵(arg1,形状=形状))

文件“/Users/angel/anaconda/lib/python2.7/site packages/scipy/sparse/compressed.py”,第31行,在init arg1=arg1.asformat(self.format)

文件“/Users/angel/anaconda/lib/python2.7/site-packages/scipy/sparse/base.py”,第213行,格式为ASF 返回getattr(self,'to'+格式)()

文件“/Users/angel/anaconda/lib/python2.7/site packages/scipy/sparse/coo.py”,第362行,在tocsr中 (数据)

TypeError:无法根据规则“safe”将数组数据从dtype('O')强制转换为dtype('bool')

我试着

fi=np.asarray(fi,dtype=np.float64)

但是没有成功

p.S.In可以计算二次函数(fi、alfa、Ks、Kf),这是一个标量值

编辑:

对于将来的引用,我可以通过在每次调用二次函数时将变量转换为浮点来解决问题,即通过执行以下操作:

fi=浮动(fi)

另一方面,为了问题的完整性:
@hpaulj在这个特殊的问题中,节点=151452,但它可以增长,因为我正在解决一个有限元问题。因为这是一个有限元问题,矩阵非常稀疏。最后,我找不到任何与最小化USAGE相关的文档,然后调用scypy sparse。

我怀疑
minimize
是否设计用于
sparse
矩阵。你有没有看到任何支持这种使用的文档?最好返回密集的等价物(
.toarray()
.A
)。这些稀疏矩阵有多大?有多稀疏?错误消息似乎与optimize.minimize无关。相反,它看起来像是在二次函数中,您试图以某种错误的方式构造稀疏矩阵。由于您没有显示代码,因此无法确切说明具体内容。使用该选项可以找出问题所在。