与黎曼求和 Python 集成

2023-12-28

我一直在尝试用黎曼和求解积分。我的函数有 3 个参数 a、b、d,因此 a 是下限 b 是上限,d 是其中的部分a +(n-1)*d < b。到目前为止,这是我的代码。我的输出是28.652667999999572我应该得到的是28.666650000000388。另外,如果输入 b 低于 a,则必须进行计算,但我已经解决了该问题。

def integral(a, b, d):
    if a > b:
        a,b = b,a
    delta_x = float((b-a)/1000)
    j = abs((b-a)/delta_x)
    i = int(j)
    n = s = 0
    x = a
    while n < i:
        delta_A = (x**2+3*x+4) * delta_x
        x += delta_x
        s += delta_A

        n += 1

    return abs(s)

print(integral(1,3,0.01))

这里没有错误,无论是算法还是代码(或Python)。黎曼和是积分的近似值,本身并不“精确”。您可以近似宽度为 dx 的(小)条纹的面积,例如在 x 和 x+dx 之间,并且 f(x) 与 f(x) 的左上角具有相同宽度和高度的矩形面积。如果函数在从 x 变为 x+dx 时改变其值,则矩形的面积将偏离真实积分。
正如您所注意到的,您可以通过制作越来越薄的切片来使近似值更接近,但代价是更多的计算工作量和时间。 在您的示例中,函数为 f(x) = x^2 + 3*x + 4,并且 [1.0,3.0) 中 x 的精确积分为 28 2/3 或 28.66666...

矩形的近似是一个粗略的近似,你无法改变它。但您可以更改的是代码评估所需的时间,例如 10^8 个步骤而不是 10^3 个步骤。看这段代码:

def riemann(a, b, dx):
    if a > b:
        a,b = b,a
    # dx = (b-a)/n
    n = int((b - a) / dx)
    s = 0.0
    x = a
    for i in xrange(n):
        f_i = (x + 3.0) * x + 4.0
        s += f_i
        x += dx
    return s * dx  

在这里,我使用了 3 个加速技巧,以及一个提高精度的技巧。首先,如果您编写一个循环并且提前知道重复次数,则使用 for 循环而不是 while 循环。速度更快了。 (顺便说一句,循环变量通常是i, j, k...而极限值或最终值是n)。其次,使用xrange代替range对于 python 2.x 的用户来说速度更快。第三,经常计算多项式时要因式分解。从代码中你应该明白我在这里的意思。这样,结果在数值上是稳定的。最后一个技巧:循环中不依赖于循环变量的操作可以在循环结束后提取并应用。在这里,最后与 dx 相乘。

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

与黎曼求和 Python 集成 的相关文章

  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 如何避免使用 python 处理空的标准输入?

    The sys stdin readline 返回之前等待 EOF 或新行 所以如果我有控制台输入 readline 等待用户输入 相反 我想打印帮助并在没有需要处理的情况下退出并显示错误 而不是等待用户输入 原因 我正在寻找一个Pytho
  • 获取 .wav 文件长度或持续时间

    我正在寻找一种方法来找出 python 中音频文件 wav 的持续时间 到目前为止我已经了解了 pythonwave图书馆 mutagen pymedia pymad我无法获取 wav 文件的持续时间 Pymad给了我持续时间 但它不一致
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • Mypy 无法从文字列表推断项目的类型

    我有一个变量x和一个文字列表 例如 0 1 2 我想转换x这些文字之一 如果x在列表中 我将其退回 否则我返回一个后备值 from typing import Literal Set Foo Literal 0 1 2 foos Set F
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 类型错误:需要二进制或 unicode 字符串,得到 618.0

    I ve been trying to implement this ML Linear Model into my dataset https www tensorflow org tutorials estimator linear L
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发

