草庐IT

mathematical-optimization

全部标签

python - `scipy.optimize.minimize` 中的 Jacobian 和 Hessian 输入

我试图了解“dogleg”方法在Python的scipy.optimize.minimize中是如何工作的功能。我正在调整帮助页面底部的示例。根据注释,dogleg方法需要Jacobian和Hessian参数。为此,我使用numdifftools包裹:importnumpyasnpfromscipy.optimizeimportminimizefromnumdifftoolsimportJacobian,Hessiandeffun(x,a):return(x[0]-1)**2+(x[1]-a)**2x0=np.array([2,0])#initialguessa=2.5res=mini

python - 将 scipy.optimize.minimize 限制为整数值

我正在使用scipy.optimize.minimize来优化一个答案只能是整数的现实问题。我当前的代码如下所示:fromscipy.optimizeimportminimizedeff(x):return(481.79/(5+x[0]))+(412.04/(4+x[1]))+(365.54/(3+x[2]))+(375.88/(3+x[3]))+(379.75/(3+x[4]))+(632.92/(5+x[5]))+(127.89/(1+x[6]))+(835.71/(6+x[7]))+(200.21/(1+x[8]))defcon(x):returnsum(x)-7cons={'t

python - Lorentzian scipy.optimize.leastsq 适合数据失败

自从我参加了Python讲座后,我想用它来拟合我的数据。虽然我现在已经尝试了一段时间,但我仍然不知道为什么这不起作用。我想做什么从子文件夹(此处称为“测试”)中取出一个又一个数据文件,稍微转换数据并用洛伦兹函数对其进行拟合。问题描述当我运行下面发布的代码时,它不适合任何东西,在4次函数调用后只返回我的初始参数。在一遍又一遍地检查python文档后,我尝试缩放数据,尝试使用ftol和maxfev,但没有任何改进。我还尝试将列表显式更改为numpy.arrays,以及对问题scipy.optimize.leastsqreturnsbestguessparametersnotnewbestf

python - scipy.optimize.minimize 方法 ='SLSQP' 忽略约束

我正在使用SciPy进行优化,而SLSQP方法似乎忽略了我的约束。具体来说,我希望x[3]和x[4]在[0-1]范围内我收到消息:“不等式约束不兼容”这是执行的结果,后面是示例代码(使用虚拟函数):status:4success:Falsenjev:2nfev:24fun:0.11923608071680103x:array([-10993.4278558,-19570.77080806,-23495.15914299,-26531.4862831,4679.97660534])message:'Inequalityconstraintsincompatible'jac:array([

python - 将元组作为 scipy.optimize.curve_fit 的输入参数传递

我有以下代码:importnumpyasnpfromscipy.optimizeimportcurve_fitdeffunc(x,p):returnp[0]+p[1]+xpopt,pcov=curve_fit(func,np.arange(10),np.arange(10),p0=(0,0))它会引发TypeError:func()takesexactly2arguments(3given)。嗯,这听起来很公平-curve_fit将(0,0)分解为两个标量输入。所以我尝试了这个:popt,pcov=curve_fit(func,np.arange(10),np.arange(10),p

python - Windows 8 上的 scipy.optimize dll 加载失败

我正在尝试在Windows8上使用Python3.3.1导入scipy.optimize。我正在使用scipy-0.12.0。当我尝试导入时,Python返回以下错误:>>>importscipy.optimizeTraceback(mostrecentcalllast):File"",line1,inFile"C:\Python33\lib\site-packages\scipy\optimize\__init__.py",line146,infrom.optimizeimport*File"C:\Python33\lib\site-packages\scipy\optimize\o

python - `Optimal` Tensorflow中用于矩阵分解的变量初始化和学习率

我正在Tensorflow中尝试一个非常简单的优化——矩阵分解问题。给定一个矩阵V(mXn),将其分解为W(mXr)和H(rXn)。我从here借用了基于梯度下降的基于tensorflow的矩阵分解实现.有关矩阵V的详细信息。在其原始形式中,条目的直方图如下所示:为了将条目置于[0,1]范围内,我执行了以下预处理。f(x)=f(x)-min(V)/(max(V)-min(V))归一化后,数据的直方图如下所示:我的问题是:鉴于数据的性质:介于0和1之间且大多数条目更接近0而不是1,W和H的最佳初始化是什么?如何根据不同的成本函数定义学习率:|A-WH|_F和|(A-WH)/A|?最小的工

python - Scipy.optimize 不等式约束 - 不等式的哪一边被考虑?

我正在使用scipy.optimize模块来寻找可以最小化输出的最佳输入权重。从我看过的例子中,我们用单边方程定义约束;然后我们创建一个类型为“inequality”的变量。我的问题是优化包如何知道我的约束中的变量总和需要小于1还是大于1?...defconstraint1(x):returnx[0]+x[1]+x[2]+x[3]-1....con1={'type':'ineq','fun':constraint1}链接到我在示例中使用的完整解决方案:http://apmonitor.com/che263/index.php/Main/PythonOptimization

python - 正确使用 scipy.optimize.fmin_bfgs

我正在玩弄Python中的逻辑回归。我已经实现了一个版本,其中成本函数的最小化是通过梯度下降完成的,现在我想使用scipy(scipy.optimize.fmin_bfgs)的BFGS算法。我有一组数据(矩阵X中的特征,X的每一行中有一个样本,垂直向量y中有相应的标签)。我试图找到要最小化的参数Theta:我无法理解fmin_bfgs的确切工作原理。据我所知,我必须传递一个要最小化的函数和一组Thetas的初始值。我做了以下事情:initial_values=numpy.zeros((len(X[0]),1))myargs=(X,y)theta=scipy.optimize.fmin_

python - 如何在 python 中使用 scipy.optimize 中的 leastsq 函数将直线和二次线拟合到数据集 x 和 y

我如何使用scipy.optimize中的leastsq函数将直线和二次方程拟合到下面的数据集?我知道如何使用polyfit来做到这一点。但是我需要使用leastsq函数。这里是x和y数据集:x:1.0,2.5,3.5,4.0,1.1,1.8,2.2,3.7y:6.008,15.722,27.130,33.772,5.257,9.549,11.098,28.828有人可以帮帮我吗? 最佳答案 leastsq()方法找到使误差函数最小化的参数集(yExperimental和yFit之间的区别)。我使用一个元组来传递线性和二次拟合的参数