第三单元 用python学习微积分(十七)微积分第一基本定理

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

开发环境准备:CSDN

目录

一、微积分基本定理(FTC1)

1、例子:

(1)  ​

(2)  求曲线 f(x) = sin(x) ,x 在 (0, 𝝿) f(x)到x轴的面积

(3)   ​

二、微积分基本定理的直观解释

1、假设 x(t) 是你在时刻 t 的位置

2、扩展积分到 函数 f < 0 (或 f > 0)

三、积分的性质

1、 ​

2、 ​ 当c是常数

3、a

4、 ​......( F(a) - F(a) )

5、 ​( F(b) - F(a) =- (F(a) - F(b)) )

6、积分估计

7、改变变量

(1)   ​

(2)


一、微积分基本定理(FTC1)

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

新的计算符号

F(b) - F(a) = F(x)|_{a}^{b} = F(x)|_{x=a}^{x=b}

1、例子:

(1)  F(x) = x^3/3

F'(x) = x^2\Rightarrow(FTC)\int_{a}^{b}x^2dx = F(b) - F(a) = \frac{b^3 -a^3}{3}

如上节课上的例子

\int_{a}^{b} x^2 dx = \frac{x^3}{3}|_{0}^{b} = \frac{b^3}{3} - 0 = \frac{b^3}{3}

(2)  求曲线 f(x) = sin(x) ,x 在 (0, 𝝿) f(x)到x轴的面积

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):
    width = (xTo - xFrom)/steps
    xarrRect = []
    yarrRect = []
    area = 0
    xprev = xFrom
    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
    print('width =', width)
    print('area=',area)
    areaFinal = (integrate(expr, (x,xFrom,xTo)))
    print ('area final=',areaFinal)

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 = sin(x)


DrawXY(0,np.pi,100,expr,'blue','',plt)
DrawRects(0,np.pi,100,expr,'green',plt)
#plt.legend(loc='lower right')
plt.show()

F'(x) = f(x) = sin(x)

F(x) = -cos(x)

\int_{0}^{\pi} sin(x)dx = -cos(x)|_{0}^{b} = -cos(\pi) + cos(0) = -(-1)+1 =2

(3)   \int_{0}^{1} x^{100}dx = \frac{x^{101}}{101}|_{0}^{1} = \frac{1}{101}

x = symbols('x')
expr = x**100


DrawXY(0,1,100,expr,'blue','',plt)
DrawRects(0,1,100,expr,'green',plt)
#plt.legend(loc='lower right')
plt.show()

二、微积分基本定理的直观解释

1、假设 x(t) 是你在时刻 t 的位置

x'(t) = \frac{dx}{dt} =v(t)...... (速度)

\int_{a}^{b} v(t)dt = x(b) - x(a)

等式右边是运动的距离,

而左边是运动过程中各个时刻的速度的累加, 这时可以考虑在i时刻 v(t_i)\Delta t.....(v的单位m/s), \Delta t =1 (s) , 而在这一秒的行进距离则是约等于v(t_i)*1(m), 当总旅程为10秒时,求总距离只要依次累加这10秒中如前计算的每秒的行进距离即可。

\sum_{i=1}^{n}v(t_i)\Delta t \approx \int_{a}^{b} v(t)dt = x(b) - x(a)

2、扩展积分到 函数 f < 0 (或 f > 0)

例子: \int_{0}^{2\pi} sin(x)dx = - cos(x) |_{0}^{2\pi} = -cos(2\pi) - (-cos(0)) = -1 +1 =0

这里老师重新解释了定积分,即曲线与x轴围成的图形总面积,总面积等于x轴上方的面积减去x轴下方的面积

x = symbols('x')
expr = sin(x)

DrawXY(0,2*np.pi,100,expr,'blue','',plt)
DrawRects(0,2*np.pi,100,expr,'green',plt)
#plt.legend(loc='lower right')
plt.show()

从程序上看,也是符合计算结果的,因为在x轴下方, y 轴的坐标是负数,所以计算出来的面积也是负数,因此上图中两片面积相互抵消,总面积约等于0

如果把定积分看作求距离, 考虑速度的方向,则存在这样的情况,与它的几何解释类似

三、积分的性质

1、 \int{a}^{b}(f(x) + g(x))dx = \int _{a}^{b}f(x)dx + \int_{a}^{b}g(x)dx

这里有个知识点 \sum代表和, 而 \int其实也代表和,就是把sum的头字符拉长了

2、 \int_{a}^{b}cf(x)dx = c\int_{a}^{b}f(x)dx 当c是常数

3、a<b<c (由于性质5,这个前提其实不是必须的)

\int_{a}^{b} f(x)dx + \int_{b}^{c}f(x)dx = \int_{a}^{c} f(x)dx

4、 \int_{a}^{a} f(x) dx = 0......( F(a) - F(a) )

