极限的性质【上】《用Manim可视化》

通过前面的极限的定义,现在是计算极限的时候了。然而,在此之前,我们需要一些极限的性质,这将使我们的工作变得简单一些。我们先来看看这些。

极限的性质:

1.常数对极限的影响

1.首先,我们假设\mathop {\lim }\limits_{x \to a} f\left( x \right)\mathop {\lim }\limits_{x \to a}g\left( x \right)存在,那就是c是常数,那

\mathop {\lim }\limits_{x \to a} \left[ {cf\left( x \right)} \right] = c\mathop {\lim }\limits_{x \to a} f\left( x \right)

 换句话说,我们可以将一个乘法常数从极限中“分解”出来。

 通过一下图像都能证实上面的性质。但前提是,该函数在极限位置存在极限

实现代码 :

from manim import *  class LimitVisualization(Scene):  def construct(self):  # 创建坐标轴  axes = Axes(  x_range=[-1, 7, 1],  # x轴范围从-1到7,步长为1  y_range=[-1, 7, 1],  # y轴范围从-1到7,步长为1  axis_config={"color": BLUE},  # 坐标轴颜色设置为蓝色  )  # 定义函数 f(x) 及其缩放版本 cf(x)  def f(x):  return x**2 - 1  # 这里定义了一个简单的二次函数 f(x)  c = 3  # 常数乘数  def cf(x):  return c * f(x)  # 定义缩放过的函数 cf(x)  # 创建图形  f_graph = axes.plot(f, color=YELLOW, x_range=[-1, 9])  # 绘制 f(x) 的图形,颜色为黄色  cf_graph = axes.plot(cf, color=RED, x_range=[-1, 9])  # 绘制 cf(x) 的图形,颜色为红色  # 创建标签  f_label = axes.get_graph_label(f_graph, label='f(x)', x_val=3)  # 给 f(x) 添加标签  cf_label = axes.get_graph_label(cf_graph, label='cf(x)', x_val=2)  # 给 cf(x) 添加标签  # 在极限点 a 创建一个点  a = 1.5  # 定义 x 接近的点  limit_dot_f = Dot(axes.c2p(a, f(a)), color=YELLOW)  # f(a) 处的点,颜色为黄色  limit_dot_cf = Dot(axes.c2p(a, cf(a)), color=RED)  # cf(a) 处的点,颜色为红色  f01 = f(a)  # 计算 f(a) 的值  f02 = cf(a)  # 计算 cf(a) 的值  # 创建极限值的注释  limit_text_f = MathTex(r"\lim_{x \to a} f(x) = ", f01).next_to(limit_dot_f, RIGHT)  # f(x) 的极限注释  limit_text_cf = MathTex(r"\lim_{x \to a} cf(x) = ", f02).next_to(limit_dot_cf, RIGHT)  # cf(x) 的极限注释  # 添加关于 c 的说明  tex = MathTex(r"\lim_{x \to a} cf(x) = c\lim_{x \to a} f(x)  \\ c=3 ", color=GOLD).next_to(axes.c2p(4, 3 + 3))  self.add(tex)  # 将 c 的文本添加到场景中  # 将所有元素添加到场景中  self.play(Create(axes), Create(f_graph), Create(cf_graph))  # 创建坐标轴和函数图形  self.play(Write(f_label), Write(cf_label))  # 写入标签  self.play(Create(limit_dot_f), Create(limit_dot_cf))  # 创建极限点  self.play(Write(limit_text_f), Write(limit_text_cf))  # 写入极限值注释  # 等待展示极限点  self.wait(2)  # 高亮显式极限值  self.play(limit_dot_f.animate.set_color(ORANGE), limit_dot_cf.animate.set_color(ORANGE))  # 将极限点颜色改为橙色  self.wait(2)  # 淡出所有元素  self.play(FadeOut(axes), FadeOut(f_graph), FadeOut(cf_graph), FadeOut(limit_dot_f), FadeOut(limit_dot_cf), FadeOut(limit_text_f), FadeOut(limit_text_cf))

