Python 中的梯形规则

2023-12-02

我正在尝试在 Python 2.7.2 中实现梯形规则。我写了以下函数:

def trapezoidal(f, a, b, n):
    h = float(b - a) / n
    s = 0.0
    s += h * f(a)
    for i in range(1, n):
        s += 2.0 * h * f(a + i*h)
    s += h * f(b)
    return s

然而, f(lambda x:x**2, 5, 10, 100) 返回 583.333 (它应该返回 291.667),所以显然我的脚本有问题。但我看不出它。


你落后了两倍。确实,梯形法则正如数学课上所教的那样,会使用像这样的增量

s += h * (f(a + i*h) + f(a + (i-1)*h))/2.0

(f(a + i*h) + f(a + (i-1)*h))/2.0计算网格上两个相邻点处函数高度的平均值。

由于每两个相邻的梯形都有一条公共边,因此上面的公式需要对函数求值的频率是必要的两倍。

更有效的实现(更接近您发布的内容)将结合相邻迭代中的常用术语for-loop:

f(a + i*h)/2.0 + f(a + i*h)/2.0 =  f(a + i*h) 

到达:

def trapezoidal(f, a, b, n):
    h = float(b - a) / n
    s = 0.0
    s += f(a)/2.0
    for i in range(1, n):
        s += f(a + i*h)
    s += f(b)/2.0
    return s * h

print( trapezoidal(lambda x:x**2, 5, 10, 100))

这产生

