manim动画:利用极限的定义证明极限。

devtools/2024/10/16 0:22:33/

函数的证明

极限的定义来证明下面的极限

\mathop {\lim }\<a class=limits_{x \to 4} {x^2} + x - 11 = 9" class="mathcode" src="https://latex.csdn.net/eq?%5Cmathop%20%7B%5Clim%20%7D%5Climits_%7Bx%20%5Cto%204%7D%20%7Bx%5E2%7D%20&plus;%20x%20-%2011%20%3D%209" />

 要用极限的定义证明 \mathop {\lim }\<a class=limits_{x \to 4} {x^2} + x - 11 = 9" class="mathcode" src="https://latex.csdn.net/eq?%5Cmathop%20%7B%5Clim%20%7D%5Climits_%7Bx%20%5Cto%204%7D%20%7Bx%5E2%7D%20&plus;%20x%20-%2011%20%3D%209" />,我们可以使用极限的定义:

 设f(x)在包含a的开区间中对所有x≠a有定义,设L为实数。然后

\displaystyle{\lim_{x\to{a}}}f\,(x)=L

 如果,任意一个\epsilon\,>\,0,存在一个 \delta\,>\,0以至于如果0\,<\,|x-a|\,<\delta对于所有x在f的定义域内,然后

\left| {f\left( x \right) - L} \right| < \varepsilon \hspace{0.5in}{\mbox{whenever}}\hspace{0.5in}0 < \left| {x - a} \right| < \delta

 用定义我们得到:f(x)=x^{2}+x-11,L=9  同时 a=4

要用极限的定义证明 \lim_{x \to 4} (x^2 + x - 11) = 9,我们可以使用极限的定义:对任意的\epsilon > 0,存在 \delta > 0,使得当0 < |x - 4| < \delta 时,有 |f(x) - L| < \epsilon,其中 f(x) = x^2 + x - 11L = 9。  

证明步骤如下: 

1. 计算 f(4)

        f(4) = 4^2 + 4 - 11 = 16 + 4 - 11 = 9

2. 设|f(x) - 9| < \epsilon  :  我们需要证明,当 x 足够接近 4 时,|(x^2 + x - 11) - 9| < \epsilon。  

   这可以简化为:   |x^2 + x - 20| < \epsilon


   因为        x^2 + x - 11 - 9 = x^2 + x - 20。  

3. 因此,我们需要分析:  
                                          |x^2 + x - 20|
   进行分解,x^2 + x - 20 = (x - 4)(x + 5)。  

   所以我们需要找到\delta使得当|x - 4| < \delta 时,  
         ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​                                        ​​​​​​​ |(x - 4)(x + 5)| < \epsilon

4. 为了简化分析,我们假设 x 接近 4,假设 |x - 4| < 1,则 3 < x < 5。  

   因此,x + 5 的范围为:  
                                         3 + 5 < x + 5 < 5 + 5 \Rightarrow 8 < x + 5 < 10
   这意味着 |x + 5| < 10。  

5. 因此,我们有:  
   |(x - 4)(x + 5)| < |x - 4| \cdot |x + 5| <\frac{|x - 4|}{10}

6. 因此,可以选择|x - 4| < \frac{\epsilon}{10},于是|(x - 4)(x + 5)| < \epsilon。  

7. 最终,我们可以设定 \delta = \min(1, \frac{\epsilon}{10})。  

综上所述,对于任意的\epsilon > 0,我们可以找到\delta使得当0 < |x - 4| < \delta 时,有 |x^2 + x - 11 - 9| < \epsilon,因此证明了:  
        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        \lim_{x \to 4} (x^2 + x - 11) = 9

 

用manim代码,播放计算结果: 

