前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数值积分|自适应辛普森积分公式

数值积分|自适应辛普森积分公式

作者头像
fem178
发布于 2020-06-09 03:43:55
发布于 2020-06-09 03:43:55
4K00
代码可运行
举报
运行总次数:0
代码可运行

数值积分| 辛普森公式

提到,辛普森积分最简单的形式是

\int_a^b f(x) dx \approx \frac{h}{3}(y_0+4y_1+y_2)

也就是说至少要三个积分点,两个积分子区间。所以,自适应辛普森积分公式要从S1起步,即

S_1=\frac{h_1}{3}[f(a)+4f(a+h_1)+f(b)] \quad (1)

(1)

式与自适应梯形公式

T_0=h[\frac{f(a)}{2}+\frac{f(b)}{2}]
T_1=h_1[\frac{f(a)}{2}+f(a+h_1)+\frac{f(b)}{2}]

比较,可得

S_1=\frac{4T_1-T_0}{3}\quad (2)
S_2=\frac{h_2}{3}[f(a)+4f(a+h_2)+2f(a+2h_2)+4f(a+3h_2)+f(b)]=\frac{4T_2-T_1}{3} \quad (3)

由此可以得到递推式

S_k=\frac{4T_k-T_{k-1}}{3}\qquad (4)

若以

\epsilon

表示前后两次计算结果的相对误差,即

|S_k-s_{k-1}| < \epsilon|S_k| \qquad (5)

若满足要求,则停止计算。python代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

import math
###自适应辛普森公式求积分
### y = 1/( 1+x^2 )


def Func(x):
    return 1/( 1+pow(x,2) )
    

def AdaptiveSimpsonCtrl(Func, a, b, eps = 1e-6):
    kmax = 9000   #最大迭代步数
    h = b-a       # 积分区间
    n = 1
    t0 = 0.5*h*(Func(a) + Func(b))  
    
    for k in range(1,kmax+1):
        sumf = 0
        for i in range(1,n+1): sumf += Func(a+(i-0.5)*h)
        
        t = 0.5*(t0 + h*sumf)
        
        s = (4*t - t0)/3
        
        if (k > 1):
            if (math.fabs(s-s0) <= eps * math.fabs(s)): break
            if (math.fabs(s) <= eps and math.fabs(s) <= math.fabs(s-s0)): break
            
        h *= 0.5
        n *= 2
        s0 = s
        t0 = t
        
    if (k >= kmax): print("已经达到最大迭代步数!")
    
    return s
    

S = AdaptiveSimpsonCtrl(Func, 0, 1, eps = 1e-6)
print(S)

计算结果是0.7853981628062056,精确值为

\frac{\pi}{4}