291.66875
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的梯形规则 的相关文章

  • 如何恢复tensorflow inceptions检查点文件(ckpt)?

    I have inception resnet v2 2016 08 30 ckpt文件是预先训练的初始模型 我想使用恢复这个模型 saver restore sess ckpt filename 但为此 我将需要编写训练该模型时使用的变量
  • 让 VoiceChannel.members 和 Guild.members 返回完整列表的问题

    每当我尝试使用 VoiceChannel members 或 Guild members 时 它都不会提供适用成员的完整列表 我从文本命令的上下文中获取 VoiceChannel 和 Guild 如下所示 bot command name
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • PyQt 使用 ctrl+Enter 触发按钮

    我正在尝试在我的应用程序中触发 确定 按钮 我当前尝试的代码是这样的 self okPushButton setShortcut ctrl Enter 然而 它不起作用 这是有道理的 我尝试查找一些按键序列here http ftp ics
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 打印数字时添加千位分隔符[重复]

    这个问题在这里已经有答案了 我真的不知道这个问题的 名称 所以它可能是一个不正确的标题 但问题很简单 如果我有一个数字 例如 number 23543 second 68471243 我想要它使print 像这样 23 54368 471
  • Python 3:将字符串转换为变量[重复]

    这个问题在这里已经有答案了 我正在从 txt 文件读取文本 并且需要使用我读取的数据之一作为类实例的变量 class Sports def init self players 0 location name self players pla
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • 如何将 GAE 中一种 Kind 中的所有实体复制到另一种 Kind 中,而无需显式调用每个属性

    我们如何使用function clone entity 如中所述在 Python 中复制 Google App Engine 数据存储中的实体 而无需在 编译 时知道属性名称 https stackoverflow com question
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • PySpark groupByKey 返回 pyspark.resultiterable.ResultIterable

    我试图找出为什么我的 groupByKey 返回以下内容 0
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 使用 AJAX 更新后 Jquery 点击不起作用

    我已经阅读了一些关于我的问题的内容 但仍然没有得到正确的答案 我尝试了 on 方法 它仍然不起作用 我正在使用 Laravel foreach orders as order tr class td order menus name td
  • 如何清除徽章号码同时保留通知中心

    I use UIApplication sharedApplication setApplicationIconBadgeNumber 0 清除徽章号码 它工作正常 但远程通知同时被删除 还有许多其他问题需要清除通知中心 但我不想清除它们
  • SQL 查询澄清

    我有两张桌子医生和计费 我希望查看治疗多名患者的医生的姓名 医生编号和总费用 doctor表列如下 doctorid dname 计费表列如下 billid patientid doctorid fees 我尝试了以下代码 但出现错误 指出
  • 如何在 Android/Linux 上构建 OpenSSL ?

    你好 我需要为 Android NDK r5b 构建 OpenSSL 库 今天将是我的 useles 战斗的第二天 这是我所做的简短列表 下载 https github com fries android external openssl
  • 扩展 HashMap 并仅同步 put

    我最近在我们的代码库中遇到一个类 它扩展了 HashMap 并同步了 put 方法 除了比使用 ConcurrentHashMap 效率低之外 扩展 HashMap 并仅同步 put K V 可能会出现什么样的问题 假设我们不关心 get
  • 如何ajax jsf 2输出链接

    我想制作一个可以在ajax上运行的网页 一切ajax 我的意思是 每当您单击链接 我指的是 来使用另一个链接中的数据更改某个 div 时 例如
  • 如何使用 Jersey JSON POJO 支持?

    我有一个对象 我想将其作为 RESTful 资源以 JSON 形式提供 我像这样打开了 Jersey 的 JSON POJO 支持 在 web xml 中
  • 比较两个枚举变量,无论它们的关联值如何

    考虑这个枚举 enum DataType case One data Int case Two value String Swift 具有模式匹配来将枚举与关联值进行比较 如下所示 let var1 DataType One data 12
  • img.onerror 似乎不适用于 IE8

    我正在尝试从网址加载图像来检查互联网连接 当没有互联网连接时 它应该显示一个 dojo 警告对话框 这适用于 Firefox 但不适用于 IE8 以下是代码片段 var img new Image img src userGuideUrl1
  • 您可以从扩展程序访问 chrome:// 页面吗?

    当你编写manifest json文件时 你必须指定matches用于您的内容脚本 这http and https工作正常 但如果我尝试包括chrome 或其任何变体 我收到错误消息 指出我正在尝试对我的应用程序使用无效的方案matches
  • 如何防止 Visual Basic 2012 中以下代码的 SQL 注入

    我对如何防止 SQL 注入感到困惑 我在网上查看过 我是使用存储过程 还是创建变量 我完全迷失了 Try connection Open we got here so our connection to the db is sound ch
  • Windows Phone 8 模拟器仅返回雷蒙德位置

    我正在使用以下代码 Geolocator myGeolocator new Geolocator DesiredAccuracy PositionAccuracy High Geoposition myGeoposition await m
  • WPF - 跨线程事件

    我的问题是我想使用新线程在画布中添加项目 所以我有多个方法 底部的示例 它们生成例如图像并设置一些属性 然后他们应该通过事件回调生成的思考 以下是我调用的为画布生成想法的线程的一部分 Here I create the event in t
  • 将表名作为参数传递给 SqlCommand 的问题

    这个问题的目标是避免SQL注入 我有查询 选择 插入 更新 删除 当我需要发送表名作为参数时 我该怎么做 我将非常感谢你的帮助 insertCommand CommandText update tableName set code code
  • jQuery 可选定制

    我有一个 jQuery 可供选择 如下所示 它实际上是一个有序列表 有序列表位于名为 myBorderDiv 的 div 内 当我按下 control 并将鼠标悬停在项目上时 所有项目都会出现不需要的效果 在 IE8 中 如下图所示 如何克
  • PHP $_SESSION 标头重定向后为空

    当我进行标头重定向时 我丢失了 SESSION 中的数据 当我使用调试器完成此操作时 我可以在 exit 之前看到 SESSION 中的所有数据 登录 php 确保您正在使用该功能session start 在 if 语句之前myaccou
  • Google 表格:根据第 1 行中的日期隐藏列

    我没有在 Excel 或 Google Sheets 中编写脚本的经验 因此我尝试扩展一下 看看是否有解决我的问题的方法 我们在厨房改造业务中使用 Google 表格制作每周日历 我们从左到右组织几周 并在这些栏中列出我们当前正在从事的工作
  • 如何解决机器人框架中测试自动化的 ssl 证书错误

    通过机器人框架运行自动化测试时 我的 Web 应用程序出现 ssl 证书错误 我尝试了下面带有不同镶边选项的代码 但没有一个在有或没有布尔值的情况下也能工作 list Create List unsafely treat insecure
  • 打印数组元素

    以下 C 程序的预期输出是打印数组元素 但实际运行时却并非如此 include
  • Python 中的梯形规则

    我正在尝试在 Python 2 7 2 中实现梯形规则 我写了以下函数 def trapezoidal f a b n h float b a n s 0 0 s h f a for i in range 1 n s 2 0 h f a i