当前位置: 首页 > 面试题库 >

Python曲线拟合库,允许我为参数分配边界

章茂
2023-03-14
问题内容

我希望能够执行拟合,使我可以将任意曲线函数拟合到数据,并允许我在参数上设置任意界限,例如,我想拟合函数:

f(x) = a1(x-a2)^a3\cdot\exp(-\a4*x^a5)

说:

  • a2 在以下范围内: (-1, 1)
  • a3并且a5是积极的

有一个很好的scipy
curve_fit

函数,但是它不允许指定参数范围。还有一个不错的http://code.google.com/p/pyminuit/库,该库可以进行泛型最小化,并且可以设置参数的范围,但在我的情况下,它没有涵盖范围。


问题答案:

注意:SciPy的0.17版中的新功能

假设您想对数据拟合模型,如下所示:

y=a*t**alpha+b

并限制了alpha

0<alpha<2

而其他参数a和b保持空闲。然后,我们应按以下方式使用curve_fit的bounds选项:

import numpy as np
from scipy.optimize import curve_fit
def func(t, a,alpha,b):
     return a*t**alpha+b
param_bounds=([-np.inf,0,-np.inf],[np.inf,2,np.inf])
popt, pcov = curve_fit(func, xdata, ydata,bounds=param_bounds)

来源在这里。



 类似资料:
  • 错误:C:\用户\Aidan\Anaconda3\lib\site-包\sepy\优化\minpack.py:794: OptimizeWarning:参数的协方差无法估计 类别=OptimizeWarning) ---------------------------------------------------------------------------()14 plt中的TypeErro

  • 那么为什么分布的矩与分布的矩不匹配呢?在下面代码的一次运行中,(0.052)的平均值可能是(0.01)的5倍,有时甚至是负值

  • 本文向大家介绍Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】,包括了Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现曲线拟合操作。分享给大家供大家参考,具体如下: 这两天学习了用python来拟合曲线。 一、环境配置 本人比较比较懒,所以下载的全部是

  • 问题内容: 我有一组近似于2D曲线的点。我想将Python与numpy和scipy配合使用,以找到近似适合这些点的三次贝塞尔曲线路径,在该路径中,我指定两个端点的确切坐标,并返回其他两个控制点的坐标。 我最初以为可以做我想做的事,但是似乎迫使曲线穿过每个数据点(因为我想您希望进行插值)。我以为我走错了路。 我的问题与此相似:如何将贝塞尔曲线拟合到一组数据?,除了他们说他们不想使用numpy。我的偏

  • 本教程演示了如何使用TensorFlow.js运算符重头构建小型玩具模型. 我们将使用多项式函数生成一些合成数据的曲线. 先决条件 本教程假设您熟悉TensorFlow.js的基本构建块介绍在TensorFlow.js中的核心概念:张量,变量和操作.我们建议在完成本教程之前完成核心概念。 运行代码 本教程重点介绍用于构建模型和其系数的TensorFlow.js代码.可以在此处找到本教程的完整代码(

  • 问题内容: 我试着用指数拟合一些数据已经有一段时间了scipy.optimize.curve\u fit曲线拟合但我真的有困难。我真的看不见有什么理由不起作用,但它只是产生了一条海峡线,不知道 为什么? 任何帮助都将不胜感激 问题答案: 数值算法往往更好地工作时,没有饲料非常小(或 (大)数字。 在本例中,图表显示数据的x和y值非常小。如果 如果缩放它们,拟合效果会更好: Note that af