目錄
目錄
什麼是雅各布?
什麼是雅各布矩陣?
雅各布矩陣的數學基礎
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教學
1668
14
CakePHP 教程
1426
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

pixtral -12b:Mistral AI&#039;第一個多模型模型 - 分析Vidhya pixtral -12b:Mistral AI&#039;第一個多模型模型 - 分析Vidhya Apr 13, 2025 am 11:20 AM

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

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

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

如何使用AGNO框架構建多模式AI代理? 如何使用AGNO框架構建多模式AI代理? Apr 23, 2025 am 11:30 AM

在從事代理AI時,開發人員經常發現自己在速度,靈活性和資源效率之間進行權衡。我一直在探索代理AI框架,並遇到了Agno(以前是Phi-

超越駱駝戲:大型語言模型的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

視頻遊戲可以緩解焦慮,建立焦點或支持多動症的孩子嗎? 隨著醫療保健在全球範圍內挑戰,尤其是在青年中的挑戰,創新者正在轉向一種不太可能的工具:視頻遊戲。現在是世界上最大的娛樂印度河之一

See all articles