曲线与分段函数拟合?

2024-04-01

正如标题所示,我正在尝试用分段函数进行曲线拟合。这是一个例子:

import numpy as np
import scipy.optimize as sio

x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 11, 18, 27])

def f(x, a):
    if x <= 2:
        return x + a
    elif x >= 3:
        return x**2 + a

sio.curve_fit(f, x, y)

现在,这会返回以下错误:

ValueError: The truth value of an array with more than one element is ambiguous

通过添加打印函数,我发现这是因为传递给函数“f”的“x”值是numpy数组[0, 1, 2, 3, 4, 5]

我想知道这个问题是否有解决方法。

Thanks!


总体问题是你已经写了f至于标量,但是x and a是 numpy 数组。您的情况都是如此if线,还有return内的if声明。

与您的代码最相似的解决方案是:

import numpy as np
import scipy.optimize as sio

x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 11, 18, 27])

def f(x, a):
    y = np.zeros(len(x))
    for i, xi in enumerate(x): 
        if xi <= 2:
            y[i] =  xi + a
        elif xi >= 3:
            y[i] =  xi**2 + a
    return y

sio.curve_fit(f, x, y)

更向量化的定义f将会:

def f(x, a):
    y = np.zeros(len(x))
    y[:3] += a
    y[3:] = x[3:]**2 + a
    return y
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

曲线与分段函数拟合? 的相关文章

随机推荐

  • 应用程序与数据库驻留连接池

    情况 我需要在 python 中连接到 Oracle 数据库时使用连接池 多个 python 应用程序将使用我开发的辅助连接库 我的思考过程 这里我可以想到两种连接池的方式 1 让连接池由数据库本身维护和管理 由 Oracle 的 DRCP
  • 如何根据输入的行数生成html表格? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我必须使用 jquery 创建一个表 表格的行数将由输入框确定 列数是已知的 提交后 会生成一个表 尝试创建一个小提琴 我对 jque
  • 如果类型是事后定义的,则实例化具有不完整类型的类模板是否格式错误?

    这段代码肯定是格式错误的 因为Foo在实例化点之后专门化 template
  • 我应该在

    现在我们有专门的
  • Matlab - 访问多维数组的一部分

    我正在尝试访问 Matlab 中多维数组的一部分 可以这样做 X 2 3 1 20 5 4 7 然而 元素的数量和范围都不是固定的 所以我想提供数组的索引 对于上面的例子 它们是 ind1 2 1 5 4 ind2 3 20 5 7 对于固
  • C++ 使用 std::string、std::wstring 作为缓冲区

    使用 WinAPI 时 您经常会遇到一些获取 LPWSTR 或 LPSTR 作为参数的方法 有时这个指针实际上应该是指向缓冲区的指针 例如 int GetWindowTextW HWND hWnd LPWSTR lpString int n
  • Amazon S3 使 SSL 与 c# sdk 配合使用时出现问题

    我正在使用亚马逊 AWS NET SDK v1 2 1 以下代码在 DNS 查找失败后引发异常myBucket more https这显然不是它应该寻找的 AmazonS3Config S3Config new AmazonS3Config
  • Python读取时出现权限错误

    import os import rarfile file input Password List Directory rarFile input Rar File passwordList open os path dirname fil
  • 打开的连接数以及连接睡眠状态的含义

    我在我的数据库中运行了这个查询 SELECT DB NAME dbid as DBName COUNT dbid as NumberOfConnections loginame as LoginName FROM sys sysproces
  • 防止正文滚动(移动设备、本机浏览器)

    在 Samsung Galaxy S5 S6 的本机浏览器上 以下 CSS 片段 body overflow hidden 不会阻止主体滚动 有解决方法吗 编辑 如下所述 这也可以通过添加溢出 隐藏到 html 标签来完成 但这引入了窗口滚
  • 如何显示MapKit指南针?

    目前 指南针仅在以下情况下才会显示用户应用旋转手势 否则指南针将被隐藏 不过如果能实现我下面的两个愿望就好了 是否可以一直显示指南针 如何使用 Swift 显示 隐藏指南针视图 您可以在 iOS 11 中使用新功能轻松完成此操作MKComp
  • 一维字符串数组被角度资源解析为二维

    来自服务器的以下 JSON 响应 hello world 正在被 ngResource 服务解析为二维数组 myService factory Name function resource return resource site url
  • Perl 中的 my 和 local 有什么区别?

    我看到它们都用在我正在尝试调试的脚本中 但文献还不清楚 有人能为我揭开这个神秘面纱吗 简短的回答是my将变量标记为词法范围内的私有变量 并且local将动态范围内的变量标记为私有 更容易理解my 因为这会创建通常意义上的局部变量 创建了一个
  • 如何设置依赖gradle任务的属性

    我想设置一个 通用 任务 它将为多个平台构建应用程序包 它使用 javafxpackager 该任务的机制适用于创建所有平台捆绑包 但区别在于任务使用的各种属性 我原以为我会为每个平台创建单独的更高级别的任务 在其中设置平台特定的属性 然后
  • 检测ajax请求

    我正在编写自己的 MVC 框架来练习 并且我有一个 Request 类 我想捕获请求的类型并相应地解析数据 无论是 AJAX JSON 调用还是 HTML XML 请求 我目前使用 SERVER HTTP ACCEPT 以及上面使用 var
  • 了解 SQL Profiler 中的读/写次数

    请参阅此 SQL Profiler 视图中指示的 SQL 语句 所有这些事件都来自一台客户端计算机 该计算机正忙于长时间运行的进程 处理数千行 每次处理一行大约需要 6 5 秒 这是 SQL Profiler 显示的注销之间的时间 尽管实际
  • 如何删除python中的文件夹? rmtree 错误

    我最近遇到了这个麻烦 我需要一个功能来删除 Windows 中的整个文件夹 所以我进行了搜索 这就是我得到的 如何使用 Python 删除 删除不为空的文件夹 https stackoverflow com questions 303200
  • 无法从 IEnumerable 转换为 ICollection

    我定义了以下内容 public ICollection
  • 如何将 unique_ptr 的向量声明为类数据成员?

    我想要一个 unique ptr 的向量作为我正在创建的类的成员 class Foo private vector
  • 曲线与分段函数拟合?

    正如标题所示 我正在尝试用分段函数进行曲线拟合 这是一个例子 import numpy as np import scipy optimize as sio x np array 0 1 2 3 4 5 y np array 2 3 4 1