怎么求导来着?别费劲了,试试这个Python的通用求导法
时间(s) | 角度(°) |
---|---|
192 | 7.085 |
193 | 10.497 |
194 | 14.019 |
195 | 17.683 |
196 | 21.487 |
197 | 25.403 |
198 | 29.402 |
199 | 33.467 |
显然,这是一个求导即可解决的问题。如果将时间记作t,将旋转角度记作θ,那么θ就是t的函数:
对上式求导,就得到角速度v对时间t的函数:
1. 寻找原函数
>>> import numpy as np
>>> from scipy import interpolate
>>> _x = np.linspace(192,199,8)
>>> _y = np.array([7.085,10.497,14.019,17.683,21.487,25.403,29.402,33.467])
>>> f = interpolate.interp1d(_x, _y, kind='cubic')
>>> f(193.3)
array(11.54026091)
>>> f(193.35)
array(11.71517478)
>>> f(193.351)
array(11.71867619)
2. 求解导函数
>>> def get_derivative(f, delta=1e-10):
"""导函数生成器"""
def derivative(x):
"""导函数"""
return (f(x+delta)-f(x))/delta
return derivative
>>> fd = get_derivative(f)
>>> fd(193.5)
3.590830143540664
>>> fd(195.8)
3.8961776076555026
各位伙伴们好,詹帅本帅搭建了一个个人博客和小程序,汇集各种干货和资源,也方便大家阅读,感兴趣的小伙伴请移步小程序体验一下哦!(欢迎提建议)
推荐阅读
推荐阅读
评论