优点是泛用性非常好,也十分好理解,在合适的范围,函数可以变得不规则,但是依旧可以求出导数的大约值,并不会与真实值差的很多。缺点很明显在数据十分大的时候误差也会越来越大,原因就是MIN的值还是太大了。直接用导数的定义就行。_python求导数的代码
直接利用数学中导数的定义就行
代码实现就是
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
MIN=1e-9 #一个足够小的数
import numpy as np
def f_yuan(x_2):
y_2=x_2**2 #这里的函数可以改
return y_2
def F_daoshu_yuan(x_1):
a_1=(f_yuan(x_1+MIN)-f_yuan(x_1))/MIN
return a_1
A_1=F_daoshu_yuan(1)
print(A_1)
print("*******************************************")
A_2=F_daoshu_yuan(10)
print(A_2)
print("*******************************************")
A_3=F_daoshu_yuan(1000)
print(A_3)
print("*******************************************")
A_4=F_daoshu_yuan(10000)
print(A_4)
print("*******************************************")
# 2.000000165480742
# *******************************************
# 20.00000165480742
# *******************************************
# 2000.0152289867399
# *******************************************
# 20012.259483337402
# *******************************************
#
# 进程已结束,退出代码0
|
优缺点
优点是泛用性非常好,也十分好理解,在合适的范围,函数可以变得不规则,但是依旧可以求出导数的大约值,并不会与真实值差的很多
缺点很明显在数据十分大的时候误差也会越来越大,原因就是MIN的值还是太大了。