代码解释:

  1. 导入库:首先导入Manim库,为后续绘图准备。
  2. 创建场景:定义了一个名为LimitVisualization的类,继承自Scene,表示一个图形场景。
  3. 构建设备construct方法用于构建整个场景,包括图表、文本等。
  4. 创建坐标轴:调用Axes类创建坐标轴,设置x和y的范围及颜色。
  5. 定义函数:定义了函数f(x)和其缩放形式cf(x)。这里,f(x)是一个简单的二次函数。
  6. 绘制图表:使用plot方法绘制两条函数曲线。
  7. 创建标签:给每条曲线添加标签,以便于识别。
  8. 绘制极限点:在定义的点a的横坐标处绘制两个极限点,分别对应f(a)cf(a)的值。
  9. 添加极限值注释:在极限点旁边添加文本显示极限的实际值,同时展示常数c的影响。
  10. 动态展示:使用play方法依次展示坐标轴、图形、标签和极限点等元素,并设置等待时间。
  11. 高亮极限点:在等待后,将极限点颜色高亮显示,以便更好地观察。
  12. 淡出效果:最后,使用FadeOut方法将所有元素逐步淡出,完成动画的呈现。

2.函数极限的相加

假设\mathop {\lim }\limits_{x \to a} f\left( x \right)\mathop {\lim }\limits_{x \to a}g\left( x \right)存在,那么

 \mathop {\lim }\limits_{x \to a} \left[ {f\left( x \right) \pm g\left( x \right)} \right] = \mathop {\lim }\limits_{x \to a} f\left( x \right) \pm \mathop {\lim }\limits_{x \to a} g\left( x \right)

 所以,要求和或差的极限我们需要做的就是求各个部分的极限然后用合适的符号把它们组合在一起。这也不局限于两个函数。无论我们用“+”或“-”分隔多少函数,这个事实都是有效的。

 通过一下图像都能证实上面的性质。但前提是,该函数在极限位置存在极限

实现代码:

from manim import *  class LimitPropertyVisualization(Scene):  def construct(self):  # 创建坐标轴  axes = Axes(  x_range=[-1, 4,0.5],  y_range=[-6, 9, 1],y_length=8,axis_config={"color": BLUE},  )  # 定义函数 f(x) 和 g(x)  def f(x):  return x**2 - 1  def g(x):  return x**3 - 4*x - 1  # 定义常量 a  a =1.5  # 所考察的点  # 创建图形  f_graph = axes.plot(f, color=YELLOW, x_range=[0, 3])  g_graph = axes.plot(g, color=RED, x_range=[0, 3])  # 计算极限值  limit_f_a = f(a)  limit_g_a = g(a)  limit_sum_a = limit_f_a + limit_g_a  # 创建合并函数的图形  combined_graph = axes.plot(lambda x: f(x) + g(x), color=GREEN, x_range=[0, 3])  # 创建极限点  limit_dot_f = Dot(axes.c2p(a, limit_f_a), color=YELLOW)  limit_dot_g = Dot(axes.c2p(a, limit_g_a), color=RED)  limit_dot_sum = Dot(axes.c2p(a, limit_sum_a), color=GREEN)LiD=Dot(axes.c2p(1.5,0),radius=0.15,color=RED)self.add(LiD)# 创建极限值注释  limit_text_f = MathTex(r"\lim_{x \to a} f(x) = ", limit_f_a).next_to(limit_dot_f, RIGHT)  limit_text_g = MathTex(r"\lim_{x \to a} g(x) = ", limit_g_a).next_to(limit_dot_g, RIGHT)  limit_text_sum = MathTex(r"\lim_{x \to a} (f(x) + g(x)) = ", limit_sum_a).next_to(limit_dot_sum, UR)  # 添加所有元素  self.play(Create(axes), Create(f_graph), Create(g_graph))  self.play(Create(combined_graph))  self.play(Create(limit_dot_f), Create(limit_dot_g), Create(limit_dot_sum))  self.play(Write(limit_text_f), Write(limit_text_g), Write(limit_text_sum))  # 等待展示  self.wait(2)  # 高亮极限点  self.play(limit_dot_f.animate.set_color(ORANGE), limit_dot_g.animate.set_color(ORANGE), limit_dot_sum.animate.set_color(ORANGE))  self.wait(2)  # 淡出所有元素  self.play(FadeOut(axes), FadeOut(f_graph), FadeOut(g_graph), FadeOut(combined_graph),  FadeOut(limit_dot_f), FadeOut(limit_dot_g), FadeOut(limit_dot_sum),  FadeOut(limit_text_f), FadeOut(limit_text_g), FadeOut(limit_text_sum))

