# 直线运动问题 # 对于f(X) = x**2 def f(x): return x**2 plt.figure(figsize = (12,6)) n = np.linspace(-10,10,num = 50) plt.plot(n,f(n)) plt.xlim(-11,11) plt.ylim(-10,110) # 选中曲线上两个点,m(2,4),n(5,25) plt.plot([2,5],[4,25],color = ‘r‘) print(‘直线斜率为%.2f‘ % ((25-4)/(5-2))) print(‘-------‘) # 求m的导数 x_m = 2 y_m = f(x_m) plt.plot(n,f(n)) plt.xlim(1,7) plt.ylim(1,49) for i in range(4,0,-1): plt.plot([x_m,x_m + i],[y_m,f(x_m + i)],color = ‘r‘) print(‘直线斜率为%.2f‘ % ((f(x_m + i)-y_m)/(x_m + i-x_m))) # f(x) = x**2 # 原始点 m,f(m) # 增量为i,直线终点 → m+i,f(m+i) # 斜率 → (f(m+i)-f(m))/i def ds(xm,n): ‘‘‘ 该函数为求f(x) = x**2的导数 xm:m点的x值 n:m点x往右偏移的距离 函数最后导出 → m点与m偏移n距离后点的连线的斜率 ‘‘‘ y1 = f(xm) y2 = f(xm+n) return (y2-y1)/n for i in np.linspace(1,0,num = 1000,endpoint = False): print(‘偏移%.2f个单位距离时,斜率为:%.5f‘ % (i,ds(2,i))) # 斜率为4 # 切线函数为:y = 4*x - 4 # 图示 n = np.linspace(-10,10,num = 50) plt.plot(n,f(n)) plt.xlim(-11,11) plt.ylim(-10,110) plt.scatter(2,4) plt.plot(n,4*n - 4) # m点切线
原文:https://www.cnblogs.com/yunshangyue71/p/13584319.html