全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
998 1
2023-01-05
请问如何在python中的非线性最小二乘拟合算法中设置不等式约束,scipy.optimize中有curve_fit算法可以进行拟合,scipy.optimize也有minimize算法可以设置不等式约束,那么请问,如何把两种算法的功能结合起来。我想要对CD函数进行拟合,同时对其中的参数函数进行范围设置,这个设置包括不等式约束设置。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2023-1-7 13:14:35
minimize是scipy中optimize模块的一个函数,调用
import scipy.optimize as opt
res=opt.minimize()

主要参数
res=opt.minimize(fun, x0, args=(), method=None, jac=None, hess=None,
             hessp=None, bounds=None, constraints=(), tol=None,
             callback=None, options=None)
#fun:该参数就是costFunction你要去最小化的损失函数,将costFunction的名字传给fun
#x0: 猜测的初始值
#args=():优化的附加参数,默认从第二个开始                 
#method:该参数代表采用的方式,默认是BFGS, L-BFGS-B, SLSQP中的一种,可选TNC
#options:用来控制最大的迭代次数,以字典的形式来进行设置,例如:options={‘maxiter’:400}
#constraints: 约束条件,针对fun中为参数的部分进行约束限制,多个约束如下:
          '''cons = ({'type': 'ineq', 'fun': lambda x: x[0] - x1min},\
             {'type': 'ineq', 'fun': lambda x: -x[0] + x1max},\
             {'type': 'ineq', 'fun': lambda x: x[1] - x2min},\
             {'type': 'ineq', 'fun': lambda x: -x[1] + x2max})'''
#tol: 目标函数误差范围,控制迭代结束  
#callback: 保留优化过程
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群