python">from manim import *  class LimitProofEx88(Scene):  def construct(self):  # 创建标题和极限表达式  title = MarkupText("证明极限:").scale(0.9)  t1 = MathTex(r"\lim_{x \to 4} (x^2 + x - 11) = 9").scale(0.9)  tt = VGroup(title, t1).arrange(RIGHT)  tt.to_edge(UP)tt.shift(LEFT*2)self.add(tt)# 创建步骤和方程  elements = []  # Step 1  step1 = MarkupText("1. 计算:")  equation1 = MathTex(r"f(4) = 4^2 + 4 - 11 = 9")  elements.append(step1)  elements.append(equation1)  # Step 2  step2 = MarkupText("2. 设 ")  step2_equation = MathTex(r"|f(x) - 9| < \epsilon:")  equation2 = MathTex(r"|x^2 + x - 20| < \epsilon")  elements.append(step2)  elements.append(step2_equation)  elements.append(equation2)  # Step 3  step3 = MarkupText("3. 分解: ")  step3_equation = MathTex(r"x^2 + x - 20 = (x - 4)(x + 5)")  elements.append(step3)  elements.append(step3_equation)  # Step 4  step4 = MarkupText("4. 假设 ")  step4_equation = MathTex(r"|x - 4| < 1: 3 < x < 5 : 8 < x + 5 < 10")  elements.append(step4)  elements.append(step4_equation)  # Step 5  step5 = MarkupText("5. 由此得: ")  step5_equation = MathTex(r"| (x - 4)(x + 5) | < |x - 4| \cdot 10")  elements.append(step5)  elements.append(step5_equation)  # Step 6  step6 = MarkupText("6. 选择: ")  step6_equation = MathTex(r"|x - 4| < \frac{\epsilon}{10}")  elements.append(step6)  elements.append(step6_equation)  # Step 7  step7 = MarkupText("7. 设定: ")  step7_equation = MathTex(r"\delta = \min\left(1, \frac{\epsilon}{10}\right)")  elements.append(step7)  elements.append(step7_equation)  # Conclusion  conclusion_text = MarkupText("因此: ").scale(1.2)  conclusion_equation = MathTex(r"\lim_{x \to 4} (x^2 + x - 11) = 9")  elements.append(conclusion_text)  elements.append(conclusion_equation)  # 创建函数图像  axes = Axes(x_range=[0,6], y_range=[3, 12], axis_config={"color": BLUE}).add_coordinates() graph = axes.plot(lambda x: x**2 + x - 11, color=YELLOW)  graph_label = axes.get_graph_label(graph, label='f(x) = x^2 + x - 11') self.add(Dot(axes.c2p(4,9),radius=0.25,color=RED))# 显示页面内容  for i in range(0, len(elements), 7):  # 添加坐标系和图像  self.play(Create(axes), Create(graph), Write(graph_label))  # 逐行添加说明内容,同时翻页  for element in elements[i:i + 7]:  self.play(Write(element))self.play(FadeOut(element))self.wait(1)  # 翻页时清除页面  self.play(FadeOut(*elements[i:i + 7]))  self.wait(0.5)  # 等待一段时间后再显示下一页  # 最后显示结论  self.play(Write(conclusion_text), Write(conclusion_equation))  self.wait(2)  # 清除所有元素  self.play(FadeOut(*self.mobjects))%manim -qm -v WARNING LimitProofEx88

解释代码:

  1. 标题和极限表达式创建

    title = MarkupText("证明极限:").scale(0.9) 
    t1 = MathTex(r"\lim_{x \to 4} (x^2 + x - 11) = 9").scale(0.9) 
    tt = VGroup(title, t1).arrange(RIGHT) 
    tt.to_edge(UP) 
    tt.shift(LEFT * 2) self.add(tt) 
    • MarkupText 用于创建带有格式的中文文本。
    • MathTex 用于创建数学公式。
    • VGroup 把两个元素组合在一起并以右对齐的方式排列。
    • 将组合移动到顶部,并略微向左偏移。
    • 最后把 tt 添加到场景中。
  2. 创建步骤和方程

    elements = [] 

    初始化一个空列表,用于存储将要展示的步骤和方程。

    接下来逐步创建每个步骤:

    • # Step 1 
      step1 = MarkupText("1. 计算:") 
      equation1 = MathTex(r"f(4) = 4^2 + 4 - 11 = 9") 
      elements.append(step1) 
      ​​​​​​​elements.append(equation1) 
    • 重复以上过程为每个步骤创建内容,包括假设、计算等,且每个元素添加至elements列表。

  3. 创建结论

    conclusion_text = MarkupText("因此: ").scale(1.2) 
    conclusion_equation = MathTex(r"\lim_{x \to 4} (x^2 + x - 11) = 9") 
    elements.append(conclusion_text) 
    elements.append(conclusion_equation) 

    这里创建了总结部分,即用文字和数学公式表明计算最后的结论。

  4. 创建函数图像

    axes = Axes(x_range=[0, 6], y_range=[3, 12], axis_config={"color": BLUE}).add_coordinates() 
    graph = axes.plot(lambda x: x**2 + x - 11, color=YELLOW) 
    graph_label = axes.get_graph_label(graph, label='f(x) = x^2 + x - 11') 
    self.add(Dot(axes.c2p(4, 9), radius=0.25, color=RED)) 
    • Axes 创建坐标系,x_range 和 y_range 分别定义x轴和y轴的显示范围。
    • 使用 lambda 定义函数 f(x) = x^2 + x - 11来绘制图像。
    • add_coordinates() 在坐标系中添加坐标标记。
    • 添加图形的标签。
    • 在位置 (4, 9) 上添加一个红色的点,标记极限点。
  5. 显示内容

    for i in range(0, len(elements), 7): 

    这个循环用于分页显示元素,每页最多显示7个元素。

    • 添加坐标系和图像

      self.play(Create(axes), Create(graph), Write(graph_label)) 
    • 逐行添加步骤内容

      for element in elements[i:i + 7]: ​​​​​​​self.play(Write(element)) self.play(FadeOut(element)) self.wait(1) 

      逐个写出每个步骤内容,每次写出后立即淡出下一步内容,并在每步之间等待1秒。

    • 翻页效果

      self.play(FadeOut(*elements[i:i + 7])) 
      self.wait(0.5) # 等待一段时间后再显示下一页 

      每次展示后清除上一页的内容,保持页面整洁。

  6. 最后显示结论

    self.play(Write(conclusion_text), Write(conclusion_equation)) 
    self.wait(2) 

    在所有步骤结束后,展示结论的内容,并等待2秒以便观众可以阅读。

  7. 清除所有元素

    self.play(FadeOut(*self.mobjects)) 

