SciPy 优化2025年3月17日 | 阅读 3 分钟 优化包提供了各种常用的优化算法。此模块包含以下方面:
Nelder-Mead 单纯形算法Nelder-Mead 单纯形算法提供了 minimize() 函数,该函数用于最小化一个或多个变量的标量函数。 输出 final_simplex: (array([[ 1. , -1.27109375], [ 1. , -1.27118835], [ 1. , -1.27113762]]), array([0., 0., 0.])) fun: 0.0 message: 'Optimization terminated successfully.' nfev: 147 nit: 69 status: 0 success: True x: array([ 1. , -1.27109375]) 最小二乘最小化它用于解决变量有界的非线性最小二乘问题。给定残差(数据的观测值和预测值之间的差异)f(x)(n 个实变量的 n 维实函数)和损失函数 rho(s)(标量函数),least_square 找到成本函数 f(x) 的局部最小值:让我们考虑以下示例 输出 active_mask: array([0., 0.]) cost: 0.0 fun: array([0., 0.]) grad: array([0., 0.]) jac: array([[-30.00000045, 10. ], [ -1. , 0. ]]) message: '`gtol` termination condition is satisfied.' nfev: 4 njev: 4 optimality: 0.0 status: 1 success: True x: array([1., 1.]) 求根
对于单个值方程,有四种不同的求根算法。每种算法都需要一个区间的端点,在该区间内预计会出现根(因为函数改变符号)。
root() 函数用于查找非线性方程的根。有各种方法,例如 hybr(默认)和 MINPACK 的 Levenberg-Marquardt 方法。 让我们考虑以下方程 x2 + 3cos(x)=0 输出 fjac: array([[-1.]]) fun: array([2.22044605e-16]) message: 'The solution converged.' nfev: 10 qtf: array([-1.19788401e-10]) r: array([-4.37742564]) status: 1 success: True x: array([-0.91485648]) 优化曲线拟合曲线拟合是创建曲线的技术。它是一个数学函数,可以最好地拟合一系列数据点,可能受到约束。下面给出一个例子 输出 Sine funcion coefficients: [-0.42111847 1.03945217] Covariance of coefficients: [[3.03920718 0.05918002] [0.05918002 0.43566354]] ![]() SciPy fsolvescipy.optimize 库提供了 fsolve() 函数,该函数用于查找函数的根。它返回由 fun(x) = 0 定义的方程的根,并给定一个起始估计值。 请看以下示例 输出 (array([1.]), array([82.17252895])) 下一主题SciPy 统计 |
我们请求您订阅我们的新闻通讯以获取最新更新。