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

用Manim计算和可视化某个函数图的微分切割线

   一,介绍 

       在微积分中,切线是函数图形在某一点的瞬时变化率,表示该点的导数。相较于割线,切线与函数在该点的斜率一致。利用 Manim,可以通过选择一个特定的 x 值,在该点计算函数图的切线。首先,确定该点的 y 值和切线的斜率(导数)。然后,生成切线并将其可视化,帮助人们更直观地理解函数的局部行为。这种可视化不仅清晰展现切线的特点,还能为学习微分提供直观支持,激发对数学的兴趣。

二,实现可视化

构造函数:

get_secant_slope_group(x, graph, dx=None, dx_line_color=ManimColor('#FFFF00'),dy_line_color=None, dx_label=None, dy_label=None, include_secant_line=True, 
secant_line_color=ManimColor('#83C167'), secant_line_length=10)

         该函数 get_secant_slope_group 用于计算和可视化某个函数图形的割线(secant line)。割线是连接函数图形上两点的直线,其斜率表示两点之间的平均变化率(或称为割线斜率)。

参数说明

  • x: 一个特定的 x 值,用于确定割线的计算位置。
  • graph: 需要可视化的图形对象,通常是某个函数的图形。
  • dx: x 方向的增量,用来确定割线的两个点。若未提供,可能使用默认值。
  • dx_line_color: dx 线的颜色,默认设置为明亮的黄色。
  • dy_line_color: dy 线的颜色。可以根据需求自定义。
  • dx_label: dx 线的标签,通常是增量的数值或含义。
  • dy_label: dy 线的标签,表示 y 方向的增量。
  • include_secant_line: 一个布尔值,决定是否包含割线。如果为 True,则会包含割线。
  • secant_line_color: 割线的颜色,默认设置为绿色。
  • secant_line_length: 割线的长度,用于调整可视化中的割线长度。

示例1:

class GetSecantSlopeGroupExample(Scene):def construct(self):ax = Axes(x_range=[-1, 7],y_range=[-1, 7],x_length=15,  # x轴长度  y_length=8,  # y轴长度  ).add_coordinates().set_color(PURPLE)graph = ax.plot(lambda x: 1 / 4 * x ** 2, color=BLUE)slopes = ax.get_secant_slope_group(x=2.0,graph=graph,dx=0.5,dx_label=Tex("dx = 1.0"),dy_label="dy",dx_line_color=GREEN_B,secant_line_length=6,secant_line_color=RED_D,)self.add(ax, graph, slopes)

运行结果:

 示例2:

from manim import *  class SecantSlope1234(Scene):  def construct(self): ax = Axes( ).add_coordinates().set_color(PURPLE)# 定义一个函数  graph = ax.plot(lambda x: x**2, x_range=[-2, 2])  # 显示函数图像self.add(ax)self.add(graph) # 设置x位置和增量  x_value = 1  dx = 0.5  # 获取割线及其相关可视化元素  secant_slope_group = ax.get_secant_slope_group(  x=x_value,  graph=graph,  dx=dx,  dx_line_color=PURPLE,  dy_line_color=GRAY_A,  dx_label=Tex("dx") , dy_label=Tex("dy") , include_secant_line=True,  secant_line_color=RED_D,  secant_line_length=5  )  # 显示割线和相应的标签  self.play(Create(secant_slope_group))  self.wait(2)  

运行结果:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网站或者网页Cookie 启用说明
  • 成都云飞浩容文化传媒有限公司共绘电商服务新蓝图
  • Mistral AI:欧洲AI新星的崛起之路
  • 笔记:Java生产环境服务器卡顿排查
  • AppBoot:像 Django 一样使用 FastAPI
  • 记录|如何统一管理多个同一个对象?
  • Apache Kylin 系列入门教程
  • datawind可视化查询-日期函数
  • 基于XxlCrawler的Java执行JS渲染方式实战-以获取商飞C919飞行照片为例
  • 【学习笔记】Day 4 - Day 5
  • Javascript常见算法(二)【学习】
  • 常见中间件漏洞复现之【Jboss】!
  • React18+Vite+Eectron从入门到实战系列之一环境安装篇
  • 为Python添加模块搜索路径
  • 【ROS2】rmf_demo使用
  • Android组件 - 收藏集 - 掘金
  • Angular 响应式表单 基础例子
  • C++11: atomic 头文件
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Fundebug计费标准解释:事件数是如何定义的?
  • javascript 哈希表
  • Mocha测试初探
  • mongodb--安装和初步使用教程
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • MySQL-事务管理(基础)
  • Vue实战(四)登录/注册页的实现
  • zookeeper系列(七)实战分布式命名服务
  • 将回调地狱按在地上摩擦的Promise
  • 解析带emoji和链接的聊天系统消息
  • 坑!为什么View.startAnimation不起作用?
  • 力扣(LeetCode)965
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 延迟脚本的方式
  • Java数据解析之JSON
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • $.ajax()方法详解
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Java)【深基9.例1】选举学生会
  • (javaweb)Http协议
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (七)Java对象在Hibernate持久化层的状态
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET Core 中插件式开发实现
  • .Net Core缓存组件(MemoryCache)源码解析
  • .net Stream篇(六)