算法基本原理:把原区间分为一系列小区间(n份),在每个小区间上都用小的梯形面积来近似代替原函数的积分,当小区间足够小时,就可以得到原来积分的近似值,直到求得的积分结果满足要求的精度为止。但是这个过程中有一个问题是步长的取值,步长太大精度难以保证,步长太小会导致计算量的增加。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数值分析与有限元编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Spring Boot + flowable 快速实现工作流
来源:https://blog.csdn.net/duan18888/article/details/124881904 今天分享一个不错的工作流引擎:flowable! 1. flowable-ui部署运行 flowable-6.6.0 运行 官方demo 参考文档: “ https://flowable.com/open-source/docs/bpmn/ch14-Applications/ ” 1、从官网下载flowable-6.6.0 : https://github.com/flowable/fl
程序猿DD
2023/04/04
1.4K0
Spring Boot + flowable 快速实现工作流
最近进行的一次技术选型(工作流引擎)及相关知识介绍
最近有个新项目,需要实现类似工作流引擎的效果,如果不知道是啥,看完本文就懂了。公司内其实也有些自研的,可能就是不像开源的这些那样,还支持这个那个规范,都是基于需求定制开发的,扩展性稍微差点。所以,这次其实几个同事,分工调研了几个开源的和公司内的,开源的包括activiti、flowable、camunda,我这边主要调研了flowable、camunda,同事调研了activiti和公司内部的。
低级知识传播者
2022/03/28
2.2K0
最近进行的一次技术选型(工作流引擎)及相关知识介绍
采用springboot+flowable快速实现工作流
对于JAVA领域来说一说起工作流框架第一浮现我在脑海中的便是大名鼎鼎的Activiti了。很久以前学习Activiti框架时我也曾记录过一篇文章。见链接:工作流框架Activiti常用功能初探 尽管当时只是学习了一下在之后的相关工作和项目中并没有用到,通过学习后了解了下, 仅对于知识广度进行了扩宽。
全栈程序员站长
2022/07/01
1.9K0
采用springboot+flowable快速实现工作流
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/05/23
2.6K0
史上最全的工作流引擎 Activiti 学习教程(值得收藏)
工作流引擎架构设计
最近开发的安全管理平台新增了很多工单申请流程需求,比如加白申请,开通申请等等。最开始的两个需求,为了方便,也没多想,就直接开发了对应的业务代码。
AlwaysBeta
2023/01/12
3.3K0
我也没想到 Springboot + Flowable 开发工作流会这么简单
公司内部的OA系统最近要升级改造,由于人手不够就把我借调过去了,但说真的我还没做过这方面的功能,第一次接触工作流的开发,还是有点好奇是个怎样的流程。
程序员小富
2020/08/28
8750
我也没想到 Springboot + Flowable 开发工作流会这么简单
SpringBoot+flowable快速实现工作流,so easy!
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
3.4K0
工作流引擎之Activiti使用总结
在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用的工作流引擎是公司一些牛人开发的(据说是用一个开源的引擎修改的),名称叫CoreFlow;功能相对Activiti来说比较弱,但是能满足日常的使用,当然也有不少的问题所以后来我们只能修改引擎的代码打补丁。
lyb-geek
2018/07/26
4.4K0
工作流引擎之Activiti使用总结
工作流引擎 Activiti 万字详细入门
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。
全栈程序员站长
2022/09/08
3.5K0
工作流引擎 Activiti 万字详细入门
七、springboot整合flowable(工作流)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143284.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
2.9K0
七、springboot整合flowable(工作流)
CabloyJS自带工作流引擎的文档清单
## 文档清单 CabloyJS自带`工作流引擎`文档已经整理出来,欢迎大家围观、拍砖 - 介绍 - [介绍](https://cabloy.com/zh-cn/articles/flow-introduce.html) - [演示:CMS审批工作流](https://cabloy.com/zh-cn/articles/ddda3ea8638d4d2b88fb57df7ed67107.html) - [单元测试用例集](https://cabloy.com/zh-cn/articles/b8
zhennann
2021/01/18
4810
工作流引擎之activiti三种不同的表单及其应用
这个恐怕是初次接触工作流最多的话题之一了,当然这个不是针对Activiti来说的,每个工作流引擎都会支持多种方式的表单。目前大家讨论到的大概有三种。
lyb-geek
2018/07/26
4.6K0
工作流引擎之activiti中的排他网关和并行网关
排他网关.png
lyb-geek
2018/07/26
3.9K0
工作流引擎之activiti中的排他网关和并行网关
SpringBoot入门建站全系列(十九)集成Activiti做工作流
Activiti作为一个流行的开源工作流引擎,正在不断发展,其6.0版本以API形式提供服务,而之前版本基本都是要求我们的应用以JDK方式与其交互,只能将其携带到我们的应用中,而API方式则可以服务器独立运行方式,能够形成一个专网内工作流引擎资源共享的方式。
品茗IT
2019/08/23
1.3K0
工作流引擎之activiti-modeler在线流程设计器流程节点校验
由于项目其前端框架主要用iview,项目组缺乏有angular.js开发经验的伙伴,又因为工期原因,没法空出多余时间进行angular研究,因此后面采用的后端保存校验的方式,本文主要介绍以后端保存校验
lyb-geek
2018/12/24
8.2K0
如何控制工作流中的流程流转?工作流流程元素之顺序流和网关的详细解析
当前条件表达式只能使用 使用的表达式需要返回boolean值,否则会在解析表达式时抛出异常
攻城狮Chova
2022/01/22
1.5K0
如何控制工作流中的流程流转?工作流流程元素之顺序流和网关的详细解析
Activiti工作流_activiti使用教程
Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和云架构,提供技术实现。
全栈程序员站长
2022/11/10
6560
Activiti工作流_activiti使用教程
Spring和Activiti工作流整合详解
Activiti作为一个流行的开源工作流引擎,正在不断发展,其6.0版本以API形式提供服务,而之前版本基本都是要求我们的应用以JDK方式与其交互,只能将其携带到我们的应用中,而API方式则可以服务器独立运行方式,能够形成一个专网内工作流引擎资源共享的方式。
品茗IT
2019/09/12
1.2K0
工作流引擎Activiti系列(一)——初识[通俗易懂]
几乎任何一个公司的软件开发都会涉及到流程,以往我们可能是这么实现的:业务表添加标志位标识流程的节点状态,关联批注表实现审核意见,根据一些业务数据分析处理逻辑,分配任务到用户,节点的调度,审批等…..这其实是很繁琐的,且不说开发起来比较混乱,维护起来更是难上加难:
全栈程序员站长
2022/11/16
8690
工作流引擎Activiti系列(一)——初识[通俗易懂]
七万字掌握热门工作流引擎框架Activiti7,附带视频讲解哦
  工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。文章中涉及的相关软件资料扫左侧哦。
用户4919348
2022/01/07
1.5K0
七万字掌握热门工作流引擎框架Activiti7,附带视频讲解哦
推荐阅读
相关推荐
Spring Boot + flowable 快速实现工作流
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档