目录
目录
什么是雅各布?
什么是雅各布矩阵?
雅各布矩阵的数学基础
1。矢量值函数和多变量演算
2。符号和尺寸
3。几何解释
4。雅各布功能的可逆性
雅各布的特性
计算雅各布矩阵
雅各布基质的分析推导
雅各比矩阵的数值近似
雅各布矩阵的自动差异
使用Python计算Jacobian矩阵和决定因素
步骤1:设置环境
步骤2:执行符号计算
步骤3:添加数值近似
步骤4:编写执行功能
输出:
输出评论:
Jacobian Matrix的应用
结论
常见问题
首页 科技周边 人工智能 什么是Jacobian Matrix?

什么是Jacobian Matrix?

May 10, 2025 am 10:29 AM

您是否曾经考虑过如何由Google Maps确定到达位置的最短路线?或者您如何自动移动方向盘会在旋转时会影响车辆的运动?好吧,这一切都归结为雅各布矩阵。 Jacobian矩阵是向量函数的部分衍生物的矩阵。雅各布球形坐标的转化是雅各布最常用的地方。它解决了雅各布球形坐标的思想。在本文中,我们将讨论Jacobian矩阵,其公式,决定因素以及我们如何在日常生活中使用它的数学概念。

目录

  • 什么是雅各布?
  • 什么是雅各布矩阵?
  • 雅各布矩阵的数学基础
    • 向量值函数和多变量演算
    • 符号和尺寸
    • 几何解释
    • Jacobian和Jacobian功能的可逆性
  • 雅各布的特性
  • 计算雅各布矩阵
    • 雅各布基质的分析推导
    • 雅各比矩阵的数值近似
    • 雅各布矩阵的自动差异
  • 使用Python计算Jacobian矩阵和决定因素
  • Jacobian Matrix的应用
  • 结论
  • 常见问题

什么是雅各布?

Jacobian矩阵及其决定因素是针对具有相同数量变量的有限数量的函数定义的,称为“ Jacobian”。它告诉我们一组变量的变化如何影响不同空间之间映射的函数的另一组变量。

在这种情况下,在每行中都可以找到有关变量的相同函数的第一个部分导数。矩阵可以是两种形式 - 一个平方矩阵,具有相等数量的行和列数,也可以是具有不均数的行和列的矩形矩阵。

示例:当徒步穿越一条颠倒小径的山上时,通常会有一个方向和一定程度的陡峭程度。不管您在山上的位置,雅各布人都像是让您的向导告诉您您的攀登程度有多陡峭,您的前进方式是多么陡峭。

另请阅读:机器学习背后的数学 - 您需要知道的核心概念

什么是雅各布矩阵?

现在,Jacobian矩阵是由部分衍生物组成的矩阵,该基质显示了通过函数将输入向量向量向量转换为输出向量的矩阵。它解释了每个输出相对于每个输入变量的变化。对于具有M组分总数和N变量的函数f:ℝⁿ→ℝᵐ,雅各布公式可以表示为:

