用Python学《微积分B》(常数项级数)
来源:互联网 发布:网站程序员培训中心 编辑:程序博客网 时间:2024/06/11 18:37
“级数”(Series)是什么?“级数”有什么用处?“级数”与微积分有什么联系?带着这几个问题,本文将从通俗的角度来谈谈我对“级数”的理解,并进行一些知识扩展,最后附上《微积分B》课后练习的答案。
一、级数是什么
关于级数的定义,除了教科书,也可以看看“Wiki - Series”。此外,“Math is Fun”对无穷级数(Infinite Series)的讲解比较有趣,值得一看。在此,我也借用“Math is Fun”上对级数的定义:
“Series is the sum of infinite terms, it sounds like it is the list of numbers, but it is actually when we add them up.”
这句话是说:级数就是无穷多项的和,它看起来像是“数的列表”,实际上它是这个无穷列表中各项的和。从这句话可以看出:
1)级数是一个极限问题。
2)级数不是数列。
3)级数中的和是一个形式和。
前面说过:微分和积分都是极限问题。慢慢地,可以把级数与微积分扯上了。事实上,级数的全称为“无穷级数”(Infinite Series),这个名字更贴切。
1,级数的通项
级数有两种表示形式:
或者
其中,
2,部分和(the kth partial sum)
很明显,
3,形式和
举一个栗子:
对它分割:
如果按照有限项来理解,分割之后 S 有两种取值: 0, 1 , 即刚好配对(偶数项)取 0, 余一项(奇数项)则取 1 。 但是,级数表示的是无穷项的和,我们不知道它到底是奇数项还是偶数项,或者说,它既可以是奇数项也可以是偶数项,那么,我们可以说“S既等于0也等于1”吗?
显然不能!
我们不能简单地按“有限项”来理解级数中的和。事实上,级数起源于“无限项的和是否可以产生有限大小的结果”,原话是“the idea that such a potentially infinite summation could produce a finite result”。
4,逆向思考
看一下这个经典的“正方形分割”问题:
假设正方形边长为1,
取极限,
反过来想,
这不就是级数吗?!
二、级数的“敛散性”
既然级数表示“无限项的和(sum)”,那么我们首要关心的就是:这个 sum 是有限的还是无限的?是确定的值还是不确定的值?换成数学术语来表达就是:级数的“敛散性”。如果某级数有确定的、有限大小的值,那么该级数收敛;否则,该级数发散。
1,收敛级数的必要条件
2,收敛级数的线性性质
3,Cauthy收敛准则
前面两条可以说都是级数收敛的必要条件,而Cauthy收敛准则是级数收敛的充要条件。它的简要表述如下:
级数
它的英文名为:Cauthy’s Convergence Criterion,可以点击这个链接查看Wiki对它的描述。
Cauthy收敛准则的意义非常重大,它将“无穷项问题转化为了有限项问题”。Cauthy收敛准则是由第一章的数列的“Cauthy-极限存在准则”推导出来的。
三、正项级数
顾名思义,正项级数的通项
1,经典的正项级数
1)几何级数(geometric series)
2)调和级数(harmonic series)
3)p级数(p series)
2,正项级数的敛散性判别方法
常用的正项级数敛散性判别方法有:比较审敛法、比值审敛法、根值审敛法和积分审敛法。其中,比较审敛法和比值审敛法都是与已知敛散性的级数进行比较,特别是p级数。
3,积分审敛法
积分审敛法拿出来特别说明一下,它可以串联本节的多个知识点,而且也反映了积分与级数之间的联系。
1)定理
设
2)证明
根据积分的定义(面积法)和函数的单调性,有:
注:这个不等式我在“定积分”一节已经用画图表示过:Exercise 7-1-5
左边的不等式表示:如果这个无穷积分收敛,那么级数的部分和有上界。而右边的不等式表示:如果这个积分发散(趋于
这个证明的过程非常有意思:它反映了级数的通项与函数、级数的部分和与变上限积分、级数与无穷积分的联系。
3)意义
积分审敛法将级数敛散性问题转变为无穷积分敛散性问题,开辟了一条新的道路。相对于研究求和来说,有了Newton-Leibniz公式,研究积分要更简单。
4)扩展
前面将“级数收敛的必要条件”时说:级数收敛,则通项的极限为0。现在就来给出一个“反例”,即通项为0时,级数不收敛。
以调和级数为例,根据“积分审敛法”,几何级数的敛散性与下列无穷积分一致:
又有
很明显,
甚至有,原函数单减,而(变上限)积分函数单增的情况。
再扩展一下,如果是下列级数呢?
同样用积分审敛法,可知前者发散,后者收敛
四、任意项级数与绝对收敛
通项大于或等于0的级数是正项级数,推广到更一般地,就叫任意项级数。对于任意项级数,它的性质没有正项级数好研究,但是,一些特殊的级数也是有规律的,比如下面所说的“交错级数”。
1,交错级数(alternating series)
这就是交错调和级数
注:交错级数收敛的充要条件是Leibniz Test,此外,Leibniz在估算
2,绝对收敛和条件收敛
我们知道,正项级数的敛散性比任意项级数的敛散性更好判断,那么,很容易想到,将任意项级数的通项取绝对值,将其变为正项级数来研究。
1)绝对收敛定理
如果级数
直观上,
2)条件收敛
绝对收敛是收敛的充分非必要条件,那么介于中间地带的情况呢?即:
五、级数与微积分的联系
1,级数与积分的联系
级数与积分的联系就比较明显啦。前面在讲正项级数的“积分审敛法”时已经介绍过了,级数与无穷积分的各种联系,这里不再累述。
2,级数与微分的联系
级数和微分(导数)都是极限问题,那么它们之间有什么联系呢?
先联想一下,在微分中有没有什么求和的问题?还真有,而且在微分学中占了很重要的分量,那就是“Taylor公式”。
想象一下,如果将Taylor公式一直展开下去
再想一下,Taylor公式的作用是可以近似任意函数或曲线,那么级数的其中的一个作用就是用简单函数的组合来近似的表示复杂的或非初等函数。
六、Python求级数
Sympy支持级数和非级数求和(sum)运算,也可以直接用它的Sum类。Sum类的功能还是比较丰富的,支持很多级数运算,比如:“is_absolutely_convergent()”函数和“is_convergent()” 函数,可以直接判断一个级数是否收敛。
注:Sympy除了求和,类似的也提供了累乘计算类 —— Product。
好了,现在开始用sympy来求解课后练习,看看是不是很爽。
from sympy import *init_printing()#Exercise 8-1-3n = Symbol('n', integer=True)expr1 = 3 / (2 ** n) - 4 / (3 ** n)expr2 = 1 / (n ** 2) - 1 / nexpr3 = 1 / n - 1 / (n + 3)expr4 = (n - 100) / nSum(expr1, (n, 1, oo)).is_convergent(), Sum(expr2, (n, 1, oo)).is_convergent(), \Sum(expr3, (n, 1, oo)).is_convergent(), Sum(expr4, (n, 1, oo)).is_convergent()
#Exercise 8-1-4n = Symbol('n', integer=True)expr1 = 1 / (n ** 2)expr2 = (2 * n + 1) / (n ** 2 * (n + 1) ** 2)#expr3 = sin(n * pi / 6)expr4 = ln(1 + 1 / n)Sum(expr1, (n, 1, oo)).is_convergent(), Sum(expr2, (n, 1, oo)).is_convergent(), \Sum(expr4, (n, 1, oo)).is_convergent(), #Sum(expr4, (n, 1, oo)).is_convergent()
#Exercise 8-1-5n = Symbol('n', integer=True)expr1 = 3 ** (-1 / n)expr2 = log(n * (2 * n + 1) / ((n + 1) * (2 * n - 1)))expr3 = (log(n)) ** (-1 / n)#expr4 = sqrt(n + 2) - 2 * sqrt(n + 1) + sqrt(n)Sum(expr1, (n, 1, oo)).is_convergent(), Sum(expr2, (n, 1, oo)).is_convergent(), \Sum(expr3, (n, 2, oo)).is_convergent(), #Sum(expr4, (n, 1, oo)).is_convergent()
#Exercise 8-1-6n = Symbol('n', integer=True)expr1 = 1 / (2 * n - 1)expr2 = 1 / sqrt((2 * n - 1) * (2 * n + 1))expr3 = 1 / (2 * n - 1) ** 2expr4 = 1 / (n * sqrt(n + 1))Sum(expr1, (n, 1, oo)).is_convergent(), Sum(expr2, (n, 1, oo)).is_convergent(), \Sum(expr3, (n, 2, oo)).is_convergent(), Sum(expr4, (n, 1, oo)).is_convergent()
#Exercise 8-1-2bn = Symbol('n', integer=True)expr = 1 / (n * (n + 1) * (n + 2))Sum(expr, (n, 1, oo)), Sum(expr, (n, 1, oo)).doit()
#Exercise 8-1-3bn = Symbol('n', integer=True)expr = 1 / ((3 * n + 1) * (3 * n - 2))Sum(expr, (n, 1, oo)), Sum(expr, (n, 1, oo)).doit().evalf()
#Exercise 8-1-4bn = Symbol('n', integer=True)expr = n / factorial(n + 1)Sum(expr, (n, 1, oo)), Sum(expr, (n, 1, oo)).doit()
#Exercise 8-1-5bn = Symbol('n', integer=True)expr = (-1) ** (n - 1) * (2 * n + 1) / (n ** 2 + n)Sum(expr, (n, 1, oo)), Sum(expr, (n, 1, oo)).doit()
#Exercise 8-1-6bfrom sympy import *init_printing()i, n = symbols('i n', integer=True)expr = 2 / (2 ** i + 1)prod = Product(expr, (i, 1, n+1))sum = Sum(prod, (n, 1, oo))prod, sum, sum.evalf()
#Exercise 8-1-7bn = Symbol('n', integer=True)expr = (2 * n - 1) / 2 ** nSum(expr, (n, 1, oo)), Sum(expr, (n, 1, oo)).doit()
- 用Python学《微积分B》(常数项级数)
- 用Python学《微积分B》(函数项级数)
- 用Python学《微积分B》(Fourier级数)
- 用Python学《微积分B》(微积分应用)
- 用Python学《微积分B》(序)
- 用Python学《微积分B》(微分方程)
- 用Python学《微积分B》(Unit Test 1)
- 用Python学《微积分B》(Unit Test 2)
- 用Python学《微积分B》(Taylor公式与曲线拟合)
- 用Python学《微积分B》(Unit Test 3)
- 用Python学《微积分B》(不定积分的概念)
- 用Python学《微积分B》(换元法与分部积分)
- 用Python学《微积分B》(定积分)
- 用Python学《微积分B》(Newton-Leibniz公式)
- 用Python学《微积分B》(反常积分)
- 用Python学《微积分B》(空间向量)
- 用Python学《微积分B》(多元函数的极限)
- 用Python学《微积分B》(多元函数的微分)
- spfa SLF优化
- 重载与重写
- Java中的Comparable和Comparator
- java之program arguments与VM arguments
- BZOJ1106: [POI2007]立方体大作战tet
- 用Python学《微积分B》(常数项级数)
- 相机标定的原理
- Scrapy用Twisted异步操作Mysql
- 使用UI框架和不使用UI框架情况分析
- 详解JavaWeb中的文件上传与下载
- 源码剖析Linux epoll实现机制及Linux上惊群
- Android 通用流行框架大全
- 【设计】工厂模式--C++源代码(VS2015)
- 风云论坛