文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
导数
切线(Tangent line)
中学介绍导数的时候,通常会举两个例子,其一是几何意上的例子:对函数关于某一点进行求导,得到的是函数该点处切线的斜率。
选中函数图像中某一点,然后不断地将函数图放大,当我们将镜头拉至足够近后便会发现函数图看上去像一条直线,这条直线就是切线。
from sympy.abc import x
# 函数
f = x**3-2*x-6
# 在 x=6 处正切于函数的切线
line = 106*x-438
d1 = np.linspace(2,10,1000)
d2 = np.linspace(4,8,1000)
d3 = np.linspace(5,7,1000)
d4 = np.linspace(5.8,6.2,100)
domains = [d1,d2,d3,d4]
# 画图的函数
def makeplot(f,l,d):
plt.plot(d,[f.evalf(subs={x:xval}) for xval in d],'b',\
d,[l.evalf(subs={x:xval}) for xval in d],'r')
for i in range(len(domains)):
# 绘制包含多个子图的图表
plt.subplot(2, 2, i+1)
makeplot(f,line,domains[i])
plt.show()
另一个是物理中的例子:对路程的时间函数求导可以得到速度的时间函数
,再进一步求导可以得到加速度的时间函数
这个理解较好,因为导数真正关心的事是:当我们稍微改变一点函数的输入值时,函数的输出值会有怎样变化。在单元时,导数看上去是曲线的切线斜率,但是到更多元时,就很难有“斜率”这样的直观感受了,但是输出值随着输入值的极小变化而产生的相应变化这样的理解还是成立的。
导数(Derivative)
导数的定义如下:
定义 1:
若该极限不存在,则函数在处的导数不存在。
定义 2:
若该极限不存在,则函数在处的导函数不存在。
以上两个定义都是耳熟能详的定义了,就不多说了。
定义 3:
函数在
处的导数
是满足如下条件的常数
:
对于在附近输入值的微小变化
有,
始终成立。 也就是说导数
是输出值变化中一阶项的系数。
如果难以理解的话,对上式稍加变化,两边同时除以并同时取极限可以得到:
便于上面定义 2 相一致了。
下面举一例,求在
处的导数:
因此,
各位读者可以自行回顾一下求导的规则和技巧,本书中便不进行展开了。
我们可以如下定义自己的求导数的函数:
f = lambda x: x**3-2*x-6
# 我们设定参数 h 的默认值,如果调用函数时没有指明参数 h 的值,便会使用默认值
def derivative(f,h=0.00001):
return lambda x: float(f(x+h)-f(x))/h
fprime = derivative(f)
print fprime(6)
# result is : 106.000179994
Sympy 也提供求导的方法:
from sympy.abc import x
f = x**3-2*x-6
print f.diff()
# result is :3*x**2-2
print f.diff().evalf(subs={x:6})
# result is : 106.0000000000
线性近似(Linear approximation)
依据导数的定义 3,我们有:
如果将高阶项丢掉,就获得了的线性近似式子:
举个例子,用线性近似的方法估算:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论