首页 > 其他分享 >极限的性质【下】《用Manim可视化》

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

时间:2024-08-31 08:54:36浏览次数:10  
标签:play FadeOut self axes 极限 可视化 limit dot Manim

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

接下来的例子中f(x)=x^2-1

极限的性质:

6.幂函数的极限

\mathop {\lim }\limits_{x \to a} {\left[ {f\left( x \right)} \right]^n} = {\left[ {\mathop {\lim }\limits_{x \to a} f\left( x \right)} \right]^n},\,\,\,\,{\mbox{where }}n{\mbox{ is any real number}}

 在这个性质n中可以是任何实数(正数、负数、整数、分数、无理数、零等)。

例如,考虑的情况n=2。

对于任意整数n都可以这样做。

接下来我们实现一下该性质:

示例代码:

from manim import *  

class LimitPowerPropertyVisualization(Scene):  
    def construct(self):  
        # 创建坐标轴  
        axes = Axes(  
            x_range=[-1, 4, 1],  
            y_range=[-1, 40, 5],  
            axis_config={"color": BLUE},  
        )  

        # 定义函数 f(x)  
        def f(x):  
            return x**2 - 1  

        # 定义常量 a 和 n  
        a = 2  # 所考察的点  
        n = 3  # 实数 n  

        # 创建图形  
        f_graph = axes.plot(f, color=YELLOW, x_range=[-3, 3])  

        # 计算极限值  
        limit_f_a = f(a)  
        limit_power_a = limit_f_a ** n  

        # 创建幂函数的图形  
        power_graph = axes.plot(lambda x: f(x) ** n, color=GREEN, x_range=[-3, 3])  

        # 创建极限点  
        limit_dot_f = Dot(axes.c2p(a, limit_f_a), color=YELLOW)  
        limit_dot_power = Dot(axes.c2p(a, limit_power_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_power = MathTex(r"\lim_{x \to a} \left(f(x)\right)^n = ", limit_power_a).next_to(limit_dot_power, RIGHT)  

        # 添加所有元素  
        self.play(Create(axes), Create(f_graph))  
        self.play(Create(power_graph))  
        self.play(Create(limit_dot_f), Create(limit_dot_power))  
        self.play(Write(limit_text_f), Write(limit_text_power))  

        # 等待展示  
        self.wait(2)  

        # 高亮极限点  
        self.play(limit_dot_f.animate.set_color(ORANGE), limit_dot_power.animate.set_color(ORANGE))  
        self.wait(2)  

        # 淡出所有元素  
        self.play(FadeOut(axes), FadeOut(f_graph), FadeOut(power_graph),  
                  FadeOut(limit_dot_f), FadeOut(limit_dot_power),  
                  FadeOut(limit_text_f), FadeOut(limit_text_power))

代码解释:

  1. 导入库:使用Manim库进行动画生成。
  2. 创建类:定义类LimitPowerPropertyVisualization,继承自Scene,表示一个动画场景。
  3. 构建坐标轴:创建x和y的坐标轴,设置适当的范围。
  4. 定义函数:定义 f(x)=x2−1f(x)=x2−1。
  5. 定义常量:设置考察点 a=1a=1 和实数 n=3n=3。
  6. 绘制图形:绘制函数 f(x)f(x) 和其幂函数 f(x)nf(x)n。
  7. 计算极限值:在点 aa 处计算极限值,并计算其幂。
  8. 创建极限点:在图上标记出函数的极限值和幂函数的极限值。
  9. 添加注释:为极限值添加文本注释,显示各自的极限值。
  10. 动画效果:逐步展示所有图形、极限点和注释,以便观众理解极限的性质。
  11. 高亮显示:在等待一段时间后,将极限点高亮显示,最后淡出所有元素。

 7.函数,

\mathop {\lim }\limits_{x \to a} \left[ {\sqrt[n]{​{f\left( x \right)}}} \right] = \sqrt[n]{​{\mathop {\lim }\limits_{x \to a} f\left( x \right)}}

这只是上一个例子的一个特例

 

通过可视化我们得到下面的图像:

 示例代码:

from manim import *  

class LimitRootPropertyVisualization(Scene):  
    def construct(self):  
        # 创建坐标轴  
        axes = Axes(  
            x_range=[-1, 8, 1],  
            y_range=[-1, 8, 1],  
            axis_config={"color": BLUE},  
        )  

        # 定义函数 f(x)  
        def f(x):  
            return x**2 - 1  

        # 定义常量 a 和 n  
        a = 3  # 所考察的点  
        n = 3  # 实数 n  

        # 创建图形  
        f_graph = axes.plot(f, color=YELLOW, x_range=[1.02, 8])  

        # 计算极限值  
        limit_f_a = f(a)  
        limit_root_a = limit_f_a ** (1/n)  

        # 创建平方根函数的图形  
        root_graph = axes.plot(lambda x: f(x) ** (1/n), color=GREEN, x_range=[1.05,8])  

        # 创建极限点  
        limit_dot_f = Dot(axes.c2p(a, limit_f_a), color=YELLOW)  
        limit_dot_root = Dot(axes.c2p(a, limit_root_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_root = MathTex(r"\lim_{x \to a} \sqrt[n]{f(x)} = ", limit_root_a).next_to(limit_dot_root, RIGHT)  

        # 添加所有元素  
        self.play(Create(axes), Create(f_graph))  
        self.play(Create(root_graph))  
        self.play(Create(limit_dot_f), Create(limit_dot_root))  
        self.play(Write(limit_text_f), Write(limit_text_root))  

        # 等待展示  
        self.wait(2)  

        # 高亮极限点  
        self.play(limit_dot_f.animate.set_color(ORANGE), limit_dot_root.animate.set_color(ORANGE))  
        self.wait(2)  

        # 淡出所有元素  
        self.play(FadeOut(axes), FadeOut(f_graph), FadeOut(root_graph),  
                  FadeOut(limit_dot_f), FadeOut(limit_dot_root),  
                  FadeOut(limit_text_f), FadeOut(limit_text_root))

 

计算平方根时,可能对负数进行了指数运算,导致结果为无效(NaN)值。在我们的例子中,函数 f(x)=x2−1 在 x<−1 或 x>1 的情况下返回负值,因此在这些区间内计算平方根时会产生警告。

为了解决这个问题,可以在绘制平方根图形时,限制 x 的范围为能保证 f(x)为非负值的部分。对于函数 f(x):

  • 当 f(x)≥0 时,x 的范围为 [−1,1]。

7.常熟的极限

\mathop {\lim }\limits_{x \to a} c = c,\,\,\,\,c{\mbox{ is any real number}}换句话说,常数的极限就是常数本身。你们应该能够通过画的图形来说服自己f\left( x \right) = c

其中 cc是任意实数。我们将绘制常数函数 f(x)=c 的图形,并展示其极限。 

 示例代码:

from manim import *  

class LimitConstantVisualization(Scene):  
    def construct(self):  
        # 创建坐标轴  
        axes = Axes(  
            x_range=[-3, 3, 1],  
            y_range=[-1, 5, 1],  
            axis_config={"color": BLUE},  
        )  

        # 定义常数 c  
        c = 2  # 任意实数  

        # 创建常数函数图形  
        constant_graph = axes.plot(lambda x: c, color=YELLOW, x_range=[-3, 3])  

        # 定义考察点 a  
        a = 1  

        # 创建极限点  
        limit_dot = Dot(axes.c2p(a, c), color=YELLOW)  

        # 创建极限值注释  
        limit_text = MathTex(r"\lim_{x \to a} c = ", c).next_to(limit_dot, RIGHT)  

        # 添加所有元素  
        self.play(Create(axes), Create(constant_graph))  
        self.play(Create(limit_dot))  
        self.play(Write(limit_text))  

        # 等待展示  
        self.wait(2)  

        # 高亮极限点  
        self.play(limit_dot.animate.set_color(ORANGE))  
        self.wait(2)  

        # 淡出所有元素  
        self.play(FadeOut(axes), FadeOut(constant_graph), FadeOut(limit_dot), FadeOut(limit_text))

代码解释:

  1. 导入库:使用Manim库进行动画生成。
  2. 创建类:定义类LimitConstantVisualization,继承自Scene,表示一个动画场景。
  3. 构建坐标轴:创建x和y的坐标轴,设置适当的范围。
  4. 定义常数:设置常数 c=2c=2(可以根据需要更改)。
  5. 绘制常数函数图形:绘制常数函数 f(x)=cf(x)=c 的图形。
  6. 定义考察点:设置考察点 a=1a=1。
  7. 创建极限点:在图上标记出常数函数的极限值。
  8. 添加注释:为极限值添加文本注释,显示极限的结果。
  9. 动画效果:逐步展示所有图形、极限点和注释,以便观众理解极限的性质。
  10. 高亮显示:在等待一段时间后,将极限点高亮显示,最后淡出所有元素。

8.直线函数的极限

.\mathop {\lim }\limits_{x \to a} x = a

 和上一题一样,你应该能够通过画f的图像来说服自己f(x)= x

示例代码:

from manim import *  

class LimitIdentityVisualization(Scene):  
    def construct(self):  
        # 创建坐标轴  
        axes = Axes(  
            x_range=[-3, 3, 1],  
            y_range=[-3, 3, 1],  
            axis_config={"color": BLUE},  
        )  

        # 定义考察点 a  
        a = 1  # 可以根据需要更改  

        # 创建线性函数图形 f(x) = x  
        linear_graph = axes.plot(lambda x: x, color=YELLOW, x_range=[-3, 3])  

        # 创建极限点  
        limit_dot = Dot(axes.c2p(a, a), color=YELLOW)  

        # 创建极限值注释  
        limit_text = MathTex(r"\lim_{x \to a} x = ", a).next_to(limit_dot, RIGHT)  

        # 添加所有元素  
        self.play(Create(axes), Create(linear_graph))  
        self.play(Create(limit_dot))  
        self.play(Write(limit_text))  

        # 等待展示  
        self.wait(2)  

        # 高亮极限点  
        self.play(limit_dot.animate.set_color(ORANGE))  
        self.wait(2)  

        # 淡出所有元素  
        self.play(FadeOut(axes), FadeOut(linear_graph), FadeOut(limit_dot), FadeOut(limit_text))

9.幂函数的极限

\mathop {\lim }\limits_{x \to a} {x^n} = {a^n} 

 

 这是在函数趋近于2是的图像。

 示例代码:

from manim import *  

class LimitPowerFunctionVisualization(Scene):  
    def construct(self):  
        # 创建坐标轴  
        axes = Axes(  
            x_range=[-3, 3, 1],  
            y_range=[-3, 9, 1],  
            axis_config={"color": BLUE},  
        )  

        # 定义考察点 a 和指数 n  
        a = 2  # 可以根据需要更改  
        n = 2  # 可以根据需要更改  

        # 创建幂函数图形 f(x) = x^n  
        power_graph = axes.plot(lambda x: x**n, color=YELLOW, x_range=[-3, 3])  

        # 创建极限点  
        limit_dot = Dot(axes.c2p(a, a**n), color=YELLOW)  

        # 创建极限值注释  
        limit_text = MathTex(r"\lim_{x \to a} x^n = ", a**n).next_to(limit_dot, RIGHT)  

        # 添加所有元素  
        self.play(Create(axes), Create(power_graph))  
        self.play(Create(limit_dot))  
        self.play(Write(limit_text))  

        # 等待展示  
        self.wait(2)  

        # 高亮极限点  
        self.play(limit_dot.animate.set_color(ORANGE))  
        self.wait(2)  

        # 淡出所有元素  
        self.play(FadeOut(axes), FadeOut(power_graph), FadeOut(limit_dot), FadeOut(limit_text))

代码解释:

  1. 导入库:使用Manim库进行动画生成。
  2. 创建类:定义类LimitPowerFunctionVisualization,继承自Scene,表示一个动画场景。
  3. 构建坐标轴:创建x和y的坐标轴,设置适当的范围。
  4. 定义考察点:设置考察点 a=2和指数 n=2(可以根据需要更改)。
  5. 绘制幂函数图形:绘制函数 f(x)=x^n 的图形。
  6. 创建极限点:在图上标记出函数的极限值。
  7. 添加注释:为极限值添加文本注释,显示极限的结果。
  8. 动画效果:逐步展示所有图形、极限点和注释,以便观众理解极限的性质。
  9. 高亮显示:在等待一段时间后,将极限点高亮显示,最后淡出所有元素。

标签:play,FadeOut,self,axes,极限,可视化,limit,dot,Manim
From: https://blog.csdn.net/qq_45449625/article/details/141731700

相关文章

  • 基于大数据+爬虫+数据可视化的的亚健康人群数据可视化设计和实现(源码+LW+部署讲解)
     博主介绍:✌全网粉丝50W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs......
  • 分享一个基于Python的广东热门旅游数据可视化分析系统flask毕设(源码、调试、LW、开题
    ......
  • 【有源码】基于Python的猫眼电影数据分析可视化与电影推荐系统K-means算法电影票房数
    注意:该项目只展示部分功能,如需了解,文末咨询即可。本文目录1.开发环境2系统设计2.1设计背景2.2设计内容3系统展示3.1功能展示视频3.2系统页面4更多推荐5部分功能代码1.开发环境开发语言:Python采用技术:K-means算法数据库:MySQL开发环境:PyCharm2系统......
  • 计算机毕设推荐-基于python的超市数据处理可视化分析
    ......
  • WebTopo连同ARMxy实现数字化转型可视化解决方案
    随着工业4.0的迅猛发展,企业对于实时数据监控、设备管理和智能化生产的需求日益增加。为了满足这些需求,WebTopo与ARMxy携手推出了一套高效、灵活的数字化转型可视化解决方案。本文将详细介绍WebTopo软件、钡铼ARMxy系列BL340嵌入式计算机,并探讨它们如何共同支持数字化转型。一、WebT......
  • SZARP协助ARMxy边缘计算机实现智能工厂可视化解决方案
    在智能工厂的构建中,SZARP与ARMxy边缘计算机的协同作用,实现了设备的实时监控、深入的数据分析和有效的预测性维护,极大地提高了生产效率和产品质量。通过智能制造可视化技术,企业能够清晰地掌握生产流程的每一个环节,实现资源的最优分配和流程的最优化管理。一、SZARP简介SZARP集成了数......
  • ScadaBR协助ARMxy实现智能工厂可视化解决方案
    一、ScadaBR简介ScadaBR作为工业监控与数据采集系统(SCADA)领域的开源软件,以其稳定性、可扩展性和丰富的功能特性,成为了众多企业实现数字化转型的得力助手。该系统专为工业自动化设计,集成了实时数据采集、处理、展示以及报警通知等核心功能,能够满足复杂工业环境下对监控与管理的严格......
  • 前端数据可视化常用工具大盘点
    本文来盘点前端数据可视化的各种常用工具库!图表EChartsECharts是一个基于JavaScript的开源数据可视化库,它由百度开源,现在由Apache基金会维护。ECharts提供了丰富的图表类型、灵活的配置选项和强大的交互功能,使得开发者能够轻松构建出美观且功能强大的数据可视化应用。......
  • IndigoSCADA协助ARMxy实现智能工厂可视化解决方案
    一、IndigoSCADA简介IndigoSCADA基于先进的软件架构设计,确保了系统的稳定性和可扩展性。它支持多种通信协议,包括但不限于Modbus、OPCUA、MQTT等,使得与各种工业设备和系统的无缝对接成为可能。此外,IndigoSCADA还提供了丰富的图形库和脚本工具,允许用户根据实际需求快速构建个性化的......
  • 用manim证明函数的左右极限
    http://t.csdnimg.cn/2pVdFhttp://t.csdnimg.cn/2pVdF在上一节的最后两个示例中,我们看到了两个不存在的限制。然而,对于每个例子来说,每个限制不存在的原因是不同的。我们看一下下面的例子: 极限不存在,因为函数没有固定为单个值 t走近t=0。越接近  t=0  我们移动得越......