1. 绘制函数y=f(x)=x3−x1和其在x=1处切线的图像。
x = np.arange(0, 3, 0.1)
def g(x):
return x ** 3 - 1 / x
plot(x, [g(x), 4 * x - 4], 'x', 'g(x)', legend=['g(x)', 'Tangent line (x=1)'])

2. 求函数f(x)=3x12+5ex2的梯度。
∇f(x)=[6x1,5ex2]
3. 函数f(x)=∥x∥2的梯度是什么?
函数 f(x)=∥x∥2 表示的是向量 x 的 L2 范数,也就是向量的欧几里得距离或者长度,数学上定义为:
f(x)=x12+x22+⋯+xn2
其中,x=[x1,x2,…,xn]⊤ 是一个 n 维实数向量。
为了找到这个函数的梯度,我们需要对每个分量 xi 求偏导数。由于这是一个标量函数对向量 x 的求导,我们得到的梯度是一个向量,其每个分量是函数对向量中每个元素的偏导数。
对 f(x) 关于 xi 的偏导数是:
∂xi∂f(x)=∂xi∂x12+x22+⋯+xn2
利用链式法则,我们得到:
∂xi∂f(x)=2x12+x22+⋯+xn21⋅2xi=x12+x22+⋯+xn2xi
因此,函数 f(x)=∥x∥2 的梯度 ∇f(x) 是:
∇f(x)=[∂x1∂f,∂x2∂f,…,∂xn∂f]=[x12+x22+⋯+xn2x1,x12+x22+⋯+xn2x2,…,x12+x22+⋯+xn2xn]
或者更简洁地表示为:
∇f(x)=∥x∥2x
注意,如果 x 是零向量,那么 ∥x∥2=0,梯度未定义,因为分母为零。在实际应用中,通常需要避免对零向量求此梯度,或者在优化算法中特别处理这种情况。
4. 尝试写出函数u=f(x,y,z),其中x=x(a,b),y=y(a,b),z=z(a,b)的链式法则。
给定函数 u=f(x,y,z),其中 x=x(a,b),y=y(a,b),z=z(a,b),我们想要找到 u 关于变量 a 和 b 的偏导数。这可以通过链式法则来完成,链式法则是求复合函数导数的一种方法。
首先,我们分别求 u 关于中间变量 x,y,z 的偏导数:
∂x∂u=∂x∂f
∂y∂u=∂y∂f
∂z∂u=∂z∂f
接下来,我们使用链式法则求 u 关于 a 和 b 的偏导数。链式法则表明,一个函数关于另一个函数的导数,等于该函数的导数乘以另一个函数的导数。
对 a 的偏导数:
∂a∂u=∂x∂u⋅∂a∂x+∂y∂u⋅∂a∂y+∂z∂u⋅∂a∂z
同理,对 b 的偏导数:
∂b∂u=∂x∂u⋅∂b∂x+∂y∂u⋅∂b∂y+∂z∂u⋅∂b∂z
因此,u 关于 a 和 b 的偏导数通过链式法则可以表示为:
∂a∂u=∂x∂f⋅∂a∂x+∂y∂f⋅∂a∂y+∂z∂f⋅∂a∂z
∂b∂u=∂x∂f⋅∂b∂x+∂y∂f⋅∂b∂y+∂z∂f⋅∂b∂z
这些表达式说明了如何通过链式法则求得 u 关于原始变量 a 和 b 的偏导数,其中包含了对中间变量 x,y,z 的偏导数以及这些中间变量自身对 a 和 b 的偏导数。