符号雅各布矩阵:
矩阵([[[2*x,-1],[2*y,2*x]])

Jacobian点(2,3):
矩阵([[[4,-1],[6,4]])

雅各布(符号)的决定因素:
4*x ** 2 2*y

点(2,3)的决定因素:
22

点(2,3)的数字雅各布:

 <code>[[ 4.000001 -1. ] [ 6. 4. ]]</code>
登录后复制

在这里,Jacobian公式将在一个点附近的函数中给出局部线性近似,并解释函数如何伸展,旋转和转换空间。

雅各布矩阵的数学基础

为了完全了解雅各布矩阵,我们将讨论数学的不同基础:

1。矢量值函数和多变量演算

它基本上是指映射从一个空间指向另一个空间的函数。这些功能具有与多个输入相对应的多个输出。这样的功能赋予了现实生活系统(如流体动力学)的基础结构。

Jacobian结合了线性代数和多变量的演算。标量导数告诉我们单变量函数的变化率。它还解释了功能的变化速率,具有以矩阵格式显示的多个输入和输出。

另请阅读:在开始深度学习旅程时应该知道的12个矩阵操作

2。符号和尺寸

雅各布矩阵的结构和格式解释了有关转换表示的重要信息。对于函数f:ℝⁿ到ℝᵐ,其中'n'代表输入和“ m”输出,jacobian是'm'by'n'矩阵。 Jacobian矩阵的条目表示jᵢⱼ=∂fᵢ/∂xⱼ,I'th输出函数的表示相对于j'th输入变量发生了变化。

因此,矩阵的尺寸会影响转换。从3D空间到2D空间,Jacobian的行将等于输出等于输入,这导致2*3矩阵。

3。几何解释

雅各布的功能行为还用代数定义解释了视觉见解。以下解释有助于我们确定雅各布矩阵如何用几何术语描述函数的局部行为。

什么是Jacobian Matrix?

  • 局部线性变换:雅各比式在点附近赋予该函数最线性近似。它解释了一个无限小的输入点映射到输出映射的区域。
  • 切线近似: Jacobian将切线向量从输入空间转换为输出空间,相反。当被认为是表面时,它会在局部描述这些表面如何相互转动。

4。雅各布功能的可逆性

雅各布语与可逆性之间的关系证明了必要的信息。它在特定点提供了对功能的局部行为的见解。

什么是Jacobian Matrix?

  • | J | > 0:局部方向由函数保留。
  • | J |
  • | J | = 0:特定关键点的可逆性丢失了

据说,每当雅各布是非单一的,其决定因素不等于零,据说在邻里的函数是可逆的。然后,与此点一致,我们将具有我们的逆函数定理。但是,每当雅各布决定因素变为零时,输出域就会发生折叠,压实或定位。

另请阅读:数据科学家的综合初学者指南

雅各布的特性

现在,让我们了解雅各布的属性。

  1. 链条规则:对于复合函数,可以将雅各布人乘以获得组成的雅各布。
  2. 方向衍生物:雅各布式可用于计算沿任何方向的定向衍生物。
  3. 线性近似:函数接近任何点的近似值由F(xΔX)≈f(x)j(x)·Δx给出。

计算雅各布矩阵

现在,我们将看到三种计算Jacobian矩阵的方法和Jacobian球形坐标的转换 - 分析推导,数值近似和自动分化。

雅各布基质的分析推导

这是依赖于部分衍生物的直接计算来产生雅各布矩阵的经典方式,从而提供了对转换结构的见解。它是通过系统区分每个组件功能相对于每个输入变量来实现的。

让我们考虑一个示例,其中vector函数f:ℝⁿ→ℝᵐ具有组件f₁,f₂,…,fₘ和变量x₁,x₂,…,xₙ使用每个j = 1,2的部分导数∂fi/∂xj计算。

 j(x)= [<br> ∂f₁/∂x₁∂f₁/∂x₂...∂f₁/∂xₙ<br> ∂f₂/∂x₁∂f₂/∂x₂...∂f₂/∂xₙ<br> ... ... ... ... ...<br> ∂fₘ/∂x₁∂fₘ/∂x₂...∂fₘ/∂xₙ<br>这是给出的<br><br>示例:f(x,y)=(x²-y,2xy),评估的部分衍生物为:<br><br> ∂f₁/∂x= 2x<br> ∂f₁/∂y= -1<br> ∂f₂/∂x= 2y<br> ∂f₂/∂y= 2x<br><br>因此,我们可以说雅各布矩阵观察到:<br><br> j(x,y)= [2x -1<br> 2y 2x]
登录后复制

通过这种方法,我们可以看到确切的结果。但是,在一次处理多个变量的同时,情况可能会变得复杂,或者在无法进行计算的情况下进行复杂的功能。

雅各比矩阵的数值近似

每当分析推导要么太笨重而无法执行,或者当功能缺乏形式表达式时,数值方法就会提供实用的替代解决方案,这些解决方案使用有限的差异来计算部分衍生物。两种主要有限差异方法是:

  1. 向前差:
 ∂fi/∂xⱼ≈[f(x₁,...,xⱼh,...,xₙ)
登录后复制
  1. 较高准确性的中心差异
∂fi/∂xⱼ≈[f(x₁,...,xⱼh,...,xₙ)
登录后复制

在这里,h =小步骤,通常为10次,以达到双精度。

这就是选择正确的步骤大小。太大带​​来了近似错误,而小引起的数值不稳定,由于浮点限制。使用自适应步骤尺寸或理查森外推的高级技术可以进一步提高准确性。

雅各布矩阵的自动差异

将分析精度与计算自动化结合的自动差异化在列表中非常高。它与数值方法不同,即AD计算精确的导数而不是近似它们,从而避免了离散化错误。自动分化的基础原则是:

  1. 链条规则的应用:它系统地将链条规则应用于构成功能的基本操作。
  2. 计算图的表示:该函数被分解为具有已知衍生物的原始操作中的指向图。
  3. 向前和反向节点:正向模式从输入到输出传播衍生物,而反向模式将导数从输出传播到输入。

什么是Jacobian Matrix?

这使得自动差异化非常容易且有效地用于现代软件框架,例如Tensorflow,Pytorch,Jax。他们更喜欢在机器学习中计算雅各布人,以及科学研究的优化问题。

使用Python计算Jacobian矩阵和决定因素

让我们看看如何使用Python实现Jacobian矩阵和Jacobian球形坐标。我们将分别与Synpy和Numpy一起使用符号计算和数值近似。

步骤1:设置环境

导入运行该功能所需的必要路径。

导入numpy作为NP
导入Sympy作为SP
导入matplotlib.pyplot作为PLT
从matplotlib.patches导入椭圆
登录后复制

步骤2:执行符号计算

用Sympy编写符号计算的函数。

 def smybolic_jacobian():
   x,y = sp.symbols('x y')
   f1 = x ** 2- y
   f2 = 2*x*y
  
   #定义功能向量
   f = sp.matrix([F1,F2])
   x = sp.matrix([x,y])
  
   #计算雅各布矩阵
   j = f.jacobian(x)
  
   打印(“符号雅各布矩阵:”)
   打印(J)
  
   #在点(2,3)计算雅各布
   j_at_point = j.subs([(x,2),(y,3)])
   打印(“ \ njacobian点(2,3):”)
   打印(j_at_point)
  
   #计算决定因素
   det_j = j.det()
   print(“ \ jacobian(符号):”)
   打印(det_j)
   打印(“ \ ndeterminant在点(2,3):”)
   打印(det_j.subs([((x,2),(y,3)])))))
  
   返回J,det_j
登录后复制

步骤3:添加数值近似

用numpy编写用于数值近似值的函数。

 def numerical_jacobian(func,x,epsilon = 1e-6):
   n = len(x)#输入变量的数量
   m = len(func(x))#输出变量的数量
  
   jacobian = np.zeros((M,n))
  
   对于(n)范围内的我:
       x_plus = x.copy()
       x_plus [i] = epsilon
      
       jacobian [:,i] =(func(x_plus) -  func(x)) / epsilon
      
   返回雅各布
登录后复制

步骤4:编写执行功能

编写执行上述功能和转换可视化的主要功能。

 def f(x):
   返回np.Array([x [0] ** 2 -x [1],2*x [0]*x [1]))


#可视化转换
Def Visualize_transFormation():
   #创建点网格
   x = np.linspace(-3,3,20)
   y = np.linspace(-3,3,20)
   x,y = np.meshgrid(x,y)
  
   #计算转换点
   u = x ** 2- y
   v = 2*x*y
  
   #绘图原创和转换的网格
   图,(AX1,AX2)= plt.subplot(1,2,无花果=(12,6))
  
   #原始网格
   ax1.set_title('原始空间')
   ax1.set_xlabel('x')
   ax1.set_ylabel('y')
   ax1.grid(true)
   ax1.plot(x,y,'k。',markersize = 2)
  
   #添加一个单元圆
   circle = plt.circle(((0,0),1,填充= false = false,color ='red',lineWidth = 2)
   AX1.ADD_ARTIST(圈)
   ax1.set_xlim(-3,3)
   ax1.set_ylim(-3,3)
   ax1.set_aspect('quare')
  
   #转换网格
   ax22.set_title('转换空间')
   ax22.set_xlabel('u')
   ax2.set_ylabel('v')
   ax2.Grid(true)
   ax2.plot(u,v,'k。',markersize = 2)
  
   #计算单位圆的转换
   theta = np.linspace(0,2*np.pi,100)
   x_circle = np.cos(theta)
   y_circle = np.sin(theta)
   u_circle = x_circle ** 2 -y_circle
   v_circle = 2*x_circle*y_circle
   ax2.plot(u_circle,v_circle,'r-',lineWidth = 2)
  
   #在点(1,0)处显示本地线性近似
   point = np.array([[1,0])
   j = numerical_jacobian(f,point)
  
   #计算雅各布在我们的位置如何改变一个小圆圈
   比例= 0.5
   transformed_points = []
   对于theta的t:
       delta =比例 * np.Array([NP.COS(T),NP.SIN(T)])
       transformed_delta = j @ delta
       transformed_points.append(transped_delta)
  
   transformed_points = np.array(变换_points)
  
   #绘制近似值
   base_point_transformed = f(点)
   ax2.plot(base_point_transformed [0]转换_points [:,0],
            base_point_transformed [1]转换_points [:,1],
            'g-',线宽= 2,label ='线性近似')
  
   ax2.legend()
   plt.tight_layout()
   plt.show()


#执行功能
symbolic_result = smybolic_jacobian()
point = np.array([[2.0,3.0])
Numerical_Result = numerical_jacobian(f,point)


打印(“ \ numerical jacobian在点(2,3):”)
打印(数字_RESULT)


#可视化转换
可视化_transformation()
登录后复制

输出:

什么是Jacobian Matrix?

什么是Jacobian Matrix?

输出评论:

提出了非线性映射f(x,y)=(x²-y,2xy),并突出显示了雅各布属性。原始空间在左侧显示为均匀的网格和一个单位圆,而右图显示了转换后的空间,该空间已变形为八人物。

同时按象征性计算Jacobian矩阵([[[2X,-1],[2y,2*x]]))和在数值点(2,3)。它显示出等于22的决定因素。这表示本地的大量面积。因此,该分析提供了一种数学观点,说明转换如何扭曲了该区域。线性化(绿色曲线)表示此非线性映射的局部结构。

Jacobian Matrix的应用

最新的ML框架包括为我们计算Jacobian Matrix的自动分化工具。这是用于复杂应用程序的游戏规则改变者,例如:

  1. 机器人手臂控制速度
  2. 动态系统的稳定性分析:
  3. 蛇机器人障碍导航:
  4. 操纵器的运动计划:
  5. 机器人技术中的力量转换:

结论

微积分,差异几何形状和线性代数都是雅各布矩阵绑定在一起并应用于现实世界应用的数学学科。从先进的手术机器人到GPS的位置,雅各布在使技术更快和先天性方面发挥了重要作用。这是数学如何描述我们的宇宙并帮助我们更有效,有效地与之互动的一个例子。

常见问题

Q1。我什么时候使用Jacobian决定因素与完整的Jacobian Matrix?

答:决定因素为您提供有关音量变化和可逆性的信息,而完整矩阵提供了方向信息。当您关心缩放因素和可逆性时,请使用决定因素,以及需要知道方向如何转换时的完整矩阵。

Q2。雅各布与梯度有何关系?

答:梯度实际上是雅各布的特殊情况!当您的函数仅输出一个值(标量字段)时,Jacobian是一行,这正是该函数的梯度。

Q3。有没有计算雅各布的情况?

答:是的!如果您的功能在某个时刻无法区分,则在那里未定义Jacobian。这发生在您的功能中的角落,尖或不连续性。

Q4。如何在坐标转换中使用的雅各布?

答:当更改坐标系统(例如从笛卡尔到极地)时,雅各布式确定区域或体积如何在系统之间变化。这对于正确计算不同坐标系统中的积分的多变量计算至关重要。

Q5。在实践中,数值错误如何影响雅各布计算?

A.雅各布的数值近似可能会遭受圆形错误和截断错误。在机器人技术或财务建模等关键应用中,经过复杂的技术(例如自动差异化)通常用于最大程度地减少这些错误。

以上是什么是Jacobian Matrix?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
如何使用AGNO框架构建多模式AI代理? 如何使用AGNO框架构建多模式AI代理? Apr 23, 2025 am 11:30 AM

在从事代理AI时,开发人员经常发现自己在速度,灵活性和资源效率之间进行权衡。我一直在探索代理AI框架,并遇到了Agno(以前是Phi-

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表语句:动态地将列添加到数据库 在数据管理中,SQL的适应性至关重要。 需要即时调整数据库结构吗? Alter表语句是您的解决方案。本指南的详细信息添加了Colu

超越骆驼戏:大型语言模型的4个新基准 超越骆驼戏:大型语言模型的4个新基准 Apr 14, 2025 am 11:09 AM

陷入困境的基准:骆驼案例研究 2025年4月上旬,梅塔(Meta)揭开了Llama 4套件的模特套件,具有令人印象深刻的性能指标,使他们对GPT-4O和Claude 3.5 Sonnet等竞争对手有利地定位。伦斯的中心

OpenAI以GPT-4.1的重点转移,将编码和成本效率优先考虑 OpenAI以GPT-4.1的重点转移,将编码和成本效率优先考虑 Apr 16, 2025 am 11:37 AM

该版本包括三种不同的型号,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,标志着向大语言模型景观内的特定任务优化迈进。这些模型并未立即替换诸如

多动症游戏,健康工具和AI聊天机器人如何改变全球健康 多动症游戏,健康工具和AI聊天机器人如何改变全球健康 Apr 14, 2025 am 11:27 AM

视频游戏可以缓解焦虑,建立焦点或支持多动症的孩子吗? 随着医疗保健在全球范围内挑战,尤其是在青年中的挑战,创新者正在转向一种不太可能的工具:视频游戏。现在是世界上最大的娱乐印度河之一

Andrew Ng的新简短课程 Andrew Ng的新简短课程 Apr 15, 2025 am 11:32 AM

解锁嵌入模型的力量:深入研究安德鲁·NG的新课程 想象一个未来,机器可以完全准确地理解和回答您的问题。 这不是科幻小说;多亏了AI的进步,它已成为R

火箭发射模拟和分析使用Rocketpy -Analytics Vidhya 火箭发射模拟和分析使用Rocketpy -Analytics Vidhya Apr 19, 2025 am 11:12 AM

模拟火箭发射的火箭发射:综合指南 本文指导您使用强大的Python库Rocketpy模拟高功率火箭发射。 我们将介绍从定义火箭组件到分析模拟的所有内容

Google揭示了下一个2025年云上最全面的代理策略 Google揭示了下一个2025年云上最全面的代理策略 Apr 15, 2025 am 11:14 AM

双子座是Google AI策略的基础 双子座是Google AI代理策略的基石,它利用其先进的多模式功能来处理和生成跨文本,图像,音频,视频和代码的响应。由DeepM开发

See all articles