当前位置: 首页 > news >正文

Python数值计算(33)——simpson 3/8积分公式

1. 背景知识

既然前的Simpson可以通过使用三个点构造二次曲线近似积分,那么,如果点数增加到了4个,然后不就可以构造三次多项式的曲线,实现对目标值的积分吗?

如果采用和上一节介绍的同样的方法,我们可以推导出:

\int_{a}^{b}f(x)dx=\frac{3h}{8}(f(x_0)+3f(x_1)+3f(x_2)+f(x_3))

其中h=(b-a)/3,x_i=a+i*h

2. 算法实现

通过上述原理可以很容易使用Python实现:

# Simpson's 3/8 Rule for Numerical Integration
import numpy as np
def simpson38(f, a, b):h=(b-a)/3x=np.linspace(a,b,4)y=np.vectorize(f)(x)return 3*h*(y[0]+3*y[1]+3*y[2]+y[3])/8.0

 如果使用该方法,计算humps函数在区间[0,1]上的数值积分,其效果如下:

可见误差相比之前有了很大的改善,但还是有27%,还是偏大的。

3. 复合simpson 3/8积分公式

和前面类似,如果将一个大的积分区间,划分为更多个较小的积分区间,在每个积分区间上使用Simpson 3/8积分公式,则可以更加贴近原函数,和复合Simpson 1/3积分公式要求点的个数为偶数类似,这个也要求点的个数为3的倍数。

最终实现效果如下:

http://www.lryc.cn/news/470213.html

相关文章:

  • <项目代码>YOLOv8路面垃圾识别<目标检测>
  • Java中的注解(白金版)
  • actor模型
  • 合约门合同全生命周期管理系统:企业智能合同管理的新时代
  • vscode如何debug环境配置?torchrun与deepspeed库又该如何配置?
  • Qt元对象系统 —— 信号与槽
  • 单细胞配色效果模拟器 | 简陋版(已有颜色数组)
  • 面向对象编程中类与类之间的关系(一)
  • streamlit 实现 flink SQL运行界面
  • 鲸鱼优化算法(Whale Optimization Algorithm, WOA)原理与MATLAB例程
  • MFC七段码显示实例
  • 【日常知识点】到底推不推荐用JWT?
  • 网络编程项目之FTP服务器
  • SpringBoot02:第一个springboot程序
  • 快速入门HTML
  • RabbitMQ是一个开源的消息代理和队列服务器
  • 经典算法思想--并查集
  • 挑战Java面试题复习第2天,百折不挠
  • 【vue之道】
  • 基于麻雀优化算法SSA的CEEMDAN-BiLSTM-Attention的预测模型
  • Linux:指令再认识
  • PHP如何抛出和接收错误
  • 计算机网络:网络层 —— IPv4 地址的应用规划
  • Mongodb命令大全
  • 宇视设备视频平台EasyCVR视频融合平台果园/鱼塘/养殖场/菜园有电没网视频监控方案
  • 面试题:ABCD四个线程,A线程最后执行
  • 代码随想录算法训练营第46期Day43
  • 前端处理API接口故障:多接口自动切换的实现方案
  • 多租户架构的全景分析(是什么?基本概念、实现策略、资源管理和隔离、数据安全与隔离、性能优化、扩展性与升级、案例研究)
  • Git使用问题汇总附带解决方法(持续更新)