Python 基于积分原理计算定积分并可视化数值积分计算的动画过程

简介: 积分原理计算定积分并可视化

一、问题描述


有这样一个问题,如下所示:



image.png


二、代码实现


1.  并基于积分原理计算 image.png 的值  


deffunc(x):
returnx**3+1down=0upper=1interval=np.linspace(start=down, stop=upper, num=100)
result=0foriinrange(0, len(interval) -1):
left=interval[i]
right=interval[i+1]
width=right-leftheight=func(left)
area=width*heightresult+=areaprint(f"{result:.2f}")


结果如下:



取 50 个矩形计算数值积分的时候,已经可以得到 1.24 的结果。


2. 可视化积分的动画过程


导入需要的依赖库:


importnumpyasnpimportmatplotlib.pathaspathimportmatplotlib.pyplotaspltimportmatplotlib.patchesaspatchesfromIPython.displayimportHTMLfrommatplotlib.animationimportFuncAnimationimportwarningswarnings.filterwarnings("ignore")


其中,numpy 用来生成点数据,path 是用来生成路径,patches 通过路径连接绘制图像。


更新函数如下:


# 更新函数defupdate(frame):
globalpoints, verts, codes# x轴间隔距离  每个bindx= (interval[1] -interval[0]) /binspoints=np.append(points, [[frame, func(frame)]], axis=0)
verts=np.append(verts,
                          [[frame, 0], [frame, func(frame)], [frame+dx, func(frame)], [frame+dx, 0]], axis=0)
ln[0].set_data(list(zip(*points)))
codes.extend([path.Path.MOVETO] + [path.Path.LINETO] *3)
barpath=path.Path(verts, codes)
patch=patches.PathPatch(barpath,
facecolor='blue',
edgecolor='yellow', alpha=0.6)
ax.add_patch(patch)
returnpatch, ln[0]


初始化 fig 对象与 FuncAnimation 启动动画:


fig, ax=plt.subplots(figsize=(6, 4), dpi=100)
ax.axis(interval)
globalpoints, verts, codescodes= []
verts=np.empty((0, 2), np.float64)
points=np.empty((0, 2), np.float64)
plt.rcParams['font.sans-serif'] = ['Times New Roman']
plt.rcParams['axes.unicode_minus'] =Falseln=plt.plot([], [], 'ro')
# 设置坐标轴刻度标签的大小plt.tick_params(axis='x', direction='out',
labelsize=12, length=3.6)
plt.tick_params(axis='y', direction='out',
labelsize=12, length=3.6)
# x y 轴标签   标题   字体设置plt.xlabel("x", 
fontdict={"size": 16, "weight": "bold", "color": "black"})
plt.ylabel("f(x)",
fontdict={"size": 16, "weight": "bold", "color": "black"}
          )
plt.grid(alpha=0.48, ls=":")
# FuncAnimation动画  传入fig对象、更新函数 framesanim=FuncAnimation(fig, update,
frames=np.linspace(*interval[:2], bins),
                        )


Python代码跑起来,如下所示:



补充学习:


https://blog.csdn.net/lhys666/article/details/123451524

https://blog.csdn.net/lhys666/article/details/122776649

目录
相关文章
|
1月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
355 0
|
1月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
219 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
2月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
691 0
机器学习/深度学习 算法 自动驾驶
509 0
|
2月前
|
数据可视化 数据挖掘 大数据
基于python大数据的水文数据分析可视化系统
本研究针对水文数据分析中的整合难、分析单一和可视化不足等问题,提出构建基于Python的水文数据分析可视化系统。通过整合多源数据,结合大数据、云计算与人工智能技术,实现水文数据的高效处理、深度挖掘与直观展示,为水资源管理、防洪减灾和生态保护提供科学决策支持,具有重要的应用价值和社会意义。
|
2月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
985 2
|
2月前
|
数据可视化 搜索推荐 大数据
基于python大数据的北京旅游可视化及分析系统
本文深入探讨智慧旅游系统的背景、意义及研究现状,分析其在旅游业中的作用与发展潜力,介绍平台架构、技术创新、数据挖掘与服务优化等核心内容,并展示系统实现界面。
|
2月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
235 0

推荐镜像

更多