码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 第五单元 用python学习微积分(三十四)泰勒级数


    本文内容来自于学习麻省理工学院公开课:单变量微积分-泰勒级数-网易公开课

    Bullseye:第一单元 用python学习微积分(一) 安装开发环境Anaconda 和 导数(上)- 1/x的导数

    质心问题Center of Mass - Sciencetopia

    重心问题Center of Gravity Definition, Equation and Calculation

    Bullseye:第一单元 用python学习微积分(二)VSCode 、PYGame 和 导数(上)- 瞬时速度

    目录

    一、重心和质心

    1、质心

    (1)一个物体

    (2)系统质心:

    2、重心

    (1)单一物体

    (2)系统重心:

    3、不同形状的重心位置

    二、重心问题

    1、实验

    2、用级数的想法来考虑这个问题,老师的思想实验

    (1)设置

    (2)计算

    (3)计算跨越26个单位长度距离需要多少木块堆积?

    (4)老师要求注意,尽管这个级数是没有极限的,但是这个级数的增长十分的缓慢。

    三、幂级数

    1、几何级数 (Geomeric Series)

    (1)证明

    2、幂级数的一般形式

    (1)公式

    (2)如何判断

    3、收敛幂级数的法则(和多项式类似)

    4、泰勒公式(Taylor's Formula)

    5、泰勒公式的应用( 求取 e )

    6、求取sin(x)

    7、求取cos(x)


    一、重心和质心

    1、质心

    (1)一个物体

    刚体由大量粒子组成,刚体的质量是单个粒子质量的总和。但是,我们可以考虑物体上的一个点,使得物体的全部质量都集中在它上面,并且当施加相同的力时,该点的运动与与物体质量相同的粒子的运动相同.这个点称为质心。因此,物体的质心是施加的力产生线性加速度但没有旋转的点。

    单个物体上的受力是由其上面每个粒子所受力的总和

    ​

     

    设置:如图总质量为M;质心为C.M.; 'm1, m2 ...' 为物体上某点的质量

    质心公式(center of mass [x, y])= [ \frac{m_1x_1+m_2x_2+m_3x_3+...}{M} , \frac{m_1y_1+m_2y_2+m_3y_3+...}{M} ]

    (2)系统质心:

    ​

     

    设置: 两个质量为m1和m2的物体,如图所示。让质量通过刚性杆连接,并让C是它们的质心。

    有公式: \frac{m_1}{x_1} = \frac{m_2}{x_2}

    2、重心

    重心是物体的重量作用并且物体上的总重力扭矩为零的点,简写C.G.

    (1)单一物体

    ​

     

    设置:物体上某粒子的重力 m_ig, r_i是这个粒子从纸板的 CG 的位置向量, t_i是这个粒子上重力的扭矩

    t_i = r_i \times m_ig

    我们知道在CG点总重力扭矩是 0,所以有

    \sum_{i=1}^{n}t_i =\sum_{i=1}^{n} r_i \times m_ig = 0

    由于 g 是常数, \sum_{i=1}^{n} r_i \times m_i = 0

    (2)系统重心:

    设置:两个宽2m的铁块 a, b,分别重20kg,40kg,并分别放置在木板两侧A、B,木板长20m。

    ​

     

    a 的重心距离 A 点1m,而 b 的重心距离A点19m

    ​

     

    以左侧A点为基准

    系统重心 = 总重力扭矩 \div总的力臂 = (A的力臂 \times A点受力 + B的力臂 \times B点受力)\div (A点受力 + B点力臂)

    总重力扭矩= 1 \times 20 + 19\times40 = 780 kg.m

    系统重心距离左侧= \frac{780}{20+40} = 13 m

    3、不同形状的重心位置

    体型

    CG位置

    细均匀条

    条的中点

    圆环

    环的中心

    圆盘

    磁盘中心

    球体、空心球体、环形盘

    在它的中心

    立方体或矩形块

    对角线的交点

    三角板

    中线的交点

    方形层、平行四边形和矩形层

    对角线的交点

    圆柱

    轴的中点

    圆锥或金字塔

    在与底面中心顶点相接的线上,距底面的距离等于该线长度的1/4

    二、重心问题

    ​

     

    如图,有多个积木搭在一起,由下向上,每块都向左偏移一定的距离,问最上面那一块的右测可不可以偏移到最下面的积木的左测以左。

    1、实验

    老师用几块积木做了这个实验,并且成功了。这里的秘密就是要从上向下布置。

    其原理是,由于只要在积木的重心处有支撑,积木就可以立住。

    第一块积木的重心在他的中心位置,所以第二块积木要放在第一块的一半处(积木都是等大小的,所以我们只需要考虑水平方向的位置,xCenter1)。第一块和第二块积木形成了新的系统,这个系统的重心在原第一块和第二块重心的平均的位置( \frac{xCenter1+xCenter2}{2} ), 以此类推当有n个积木以此方法布置时,它们组成的系统的重心为( \frac{xCenter1+xCenter2+...+xCenterN}{N} )

    模拟程序:

    ​

    pygame基础上制作的模拟程序

    链接:百度网盘 请输入提取码

    提取码:1g1u

    解压7z,并在解压目录中运行 AddRectangles.py。 程序中点击键盘回车可以添加一个积木。

    2、用级数的想法来考虑这个问题,老师的思想实验

    (1)设置:积木长 L = 2,重力 W = 1 ,位置因素只考虑x方向变化,使用贪婪算法,从上向下布置,第n+1块积木所在的位置是:第n块积木的重心和第n+1块积木重心的平均数,也就是 n \times W \times C_n  和 W \times C_{n+1} 的平均数。由于每块积木的重量相等,则第n块积木累积了n的重量,而n+1块积木有重量 1,它们的平均值是

    ​

     

    (2)计算

    考虑重心中系统重心的公式

    以原点计,

    系统重心 = 总重力扭矩 \div 总的力臂 = (A的力臂 \times A点受力 + B的力臂 \times B点受力) \div (A点受力 + B点力臂)

    也就是第n+1块积木的左侧是在前n块积木的重心 C_n(W=1,重力为 n ) 下方,也就是说第n+1块积木的重心在 C_n + 2/2 = Cn +1( 重力为 1 )

    再把重量考虑进去,则这个新的重心在 \frac{nC_n +1 (C_n+1)}{n+1} = \frac{(n+1)C_n+1}{n+1} = C_n+\frac{1}{n+1}

    程序:

    1. import numpy as np
    2. from sympy import *
    3. import matplotlib.pyplot as plt
    4. def GetCenter(steps, weight, length):
    5. Cn = 0
    6. for i in range(steps):
    7. n = i
    8. Cn = (Cn*weight*n + (Cn + length/2.0)*weight)/(n+1)
    9. print(Cn)
    10. W = 1
    11. L = 2
    12. GetCenter(100,weight=W,length =L)
    13. 1.0
    14. 1.5
    15. 1.8333333333333333
    16. 2.083333333333333
    17. 2.2833333333333328
    18. ...
    19. 5.177377517639616
    20. 5.187377517639615

    按公式展开:

    C_0 = 1

    C_1 = 1+\frac{1}{2}

    C_2 = 1+\frac{1}{2} + \frac{1}{3}

    ....

    C_n =1+\frac{1}{2} +\frac{1}{3}+\frac{1}{4}+...+\frac{1}{n}

    由上一章得知:

    Bullseye:第五单元 用python学习微积分(三十三)反常积分(下)-- 无穷级数和收敛判定

    黎曼上和( \Delta x= 1 )UpperRiemanSum=1+\frac{1}{2} +...+\frac{1}{N-1} = \infty

    显然这个 C_n \rightarrow_{n \rightarrow\infty} \infty( 发散的 )

    (3)计算跨越26个单位长度距离需要多少木块堆积?

    由上一章的知识可知, ln(n)  近似并小于C_n (C_n<ln(n)+1 ),

    这里要注意,每个木块被定义为2个单位距离,所以当我们需要跨越26个单位距离时,

    首先要减掉最下面那块的2个单位距离,然后就是其余的积木的重心到目标位置的距离即24个单位距离,也就是 C_n = 24 , 由于ln(n) < C_n<ln(n)+1 ,也就是让第24个单位距离处为这n块积木的重心,求 n+1(显然 n 是整数)。

    1. x = symbols('x')
    2. eq = ln(x)-24
    3. eq1 = Eq(eq,0)
    4. solveX = solve(eq1)
    5. print(int(solveX[0]))
    6. 26489122129

    n =(int) e^{24} +1 = 26489122129+1=26489122130

    假设木块高3cm,这些木块摞起来有多高呢 ? 26489122130*3/100 \approx 8 * 10^8 (m) ,大约等于地球到月亮的距离的2倍

    (4)老师要求注意,尽管这个级数是没有极限的,但是这个级数的增长十分的缓慢。

    三、幂级数

    1、几何级数 (Geomeric Series)

    当 |x| < 1

    1+x+x^2+x^3... = \frac{1}{1-x}

    (1)证明

    假设有1+x+x^2+x^3+... = S

    (1+x+x^2+x^3+... )\times x = S \times x

    x+x^2+x^3+x^4+... = S \times x

    S - x+x^2+x^3+x^4+... =S- S \times x

    由于1+x+x^2+x^3+... = S

    1= S - S \times x

    S = \frac{1}{1-x}

    这个证明要求S首先要存在,也就是这个幂级数要是收敛的,不能是发散的。

    当 x \geq 1 时,等式1+x+x^2+x^3+... = S 会变成\infty = \infty,造成结果无意义。

    2、幂级数的一般形式

    (1)公式

    a_0+ a_1x + a_2x^2 + a_3x^3+...

    = \sum_{n=0}^{\infty} a_nx^n

    |x|<R(收敛半径 radius of converges)

    -R < x <R(级数收敛点集区间)

    当 |x|>R , \sum_{n=0}^{\infty} a_nx^n是发散的

    当 |x|=R , 是边界,并不会被使用

    (2)如何判断

    |a_nx^n|\rightarrow0以指数速度趋向0 ,当|x|<R

    |a_nx^n| 不会趋向0 ,当|x|>R

    3、收敛幂级数的法则(和多项式类似)

    f(x) + g(x) , f(x)g(x) , f(g(x)) ,\frac{f(x)}{g(x)}, \frac{d}{dx} f(x), \int f(x)dx 这些运算对幂级数来说都是成立的

    (1)运算举例

    \frac{d}{dx}(a_0 + a_1x+a_2x^2+a_3x^3+...)= a_1 + 2a_2x + 3a_3x^2+...

    \int(a_0 + a_1x+a_2x^2+a_3x^3+...)dx = const + a_0x + \frac{1}{2}a_1x^2 + \frac{1}{3}a_2x^3 + \frac{1}{4}a_3x^4 +...

    4、泰勒公式(Taylor's Formula)

    注意:使用泰勒公式时,当 n=0 时, 约定俗成 0! = 1

    泰勒公式的本质是近似,当 f(x)在 x_0 处有n阶导数,则有这个函数可以用幂函数近似替代,有公式

    f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(x_0)}{n!} (x-x_0)^n

    当这个函数在 x=0 处有n阶导数,泰勒公式变换为更常用的麦克劳林公式

    f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(0)}{n!} x^n

    当这个展开式n值越大,近似度就越高

    通常在幂级数中, a_n=\frac{f^{(n)}(0)}{n!}

    证明:

    f(x) = a_0 + a_1x+a_2x^2+a_3x^3+...

    f'(x) = a_1 + 2a_2x + 3a_3x^2+...

    f''(x) = 2a_2 + 3 \times 2 a_3x+...

    f'''(x) = 3\times 2a_3 + 4 \times 3\times 2 a_4+...

    x 取 0, f'''(0) = 3\times 2a_3

    \frac{f^{(3)}(0)}{3 \times 2\times1} =\frac{f^{(3)}(0)}{3!}= a_3

    5、泰勒公式的应用( 求取 e )

    我们知道,当 f(x) =e^x 有 f'(x) = e^x, f''(x) = e^x, f'''(x) = e^x... ,f^{(n)}(0) = 1

    所以我们可以把它带入泰勒公式,有

    e^x = \sum_{n=0}^{\infty} \frac{1}{n!} x^n

    而 e^1 = 1+1 + \frac{1}{2!} + \frac{1}{3!}+...

    6、求取sin(x)

    我们知道,当 f(x) =sin(x) 有 f'(x) = cos(x), f''(x) = -sin(x), f'''(x) = -cos(x)...

    sin(x) =\frac{sin(0)}{1} + \frac{cos(0)}{1!}x - \frac{sin(0)}{2!}x^2 - \frac{cos(0)}{3!}x^3 + \frac{sin(0)}{4!}x^4 + \frac{cos(0)}{5!}x^5 + ..

    =x - \frac{1}{3!}x^3 + \frac{1}{5!}x^5 ...

    7、求取cos(x)

    cos(x) =\frac{cos(0)}{1} - \frac{sin(0)}{1!}x - \frac{cos(0)}{2!}x^2 + \frac{sin(0)}{3!}x^3 + \frac{cos(0)}{4!}x^4 - \frac{sin(0)}{5!}x^5 + ..

    =1 - \frac{1}{2!} x^2 + \frac{1}{4!}x^4...

  • 相关阅读:
    直播案例剖析:手机降频对直播声音体验的影响
    记录一个困难
    信奥基本功:打字练习(盲打)
    慕思股份深交所上市:靠床垫和“洋老头”走红 市值224亿
    MySQL基本操作和基于MySQL基本操作的综合实例项目
    算力,承载AI无限可能
    【kafka】基本名词解释
    【JS】将字符串保存成文件到本地(.txt、.json、.md...)
    【kafka】mac环境安装kafka
    3.MySQL表的增删改查(基础)
  • 原文地址:https://blog.csdn.net/bullseye/article/details/125473141
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号