本文内容来自于学习麻省理工学院公开课:单变量微积分-微积分第一基本定理-网易公开课
开发环境准备: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)
新的计算符号
如上节课上的例子
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()
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()
等式右边是运动的距离,
而左边是运动过程中各个时刻的速度的累加, 这时可以考虑在i时刻 (v的单位m/s), (s) , 而在这一秒的行进距离则是约等于(m), 当总旅程为10秒时,求总距离只要依次累加这10秒中如前计算的每秒的行进距离即可。
这里老师重新解释了定积分,即曲线与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
如果把定积分看作求距离, 考虑速度的方向,则存在这样的情况,与它的几何解释类似
这里有个知识点 代表和, 而 其实也代表和,就是把sum的头字符拉长了
如果
例子:
这里可以估计出
对以上结果再次计算不等式:
所以一直这么迭代下去可以得到 一个更好近似的值
在学不定积分时,学过换元法
在定积分中,
不过这个式子成立有个前提条件就是u'一直保持u的正负符号
例子:
计算上下极限
(这里应该是错的,因为可以看出与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()