在场景结束时,淡出所有的元素以完成动画。

可能的改进或注意事项:

  1. 协调显示时间:根据演示需求,您可能需要调整每个元素的显示时间,以确保观众有足够的时间理解内容。
  2. 图像刷新:通过修改逻辑,可以让函数图像在翻页过程中更平滑地呈现,特别是在需要强调的点时。
  3. 元素管理:可以考虑将步骤和结论内容单独封装为方法,以提高代码的可读性和复用性。
  4. 交互性:如果想增加观众的参与感,可以考虑运用一些交互性元素,比如提问或使用反转效果。

这段代码很完整,通过使用Manim的功能很好地展示了一个极限的证明过程。希望这个解释能帮助您更好地理解代码的逻辑和意图!

局部运行结果

 想看完整视频可以看看资源里https://download.csdn.net/download/qq_45449625/89688627icon-default.png?t=N7T8https://download.csdn.net/download/qq_45449625/89688627


http://www.ppmy.cn/devtools/102924.html

相关文章

.NET_web前端框架_layui_栅格布局

基础概念 layui:用于简化前端编写的框架。响应式布局&#xff08;Responsive Layout&#xff09;:一种网页设计方法&#xff0c;使网页能够根据不同设备的屏幕尺寸和分辨率自动调整其内容和布局。栅格布局&#xff08;Grid Layout&#xff09;:一种网页设计布局方法&#xff0c…

nodejs 旅游网站系统--附源码93714

摘 要 在数字化快速发展的今天&#xff0c;旅游业也迎来了前所未有的转型机遇。为了满足日益增长的在线旅游需求&#xff0c;我们倾力打造了一款基于Node.js的旅游网站系统。该系统凭借其高效的性能、灵活的扩展性和出色的用户体验&#xff0c;旨在为游客提供一站式的旅游服务解…

解决Selenium元素拖拽不生效Bug

前几天在使用Selenium进行元素拖拽操作时&#xff0c;发现Selenium自带的元素拖拽方法&#xff08;dragAndDrop()&#xff09;不生效&#xff0c;网上的回答也是五花八门&#xff0c;比较混乱&#xff0c;尝试了以下几种方法均无法解决。 方案1&#xff1a;通过dragAndDrop()方…

idea插件开发(一)合并检查

一、引言 由于代码合并冲突的时候&#xff0c;代码丢失的情况频发&#xff0c;作者研究idea的VFS虚拟文件系统和Git4ide源码&#xff0c;创作idea插件检测代码合并丢失 可以区分主动删除与被动丢失&#xff0c;比如本地或者删除一段代码&#xff0c;合并之后不会被认为是丢失…

从零开学C++:string类

引言&#xff1a;现在我们将正式踏入C起飞阶段&#xff0c;C语言自带的各种类能极大地简化我们所编写的代码的量&#xff0c;而我们今天要学的string就是其中之一。 更多有关C的知识点详解可前往个人主页&#xff1a;计信猫​​​​​ 一&#xff0c;认识string string其实很简…

谷歌、火狐及Edge等浏览器中实现allWebPlugin中间件自动安装及升级

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

Python+unittest+requests接口自动化测试框架搭建 完整的框架搭建过程

首先配置好开发环境&#xff0c;下载安装Python并下载安装pycharm&#xff0c;在pycharm中创建项目功能目录。如果不会的可以百度Google一下&#xff0c;该内容网上的讲解还是比较多比较全的&#xff01; 大家可以先简单了解下该项目的目录结构介绍&#xff0c;后面会针对每个文…

电子电气架构---车载网简史(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…