0
点赞
收藏
分享

微信扫一扫

第二单元 用python学习微积分(十八)微积分第二基本定理

言诗把酒 2022-02-12 阅读 97

本文内容来自于学习麻省理工学院公开课:单变量微积分-微积分第二基本定理-网易公开课

一、反向来看FTC1

FTC1:如果F'(x) = f(x), \int_{a}^{b} f(x)dx = F(b) - F(a)......(F = \int f(x)dx)

反向来看: F(b) - F(a) = \int_{a}^{b} f(x)dx

用 f 来理解 F 和 F'

F' 的信息可以推导出 F 的信息

1、比较FTC1和均值定理

不等式说明:

那为啥这个平均值不是F的平均值而是 F'的平均值呢?

因为这个式子是求f(x) 从 a 到 b 的累加

老师举了个例子

a=0, b=n

等式的左边是离散的均值,而右边是连续的均值。(个人感觉不是很好的例子)

个人认为积分其实是f(x)与x轴围成的图形的面积和,可以把它想成无数个很瘦的长方形组成的图形, 因此当把这个图形分成n等分的时候,每一份的函数值相加求平均( \frac{f(0) + f(1)...+f(n)}{n},矩形高的平均)之后再乘以x轴的覆盖范围(如 \int_{a}^{b} f(x)dx 中的b-a,矩形底边长),就可以得到一个近似的面积值即\frac{f(0) + f(1)...+f(n)}{n} (b-a) , 而显然当 n \rightarrow \infty , \frac{f(0) + f(1)...+f(n)}{n} (b-a)= \int_{a}^{b} f(x)dx , 所以\frac{f(0) + f(1)...+f(n)}{n}|_{n \rightarrow \infty}= \frac{\int_{a}^{b} f(x)dx}{ (b-a)}

from sympy import *
import numpy as np 

import matplotlib.pyplot as plt 

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.spines['left'].set_position('zero')
ax.spines['bottom'].set_position('zero')
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.set_aspect(1 ) 

def DrawXY(xFrom,xTo,steps,expr,color,label,plt):
    yarr = []
    xarr = np.linspace(xFrom ,xTo, steps) 
    for xval in xarr:
        yval = expr.subs(x,xval)
        yarr.append(yval)
    y_nparr = np.array(yarr) 
    plt.plot(xarr, y_nparr, c=color, label=label)    

def DrawRects(xFrom,xTo,steps,expr,color,plt, label=''):
    width = (xTo - xFrom)/steps
    xarrRect = []
    yarrRect = []
    area = 0
    xprev = xFrom
    yvalAll =  0
    for step in range(steps):
        yval = expr.subs(x,xprev + width)
        xarrRect.append(xprev)
        xarrRect.append(xprev)
        xarrRect.append(xprev + width)
        xarrRect.append(xprev + width)
        xarrRect.append(xprev)
        yarrRect.append(0)
        yarrRect.append(yval)
        yarrRect.append(yval)
        yarrRect.append(0)
        yarrRect.append(0)
        area += width * yval
        plt.plot(xarrRect, yarrRect, c=color)    
        xprev= xprev + width
        yvalAll += yval
    print('============================')    
    if len(label)!=0:
        print(label)    
    print('============================')
    print('width = ', width)
    print('ave = ', yvalAll / steps)
    print('area = ',area)
    areaFinal = (integrate(expr, (x,xFrom,xTo)))
    print ('area final = ',areaFinal)
    print ('ave final = ', areaFinal / (xTo - xFrom))

def TangentLine(exprY,x0Val,xVal):
    diffExpr = diff(exprY)
    x1,y1,xo,yo = symbols('x1 y1 xo yo')
    expr = (y1-yo)/(x1-xo) - diffExpr.subs(x,x0Val)
    eq = expr.subs(xo,x0Val).subs(x1,xVal).subs(yo,exprY.subs(x,x0Val))
    eq1 = Eq(eq,0)
    solveY = solve(eq1)
    return xVal,solveY

def DrawTangentLine(exprY, x0Val,xVal1, xVal2, clr, txt):
    x1,y1 = TangentLine(exprY, x0Val, xVal1)
    x2,y2 = TangentLine(exprY, x0Val, xVal2)
    plt.plot([x1,x2],[y1,y2], color = clr, label=txt)
    
def Newton(expr, x0):
    ret = x0 - expr.subs(x, x0)/ expr.diff().subs(x,x0)
    return ret

   
x = symbols('x')
expr = x


DrawXY(0,10,10,expr,'blue','',plt)
DrawRects(0,10,10,expr,'green',plt)