代码解释:

  1. 导入库:使用Manim库进行动画生成。
  2. 创建类:定义类LimitPropertyVisualization,继承自Scene,表示一个动画场景。
  3. 构建坐标轴:创建x和y的坐标轴,以适应函数范围。
  4. 定义函数:定义两个函数 f(x) 和 g(x)。
  5. 计算极限值:计算在点 a=1.5 处的极限值。
  6. 绘制图形:绘制上面定义的函数和它们的总和。
  7. 创建极限点:在图上标记出每个函数的极限值,并且在总和函数的极限值也进行标记。
  8. 添加注释:为每个极限点添加相应的文本注释,显示其极限值。
  9. 动画效果:通过play方法逐步展示图形和注释,以便观众理解极限的性质。
  10. 高亮显示:在等待一段时间后,将极限点的颜色改变以进行高亮显示,最后淡出所有元素。

 3.函数相乘的极限

\mathop {\lim }\limits_{x \to a} \left[ {f\left( x \right)g\left( x \right)} \right] = \mathop {\lim }\limits_{x \to a} f\left( x \right)\,\,\,\mathop {\lim }\limits_{x \to a} g\left( x \right),求乘积的极限就像求和或差的极限一样。只要取出碎片的极限,然后把它们拼回去。同样,与和或差一样,这一事实不仅限于两个函数。

        这个一个很好用的方法,如果让你找一个很复杂的极限的值,也许你找不到,但你可以把他分解出好几个极限来处理,这样很容易找到对应的值。

这是该性质的实现图形

实现代码如下:

from manim import *  class LimitProductPropertyVisualization(Scene):  def construct(self):  # 创建坐标轴  axes = Axes(  x_range=[-1, 4,0.5],  y_range=[-6, 9, 1],y_length=8,axis_config={"color": BLUE},  )  # 定义函数 f(x) 和 g(x)  def f(x):  return x**2 - 1  def g(x):  return x**3 - 4*x - 1  # 定义常量 a  a = 2  # 所考察的点  # 创建图形  f_graph = axes.plot(f, color=YELLOW, x_range=[0, 3])  g_graph = axes.plot(g, color=RED, x_range=[0, 3])  # 计算极限值  limit_f_a = f(a)  limit_g_a = g(a)  limit_product_a = limit_f_a * limit_g_a  # 创建乘积函数的图形  product_graph = axes.plot(lambda x: f(x) * g(x), color=GREEN, x_range=[0, 3])  # 创建极限点  limit_dot_f = Dot(axes.c2p(a, limit_f_a), color=YELLOW)  limit_dot_g = Dot(axes.c2p(a, limit_g_a), color=RED)  limit_dot_product = Dot(axes.c2p(a, limit_product_a), color=GREEN)  # 创建极限值注释  limit_text_f = MathTex(r"\lim_{x \to a} f(x) = ", limit_f_a).next_to(limit_dot_f, RIGHT)  limit_text_g = MathTex(r"\lim_{x \to a} g(x) = ", limit_g_a).next_to(limit_dot_g, UR)  limit_text_product = MathTex(r"\lim_{x \to a} (f(x)g(x)) = ", limit_product_a).next_to(limit_dot_product, UR)  # 添加所有元素  self.play(Create(axes), Create(f_graph), Create(g_graph))  self.play(Create(product_graph))  self.play(Create(limit_dot_f), Create(limit_dot_g), Create(limit_dot_product))  self.play(Write(limit_text_f), Write(limit_text_g), Write(limit_text_product))  # 等待展示  self.wait(2)  # 高亮极限点  self.play(limit_dot_f.animate.set_color(ORANGE), limit_dot_g.animate.set_color(ORANGE), limit_dot_product.animate.set_color(ORANGE))  self.wait(2)  # 淡出所有元素  self.play(FadeOut(axes), FadeOut(f_graph), FadeOut(g_graph), FadeOut(product_graph),  FadeOut(limit_dot_f), FadeOut(limit_dot_g), FadeOut(limit_dot_product),  FadeOut(limit_text_f), FadeOut(limit_text_g), FadeOut(limit_text_product))

