求偏导数
假如有一个函数
f(x)=x02+x12f(x)=x_0^2+x_1^2 f(x)=x02+x12
这里有两个变量
- 在计算的过程中有必要区分对哪个变量求导数
表示出来
# 将原函数定义出来
def function_2(x):return x[0] ** 2 + x[1] ** 2
代码表示函数还不是困难的
解决求偏导数的思路
新定义只有一个变量的函数
很多思路和方法都是用已知的方法去解决未知的问题
定义一个x1=4的函数
- 对只有变量x0的函数用求微分
两个临时变式函数写出来
# 对0求偏导的函数的临时函数
def function_tmp0(x0): # x是变量,另一个不重要的变量已经固定好了return x0 ** 2 + 4 ** 2# 对1求偏导的函数的临时函数
def function_tmp1(x1):return 3 ** 2 + x1 ** 2
求数值微分的函数
千万要会写,要独立的闭着眼睛都能写出来
# 定义好求数值微分的函数,函数返回的结果值应该是函数的导数值
def numerical_diff(f, x): # f:对哪个函数求导,x,要求导的自变量是哪个,拿过来,3qh = 1e-4return (f(x + h) - f(x - h)) / 2 * h
测试
x=np.array([3,4])# 将同一点的两个偏导数求出来
result0=numerical_diff(function_tmp0,x[0])
result1=numerical_diff(function_tmp1,x[1])print(result0,'\n',result1)D:\ANACONDA\envs\pytorch\python.exe C:/Users/Administrator/Desktop/DeepLearning/ch04/wgw_test.py
6.000000000003781e-08 7.999999999999119e-08Process finished with exit code 0
在编码过程中的思考
代码是人写出来的
写的写的就写出来了
- 不要怕写错
- 不要怕写出来
最怕的就是不去写,眼高手低
- 这样永远学不会!
matplot绘制图形
import numpy as np
import matplotlib.pylab as pltx=np.arange(0,6,0.1)
y1=np.sin(x)
y2=np.cos(x)# 开始绘制图形
plt.plot(x,y1,label='sin')
plt.plot(x,y2,label='cos',linestyle='--')
plt.title('sin & cos')
plt.xlabel('x')
plt.ylabel('y')
plt.legend() # 绘制图例plt.show()
2022年11月29日17:07:00,亲自码了一遍,感觉好多了