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

辛普森公式求函数的近似积分【通用计算】

利用辛普森公式可以近似求出复杂函数的积分值,公式如下:
∫ a b f ( x ) d x ≈ h 3 [ y 0 + y 2 n − 1 + 4 ( ∑ i = 1 n − 1 y 2 i − 1 ) + ∑ i = 1 n − 1 y 2 i ] \int_{a}^{b} f(x) dx \approx \frac{h}{3}\left[ y_0 + y_{2n-1} + 4(\sum\limits_{i=1}^{n-1} y_{2i-1}) + \sum\limits_{i=1}^{n-1} y_{2i} \right] abf(x)dx3h[y0+y2n1+4(i=1n1y2i1)+i=1n1y2i]

其中 y 0 y_0 y0 y 2 n − 1 y_{2n-1} y2n1的值是原函数在等分点上的函数值。

下面是一个简单的示例:

import numpy as npdef calculate_simpson_integral(target_fun, left_zone, right_zone, zone_num):""" 使用辛普森规则计算积分近似值 """# 计算区间的步长step_len = (right_zone - left_zone) / zone_num# 在区间上生成 zone_num+1 个等距的点dots = np.linspace(left_zone, right_zone, zone_num + 1)# 求分段点的函数值fun_values = target_fun(dots)# 利用公式求近似积分值return step_len / 3 * (fun_values[0] + fun_values[-1] +4 * np.sum(fun_values[1:-1:2]) +2 * np.sum(fun_values[2:-2:2]))# 测试
def integral_function(x):""" 定义被积函数"""return x ** 2# 定义区间参数和分区数量
left_zone = 0
right_zone = 1
zone_num = 100
result = calculate_simpson_integral(integral_function, left_zone, right_zone,zone_num)print("定积分的近似值为:", result)

你可以根据实际需要定义被积函数,然后利用calculate_simpson_integral求其在指定区间上的积分值。

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

相关文章:

  • 即插即用 | YOLOv8热力图可视化方法详解,揭秘AI如何「看」世界!【附完整源码】
  • 多线程学习D10 收尾了应该
  • ai可以做思维导图吗?当然是可以的!
  • 景源畅信数字:抖音小店的入住门槛大不大?
  • 鸿蒙开发-ArkTS语言-容器-非线性容器
  • 【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
  • 【设计模式】单例模式的前世今生
  • 厦门网上在线教育系统,线下老师怎么转型到线上网上授课?
  • Spring底层入门(九)
  • 掌握Android Fragment开发之魂:Fragment的深度解析(下)
  • 小巧简单实用的Linux端口转发工具Rinetd
  • HackBar 新手使用教程(入门)
  • <Linux> 权限
  • Nacos Docker 快速部署----解决nacos鉴权漏洞问题
  • 存储或读取时转换JSON数据
  • Spring Data JPA的作用和用法
  • 【go项目01_学习记录08】
  • Java中的线程
  • 顺序表的实现(迈入数据结构的大门)(完整代码)
  • neo4j-5.11.0安装APOC插件or配置允许使用过程的权限
  • mybatis 中 #{}和 ${}的区别是什么?
  • 深入解析C#中的接口设计原则
  • 106短信群发平台在金融和法务行业的应用分析
  • Spring AOP(2)
  • Spring-依赖注入的处理过程
  • 2.用python爬取的保存在text文件中的格式为MP4的视频url
  • Java基于B/S医院绩效考核管理平台系统源码java+springboot+MySQL医院智慧绩效管理系统源码
  • UE 蓝图堆栈调试
  • UE4_摄像机_使用摄像机的技巧
  • ssm115乐购游戏商城系统+vue