版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)論文(設(shè)計(jì))</p><p><b> ?。?0 屆)</b></p><p> 矩陣特征值與特征向量計(jì)算的MATLAB GUI設(shè)計(jì)</p><p> 所在學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí) 信息與計(jì)算科學(xué)
2、 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p> 摘要: 本文首先介紹了MATLAB GUI,以及在數(shù)值計(jì)算方面的
3、應(yīng)用。接著敘述了矩陣特征值與特征向量的計(jì)算方法。應(yīng)用MATLAB編寫(xiě)程序求矩陣特征值與特征向量問(wèn)題,最后用MATLAB GUI設(shè)計(jì)圖形界面,使數(shù)據(jù)可視化,即用MATLAB GUI實(shí)現(xiàn)求解矩陣特征值與特征向量。解決方法有乘冪法,反冪法,子空間迭代法,Jacobi旋轉(zhuǎn)法,Household方法,QR算法等等,本文舉的兩個(gè)例子分別是規(guī)范化乘冪法和Jacobi旋轉(zhuǎn)法。</p><p> 關(guān)鍵詞:MATLAB GUI;特
4、征值;特征向量;乘冪法.</p><p> Eigenvalue and Eigenvector Calculation of Matrix by MATLAB GUI Design</p><p> Abstract:In this paper the software of MATLAB GUI and the application of MATLAB in numerical
5、are introduced. Then the eigenvalue and eigenvector calculation of matrix are solved by MATLAB GUI. At last, the graphics data is visualized by MATLAB GUI. That is using the MATLAB GUI to implement the eigenvalue and eig
6、envector calculation of matrix. There are so many solutions, such as power method, inverse power method, the subspace iteration method, Jacobi rotaryprocess, Household, QR and so on. Ther</p><p> Keywords:
7、MATLAB GUI; Eigenvalue; eigenvector calculation; found method. </p><p><b> 目錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 問(wèn)題的背景、意義1</p><p> 1.1
8、.1 背景1</p><p> 1.1.2 意義1</p><p> 2 MATLAB軟件介紹2</p><p> 2.1 MATLAB介紹2</p><p> 2.1.1 MATLAB軟件概況2</p><p> 2.2 MATLAB GUI介紹 3</p><p
9、> 3矩陣特征值與特征向量計(jì)算5</p><p> 3.1乘冪法及其變體5</p><p> 3.2 子空間迭代法6</p><p> 3.3 Jacobi旋轉(zhuǎn)法7</p><p> 3.4 Householder方法8</p><p> 3.5 QR方法9</p><
10、;p> 4 MATLAB GUI在矩陣特征值與特征向量中的應(yīng)用10</p><p> 4.1 MATLBA GUI在乘冪法中的應(yīng)用10</p><p> 4.2 MATLBA GUI 在Jacobi旋轉(zhuǎn)法中的應(yīng)用13</p><p><b> 5 結(jié)論18</b></p><p> 致 謝
11、錯(cuò)誤!未定義書(shū)簽。</p><p><b> 參考文獻(xiàn)19</b></p><p><b> 1 緒論</b></p><p> 1.1 問(wèn)題的背景、意義</p><p><b> 1.1.1 背景</b></p><p> 由于計(jì)算
12、機(jī)的發(fā)展和普及,科學(xué)計(jì)算已成為解決各類(lèi)科學(xué)技術(shù)問(wèn)題的重要手段。因此,掌握科學(xué)計(jì)算的基本原理和方法是當(dāng)今科學(xué)技術(shù)工作者不可缺少的本領(lǐng)和技能之一。并且經(jīng)過(guò)不斷的研究和累積,在現(xiàn)今科學(xué)研究和工程實(shí)踐中,數(shù)值計(jì)算已經(jīng)發(fā)展成為一門(mén)用來(lái)分析數(shù)據(jù),解決實(shí)際問(wèn)題的重要學(xué)科,成為繼理論分析、實(shí)驗(yàn)之后又一個(gè)重要的研究方法。</p><p> MATLAB是一種數(shù)值計(jì)算環(huán)境和編程語(yǔ)言,主要包括MATLAB和Simulink兩大部分。
13、</p><p> MATLAB基于矩陣運(yùn)算,具有強(qiáng)大的數(shù)值分析、矩陣計(jì)算、信號(hào)處理和圖形顯示功能,其強(qiáng)大的數(shù)據(jù)處理能力和豐富的工具箱使得它的編程極為簡(jiǎn)單。 MATLAB既能進(jìn)行科學(xué)計(jì)算,又能開(kāi)發(fā)出所需要的圖形界面[1]。</p><p><b> 1.1.2 意義</b></p><p> 方陣的特征值與特征向量是矩陣問(wèn)題中最重要的內(nèi)
14、容之一,此類(lèi)問(wèn)題具有重要的理論價(jià)值與廣泛的引用背景.在工程技術(shù)中有許多與振動(dòng)和穩(wěn)定有關(guān)的問(wèn)題,在數(shù)學(xué)中,解微分方程組及簡(jiǎn)化矩陣的計(jì)算等,也會(huì)遇到這樣的問(wèn)題,而這些問(wèn)題的求解往往都可以轉(zhuǎn)化為求矩陣的特征值和特征向量的問(wèn)題.求特征問(wèn)題是科學(xué)與工程中提出的一類(lèi)重要數(shù)學(xué)問(wèn)題。如動(dòng)力學(xué)系統(tǒng)和結(jié)構(gòu)系統(tǒng)中的振動(dòng)問(wèn)題,需要求系統(tǒng)的頻率與振幅,又如物理學(xué)中的某些臨界值的確定等[3]。</p><p> 2 MATLAB軟件介紹
15、</p><p> 2.1 MATLAB介紹</p><p> 2.1.1 MATLAB軟件概況[3、4]</p><p> “MATLAB”是“Matrix Laboratory”的縮寫(xiě)。MATLAB的第一個(gè)版本是LINPACK和EISPACK庫(kù)的程序的一個(gè)接口,用來(lái)分析線性方程組。隨著MATLAB的演化,除了線性代數(shù)外,它還支持許多其他的程序。MATL
16、AB的核心仍然是基于命令行的交互式分析工具。用戶可以用類(lèi)Fortran語(yǔ)言擴(kuò)展交互環(huán)境。交互環(huán)境中的程序以命令行的形式執(zhí)行。</p><p> MATLAB是一個(gè)基本的應(yīng)用程序,它有一個(gè)稱為標(biāo)準(zhǔn)工具箱的巨大程序模塊庫(kù)。MATLAB工具箱包括解決實(shí)際問(wèn)題的擴(kuò)展庫(kù)。由于繼承了LINPACK、EISPACK和LAPACK的特性,MATLAB對(duì)數(shù)值線性代數(shù)來(lái)說(shuō)是一個(gè)高可靠的優(yōu)化系統(tǒng)。</p><p&
17、gt; 2.1.2 MATLAB語(yǔ)言特點(diǎn)[5、6]</p><p> MATLAB語(yǔ)言有不同于其他高級(jí)語(yǔ)言的特點(diǎn),它被稱為第四代計(jì)算機(jī)語(yǔ)言,MATLAB語(yǔ)言的最大特點(diǎn)就是簡(jiǎn)單和直接。它豐富的函數(shù)使開(kāi)發(fā)者無(wú)須重復(fù)編程,只要簡(jiǎn)單的調(diào)用和使用即可。MATLAB語(yǔ)言的主要特點(diǎn)可概括如下:</p><p> ?。?)以矩陣和數(shù)組為基礎(chǔ)的運(yùn)算</p><p> MATL
18、AB 是以矩陣為基礎(chǔ)的,不需要預(yù)先定義變量和矩陣(包括數(shù)組)的維數(shù),可以方便地進(jìn)行矩陣的算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算等。</p><p> (2) 簡(jiǎn)單易學(xué),使用方便</p><p> MATLAB 被稱為“草稿式”語(yǔ)言,這是因?yàn)槠浜瘮?shù)名和表達(dá)更接近我們書(shū)寫(xiě)計(jì)算公式的思維表達(dá)方式,編寫(xiě)MATLAB程序猶如在草稿紙上排列公式與求解問(wèn)題,因此可以快速地驗(yàn)證工程技術(shù)人員的算法。此外MATLA
19、B還是一種解釋性語(yǔ)言,不需要專(zhuān)門(mén)的編譯器。</p><p> ?。?) 強(qiáng)大的圖形技術(shù)</p><p> MATLAB具有非常強(qiáng)大的以圖形化顯示矩陣和數(shù)組的能力,同時(shí)它能給這些圖形增加注釋并且打印這些圖形。</p><p><b> (4)編程效率極高</b></p><p> MATLAB 是一種面向科學(xué)和工程計(jì)
20、算的高級(jí)語(yǔ)言。它以矩陣運(yùn)算為基礎(chǔ),極少的代碼即可實(shí)現(xiàn)復(fù)雜的功能。</p><p> (5) 可擴(kuò)充性強(qiáng),具有方便的應(yīng)用程序接口</p><p> MATLAB 不僅有豐富的庫(kù)函數(shù),而且用戶還可以根據(jù)需要方便地編寫(xiě)和擴(kuò)充新的函數(shù)庫(kù)。</p><p> 2.2 MATLAB GUI介紹 [7、8]</p><p> MATLAB 是一套
21、高性能的數(shù)值計(jì)算和可視化軟件,它作為新興的編程語(yǔ)言和可視化工具,有著其他編程語(yǔ)言所不能比擬的優(yōu)勢(shì),如Fortan 語(yǔ)言是一種專(zhuān)用于科學(xué)計(jì)算的語(yǔ)言,但其圖形界面的功能比較弱,利用其開(kāi)發(fā)的程序,用戶界面不友好,使用起來(lái)不方便,而VB、VC等可視化編程語(yǔ)言開(kāi)發(fā)出來(lái)的程序界面友好,但由于其不是專(zhuān)用于科學(xué)計(jì)算的語(yǔ)言,因此其科學(xué)計(jì)算功能較弱。</p><p> 而MATLAB同時(shí)具備這兩方面的優(yōu)勢(shì),既能進(jìn)行科學(xué)計(jì)算,又能開(kāi)
22、發(fā)出所需要的圖形界面,特別是Mathworks公司推出的MATLAB 6及以上的版本更是加強(qiáng)了圖形界面編程功能。</p><p> 圖形用戶界面(Graphical User Interface)是由窗口、光標(biāo)、按鍵、菜單、文字說(shuō)明等對(duì)象(Objects)構(gòu)成的一個(gè)用戶界面。程序的用戶界面是用戶與計(jì)算機(jī)程序的交互方式,用戶通過(guò)鍵盤(pán)、鼠標(biāo)等輸入設(shè)備與計(jì)算機(jī)交換信息。用戶以某種方式選擇或激活這些對(duì)象,會(huì)引起動(dòng)作或發(fā)
23、生變化,例如調(diào)用計(jì)算程序或者繪圖等。</p><p> 創(chuàng)建MATLAB用戶界面必須具有以下3個(gè)基本元素:</p><p><b> 組件</b></p><p> 在MATLAB GUI中的每一個(gè)項(xiàng)目(按鈕、標(biāo)簽、編輯框等)都是一個(gè)圖形化組件。組件可分為3類(lèi):圖形化控件(按鈕、編輯框、列表、滾動(dòng)條等)、靜態(tài)元素(窗口和文本字符串)、菜單
24、和坐標(biāo)系。</p><p><b> (2)圖形窗口</b></p><p> GUI的每一個(gè)組件都必須安排在圖像窗口中。在畫(huà)圖像時(shí),圖像窗口通常會(huì)被自動(dòng)創(chuàng)建。但還可以用函數(shù)figure來(lái)創(chuàng)建空?qǐng)D像窗口,空?qǐng)D像窗口經(jīng)常用于放置各種類(lèi)型的組件。</p><p><b> ?。?)回應(yīng)</b></p><
25、;p> 如果用戶用鼠標(biāo)單擊或者用鍵盤(pán)輸入一些信息,那么程序就要有相應(yīng)的動(dòng)作。鼠標(biāo)單擊或輸入信息是一個(gè)事件,如果MATLAB程序運(yùn)行相應(yīng)的函數(shù),那么MATLAB函數(shù)肯定會(huì)有所反應(yīng)。</p><p> 實(shí)現(xiàn)一個(gè)GUI的過(guò)程包括兩個(gè)基本任務(wù):一是GUI的組件布局,另一個(gè)是GUI組件編程。</p><p> GUI也是一種Matlab對(duì)象,可以使用M文件來(lái)創(chuàng)建M文件,這也是最基礎(chǔ)的,使
26、用其他方法創(chuàng)建時(shí),也需要編寫(xiě)相應(yīng)的程序代碼。除了使用M文件來(lái)創(chuàng)建GUI對(duì)象外,Matlab還為用戶開(kāi)發(fā)圖形界面提供一個(gè)方便高效的繼承開(kāi)發(fā)環(huán)境:Matlab圖形用戶界面開(kāi)發(fā)環(huán)境(Matlab Graphical User Interface Development Environment,GUIDE)。其主要是一個(gè)界面設(shè)計(jì)工具集,他將所有GUI所支持的用戶控件都集成起來(lái),同時(shí)提供界面外觀、屬性和行為響應(yīng)方法的設(shè)置方法。除了可以使用GUID
27、E創(chuàng)建GUI之外,還可以將設(shè)計(jì)好的GUI界面保存為一個(gè)FIG資源文件,同時(shí)自動(dòng)生成對(duì)應(yīng)的M 文件。該M文件包含了GUI初始化代碼和組建界面布局的控制代碼。</p><p> MATLAB是一種面向?qū)ο蟮母呒?jí)計(jì)算機(jī)語(yǔ)言,其數(shù)據(jù)可視化技術(shù)中的各種圖形元素,實(shí)際上都是抽象圖形對(duì)象的實(shí)例,MATLAB中由圖形命令產(chǎn)生的每一件東西都是圖形對(duì)象。它們包括圖形窗口,還有坐標(biāo)軸、線條、曲面、文本和其他。各種圖形對(duì)象和其間的關(guān)系
28、如下圖所示。</p><p> 矩陣特征值與特征向量計(jì)算</p><p> 求解特征問(wèn)題是科學(xué)與工程中提出的一類(lèi)重要數(shù)學(xué)問(wèn)題,如動(dòng)力學(xué)系統(tǒng)和結(jié)構(gòu)系統(tǒng)中的震動(dòng)問(wèn)題,需要求系統(tǒng)的頻率與振幅,又如物理學(xué)中的某些臨界值的確定等</p><p> 3.1乘冪法及其變體[3] </p><p> 乘冪法是用于大型稀疏矩陣的主特征值的迭代方法,其特
29、點(diǎn)是公式簡(jiǎn)單,易于上機(jī)實(shí)現(xiàn).</p><p> 乘冪法德計(jì)算公式如下.</p><p> 設(shè),取初始向量,令, ,…,一般有(3.1.4)</p><p> 并形成向量序列,由遞推公式(3.1.4),有</p><p><b> (3.1.5)</b></p><p> 這表明是用
30、的次冪左乘得到的,因此稱此方法為乘冪法,(3.1.4)式或(3.1.5)式稱為乘冪公式, 稱為乘冪序列.</p><p> 設(shè)可逆,反冪法可以求出的絕對(duì)值最小的特征值及相應(yīng)的特征向量.由</p><p><b> 可知</b></p><p> 即若為矩陣的特征值,則必為矩陣的按模最大特征值,且特征向量相同.</p><
31、;p> 因此,若乘冪法可求的主特征值,則用做乘冪矩陣,由迭代公式</p><p><b> (3.1.24)</b></p><p> 便可求出的按模最大特征值,再取倒數(shù)即可得到矩陣的按模最小特征值.因此,對(duì)任取初始向量,稱公式(3.1.24)為求矩陣按模最小特征值的反冪法.</p><p> 3.2 子空間迭代法[10]<
32、/p><p> 子空間迭代法最初是由Clint和Jennings提出,是反冪法的推廣[11] .稍后,Bathe和Wilson在其中加入了子空間上的Rayleigh-Ritz過(guò)程,它可以明顯地改善收斂速度.以下是一個(gè)子空間迭代算法的主要步驟.</p><p><b> ?、?初始化</b></p><p> (1)確定子空間的維數(shù);</p
33、><p> (2)選取初始向量矩陣;</p><p> (3)設(shè)定每次移軸的最大迭代次數(shù).</p><p> ?、?移軸與Sturm序列校核</p><p> (1)計(jì)算移軸,應(yīng)設(shè)法保證它不是特征值;</p><p> (2)分解移軸剛度矩陣;</p><p> (3)Strum序列校核.
34、</p><p> Ⅲ.迭代次,完成后轉(zhuǎn)向</p><p> (1)將進(jìn)行一成交歸一化;</p><p><b> (2)解試;</b></p><p> (3)計(jì)算和在上的投影,</p><p> (4)求解階廣義特征值問(wèn)題;</p><p> (5)形成新的
35、近似特征向量;</p><p> (6)按模態(tài)誤差判斷特征值和特征向量的收斂,移出已收斂的特征向量,并在中加入隨機(jī)向量或減縮子空間的大小.</p><p> 子空間迭代法假設(shè)個(gè)初始向量同時(shí)進(jìn)行迭代,求得個(gè)特征向量.傳統(tǒng)上, , 其中為中一行的平均非零元個(gè)數(shù),由第Ⅱ與Ⅲ步計(jì)算之比確定.</p><p> 3.3 Jacobi旋轉(zhuǎn)法[12] </p>
36、<p> Jacobi方法用來(lái)計(jì)算實(shí)對(duì)稱的全部特征值及對(duì)應(yīng)的特征向量.</p><p> 基本思想:通過(guò)一組平面旋轉(zhuǎn)將化為對(duì)角陣.</p><p> 若為對(duì)稱陣,則存在一正定陣,使, 為的特征值, 的列向量為對(duì)應(yīng)于的特征向量.主要問(wèn)題是如何構(gòu)造.</p><p> 中平面內(nèi)的平均旋轉(zhuǎn)變換.</p><p><b>
37、; 的性質(zhì):</b></p><p><b> 1 為正交陣,.</b></p><p> 2. 為單位陣I只在四個(gè)位置元素不一樣.</p><p> 3. 只改變A的i行i列j行j列的元素.</p><p> 定理1 設(shè)A為n階對(duì)稱陣, ,其中為正定陣</p><p>&l
38、t;b> 則</b></p><p> 定理2 設(shè)為對(duì)稱矩陣, 為宜平面旋轉(zhuǎn)陣, 的元素計(jì)算式為:</p><p> 設(shè)表示的非對(duì)角元素的平方和表示的對(duì)角元素平方和,由上式</p><p> 這說(shuō)明的對(duì)角元素平方和和的對(duì)角元素平方和增加了,非對(duì)角元素和此A的非對(duì)角元素平方和減少了.</p><p> 3.4 Hou
39、seholder方法[13] </p><p><b> 設(shè),且,則矩陣</b></p><p> 稱為Householder矩陣或Householder變換,一般我們簡(jiǎn)稱為陣或變換.</p><p> H陣有以下重要性質(zhì);</p><p> (1) 是對(duì)稱陣: ;</p><p> (
40、2) 是正交陣: ;</p><p> (3)設(shè),則總存在陣使</p><p> 我們僅就(3)給出證明.</p><p> 若x=y,則只需取即可,今設(shè),要使</p><p><b> 即</b></p><p><b> 只需取即可.</b></p>
41、<p> 3.5 QR方法[14]</p><p> QR算法是求矩陣特征值的最有效和應(yīng)用最廣泛的一種方法.</p><p> QR算法也是一種變換方法.設(shè),令,先將作QR分解,寫(xiě)成,其中是酉矩陣即是的共軛轉(zhuǎn)置,R是上三角陣,當(dāng)A非奇異且規(guī)定的對(duì)角元是正實(shí)數(shù)時(shí),則分解時(shí)唯一的,然后令,則有.是的正交相似變換,他們有相同的特征值.這個(gè)過(guò)程可繼續(xù)下去,得到迭代序列{},稱此
42、過(guò)程為基本QR算法過(guò)程.</p><p><b> 算法 基本QR算法</b></p><p><b> (1)定義</b></p><p><b> (2)對(duì)于</b></p><p> (3) (對(duì)作QR分解)</p><p><b&
43、gt; (4) </b></p><p> 4 MATLAB GUI在矩陣特征值與特征向量中的應(yīng)用</p><p> 4.1 MATLBA GUI在乘冪法中的應(yīng)用</p><p> 乘冪法是用于大型稀疏矩陣的主特征值的迭代方法,其特點(diǎn)是公式簡(jiǎn)單,易于上機(jī)實(shí)現(xiàn)。</p><p> 用規(guī)范乘冪法求矩陣的特征值與特征向量。
44、</p><p> 打開(kāi)GUI設(shè)計(jì)工具,選擇空白模塊,出現(xiàn)如下的圖形設(shè)計(jì)界面。</p><p> (1)建立1個(gè)靜態(tài)文本,用于顯示相應(yīng)控件的提示,特征值,特征向量和迭代次數(shù)。</p><p> ?。?)建立1一坐標(biāo)軸對(duì)象,用于顯示規(guī)范化乘冪法。</p><p> ?。?)建立1個(gè)按鈕用于得出計(jì)算結(jié)果。</p><p&g
45、t; 同時(shí)設(shè)置控件的相關(guān)屬性,界面設(shè)計(jì)圖形如下所示,保存為gui_lr1.fig文件。</p><p> 3.打開(kāi)gui_lr1.m文件,添加相應(yīng)的代碼:</p><p> function varargout = bysj1(varargin)</p><p> gui_Singleton = 1;</p><p> gui_St
46、ate = struct('gui_Name', mfilename, ...</p><p> 'gui_Singleton', gui_Singleton, ...</p><p> 'gui_OpeningFcn', @bysj1_OpeningFcn, ...</p><p> 'g
47、ui_OutputFcn', @bysj1_OutputFcn, ...</p><p> 'gui_LayoutFcn', [] , ...</p><p> 'gui_Callback', []);</p><p> if nargin && ischar(varargin{1})</p
48、><p> gui_State.gui_Callback = str2func(varargin{1});</p><p><b> end</b></p><p> if nargout</p><p> [varargout{1:nargout}] = gui_mainfcn(gui_State, varargi
49、n{:});</p><p><b> else</b></p><p> gui_mainfcn(gui_State, varargin{:});</p><p><b> end</b></p><p> set(handles.A_edit,'String','
50、[4,2,2;2,5,1;2,1,6]');</p><p> set(handles.x0_edit,'String','[1;1;1]');</p><p> set(handles.n_edit,'String',20);</p><p> A=imread('lzy.bmp',
51、39;bmp');</p><p> axes(handles.axes1);</p><p><b> image(A)</b></p><p><b> axis off;</b></p><p> handles.output = hObject;</p><
52、;p> guidata(hObject, handles);</p><p> function varargout = bysj1_OutputFcn(hObject, eventdata, handles) </p><p> varargout{1} = handles.output;</p><p> function A_Callback(h
53、Object, eventdata, handles)</p><p> function A_CreateFcn(hObject, eventdata, handles)</p><p><b> if ispc</b></p><p> set(hObject,'BackgroundColor','white&
54、#39;);</p><p><b> else</b></p><p> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p><b> end</b></p>
55、<p> function n_edit_Callback(hObject, eventdata, handles)</p><p> function n_edit_CreateFcn(hObject, eventdata, handles)</p><p><b> if ispc</b></p><p> set(hOb
56、ject,'BackgroundColor','white');</p><p><b> else</b></p><p> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><
57、;p><b> end</b></p><p> function pushbutton_Callback(hObject, eventdata, handles)</p><p> A=str2num(get(handles.A_edit,'String'));</p><p> x0=str2num(get(h
58、andles.x0_edit,'String'));</p><p> N=str2num(get(handles.n_edit,'String'));</p><p> [x,d,c]=gfcmf(A,x0,N);</p><p> set(handles.d_text,'String',num2str(d))
59、;</p><p> set(handles.x_text,'String',strcat('[',num2str(x(1)/d),';',num2str(x(2)/d),';',num2str(x(3)/d),']'));</p><p> set(handles.c_text,'String
60、39;,num2str(c));</p><p> 3.程序運(yùn)行后,程序計(jì)算出結(jié)果</p><p> 4.2 MATLBA GUI 在Jacobi旋轉(zhuǎn)法中的應(yīng)用</p><p> Jacobi方法用來(lái)計(jì)算實(shí)對(duì)稱的全部特征值及對(duì)應(yīng)的特征向量。</p><p> 基本思想:通過(guò)一組平面旋轉(zhuǎn)將化為對(duì)角陣。</p><p
61、> 例2.用Jacobi旋轉(zhuǎn)法求矩陣的特征值與特征向量</p><p> 1.打開(kāi)GUI設(shè)計(jì)工具,選擇空白模塊,出現(xiàn)如下的圖形設(shè)計(jì)界面。</p><p> ?。?)建立1個(gè)靜態(tài)文本,用于顯示Jacobi旋轉(zhuǎn)法。</p><p> ?。?)建立1一坐標(biāo)軸對(duì)象,用于顯示相應(yīng)控件的提示,特征值,特征向量和旋轉(zhuǎn)次數(shù)。</p><p>
62、(3)建立1個(gè)按鈕用于得出計(jì)算結(jié)果。</p><p> 同時(shí)設(shè)置控件的相關(guān)屬性,界面設(shè)計(jì)圖形如下所示,保存為gui_lr1.fig文件。</p><p> 3.打開(kāi)gui_lr1.m文件,添加相應(yīng)的代碼</p><p><b> 程序:</b></p><p> function varargout = bysj
63、3(varargin)</p><p> gui_Singleton = 1;</p><p> gui_State = struct('gui_Name', mfilename, ...</p><p> 'gui_Singleton', gui_Singleton, ...</p><p&g
64、t; 'gui_OpeningFcn', @bysj3_OpeningFcn, ...</p><p> 'gui_OutputFcn', @bysj3_OutputFcn, ...</p><p> 'gui_LayoutFcn', [] , ...</p><p> 'gui_Callback&
65、#39;, []);</p><p> if nargin && ischar(varargin{1})</p><p> gui_State.gui_Callback = str2func(varargin{1});</p><p><b> end</b></p><p> if narg
66、out</p><p> [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});</p><p><b> else</b></p><p> gui_mainfcn(gui_State, varargin{:});</p><p><b&g
67、t; end</b></p><p> function bysj3_OpeningFcn(hObject, eventdata, handles, varargin)</p><p> set(handles.A_edit,'String','[2,-1,0;-1,2,-1;0,-1,2]');</p><p>
68、 set(handles.eps_edit,'String',0.000001);</p><p> set(handles.N_edit,'String',20);</p><p> A=imread('l.bmp','bmp');</p><p> axes(handles.axes1);&l
69、t;/p><p><b> image(A)</b></p><p><b> axis off;</b></p><p> handles.output = hObject;</p><p> guidata(hObject, handles);</p><p> f
70、unction varargout = bysj3_OutputFcn(hObject, eventdata, handles) </p><p> varargout{1} = handles.output;</p><p> function A_edit_Callback(hObject, eventdata, handles)</p><p> fun
71、ction A_edit_CreateFcn(hObject, eventdata, handles)</p><p><b> if ispc</b></p><p> set(hObject,'BackgroundColor','white');</p><p><b> else</b
72、></p><p> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p><b> end</b></p><p> function eps_edit_Callback(hObject, e
73、ventdata, handles)</p><p> function eps_edit_CreateFcn(hObject, eventdata, handles)</p><p><b> if ispc</b></p><p> set(hObject,'BackgroundColor','white
74、9;);</p><p><b> else</b></p><p> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p><b> end</b></p>&l
75、t;p> function N_edit_Callback(hObject, eventdata, handles)</p><p> function N_edit_CreateFcn(hObject, eventdata, handles)</p><p><b> if ispc</b></p><p> set(hObje
76、ct,'BackgroundColor','white');</p><p><b> else</b></p><p> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p
77、><b> end</b></p><p> function pushbutton_Callback(hObject, eventdata, handles)</p><p> A=str2num(get(handles.A_edit,'String'));</p><p> eps=str2num(get(ha
78、ndles.eps_edit,'String'));</p><p> N=str2num(get(handles.N_edit,'String'));</p><p> [EigValMat,EigVecMat,num]=JocobiRot(A,eps,N);</p><p> set(handles.val_text,
79、9;String',num2str(EigValMat));</p><p> set(handles.vec_text,'String',strcat('[',num2str(EigVecMat(1)),';',num2str(EigVecMat(2)),';',num2str(EigVecMat(3)),']'));&l
80、t;/p><p> set(handles.num_text,'String',num2str(num));</p><p><b> 5 結(jié)論</b></p><p> 本文首先介紹了MATLAB這個(gè)數(shù)學(xué)軟件,讓我們初步了解了Matlab Gui的一些情況,接著又介紹了矩陣特征值與特征向量計(jì)算在計(jì)算數(shù)學(xué)中是非常重要的內(nèi)容,
81、其應(yīng)用也很廣泛。矩陣特征值與特征向量計(jì)算的方法,如乘冪法,反冪法,子空間迭代法,Jacobi旋轉(zhuǎn)法,Household方法,QR算法。主要任務(wù)與目標(biāo)是應(yīng)用Matlab gui設(shè)計(jì)圖形用戶界面,求解矩陣特征值與特征向量計(jì)算問(wèn)題,用Matlab gui設(shè)計(jì)圖形用戶界面,實(shí)現(xiàn)求解矩陣特征值與特征向量計(jì)算方法的經(jīng)典方法,如乘冪法,反冪法,子空間迭代法,Jacobi旋轉(zhuǎn)法,Household方法,QR算法等,最后通過(guò)Matlab Gui繪制圖形使
82、數(shù)據(jù)可視化。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 周曉陽(yáng),數(shù)學(xué)實(shí)驗(yàn)與Matlab,華中科技大學(xué)出版社,2002.1.</p><p> [2] 拉克唐瓦爾德. 數(shù)值方法和MATLAB實(shí)現(xiàn)與應(yīng)用[M]. 北京:機(jī)械工業(yè)出版社,2004.9:.</p><p> [3] 黃明游,劉潘
83、,徐濤.數(shù)值計(jì)算方法[M].北京:科學(xué)出版社,2005:1~11.</p><p> [4] 拉克唐瓦爾德.數(shù)值方法和MATLAB實(shí)現(xiàn)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2004.9:3-6.</p><p> [5] John H.Mathews, Kurtis D.Fink.Numerical Methods Using MATLAB [M].Beijing: Publishing
84、 House of Electronics Industry.2005.</p><p> [6] 王素立,高潔,孫新德.MATLAB混合編程與工程[M].北京:清華大學(xué)出版社,2008.5:1~20.</p><p> [7] 周小陽(yáng).數(shù)學(xué)軟件與MATLAB[M].武漢:華中科技大學(xué)出版社,2002.</p><p> [8] 陳垚光,毛濤濤等.精通MATL
85、AB GUI設(shè)計(jì).北京:電子工業(yè)出版社.2008.</p><p> [9] 施曉紅,周佳.精通MATLAB圖形界面編程.北京:電子工業(yè)出版社.2008.</p><p> [10 ]宮玉才,周洪偉等.震動(dòng)工程學(xué)報(bào).北京大學(xué)力學(xué)與工程科學(xué)系,第18卷第2期.2005.6.</p><p> [11 ]Clint M, Jennings A.The evalua
86、tion of eigenvalue and eigenvectors of real symmetric matrices by simultaneous iteration [J].The Computer Journal, 1970, 13(1):76-80.</p><p> [12] 李慶揚(yáng),數(shù)值分析(第四版),華中科技大學(xué)出版社,2006.07.</p><p> [13]
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 矩陣特征值與特征向量計(jì)算的matlab gui設(shè)計(jì)[文獻(xiàn)綜述]
- 矩陣特征值與特征向量計(jì)算的matlab gui設(shè)計(jì)【信息科學(xué)與技術(shù)專(zhuān)業(yè)】【畢業(yè)設(shè)計(jì)+文獻(xiàn)綜述+開(kāi)題報(bào)告】
- 矩陣特征值、特征向量的研究【畢業(yè)論文】
- 畢業(yè)論文(設(shè)計(jì))特征值和特征向量的應(yīng)用
- 畢業(yè)論文(設(shè)計(jì))特征值和特征向量的應(yīng)用
- 矩陣特征值、特征向量的研究【畢業(yè)論文+文獻(xiàn)綜述+開(kāi)題報(bào)告】
- 矩陣的特征值與特征向量的若干應(yīng)用
- 矩陣特征值、特征向量的研究【文獻(xiàn)綜述】
- 矩陣特征值、特征向量的研究【開(kāi)題報(bào)告】
- 數(shù)學(xué)與應(yīng)用數(shù)學(xué)畢業(yè)論文-特征值與特征向量的應(yīng)用
- 數(shù)學(xué)與應(yīng)用數(shù)學(xué)畢業(yè)論文-特征值與特征向量的應(yīng)用
- 第7章矩陣的特征值和特征向量
- [學(xué)習(xí)]方陣的特征值與特征向量
- 矩陣的特征值與特征向量的理論與應(yīng)用-開(kāi)題報(bào)告
- 矩陣的特征值與特征向量的理論與應(yīng)用--安徽工程大學(xué)畢業(yè)設(shè)計(jì)(論文)
- 數(shù)值方法課程設(shè)計(jì)冪法反冪法計(jì)算矩陣特征值和特征向量-附matlab程序
- 簡(jiǎn)易求特征值與特征向量的安全多方計(jì)算協(xié)議
- §2 方陣的特征值 與特征向量
- 高中生對(duì)特征值與特征向量(2階矩陣)的理解水平.pdf
- 選修4-2 矩陣與變換 第二節(jié) 矩陣的逆矩陣、特征值與特征向量
評(píng)論
0/150
提交評(píng)論