#plt.legend(loc='lower right')
plt.show()

 

FTC1 \Delta F = Ave(F') \Delta x

均值定理 (MVT) \Delta F = F'(c) \Delta x ......(a<c<b)

二、考试练习

1、 F'(x) = \frac{1}{1+x} , F(0) = 1

均值定理暗示了A < F(4) < B, 求A, B.

(根据均值定理,这里 F'(x) = \frac{1}{1+x}大于0, x的范围(0,4) 所以F是递增的)

FTC1: F(4) - F(0) = \int_{0}^{4}\frac{dx}{1+x}

这里不是很明白为啥要计算这个, 可能实际应用中需要类似这样计算不等式

很显然根据换元法

u = 1+x, du = dx

几何图形:

 

x = symbols('x')
expr = 1/(1+x)

DrawXY(0,4,100,expr,'green','f(x) = 1/(1+x)',plt)
DrawRects(0,4,50,expr,'green',plt, 'f(x) = 1/(1+x)')

expr = 1*x**0
DrawXY(0,4,100,expr,'blue','f(x) = 1',plt)
DrawRects(0,4,1,expr,'blue',plt,'f(x) = 1')

expr = 1/(5*x**0)
DrawXY(0,4,100,expr,'red','f(x) = 1/5',plt)
DrawRects(0,4,1,expr,'red',plt,'f(x) = 1/5')

plt.legend(loc='lower right')
plt.show()

Upper and Lower riemann sum

从图形上很容易看出这个面积的大小关系,这个大的蓝色矩形其实就是积分求和时取函数最大值,并只分出一个矩形(也叫Upper RS ),这个小的红色的矩形就是积分求和时取函数最小值,并只分出一个矩形(也叫Lower RS )

老师这时说基于以上这些,基本可以避免使用均值定理,因为有这样的更好的方法,用简单的积分就可以得到均值定理得到的任何边界。

三、微积分第二基本定理(FTC2)

1、定义:如果函数 f 是连续的,同时 G(x) = \int_{a}^{x}f(t)dt ; ( a \leq t \leq x, 同时a, x 计算时看作常量),就有 G'(x) = f(x)

2、用途:G(x) 可以用来解如下微分方程组

老师表示微分方程并不总是能解,但是有以上前提,则微分方程总有解

3、例题

(1)、 \frac{d}{dx} \int_{1}^{x} \frac{dt}{t^2} =

这里老师的解法是:

在FTC2中由于 G'(x) = f(x) ,G (x) - G (1) = \int_{1}^{x} \frac{dt}{t^2} , G(1) = \int_{1}^{1} \frac{dt}{t^2} = 0 , G (x) = \int_{1}^{x} \frac{dt}{t^2} ,

后面老师对这道例题的补充:

4、证明

 

由上图 G(x) = \int_{a}^{x}f(t)dt ,这个G(x)就是箭头所指位置,曲线f(x)在(0,a)区间与x轴围成的面积,考虑 G'(x)=\frac{dG}{dx} , 上图中dG就是红色填充部分,当 \Delta x很小时,这部分图形相似于矩形,而这个矩形的高就是箭头所指的 y = f(x) , 而它的面积等于底边x高,也就是f(x)\Delta x , \Delta G = f(x)\Delta x ,

,则有 G'(x) = f(x)

四、微积分第一基本定理(FTC1)的证明

F' = f ( f 是连续的 )

G(x) = \int_{a}^{x} f(t) dt

根据FTC2 G'(x) = f(x) , F' = f

G(x) = \int_{a}^{x} f(t) dt, 把 b 和 a 分别代入

五、FTC2的重点

由FTC2, L(x) = \int_{1}^{x} \frac{dt}{t}(下标为1是因为 L(1) = 0)

由FTC2早就很多新的函数:

比如 e^{-t^2}钟形函数在(0,x) 和 x轴围成的面积不能被任何其他函数表现, 由于它已经完全超越了代数的范畴,所以他被称为超越函数。

这里试一下

x = symbols('x')
expr = np.e**(-x**2)

DrawXY(0,2,100,expr,'green','f(x) =np.e**(-x**2)',plt)
DrawRects(0,2,50,expr,'green',plt, 'f(x) = np.e**(-x**2)')

 

从上面的结果可以看到这个面积的值是无法用代数方法计算的, 只能用更多的分割矩形来做近似计算

另外老师提到了 \pi ,这是个超越数,不能用代数表示,另外e也是超越数。

 

举报

相关推荐

0 条评论