雅可比旋轉求解對稱二維矩陣的特征值和特征向量

問題描述:

給定一個矩陣,如下:

A=[a11a21a12a22]

其中滿足 a12=a21.也就是所謂的 對稱矩陣。那么如何求解此矩陣的特征值以及特征向量呢?這里我們要用到 雅克比旋轉

雅克比旋轉

Jacobi方法是求對稱矩陣的全部特征值以及相應的特征向量的一種方法,它是基于以下兩個結論:

  1. 任何實對稱矩陣A可以通過正交相似變換成對角型,即存在正交矩陣Q,使得

    QTAQ=diag(λ1,λ2,,λn)

    其中λi(i=1,2,,n)是A的特征值,Q中各列為相應的特征向量。

  2. 在正交相似變換下,矩陣元素的平方和不變. 即設A=(aij)n×n,Q為正交矩陣,記B=QTAQ=(bij)n×n , 則

    i,j=1na2i,j=i,j=1nb2i,j

    Jacobi方法的基本思想是通過一次正交變換,將A中的一對非零的非對角元素化成零并且使得非對角元素的平方和減小。反復進行上述過程,使變換后的矩陣的非對角元素的平方和趨于零,從而使該矩陣近似為對角矩陣,得到全部特征值和特征向量。

如下我們僅僅考慮二維矩陣。對于高維的以此類推。
考慮如下的旋轉矩陣,

P=[cos(θ)?sin(θ)sin(θ)cos(θ)]

顯然我們知道P是正交矩陣,即 PT=P?1orPPT=E
對矩陣A實施正交變換,即如下:
A=PTAP
.
則有:
a11=cos2(θ)a11+sin2(θ)a22?2cos(θ)sin(θ)a12?????????????????????(1)

a22=sin2(θ)a11+cos2(θ)a22+2cos(θ)sin(θ)a12?????????????????????(2)

a12=(cos2(θ)?sin2(θ))a12+cos(θ)sin(θ)(a11?a22)?????????????????????(3)

a12=0,則可得出 θ的表達式:
?=cot(2θ)=cos2(θ)?sin2(θ)2sin(θ)cos(θ)=a22?a112a12????????????(4)

如果令 t=sin(θ)/cos(θ),則
t2+2t??1=0

這一方程較小的根對應著一個數量上小于 π/4的旋轉角,利用二次求根公式并對分母進行區分,可以寫出這一較小的根為:
t=sgn(?)|?|+?2+1?????????????????(5)

如果 θ很大,以至于 θ2在計算機上溢出,則令 t=1/(2?).于是就有:
cos(θ)=1t2+1?????????????????(6)

sin(θ)=tcos(θ)????????????????(7)

將(6、7)代入(1-3)則,顯然有:
(3)有 a12=0.剩下等式的指導思想是想將它們的新值寫成舊值加一個小的修正。于是利用 a12=0,將(1-2)的 a22消去,則有:
a11=a11?ta12

a22=a22+ta12
.
至此通過一次旋轉變換,即可將原矩陣非對稱部分消零。整個矩陣變成一個對角矩陣。且相應的特征向量也可以得出。
APAA(P1,P2)=PTAP=AP=(P1,P2)[a11a22]

也就是A的特征值為 a11 a22,相應的特征向量為 P1,P2.
其中,
P1=[cos(θ)?sin(θ)]

P2=[sin(θ)cos(θ)]

至于代碼,就不寫了,很簡單哦!

參考文獻

  1. 第四章第三節 Jacobi 方法
  2. Numerical Recipes(數值分析方法庫) C/C++:見第11章特征系統,對稱矩陣的雅可比變換。


打賞

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258842.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258842.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

游戲場景燈光烘焙

【LV4】北京 天殺神(153478394) 10:21:15可能是我找的截圖不好 我就是想問下 一般要烘焙這樣的一個場景的步驟是什么 【LV5】北京地編~mr(274380109) 10:21:44首先就看原畫的色調 確定一個環境光如果是晴天 就打一個直光 給陰影 直光不要太亮 【LV5】北京地編&a…

python畫圖數據的平均值怎么算的_Python氣象數據處理與繪圖(2):常用數據計算方法...

對于氣象繪圖來講,第一步是對數據的處理,通過各類公式,或者統計方法將原始數據處理為目標數據。 按照氣象統計課程的內容,我給出了一些常用到的統計方法的對應函數: import numpy as np 平均值 在計算氣候態&#xff0…

Linux下nginx安裝與配置

部分Linux發布版的默認安裝已經集成了nginx,查看方法ls /usr/local,若已有nginx文件夾說明已集成。nginx依賴庫pcre與zlib,且pcre依賴于gcc與gcc-c,因此安裝步驟為:安裝gcc與gcc-c庫安裝pcre庫安裝zlib庫安裝nginx詳細…

java 讀取properties文件

1.不在項目中讀取 Properties properties new Properties();BufferedReader read new BufferedReader(new InputStreamReader(new FileInputStream("文件的路徑"),"utf-8"));properties.load(read);properties .getProperty("那個文件的key") …

幾種字符串加密解密的方法

為什么80%的碼農都做不了架構師?>>> 第一種:〔 Python 與 Bash Shell 的結合 〕 這個命令會讓你輸入一個字符串,然后會再輸出一串加密了的數字。 加密代碼[照直輸入]: python -c print reduce(lambda a,b: a*256ord(b), raw_inpu…

java delegate怎么寫_美團面試官:你說你們公司的Mybatis分頁插件是你寫的,給我說說它的設計原理?...

來源:http://my.oschina.net/zudajun大多數框架,都支持插件,用戶可通過編寫插件來自行擴展功能,Mybatis也不例外。我們從插件配置、插件編寫、插件運行原理、插件注冊與執行攔截的時機、初始化插件、分頁插件的原理等六個方面展開…

C++標準庫與Java基礎類對照表

一、集合類對象的集合,指如鏈表,數組,隊列這一類的數據結構。在C標準庫中把這些成為Container, 在Java中稱為Collection。CSTL常用Container: vector, list, map, set, queue, stack, priority_queueJava基礎類:ArrayL…

ASP.NET MVC 在控制器中獲取某個視圖動態的HTML代碼

如果我們需要動態的用AJAX從服務器端獲取HTML代碼,拼接字符串是一種不好的方式,所以我們將HTML代碼寫在cshtml文件中,然后通過代碼傳入model,動態獲取cshtml中的HTML代碼 當然,我們想要使用通用的方法去獲取cshtml&…

SharePoint 2013 處理videoplayerpage.aspx下的個人圖片顯示有誤問題

問題:Personal sites photo cant correct display in the videos pageThe url address of personal sites photo is exist surplus characters. The correct situation is just the characters of "%20", not the characters of "%2520".解決方…

Python學習筆記(一)

1.python語言的優點:(1)是一種高級語言,提供大量的庫和內置數據結構(2)書寫簡潔優美 缺點:是解釋性語言,執行速度較慢 2.從官方網站下載的python解釋器為CPython,是一種用C語言編寫的python解釋器。在命令行如果啟動python3,輸入p…

匯編語言基本概念匯總

匯編語言應該是我們如今學的最“低級”的語言了,由于如今不會再有人去學機器語言了。而匯編語言還在一些硬件或者嵌入式設備上使用并開發著。下面資料是為了大學的匯編考試整理的資料,如今與大家分享,希望能給大家提供幫助。 匯編語言程序設計…

MySQL找出鎖等待

1.服務器級別的鎖等待可以通過show processlist看到等待鎖的線程id,但是無法知道究竟哪個線程持有鎖可以通過mysqladmin debug相關等待鎖的線程以及誰持有鎖可以在錯誤日志中找到2.存儲引擎層的鎖等待則比較麻煩,以下是innodb存儲引擎中鎖等待以及哪個線…

C++給函數傳數組參數C++給函數傳數組參數

C給函數傳數組參數 在C中&#xff0c;如果要給一個函數傳入一個數組&#xff0c;一般都是傳入兩個參數一個數組指針和一個數組大小 例&#xff1a; void print_1 (int n, int *datas ) { for (int i 0; i < n; i) { std::cout << datas[i] <<…

clover引導mbr安裝黑蘋果_安裝黑蘋果記錄(一)

從來沒有接觸過macOS(蘋果系統)&#xff0c;孩子說他用的那臺電腦linux不能安裝一些軟件&#xff0c;問我能不能安裝黑蘋果&#xff0c;一些軟件只有win和mac的客戶端&#xff0c;卻沒有linux版本。他知道我不會給他安裝Windows&#xff0c;一個是怕他玩游戲&#xff0c;另外一…

人口變動的經濟分析

佳木斯市人口變動的經濟分析上 人口生產和物質生產&#xff0c;是有史以來人類社會同時存在和同步發展的兩種生產&#xff0c;一切經濟變動都與人口變動有直接或間接的關系&#xff0c;而一切人口變動又可以從經濟變動中找到原因。為此&#xff0c;本文試根據我國、我省和我市第…

【javascript】操作符:一元操作符

一、一元操作符 <script>// var num1,num2,num3; num11;num22; alert(num1num2);//4 在前 alert(num1num2);//4 num11; alert(num1--num2);//3 num1NaN; alert(num1num2);//NaN num1true; alert(num1num2);//3 true轉化成了1 num1fal…

doxygen問題集錦

使用doxygen排版數學公式出錯的解決方法 參考&#xff1a;http://blog.csdn.net/huangbo10/article/details/46801949 問題 今天玩了一下doxygen&#xff0c;碰到一個問題 ! Undefined control sequence. l.77 $ y_{\mbox{test}} \mathbb{E}[y_{\mbox{train}}] x $ ? !…

ubuntu中make頭文件找不到_和平精英:游戲中找不到人怎么辦?這些技巧幫你練出“火眼金睛”...

大家好&#xff0c;歡迎來到《刺激實戰教室》&#xff0c;我是你們的老朋友刺激哥。俗話說&#xff0c;電子競技不需要視力&#xff0c;而這句話也是《和平精英》的一個“痛點”。在《和平精英》這款游戲中&#xff0c;更是如此。在很多時候&#xff0c;敵人就藏在我們的附近&a…

[CDA數據分析師學習之路] 【CDA就業班獨家發布】學習之路

http://bbs.pinggu.org/thread-4677737-1-1.html轉載于:https://blog.51cto.com/xbh1314/1923452

jdk8永久代從方法區移除的驗證

/*** 測試使用jdk8中是否仍然可以使用永久代* jvm options * -Xms20m -Xmx20m -Xmn10m -XX:PermSize10m -XX:MaxPermSize10m -XX:PrintGCDetails* * 結果運行提示&#xff1a;* Java HotSpot(TM) Client VM warning: ignoring option PermSize10m; support was removed in 8.0*…