导数 · 用Python学微积分 |
您所在的位置:网站首页 › python如何实现函数求导 › 导数 · 用Python学微积分 |
导数
切线(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()
另一个是物理中的例子:对路程的时间函数 导数的定义如下:定义1: 定义2: 以上两个定义都是耳熟能详的定义了,就不多说了。 定义3:函数 如果难以理解的话,对上式稍加变化,两边同时除以 下面举一例,求 各位读者可以自行回顾一下求导的规则和技巧,本书中便不进行展开了。我们可以如下定义自己的求导数的函数: 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.000179994Sympy也提供求导的方法: 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,我们有: 举个例子,用线性近似的方法估算 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |