雅克比矩阵
构建雅克比矩阵
首先根据线性代数的知识,给一个向量左乘一个矩阵的含义就是将向量映射到以这个矩阵为基的线性空间。明白了这一点,我们接着往下看。
很显然这样的映射并不是线性的,但是,如果把视角放在局部,仍然可以将这种变换近似的看做线性变换,那么要构建对应这个线性变换的矩阵,其实就是找到新的线性空间的基。

应用
就用上面的函数作为例子,我们来验证一下这个矩阵是否能达成我们想要的变化
import numpy as np
def f1(x, y):
return x + np.sin(y)
def f2(x, y):
return y + np.sin(x)
def trans(x, y):
return np.array([[f1(x, y), f2(x, y)]]).T
x,y = -2, 1
dx, dy = 0.01, 0.01
jac = np.array([[1, np.cos(y)],
[np.cos(x), 1]])
v = np.array([[dx, dy]]).T
pre = jac@v + trans(x, y)
real = trans(x + dx, y + dy)
print(pre - real)
# 输出:
# [[ 4.21632486e-05]
# [-4.55338499e-05]]
# 这是一个很小的误差显然我们已经能通过一个雅克比矩阵来得到一个点任意方向的函数值了,不必直接使用表达式。