小编Har*_*ews的帖子

Scipy fmin_slsqp错误"无法将_slsqp.slsqp的第8个参数`g'转换为C/Fortran数组"

我已经看过这个问题或其他地方的问题,例如

使用优化模块的Scipy错误.将数组转换为fortran失败

http://numpy-discussion.10968.n7.nabble.com/minimize-Algorithmen-Problem-with-boundarys-td37709.html

但是他们并没有真正使用简单的可破解示例代码.也没有任何真正的答案(可能是因为缺乏一个简单的问题演示).

问题是,当尝试使用scipy.optimise fmin_slsqp方法拟合函数时,您会得到这个非常不透明的错误

"未能将_slsqp.slsqp的第8个参数'g'转换为C/Fortran数组"

在下面的代码中,我使用leastsq方法将线性函数拟合到随机相关数据.从.docs我可以看出没有理由相同的语法不应该使用fmin_slsqp做同样的事情,但事实并非如此.

有人知道为什么吗?

import numpy as nm
from scipy.optimize import leastsq, fmin_slsqp
import matplotlib.pyplot as plt

# residuals of linear function
def res(params,x,y_real):
  y_fit = params[0] +x*params[1]
  res = y_fit-y_real
  return res


#generate correlated data
xx = nm.array([-0.51, 51.2])
yy = nm.array([0.33, 51.6])
means = [xx.mean(), yy.mean()]  
stds = [xx.std() / 3, yy.std() / 3]
corr = 0.8         # correlation
covs = [[stds[0]**2          , stds[0]*stds[1]*corr], 
        [stds[0]*stds[1]*corr,           stds[1]**2]] 

m = nm.random.multivariate_normal(means, covs, 100)
x = …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy scipy

5
推荐指数
1
解决办法
2539
查看次数

标签 统计

numpy ×1

optimization ×1

python ×1

scipy ×1