随机推荐

  • 非静态数据成员类推导

    我正在尝试解决类型推导问题 这是演示代码 使用函数重载来定义传递的变量是 int 还是 double std string tcast const double x return Floating Point std string tcas
  • 单击按钮时显示/隐藏元素

    我有两个按钮 显示 和 隐藏 我有一个图像 所以我想知道当我单击 隐藏 按钮时 该图像会消失 当我单击 显示 按钮时 它会再次出现 我不想只使用 CSS 或 JQUERY Javascript 来完成此操作 如果有人可以提供帮助 非常感谢
  • Thrift HBase 客户端 - 支持过滤器和协处理器

    遗憾的是 我的 hbase 客户端语言是 Python 我现在使用 happybase 它基于 thrift AFAIK 我知道到目前为止 thrift 仍然不支持过滤器 协处理器 如果我错了 请纠正我 有人可以给我指出任何可以跟踪计划 进
  • 算法选择建议

    我必须做一个项目 尝试扫描车辆的形状并检测它是什么类型的车辆 扫描将使用称为 车辆扫描仪 的传感器进行 它们只有 50 束光 每束都有接收器和发射器如图所示 我从传感器获得每个光束的原始状态 阻挡或解锁 通过连续扫描 我们可以创建可能非常低
  • VIM textwidth 没有效果

    这感觉像是一个愚蠢的问题 但我在互联网上 或在 VIM 帮助中 找不到答案 我在 Mac OS X 上使用 VIM 7 2 我想做的就是将行换行为 72 个字符 但是这样做 set textwidth 72 没有影响 文本宽度设置正确 我可
  • 使用 MySQL Fulltext(或 sphinx?)进行模糊街道地址搜索[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个数据库表 其中包含来自 Google 地图地理编码响应的地址 Google 缩写了所有方向 西 gt W 东 gt E 等 因
  • AngularJS - 有条件地应用属性?

    有条件地应用一个元素很容易 只需使用 ng show 即可 但是属性呢 IE div div 需要仅对管理员进行排序 因此请执行以下操作 div div 创建自定义指令或模板 并在附加可排序的版本和不附加可排序的版本之间切换
  • IIS 7.5 / WCF - net.tcp 状态未知

    我正在尝试让我的 WCF 服务与netTcpBinding代替wsHttpBinding 但我似乎无法让它工作 我添加了net tcp绑定到 IIS7 5 但状态为未知 当我还删除 http 绑定时 它会在网站上放置一个大红色 X 我必须添
  • Jetpack Compose:对角分割卡片并将内容放入其中

    我试图实现这样的目标 其中 A 是图像 B 也是图像 目前 这是我能做的最好的事情 Card modifier Modifier fillMaxWidth constrainAs image top linkTo parent top st
  • 如何写入管道叉?

    我有以下通过 fork 和 execvp 执行命令的函数 我在 fork 中启动的脚本正在监听输入数据 我如何将数据发送到 myscript int external command int pfds 2 if pipe pfds lt 0
  • 向客户端广播数据包在java中不起作用

    我有多个发射器 配置为当它们收到从服务器通过本地端口 5255 远程端口 5252 发送的广播数据包时发回响应 其中包含字符串 AST show me 0 如发射器手册中所述 这应该可以帮助我扫描本地网络内的所有发射器 我已经实现了一个服务
  • 使用 LINQ to XML 生成动态 sitemap.xml 时如何正确生成 xsi:schemalocation 属性?

    我正在生成动态 sitemap xml 根据站点地图 org http www sitemaps org protocol php这是 sitemap xml 的标头
  • Excel VBA 中的公共与私有/暗淡

    我可以使用一些帮助来理解在 Excel 2013 VBA 的模块中使用 Public 与 Dim 首先 我想说我确实找到了这篇很棒的文章 它具有出色的定义 请参阅下面的链接 但没有示例 我可以使用一些示例来说明如何将公共变量应用到我的项目中
  • 矢量分段故障的矢量

    当我尝试为这个向量向量赋值时 我不断遇到分段错误 我基本上是从图像中读取像素 然后尝试创建一个向量向量 您可以访问该行 然后访问该行上的像素以获取该点的像素 但是当我尝试将特定像素分配给像素值时 它会给我一个分割错误 我使用占位符 255
  • 如何将一个Makefile中的两个不同的源目录输出到一个bin目录?

    我有以下 Makefile 来构建我的 erlang 项目 SUFFIXES erl beam yrl ERL SRC wildcard src erl ERL OBJ patsubst src erl ebin beam ERL SRC
  • Apache Spark:处理 RDD 中的 Option/Some/None

    我正在映射一张 HBase 表 为每个 HBase 行生成一个 RDD 元素 然而 有时该行有坏数据 在解析代码中抛出 NullPointerException 在这种情况下我只想跳过它 我的初始映射器返回一个Option指示它返回 0 或
  • 在android.java中读取Excel文件

    我编写此代码来读取 Excel 文件 并将其粘贴到资产文件夹 我的文件名 book xls 中以读取它 但是当我按下按钮显示文件时它不起作用并且不显示任何内容 请帮助我解决我的问题 多谢 这是我的代码 package com example
  • 关于ImageIcons的方法不起作用

    import java awt import java awt event import javax swing public class Cards extends JFrame private GridLayout grid1 JBut
  • Python:获取默认网关的MAC地址

    Python 有没有什么快速的方法来获取MAC地址 of the 默认网关 我什么也做不了ARP 请求来自Linux我正在运行代码的机器 所以它必须直接来自ARP表 以下 DevFS 文件将提供此信息 proc net arp proc n
  • 与黎曼求和 Python 集成

    我一直在尝试用黎曼和求解积分 我的函数有 3 个参数 a b d 因此 a 是下限 b 是上限 d 是其中的部分a n 1 d lt b 到目前为止 这是我的代码 我的输出是28 652667999999572我应该得到的是28 66665