问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Manim入门教程示例1(sinx的泰勒展开图像可视化)

创作时间:
作者:
@小白创作中心

Manim入门教程示例1(sinx的泰勒展开图像可视化)

引用
CSDN
1.
https://m.blog.csdn.net/2401_82621879/article/details/143136747

一、泰勒公式及麦克劳林公式

泰勒公式(Taylor's Formula)是一个用函数在某点的信息描述其附近取值的公式。麦克劳林公式(Maclaurin's series)是泰勒公式的一种特殊形式,是泰勒公式在0点的一种特殊情况。

本次视频以 sinx 的麦克劳林展开式的可视化为例。

二、manim代码及解释

1.导入所需第三方库

from manim import *
import math

2.定义类及函数

class ManimCELogo(Scene):
    def construct(self):

3.建立坐标轴

ax = Axes(
    x_range=[-2.5 * PI, 2.5 * PI, 0.5 * PI],
    y_range=[-1.5, 1.5, 0.5],
)

其中 x_range=[a,b,c] 所代表的含义分别为,x轴的左边最小数,x轴的右边最大数以及坐标轴上刻度线的间隔距离。

4.定义 sinx 的函数

function = lambda x: math.sin(x)
graph = FunctionGraph(function, x_range=(-2 * PI, 2 * PI), color=YELLOW)
self.play(Create(ax))
self.play(Create(graph))
self.wait(0.5)

function 定义 sinx 的函数。FunctionGraph=[a,b,c] 中 a 代表所画出的函数的名称,b 代表的是画出函数的范围,c 代表的是函数图像的颜色。

5.定义麦克劳林公式的函数(五阶以内)

function1 = lambda x: x
graph1 = FunctionGraph(function1, x_range=(-2.5, 2.5), color=RED)
tex1 = MathTex("f(x)=x +o(x)")
tex1.move_to = (UP,)
self.play(Create(graph1))
self.wait(0.5)

function2 = lambda x: x - x**3 / 6
graph2 = FunctionGraph(function2, x_range=(-2.5, 2.5), color=RED)
self.play(Transform(graph1, graph2))
self.wait(0.5)

function3 = lambda x: x - x ** 3 / 6 + x**5 / (2 * 3 * 4 * 5)
graph3 = FunctionGraph(function3, x_range=(-2.5, 2.5), color=RED)
self.play(Transform(graph1, graph3))
self.wait(0.5)

其中 self.play(Transform(a, b)) 的含义是将图像 a 换成图像 b。

三、全部源码及可视化视频

1.源码

from manim import *
import math

class ManimCELogo(Scene):
    def construct(self):
        ax = Axes(
            x_range=[-2.5 * PI, 2.5 * PI, 0.5 * PI],
            y_range=[-1.5, 1.5, 0.5],
        )
        function = lambda x: math.sin(x)
        graph = FunctionGraph(function, x_range=(-2 * PI, 2 * PI), color=YELLOW)
        self.play(Create(ax))
        self.play(Create(graph))
        self.wait(0.5)

        function1 = lambda x: x
        graph1 = FunctionGraph(function1, x_range=(-2.5, 2.5), color=RED)
        tex1 = MathTex("f(x)=x +o(x)")
        tex1.move_to = (UP,)
        self.play(Create(graph1))
        self.wait(0.5)

        function2 = lambda x: x - x**3 / 6
        graph2 = FunctionGraph(function2, x_range=(-2.5, 2.5), color=RED)
        self.play(Transform(graph1, graph2))
        self.wait(0.5)

        function3 = lambda x: x - x ** 3 / 6 + x**5 / (2 * 3 * 4 * 5)
        graph3 = FunctionGraph(function3, x_range=(-2.5, 2.5), color=RED)
        self.play(Transform(graph1, graph3))
        self.wait(0.5)

2.可视化

一阶麦克劳林公式

三阶麦克劳林公式

五阶麦克劳林公式

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号