代码解释:

  1. 导入库:使用Manim库进行动画生成。
  2. 创建类:定义类LimitProductPropertyVisualization,继承自Scene,表示一个动画场景。
  3. 构建坐标轴:创建x和y的坐标轴,以适应函数范围。
  4. 定义函数:定义两个函数 f(x) 和 g(x)g(x)。
  5. 计算极限值:计算在点 a=2 处的极限值。
  6. 绘制图形:绘制上面定义的函数 f(x)、g(x) 以及它们的乘积函数。
  7. 创建极限点:在图上标记出每个函数的极限值,并且在乘积函数的极限值也进行标记。
  8. 添加注释:为每个极限点添加相应的文本注释,显示其极限值。
  9. 动画效果:通过play方法逐步展示图形和注释,以便观众理解极限的性质。
  10. 高亮显示:在等待一段时间后,将极限点的颜色改变以进行高亮显示,最后淡出所有元素。

4.函数相处的极限

\displaystyle \mathop {\lim }\limits_{x \to a} \left[ {\frac{​{f\left( x \right)}}{​{g\left( x \right)}}} \right] = \frac{​{\mathop {\lim }\limits_{x \to a} f\left( x \right)}}{​{\mathop {\lim }\limits_{x \to a} g\left( x \right)}}{\rm{,}}\,\,\,\,\,条件是 \mathop {\lim }\limits_{x \to a} g\left( x \right) \ne 0。正如在表述中提到的,当求商的极限时,我们只需要考虑分母的极限为零。如果它是0我们就会得到除以0的错误我们需要避免这种情况。

这个一个很好用的方法,如果让你找一个很复杂的极限的值,也许你找不到,但你可以把他分解出好几个极限来处理,这样很容易找到对应的值。

        这是该性质的实现图形

 实现代码:

from manim import *  class LimitQuotientPropertyVisualization(Scene):  def construct(self):  # 创建坐标轴  axes = Axes(  x_range=[-1, 6, 1],  y_range=[-10, 10, 5],  axis_config={"color": BLUE},  )  # 定义函数 f(x) 和 g(x)  def f(x):  return x**2 - 1  def g(x):  return x**3 - 4*x - 1  # 定义常量 a  a = 2  # 所考察的点  # 创建图形  f_graph = axes.plot(f, color=YELLOW, x_range=[-3, 3])  g_graph = axes.plot(g, color=RED, x_range=[-3, 3])  # 计算极限值  limit_f_a = f(a)  limit_g_a = g(a)  limit_quotient_a = limit_f_a / limit_g_a  # 创建商函数的图形  quotient_graph = axes.plot(lambda x: f(x) / g(x), color=GREEN, x_range=[-3, 3])  # 创建极限点  limit_dot_f = Dot(axes.c2p(a, limit_f_a), color=YELLOW)  limit_dot_g = Dot(axes.c2p(a, limit_g_a), color=RED)  limit_dot_quotient = Dot(axes.c2p(a, limit_quotient_a), color=GREEN)  # 创建极限值注释  limit_text_f = MathTex(r"\lim_{x \to a} f(x) = ", limit_f_a).next_to(limit_dot_f, RIGHT)  limit_text_g = MathTex(r"\lim_{x \to a} g(x) = ", limit_g_a).next_to(limit_dot_g, RIGHT)  limit_text_quotient = MathTex(r"\lim_{x \to a} \left(\frac{f(x)}{g(x)}\right) = ", limit_quotient_a).next_to(limit_dot_quotient, DR)  # 添加所有元素  self.play(Create(axes), Create(f_graph), Create(g_graph))  self.play(Create(quotient_graph))  self.play(Create(limit_dot_f), Create(limit_dot_g), Create(limit_dot_quotient))  self.play(Write(limit_text_f), Write(limit_text_g), Write(limit_text_quotient))  # 等待展示  self.wait(2)  # 高亮极限点  self.play(limit_dot_f.animate.set_color(ORANGE), limit_dot_g.animate.set_color(ORANGE), limit_dot_quotient.animate.set_color(ORANGE))  self.wait(2)  # 淡出所有元素  self.play(FadeOut(axes), FadeOut(f_graph), FadeOut(g_graph), FadeOut(quotient_graph),  FadeOut(limit_dot_f), FadeOut(limit_dot_g), FadeOut(limit_dot_quotient),  FadeOut(limit_text_f), FadeOut(limit_text_g), FadeOut(limit_text_quotient))%manim  -qm -v  WARNING LimitQuotientPropertyVisualization

