# 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
# 详细信息
雅可比矩阵
向量函数的雅可比矩阵