【学习笔记】用代码理解一下雅克比行列式

一个关于雅克比行列式的解释

一、概念

雅克比行列式本质上就是一阶导数以一定的方法排列的矩阵。
这里可以展开两个思考🤔:为什么是一阶导数?以什么样的方式进行排列?这种排列有什么意义呢?

雅克比行列式是什么?比较学术的解释是: 在向量微积分中,雅克比矩阵是一阶偏导数以一定方式排列成的矩阵,其行列式称为雅克比行列式。雅克比矩阵的重要性在与它体现了一个可微方程与给出点的最优线性逼近。因此,雅克比矩阵类似于多元函数的导数。

数学上的表达如下:


在这里插入图片描述


二、理解

下面有一句话,我觉得十分有必要仔细的看一下:
它解释了为什么是一阶导数?以什么样的方式进行排列?这种排列有什么意义呢?

为什么是一阶导数:

  • 因为要表示在p点上的最优逼近,所以是要求函数F的一阶导数的

以什么样的方式进行排列?这种排列有什么意义?

  • 排列方式就是如上图所示,为什么这样排列,我个人的理解是为了与(x-p)相乘,所以要这样地排列。

在这里插入图片描述


三、举个例子

# Importing the library 
import tensorflow as tf 
  
x = tf.constant([[4, 2],[1, 3]], dtype=tf.dtypes.float32) 
  
# Using GradientTape 
with tf.GradientTape() as gfg:
  gfg.watch(x) 
  y = x * x * x 
  
# Computing jacobian 
res  = gfg.jacobian(y, x)  
  
# Printing result 
print("res:",res)

上面这段代码的例子呢: y = x 3 y = x^3 y=x3, 其中 ∇ y ∇ x = 3 x 2 \frac{\nabla y}{\nabla x} = 3 x^2 xy=3x2, 所以最后的答案是:

res: tf.Tensor(
[[[[48.  0.]
   [ 0.  0.]]

  [[ 0. 12.]
   [ 0.  0.]]]


 [[[ 0.  0.]
   [ 3.  0.]]

  [[ 0.  0.]
   [ 0. 27.]]]], shape=(2, 2, 2, 2), dtype=float32)

下面是我手动的推导:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值