代码解释:

  1. 导入库:使用Manim库进行动画生成。
  2. 创建类:定义类LimitQuotientPropertyVisualization,继承自Scene,表示一个动画场景。
  3. 构建坐标轴:创建x和y的坐标轴,设置适当的范围。
  4. 定义函数:定义f(x)f(x) 和 g(x)g(x),用以计算极限。
  5. 计算极限值:在点 a=1a=1 处计算极限值,并确保 lim⁡x→ag(x)≠0limx→a​g(x)=0。
  6. 绘制图形:分别绘制函数 f(x)f(x)、g(x)g(x) 和它们的商。
  7. 创建极限点:在图上标记出每个函数的极限值以及商函数的极限值。
  8. 添加注释:为极限值添加文本注释,显示各自的极限值。
  9. 动画效果:逐步展示所有图形、极限点和注释,以便观众理解极限的性质。
  10. 高亮显示:在等待一段时间后,将极限点高亮显示,最后淡出所有元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/52840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Origin提取图片数据

第一步: Tool --> Digitizer 第二步:点击文件,导入图片 第三步:设置坐标轴位置和数值(Edit Aix) 滑动鼠标放大图片,将X1移动到0,X2移动到80,Y1移动到97.0&#xff0c…

Kubernetes 上安装 Jenkins

安装 Helm curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash添加 Jenkins Helm 仓库 首先添加 Jenkins Helm 仓库 helm repo add jenkins https://charts.jenkins.io helm repo update安装 Jenkins 使用 Helm 安装 Jenkins 的最新版本&…

本地部署Xinference实现智能体推理工作流(二)

第二篇章 Dify接入 Xinference 部署的本地模型 1. 安装Dify 克隆 Dify 源代码至本地。 git clone https://github.com/langgenius/dify.git 2. 启动Dify 进入 Dify 源代码的 docker 目录,执行一键启动命令: cd dify/docker cp .env.example .env d…

【OWOD论文】开放世界中OD代码_2_模型部分

简介 本文记录OWOD代码中的模型代码部分。数据部分可看我上一个博客【【OWOD论文】开放世界中OD代码_1_数据部分-CSDN博客】 模型代码 1 起步 在代码中找到 detectron2\engine\defaults.py DefaultTrainer类 __init__方法 根据上述 build_model 回溯到 detectron2\modeling\…

无人机校企合作:组装、维修、研发全面提升学生技能方好就业

无人机校企合作在组装、维修、研发等方面全面提升学生技能,进而促进学生就业,是一个具有前瞻性和实践性的教育模式。以下是对该合作模式的详细分析: 一、合作背景与意义 随着无人机技术的快速发展和广泛应用,市场对无人机专业人…

叉车(工业车辆)安全管理系统,云端监管人车信息运营情况方案

近年来,国家和各地政府相继出台了多项政策法规,从政策层面推行叉车智慧监管,加大叉车安全监管力度。同时鼓励各地结合实际,积极探索智慧叉车建设,实现作业人员资格认证、车辆状态认证、安全操作提醒、行驶轨迹监控等&a…

react学习之useState和useEffect

useState useState 可以使函数组件像类组件一样拥有 state,函数组件通过 useState 可以让组件重新渲染,更新视图。 实际使用 setstate()中回调函数的返回值将会成为新的state值回调函数执行时, React会将最新的state值作为参数传递 const A…

【HarmonyOS 4.0】@BuilderParam 装饰器

1. BuilderParam 装饰器 BuilderParam 装饰器用于装饰自定义组件(struct)中的属性,其装饰的属性可作为一个UI结构的占位符,待创建该组件时,可通过参数为其传入具体的内容。参数必须满足俩个条件: 2.1 参数类型必须是个函数&#x…

