本文内容来自于学习麻省理工学院公开课:单变量微积分-微积分第一基本定理-网易公开课
开发环境准备:CSDN
目录
(2) 求曲线 f(x) = sin(x) ,x 在 (0, 𝝿) f(x)到x轴的面积
5、 ( F(b) - F(a) =- (F(a) - F(b)) )
一、微积分基本定理(FTC1)
如果F'(x) = f(x),
新的计算符号
1、例子:
(1) ![F(x) = x^3/3](https://latex.csdn.net/eq?F%28x%29%20%3D%20x%5E3/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()
(3) ![\int_{0}^{1} x^{100}dx = \frac{x^{101}}{101}|_{0}^{1} = \frac{1}{101}](https://latex.csdn.net/eq?%5Cint_%7B0%7D%5E%7B1%7D%20x%5E%7B100%7Ddx%20%3D%20%5Cfrac%7Bx%5E%7B101%7D%7D%7B101%7D%7C_%7B0%7D%5E%7B1%7D%20%3D%20%5Cfrac%7B1%7D%7B101%7D)
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 的位置
...... (速度)
等式右边是运动的距离,
而左边是运动过程中各个时刻的速度的累加, 这时可以考虑在i时刻 (v的单位m/s),
(s) , 而在这一秒的行进距离则是约等于
(m), 当总旅程为10秒时,求总距离只要依次累加这10秒中如前计算的每秒的行进距离即可。
2、扩展积分到 函数 f < 0 (或 f > 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](https://latex.csdn.net/eq?%5Cint%7Ba%7D%5E%7Bb%7D%28f%28x%29%20+%20g%28x%29%29dx%20%3D%20%5Cint%20_%7Ba%7D%5E%7Bb%7Df%28x%29dx%20+%20%5Cint_%7Ba%7D%5E%7Bb%7Dg%28x%29dx)
这里有个知识点 代表和, 而
其实也代表和,就是把sum的头字符拉长了
2、
当c是常数
3、a<b<c (由于性质5,这个前提其实不是必须的)
4、
......( F(a) - F(a) )
5、
( F(b) - F(a) =- (F(a) - F(b)) )
6、积分估计
如果
例子:
这里可以估计出
对以上结果再次计算不等式:
所以一直这么迭代下去可以得到 一个更好近似的值
7、改变变量
在学不定积分时,学过换元法
在定积分中,
不过这个式子成立有个前提条件就是u'一直保持u的正负符号
例子:
(1) ![\int_{1}^{2} (x^3 +2)^5 x^2dx](https://latex.csdn.net/eq?%5Cint_%7B1%7D%5E%7B2%7D%20%28x%5E3%20+2%29%5E5%20x%5E2dx)
计算上下极限
(2)
.....(后面老师说这里面有问题,应该是
)
(这里应该是错的,因为可以看出
与x轴围成的图形不会落在x轴下方)
为啥是错的, 因为 ,因为u总是正的无论x正负取值,而 u' 的符号随x的符号变化而变化
按老师的说法,这个应该分开做
......(这个地方似乎还得取正值, 因为函数的取值只能是正的.... x^2 ,而u的值也是从0到1,所以
为正,
必须为正)
同理
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)
所以
又:
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()