草庐IT

mathematical-optimization

全部标签

python - curve_fit 的限制值(scipy.optimize)

我正在尝试使用curve_fit将逻辑增长曲线拟合到我的数据,并使用以下函数作为输入。deflogistic(x,y0,k,d,a,b):ifb>0anda>0:y=(k*pow(1+np.exp(d-(a*b*x)),(-1/b)))+y0elifb>=-1orb如您所见,我使用的函数对它可以接受的参数a和b的值有一些限制。关于如何处理不正确的值的任何猜测?输入函数应该引发异常还是返回虚拟值?提前致谢。 最佳答案 当参数超出允许范围时,返回一个非常大的数字(与要拟合的数据相去甚远)。这将(希望)惩罚这种参数选择,以至于curve_

python - 如何在 Python 中进行非线性复根查找

我想对以下非线性方程进行根搜索,我在Python中进行了搜索,但它不起作用。我的代码在下面frompylabimport*importscipyimportscipy.optimizedefz1(x,y):temp=1+1j+x+2*y;returntempdefz2(x,y):temp=-1j-2*x+sqrt(3)*y;returntempdeffunc(x):temp=[z1(x[0],x[1])-1.0/(1-1.0/(z2(x[0],x[1]))),1-2.0/(z2(x[0],x[1])-4.0/z1(x[0],x[1]))]returntempresult=scipy.o

Proximal Policy Optimization(近端策略优化)(PPO)原理详解

本节开始笔者针对自己的研究领域进行RL方面的介绍和笔记总结,欢迎同行学者一起学习和讨论。本文笔者来介绍RL中比较出名的算法PPO算法,读者需要预先了解Reinforcement-Learning中几个基础定义才可以阅读,否则不容易理解其中的内容。不过笔者尽可能把它写的详细让读者弄懂。本文干货内容较多,注重算法理解和数学基础而不仅仅是算法实现。本文一定程度上参考了李宏毅"Reinforcement-Learning"本文内容不难,适合想要学习RL的初学者进行预备,PPO是OpenAI的默认RL框架,足以见得它的强大。1、预备知识1.1、策略梯度首先笔者来介绍策略梯度算法,为后续的内容做铺垫,首先

python - 使用 scipy.optimize.linprog 进行线性规划

我刚刚用scipy.optimize.linprog检查了简单的线性规划问题:1*x[1]+2x[2]->max1*x[1]+0*x[2]=10*x[1]+1*x[2]>=11*x[1]+1*x[2]得到了一个非常奇怪的结果,我预计x[1]会是1而x[2]会是5,但是:>>>printoptimize.linprog([1,2],A_ub=[[1,1]],b_ub=[6],bounds=(1,5),method='simplex')status:0slack:array([4.,4.,4.,0.,0.])success:Truefun:3.0x:array([1.,1.])messag

python - 自动微分

我正在做我的毕业设计,特别是关于流体动力学的,我有一个非线性方程组要求解,我选择牛顿法,所以我必须通过矩阵的雅可比矩阵(实际上是12x12矩阵).这个矩阵中的每个元素都是函数在某一点求值的导数,手工编写所有这些并计算每个导数是非常困难的;系统看起来像:f1(x1,x2,x3,...,x12)=0f2(x1,x2,x3,...,x12)=0...f12(x1,x2,x3,...,x12)=0其中x1、x2、x3是变量(温度、压力...等)我可以自动执行此操作吗?如果在Fortran中不行,我可以使用其他脚本语言作为Python(sympy模块)吗? 最佳答案

python - 如何在 scipy.optimize 函数上强制执行更大的步骤?

我有一个函数compare_images(k,a,b)比较两个二维数组a和b在函数内部,我将sigma=k的gaussian_filter应用到a我的想法是估计我必须多少平滑图像a以使其与图像b相似问题是我的函数compare_images只会在k变化超过0.5时返回不同的值,如果我这样做fmin(compare_images,init_guess,(a,b)它通常卡在init_guess值上。我认为问题是fmin(和minimize)往往从非常小的步骤开始,在我的例子中,这将为重现完全相同的返回值compare_images,所以该方法认为它已经找到了最小值。它只会尝试几次。有没有办

Python Scipy Optimization.minimize 使用 SLSQP 显示最大化结果

我正在学习使用scipy.optimize.minimize优化多元约束非线性问题,但收到了奇怪的结果。我的问题:minimizeobjfunobjfunx*yconstraints0我的代码:fromscipyimportoptimizedeffunc(x):returnx[0]*x[1]bnds=((0,100),(0,5))cons=({'type':'eq','fun':lambdax:x[0]+x[1]-5})x0=[0,0]res=optimize.minimize(func,x0,method='SLSQP',bounds=bnds,constraints=cons)收到

python - 使用 scipy 最小化多变量函数。导数未知

我有一个函数,它实际上是对另一个程序(一些Fortran代码)的调用。当我调用此函数(run_moog)时,我可以解析4个变量,并返回6个值。这些值都应该接近于0(为了最小化)。但是,我将它们组合成这样:np.sum(results**2)。现在我有一个标量函数。我想最小化这个函数,即让np.sum(results**2)尽可能接近于零。注意:当此函数(run_moog)接受4个输入参数时,它会为依赖于这些参数的Fortran代码创建一个输入文件。我从thescipydocs尝试了几种优化方法.但没有一个按预期工作。最小化应该能够限制4个变量。这是一个尝试:fromscipy.opti

python - CVXOPT 输出抑制与 MOSEK

我正在使用带有CVXOPT二次规划的可选MOSEK求解器,即sol=cvxopt.solvers.qp(-Q,-p,G,h,A,b,solver='mosek')现在不使用MOSEK求解器,即sol=cvxopt.solvers.qp(-Q,-p,G,h,A,b)CVXOPT生成的终端输出可以用命令抑制cvxopt.solvers.options['show_progress']=False但是,这在使用MOSEK求解器选项时不起作用。我在几个循环中使用的MOSEK求解器会产生很多我不感兴趣的输出,这意味着我看不到我感兴趣的输出(即我选择使用“打印”输出的内容)。有谁知道是否可以抑制M

python - keras 的 Model.train_on_batch 和 tensorflow 的 Session.run([train_optimizer]) 有什么区别?

在下面的神经网络训练的Keras和Tensorflow实现中,keras实现中的model.train_on_batch([x],[y])与sess有何不同。run([train_optimizer,cross_entropy,accuracy_op],feed_dict=feed_dict)在Tensorflow实现中?特别是:这两行如何导致训练中的不同计算?:keras_version.pyinput_x=Input(shape=input_shape,name="x")c=Dense(num_classes,activation="softmax")(input_x)model=