windows安全软件之火绒杀毒的密码忘记后处理

一、问题描述 某次,想升级系统补丁,但多次尝试后都失败,排查杀毒软件影响过程中,发现火绒杀毒配置了密码保护,但因时间太久,密码已无从考证,那我们应该怎样处理这种情况呢? 二、处…

鸿蒙XComponent组件的认识

概述: XComponent组件作为一种渲染组件,通常用于满足开发者较为复杂的自定义渲染需求,例如相机预览流的显示、游戏画面的渲染、自定义视频播放器等等。其中Native API是其核心内容! 其可通过指定其type字段来实现不同的功能&…

jenkins安装k8s插件发布服务

1、安装k8s插件 登录 Jenkins,系统管理→ 插件管理 → 搜索 kubernetes,选择第二个 Kubernetes,点击 安装,安装完成后重启 Jenkins 。 2、对接k8s集群、申请k8s凭据 因为 Jenkins 服务器在 kubernetes 集群之外,所以…

解决huggingface下载时Username/Password Authentication Failed.问题

项目场景: 使用huggingface 下载数据集。 问题描述 运行命令: wget https://huggingface.co/datasets/yangtaointernship/RealEstate10K-subset/resolve/main/google_scanned_objects.zip?downloadtrue 完整报错如下: --2024-08-30 15:…

Windows通过网线连接开发板共享网络

Windows端 打开更开适配器选项右键WLAN–属性–共享 右键以太网–属性–Internet协议版本4(TCP/IPv4) 记住IP地址 开发板端 查看网卡 ifconfig设置IP在同一网段 ifconfig eth0 192.168.137.2 netmask 255.255.255.0设置网关 route add default gw 192.168.137.1配置DNS su…

哪个牌子的电容笔好用又实惠?西圣、绿联、摩米士电容笔实测大比拼

​现在市面上的电容笔很多,在选择时会让人感到很纠结。那么多的选择,究竟哪个牌子的电容笔好用又实惠呢?一款优质的电容笔应考虑握持舒适度、笔尖材质、电池续航能力以及书写流畅度等因素。作为一位多年的数码爱好者,我今天将针对…

Android APK打包脚本

build.gradle版本 同目录创建config.gradle文件写入需要的信息入 config.gradle文件内容 ext { /*** 自定义APP运行环境* dev: 开发* test: 测试* pro: 生产*/ env "pro" /*** 动态参数配置,根据自己需要添加参数* APP_ID: 包名* VERSION_CODE: 版本号…

国产网卡品牌崛起,做好网络信息安全的“守门人”

在信息技术日新月异的时代背景下,信息安全不仅关乎个人隐私保护,更是国家安全与经济发展的基石。LR-LINK联瑞凭借其前瞻性的视野和深厚的研发实力,成功自主研发出全国产化的FPGA(现场可编程门阵列)网闸隔离卡方案&…

优质企业上网行为管理软件大盘点

员工在上班时间摸鱼,看似是一个小问题,但却会给企业带来诸多不良影响。首先,摸鱼会降低员工的工作效率,导致工作任务无法按时完成,影响项目进度。其次,摸鱼行为会破坏企业的工作氛围,影响其他员…

零基础学习Python(七)

1. 字符串常用方法 lower()、upper():转换为小写字符串、大写字符串 split(str):按照指定字符串str进行分割,结果为列表: email "123qq.com" print(email.split("")) [123, qq.com] count(str)&#xf…

Linux 安装Mysql保姆级教程

一、检查环境 我们登录服务器,查看之前是否安装过mysql rpm -qa | grep mysql 由于我之前安装过,所以这里是有数据的 如果需要删除重新下载,可以使用 rpm -e mysql57-community-release-el7-10.noarch.rpm 二、安装 1、下载 接下来下载安装…

Hive SQL

一、基本数据类型 tinyint 1byte 有符号整数 smallint 2byte 有符号整数 int 4byte 有符号整数 bigint 8byte 有符号整数 boolean 布尔类型,true或者false float 单精度浮点数 double 双精度浮点数 decim…