5、 \int_{a}^{b} f(x)dx = -\int_{b}^{a} f(x)dx ......( F(b) - F(a) =- (F(a) - F(b)) )

6、积分估计

如果 f(x) \leq g(x)

\int_{a}^{b} f(x)dx \leq \int_{a}^{b}g(x)dx ...... (a<=b)

例子:

e^x \geq 1 , x\geq0

\int_{0}^{b} e^xdx \geq \int_{0}^{b}1dx

\int_{0}^{b} e^xdx = e^x|_{0}^{b} = e^b - e^0 = e^b -1 .......( b \geq 0 )

\int_{0}^{b} 1dx = x|_{0}^{b} = b .......( b \geq 0 )

这里可以估计出 e^b - 1 \geq b, e^b \geq 1+b .......( b \geq 0 )

对以上结果再次计算不等式: e^x \geq 1+x

\int_{0}^{b} e^xdx \geq \int_{0}^{b}(1+x)dx

\int_{0}^{b} e^xdx = e^x|_{0}^{b} = e^b - 1

\int_{0}^{b}(1+x)dx = (x + \frac{x^2}{2})|_{0}^{b} = b+\frac{b^2}{2}

e^b-1 \geq b+\frac{b^2}{2} ......(b\geq 0)

e^b \geq b+\frac{b^2}{2} +1......(b\geq 0)

所以一直这么迭代下去可以得到 e^b 一个更好近似的值

7、改变变量

在学不定积分时,学过换元法

\int g(u)du = \int g(u(x))u'(x)dx ......(u = u(x), du = u'(x)dx)

在定积分中,

\int_{u_1}^{u_2} g(u)du = \int_{x_1}^{x_2} g(u(x))u'(x)dx ......(u = u(x), du = u'(x)dx, u_1 = u(x_1), u_2 = u(x_2))

不过这个式子成立有个前提条件就是u'一直保持u的正负符号

例子:

(1)   \int_{1}^{2} (x^3 +2)^5 x^2dx

u = x^3 + 2 , du = 3x^2dx

计算上下极限 u_{min} = 1^3 + 2 = 3 , u_{max} = 2^3 +2 = 10

\int_{3}^{10} \frac{u ^5}{3}du = \frac{u^6}{18} |_{3}^{10} = \frac{1}{18}(10^6 - 3^6)

(2)

\int_{-1}^{1} x^2dx

u = x^2, dx =\frac{1}{2x}du = \frac{1}{2u^{\frac{1}{2}}}du.....(后面老师说这里面有问题,应该是 dx =\frac{1}{2x}du = \pm\frac{1}{2u^{\frac{1}{2}}}du)

u_{min} = 1, u_{max} = 1

\int_{-1}^{1} x^2dx = \int_{1}^{1} u\frac{1}{2u^{\frac{1}{2}}}du = 0 (这里应该是错的,因为可以看出x^2与x轴围成的图形不会落在x轴下方)

为啥是错的, 因为 u = x^2, u'(x) = 2x,因为u总是正的无论x正负取值,而 u' 的符号随x的符号变化而变化

按老师的说法,这个应该分开做

\int_{-1}^{1} x^2dx = \int_{-1}^{0} x^2dx + \int_{0}^{1}x^2dx

\int_{-1}^{0} x^2dx

u = x^2, dx =\frac{1}{2x}du = \frac{1}{2u^{\frac{1}{2}}}du ......(这个地方似乎还得取正值, 因为函数的取值只能是正的.... x^2 ,而u的值也是从0到1,所以u\frac{1}{2u^{\frac{1}{2}}} 为正, u^{\frac{1}{2}}必须为正)

u_{min} = 0, u_{max} = 1

\int_{-1}^{0} x^2dx = \int_{0}^{1}u\frac{1}{2u^{\frac{1}{2}}}du

同理

\int_{0}^{1} x^2dx = \int_{0}^{1}u\frac{1}{2u^{\frac{1}{2}}}du

x = symbols('x')
expr = x*(1/(2*x**0.5))
print (integrate(expr, (x,0,1)))

​图形:

x = symbols('x')
expr = x*(1/(2*x**0.5))
DrawXY(0,1,100,expr,'blue','',plt)
DrawRects(0,1,100,expr,'green',plt)

所以 \int_{-1}^{1} x^2dx = \int_{-1}^{0} x^2dx + \int_{0}^{1}x^2dx = \int_{0}^{1}u\frac{1}{2u^{\frac{1}{2}}}du + \int_{0}^{1}u\frac{1}{2u^{\frac{1}{2}}}du = \frac{1}{3} +\frac{1}{3} = \frac{2}{3}

又:

x = symbols('x')
expr = x**2

DrawXY(-1,1,100,expr,'blue','',plt)
DrawRects(-1,1,100,expr,'green',plt)
#plt.legend(loc='lower right')
plt.show()

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bullseye

您的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值