# jacobian


标量函数的梯度向量

函数库: TySymbolicMath

# 语法

jacobian(O,vars;simplify)

# 说明

jacobian(f,v) 计算 f 相对于 v 的雅可比矩阵。 结果的 (i,j) 元素是示例

# 示例

向量函数的雅可比矩阵

向量函数的雅可比矩阵是该函数的偏导数矩阵。

计算 [xyz, y^2, x + z] 相对于 [x, y, z] 的雅可比矩阵。

using TySymbolicMath
@variables  x y z
jacobian([x*y*z, y^2, x + z], [x, y, z])
ans = 3×3 Matrix{Num}:
y*z  x*z  x*y
0   2y    0
1    0    1

现在,计算 [x*y*z, y^2, x + z] 相对于 [x; y; z]。

jacobian([x*y*z, y^2, x + z], [x; y; z])
ans = 3×3 Matrix{Num}:
y*z  x*z  x*y
0   2y    0
1    0    1

雅可比矩阵对于向量在第二个输入位置的方向是不变的。

标量函数的雅可比

标量函数的雅可比是其梯度的转置。

计算关于 [x, y, z] 的 2*x + 3*y + 4*z 的雅可比矩阵。

using TySymbolicMath
@variables  x y z
jacobian([2*x + 3*y + 4*z], [x, y, z])
ans = 1×3 Matrix{Num}:
2  3  4

现在,计算相同表达式的梯度。

TySymbolicMath.gradient(2*x + 3*y + 4*z, [x, y, z])
3-element Vector{Num}:
2
3
4
关于标量的雅可比矩阵

函数相对于标量的雅可比矩阵是该函数的一阶导数。 对于向量函数,关于标量的雅可比矩阵是一阶导数的向量。

计算 [x^2*y, x*sin(y)] 相对于 x 的雅可比矩阵。

using TySymbolicMath
@variables x y
jacobian([x^2*y, x*sin(y)], [x])
ans = 2×1 Matrix{Num}:
2x*y
sin(y)

现在,计算导数。

derivative.([x^2*y, x*sin(y)], x)
ans = 2-element Vector{Num}:
2x*y
sin(y)

# 输入参数

f - 标量或向量函数
符号表达式 | 符号向量

标量或向量函数,指定为符号表达式、函数或向量。 如果 f 是标量,则 f 的雅可比矩阵是 f 的转置梯度。

数据类型: Num

v - 计算雅可比矩阵的变量向量
符号变量向量

相对于您找到雅可比矩阵的向量,指定为符号向量。

数据类型: Num

# 详细信息

雅可比矩阵

向量函数的雅可比矩阵是 f 的导数矩阵:

# 另请参阅

laplacian | hessian | potential | gradient