scipy求最优解(参数优化)

scipy数值优化
其实使用scipy进行数值优化,就是黑盒优化, 我们不依赖于我们优化的函数的算术表达式。注意这个表达式通常可以用于高效的、非黑盒优化。

scipy中的optimize子包中提供了常用的最优化算法函数实现。我们可以直接调用这些函数完成我们的优化问题。optimize中函数最典型的特点就是能够从函数名称上看出是使用了什么算法。

下面optimize包中函数的概览:

1.非线性最优化
fmin – 简单Nelder-Mead算法
fmin_powell – 改进型Powell法
fmin_bfgs – 拟Newton法
fmin_cg – 非线性共轭梯度法
fmin_ncg – 线性搜索Newton共轭梯度法
leastsq – 最小二乘
2.有约束的多元函数问题
fmin_l_bfgs_b —使用L-BFGS-B算法
fmin_tnc —梯度信息
fmin_cobyla —线性逼近
fmin_slsqp —序列最小二乘法
nnls —解|| Ax - b ||_2 for x>=0
3.全局优化
anneal —模拟退火算法
brute –强力法
4.标量函数
fminbound
brent
golden
bracket
5.拟合
curve_fit– 使用非线性最小二乘法拟合
6.标量函数求根
brentq —classic Brent (1973)
brenth —A variation on the classic Brent(1980)
ridder —Ridder是提出这个算法的人名
bisect —二分法
newton —牛顿法
fixed_point
7.多维函数求根
fsolve —通用
broyden1 —Broyden’s first Jacobian approximation.
broyden2 —Broyden’s second Jacobian approximation
newton_krylov —Krylov approximation for inverse Jacobian
anderson —extended Anderson mixing
excitingmixing —tuned diagonal Jacobian approximation
linearmixing —scalar Jacobian approximation
diagbroyden —diagonal Broyden Jacobian approximation
8.实用函数
line_search —找到满足强Wolfe的alpha值
check_grad —通过和前向有限差分逼近比较检查梯度函数的正确性
参考网上资料,以及从scipy的文档找到的,还有一些没有放上去,这么多,我也没完全搞明白,这里主要讲leastsq和fmin_l_bfgs_b,但是它们的用法基本是一样的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值