數(shù)學建模之matlAB課件_第1頁
數(shù)學建模之matlAB課件_第2頁
數(shù)學建模之matlAB課件_第3頁
數(shù)學建模之matlAB課件_第4頁
數(shù)學建模之matlAB課件_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)學軟件之MATLAB簡介魯魯 鑫鑫E-mailE-mail:09 09 20102010年年1212月月2 MATLAB概述與運算基礎3Matlab 簡介q 在歐美各高等院校,Matlab 已經成為線性代數(shù)、數(shù)值分析、數(shù)理統(tǒng)計、自動控制理論、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等課程的基本教學工具,已成為大學生必須掌握的基本技能之一。Matlab 功能強大、簡單易學、編程效率高,深受廣大科技工作者的歡迎。q Matlab是一種廣泛應用于工程計算及數(shù)值分析領域的新型高級語言,自 1984 年推向市場以來,歷經二十多年的發(fā)展與競爭,現(xiàn)已成為國

2、際公認的最優(yōu)秀的工程應用開發(fā)環(huán)境。4Matlab 簡介q Matlab: Matrix Laboratory 矩陣實驗室q Matlab 的發(fā)展的發(fā)展l 1980年,Moler 教授用 Fortran 語言編寫了集命令翻譯、 科學計算于一身的一套交互式軟件系統(tǒng)。l 1984年,Moler 等成立了 The MathWorks 的公司,用 C 語言完全改寫 Matlab,并推出第一個商業(yè)版。l 增添圖形圖像處理、符號運算、以及與其他流行軟件 的接口功能,使得 Matlab 的功能越來越強大。l 到九十年代,在國際上 30 幾個數(shù)學類科技應用軟件中, Matlab 在數(shù)值計算方面獨占鰲頭。5Mat

3、lab 簡介q 目前,Matlab 已成為世界頂尖的數(shù)學應用軟件,以其強大的工程計算、算法研究、工程繪圖、應用程序開發(fā)、數(shù)據(jù)分析和動態(tài)仿真等功能,在航空航天、機械制造和工程建筑等領域發(fā)揮著越來越重要的作用。就影響而言,至今仍然沒有一個別的計算軟件可與 Matlab 匹敵。 q Matlab 的發(fā)行的發(fā)行1984年,Matlab 1.0 (DOS版,182K,20多個函數(shù))1992年,Matlab 4.0 (93年推出Windows版,加入 simulink)1994年,Matlab 4.2(得到廣泛重視和應用)1999年,Matlab 5.3(真正實現(xiàn)32位運算)2002年,Matlab 6.

4、5(采用JIT加速器)2004年,Matlab 7.0自2006年起,Matlab每年更新兩次硬件: 一般要求486以上的處理器、16MB以上內存、足夠的的硬盤可用空間(隨安裝組件的多少而定)、CD-ROM驅動器、鼠標等。軟件: Windows 9x 及以上。6Matlab 的安裝7Matlab 的安裝q 購買(下載)Matlab 軟件q 插入光盤,自動運行; 或點擊安裝程序 setup.exel 這里以 Matlab 7.0.4 為例l 自 R2008a 開始增加了激活要求891011n必須安裝的部件 Matlab Symbolic Math Toolbox Extended Symboli

5、c Math nmatlab自身所占空間較大,對資源要求高,一般選擇安裝在其他盤。12Matlab 的特點與功能q Matlab 具有很強的數(shù)值計算功能具有很強的數(shù)值計算功能l Matlab 以以矩陣矩陣作為數(shù)據(jù)操作的基本單位,作為數(shù)據(jù)操作的基本單位, 但無需預先指定矩陣維數(shù)(但無需預先指定矩陣維數(shù)(動態(tài)定維動態(tài)定維)l 按照按照 IEEE 的數(shù)值計算標準進行計算的數(shù)值計算標準進行計算l 提供十分豐富的數(shù)值計算函數(shù),方便計算,提高效率提供十分豐富的數(shù)值計算函數(shù),方便計算,提高效率l Matlab 命令與數(shù)學中的符號、公式非常接近,命令與數(shù)學中的符號、公式非常接近, 可讀性強,容易掌握可讀性強,

6、容易掌握q Matlab 是一個交互式軟件系統(tǒng)是一個交互式軟件系統(tǒng)輸入一條命令,立即就可以得出該命令的結果輸入一條命令,立即就可以得出該命令的結果13Matlab 的特點與功能q Matlab 符號計算功能符號計算功能Matlab 和著名的符號計算語言和著名的符號計算語言 Maple 相結合相結合q Matlab 的編程功能的編程功能Matlab具有具有程序結構控制程序結構控制、函數(shù)調用函數(shù)調用、數(shù)據(jù)結構數(shù)據(jù)結構、輸入輸輸入輸出出、面向對象面向對象等程序語言特征,而且等程序語言特征,而且簡單易學簡單易學、編程效率編程效率高高。通過。通過 Matlab 進行編程完成特定的任務進行編程完成特定的任

7、務q Matlab 的繪圖功能的繪圖功能Matlab提供豐富的繪圖命令,提供豐富的繪圖命令,很方便實現(xiàn)數(shù)據(jù)的可視化很方便實現(xiàn)數(shù)據(jù)的可視化14Matlab 的特點與功能q Matlab 豐富的工具箱(豐富的工具箱(toolbox)根據(jù)專門領域中的特殊需要而設計的各種可選工具箱根據(jù)專門領域中的特殊需要而設計的各種可選工具箱q Matlab 的的 Simulink 動態(tài)仿真集成環(huán)境動態(tài)仿真集成環(huán)境提供建立系統(tǒng)模型、選擇仿真參數(shù)和數(shù)值算法、啟動仿提供建立系統(tǒng)模型、選擇仿真參數(shù)和數(shù)值算法、啟動仿真程序對該系統(tǒng)進行仿真、設置不同的輸出方式來觀察真程序對該系統(tǒng)進行仿真、設置不同的輸出方式來觀察仿真結果等功能

8、仿真結果等功能Symbolic Math PDEOptimizationSignal processImage ProcessStatisticsControl SystemSystem Identification 15Matlab 的基本用法q Matlab 系統(tǒng)的啟動系統(tǒng)的啟動l 使用使用 Windows “開始開始” 菜單菜單l 運行運行 Matlab 系統(tǒng)啟動程序系統(tǒng)啟動程序 matlabl 雙擊雙擊 Matlab 快捷圖標快捷圖標q Matlab 系統(tǒng)的退出系統(tǒng)的退出l 在在 Matlab 主窗口主窗口 File 菜單中選擇菜單中選擇 Exit Matlabl 在在 Matlab

9、命令窗口輸入命令窗口輸入 exit 或或 quitl 單擊單擊 Matlab 主窗口的主窗口的“關閉關閉”按鈕按鈕16Matlab 的工作界面命令窗口命令窗口當前工當前工作目錄作目錄當前工當前工作空間作空間輸入命令的輸入命令的歷史記錄歷史記錄命令命令提示符提示符17命令窗口的工具欄 工具欄提供了一些命令按鈕,使用命令按鈕可使操作更快捷、更方便。 工作空間 新建 剪切 粘貼 瀏覽器 新仿真模型 打開 復制 撤消 路徑瀏覽器 幫助18Matlab幫助系統(tǒng)q 聯(lián)機幫助聯(lián)機幫助l help 顯示指定命令的簡短使用說明顯示指定命令的簡短使用說明例:例: help eig help help q 詳細使用

10、幫助詳細使用幫助l doc 以網頁形式以網頁形式顯示指定命令的幫助頁顯示指定命令的幫助頁例:例: doc eig q 其它相關命令其它相關命令helpdesk、helpwin19Matlab 查找命令l lookfor 按指定的關鍵詞查詢與之相關的命令按指定的關鍵詞查詢與之相關的命令例:例: lookfor inverse l which 顯示指定函數(shù)所在的目錄顯示指定函數(shù)所在的目錄例:例: which eig q 其它相關命令其它相關命令cd、dir、more20Matlab 變量q 變量命名原則變量命名原則u 以以字母開頭字母開頭u 后面可以跟后面可以跟 字母、數(shù)字字母、數(shù)字 和和 下劃線

11、下劃線u 長度長度不超過不超過 63 個字符個字符(6.5 版本以前為版本以前為 19 個個)u 變量名變量名 區(qū)分字母的區(qū)分字母的 大小大小 寫寫q Matlab 語句的通常形式語句的通常形式變量變量 = 表達式表達式表達式是用運算符將有關運算量連接起來的式子,表達式是用運算符將有關運算量連接起來的式子,其結果被賦給賦值號其結果被賦給賦值號“=”左邊的變量左邊的變量21q 分號和續(xù)行符的作用Matlab 變量l 若不想在屏幕上輸出結果,可以在語句最后加若不想在屏幕上輸出結果,可以在語句最后加分號分號 l 如果語句很長,可用如果語句很長,可用續(xù)行符續(xù)行符 “”(三個點)續(xù)行(三個點)續(xù)行 續(xù)行

12、符續(xù)行符的前面最好留一個空格的前面最好留一個空格例:例:22q 變量的查詢Matlab 變量l who 顯示工作空間中的所有變量顯示工作空間中的所有變量l whos 查看工作空間中變量的詳細屬性查看工作空間中變量的詳細屬性23q 系統(tǒng)預定義變量Matlab 變量u pi : 圓周率圓周率 ,其值為,其值為 imag(log(-1)u inf,Inf :無窮大無窮大 u nan,NaN :Not-a-Number,一個不定值,如,一個不定值,如 0/0u eps :浮點運算相對精度浮點運算相對精度 q 特殊變量特殊變量 ansu i,j :虛部單位,即虛部單位,即1 應盡量避免給系統(tǒng)預定義變量重

13、新賦值!應盡量避免給系統(tǒng)預定義變量重新賦值!q 數(shù)與算術表達式24Matlab 數(shù)值運算u Matlab 中的數(shù)默認是中的數(shù)默認是雙精度實數(shù)雙精度實數(shù),表示方法同,表示方法同 C 語言語言3, -9, 0.4, 1.603e-12, 3.23e+20u 浮點運算的相對誤差為浮點運算的相對誤差為 epsu 浮點數(shù)表示范圍為:浮點數(shù)表示范圍為:10-308 10308u 復數(shù)的輸入復數(shù)的輸入l z=3+4i (4 與與 i 之間不能有空格之間不能有空格)l z=3+4*i復數(shù)作為矩陣元素輸入時,加號兩邊不能有空格復數(shù)作為矩陣元素輸入時,加號兩邊不能有空格! !25q 數(shù)學運算符u + 加法加法Ma

14、tlab 數(shù)值運算u - 減法減法u * 乘法乘法u / 和和 除法(右除和左除)除法(右除和左除)u 冪運算冪運算q 命令分隔符:逗號和分號26Matlab 的輸出q 輸出格式輸出格式u Matlab 以雙精度執(zhí)行所有的運算,運算結果可以以雙精度執(zhí)行所有的運算,運算結果可以在在屏幕上輸出屏幕上輸出,同時,同時賦給指定變量;賦給指定變量;若無指定變量,則系若無指定變量,則系統(tǒng)會自動將結果賦給變量統(tǒng)會自動將結果賦給變量 “ans” u Matlab 中數(shù)的輸出格式可以通過中數(shù)的輸出格式可以通過 format 命令指定命令指定format 只改變變量的輸出格式,只改變變量的輸出格式,但不會影響變量

15、的值!但不會影響變量的值!各種 format 格式格式解釋以pi為例format短格式(缺省顯示格式),同short3.1416format short短格式(缺省顯示格式),只顯示5位3.1416format long長格式,雙精度數(shù)15位,單精度數(shù)7位3.14159265358979format short e 短格式e方式(科學計數(shù)格式)3.1416e+000format long e長格式e方式3.141592653589793e+000format short g短格式g方式3.1416format long g長格式g方式3.14159265358979format compact

16、壓縮格式format loose自由格式2728變量的存儲q 存儲當前工作空間中的變量存儲當前工作空間中的變量u save 將所有變量存入文件將所有變量存入文件 matlab.matu save mydata 將所有變量存入指定文件將所有變量存入指定文件 mydata.matq 存儲指定的變量存儲指定的變量u save mydata.mat 將所有變量存入文件將所有變量存入文件 mydata.matsave 文件名文件名 變量名列表變量名列表例例: save mydata A x z 變量名列表中各變量之間用變量名列表中各變量之間用空格空格分隔分隔29變量的讀取q 將數(shù)據(jù)文件中的變量載入當前工

17、作空間將數(shù)據(jù)文件中的變量載入當前工作空間u load mydata 載入數(shù)據(jù)文件中的所有變量載入數(shù)據(jù)文件中的所有變量u load mydata A x 從數(shù)據(jù)文件中提取指定變量從數(shù)據(jù)文件中提取指定變量q 清除當前工作空間中的變量清除當前工作空間中的變量u clear 清除當前工作空間中的所有變量清除當前工作空間中的所有變量u clear A x 清除指定的變量清除指定的變量30q Matlab 的命令記憶功能:的命令記憶功能:上下箭頭鍵上下箭頭鍵q 命令補全功能:命令補全功能: Tab 鍵鍵 可以先輸入命令的前幾個字符,再按上下鍵縮小搜索范圍可以先輸入命令的前幾個字符,再按上下鍵縮小搜索范圍

18、q 用用 Esc 鍵鍵 刪除命令行刪除命令行31sin、cos、tan、cot、sec、csc、asin、acos、atan、acot、asec、acsc、exp、log、log2、log10、sqrtabs、conj、real、imagrank、det、inv、eig、lu、qr、svddiag、triu、tril、expm三角函數(shù)與反三角函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)等q 基本函數(shù)基本函數(shù)利用函數(shù)建立數(shù)值矩陣:MATLAB提供了許多生成和操作矩陣的函數(shù),可以利用它們去建立矩陣。例如: reshape函數(shù)和diag函數(shù)等。reshape函數(shù)用于建立數(shù)值矩陣。diag函數(shù)用于產生對角陣。32n利用M

19、文件建立矩陣:對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。其步驟為:n第一步:使用編輯程序輸入文件內容。n第二步:把輸入的內容以純文本方式存盤(設文件名為 mymatrix.m)。n第三步:在MATLAB命令窗口中輸入mymatrix,就會自動建立一個名為AM的矩陣,可供以后顯示和調用。 利用利用M文件建立矩陣:文件建立矩陣:對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。其步驟為: 第一步:使用編輯程序輸入文件內容。 第二步:把輸入的內容以純文本方式存盤(設文件名為mymatrix.m)。 第 三 步 : 在 M AT L A B 命 令 窗 口 中 輸 入mymatri

20、x,就會自動建立一個名為AM的矩陣,可供以后顯示和調用。 子矩陣操作(后面講)子矩陣操作(后面講)3334矩陣q 定義矩陣:直接輸入法定義矩陣:直接輸入法l 矩陣用方括號矩陣用方括號 “ ” 括起括起例:例: A = 1 2 3; 4 5 6; 7 8 9l 矩陣同一行中的元素之間用矩陣同一行中的元素之間用 空格空格 或或 逗號逗號 分隔分隔l 矩陣行與行之間用矩陣行與行之間用 分號分號 分開分開l 直接輸入法中,分號可以用直接輸入法中,分號可以用 回車回車 代替代替例:例:q Matlab 的操作對象是的操作對象是 l 35矩陣元素賦值q 矩陣元素可以是任何數(shù)值表達式矩陣元素可以是任何數(shù)值表

21、達式例:例: x=-1.3, sqrt(3), (1+2+3)*4/5q 矩陣元素的單獨賦值矩陣元素的單獨賦值例:例: x(5)=abs(x(1)例:例: x(5)=abs(x(6) ?自動將向量自動將向量 x 的長度擴展到的長度擴展到 5,并將未賦值部分置零。并將未賦值部分置零。36矩陣元素賦值q 大矩陣可以把小矩陣作為其元素大矩陣可以把小矩陣作為其元素例:例: A=A ; 11 12 13在原矩陣的下方加一行在原矩陣的下方加一行如何在原矩陣的右邊添加一列?如何在原矩陣的右邊添加一列?37矩陣元素的引用q 單個元素的引用單個元素的引用例:例: A(2,3)q 多個元素的引用:冒號的特殊用法多

22、個元素的引用:冒號的特殊用法利用小括弧和元素所在的位置利用小括弧和元素所在的位置(下標下標)x ( i ) :向量:向量 x 中的第中的第 i 個元素個元素A ( i, j ) :矩陣:矩陣 A 中的第中的第 i 行,第行,第 j 列元素列元素a:b:c產生一個由產生一個由等差序列等差序列組成的向量;組成的向量; a 是首項,是首項,b 是公是公差,差,c 確定確定最后一項;若最后一項;若 b=1,則,則 b 可以省略??梢允÷?。例:例: x=1:2:5 y=1:2:6例:例: x=2:1:5 y=2:5例:例: x=5:-1:138矩陣元素的引用例:例: x(1:3) A(3,1:3)A(i

23、:j, m:n) 表示由矩陣表示由矩陣 A 的第的第 i 到第到第 j 行和第行和第 m 到第到第 n列交叉線上的元素組成的列交叉線上的元素組成的子矩陣子矩陣。可利用冒號提取矩陣可利用冒號提取矩陣 的整行或整列。的整行或整列。例:例: A(1, :) A(:, 1:3) A(:, :)線性代數(shù)中的數(shù)值計算問題【引引 例例 】求下列三階線性代數(shù)方程組的近似解5426255452321321321xxxxxxxxxMATLAB程序為:A=2 -5 4;1 5 -2;-1 2 4;b=5;6;5;x=Ab40 在MATLAB命令窗口,先輸入下列命令構造系數(shù)矩陣A和右端向量b: A=2 -5 4;1

24、5 -2;-1 2 4 A = 2 -5 4 1 5 -2 -1 2 4 b=5;6;5 b = 5 6 5 然后只需輸入命令x=Ab即可求得解x: x=Ab x = 2.7674 1.1860 1.348841一、 特殊矩陣的實現(xiàn)42 1.零矩陣零矩陣:所有元素值為零的矩陣稱為零矩陣。零矩陣可以用zeros函數(shù)實現(xiàn)。zeros是MATLAB內部函數(shù),使用格式如下: zeros(m):產生m*m階零矩陣; zeros(m,n):產生m*n階零矩陣,當m=n時等同于zeros(m); zeros(size(A):產生與矩陣A同樣大小的零矩陣。一、 特殊矩陣的實現(xiàn)常見的特殊矩陣有零矩陣、幺矩陣、單

25、位矩陣、三角形矩陣等,這類特殊矩陣在線性代數(shù)中具有通用性;還有一類特殊矩陣在專門學科中有用,如有名的希爾伯特(Hilbert)矩陣、范德蒙(Vandermonde) 矩陣等。43 2.幺矩陣幺矩陣:所有元素值為1的矩陣稱為幺矩陣。幺矩陣可以用ones函數(shù)實現(xiàn)。它的調用格式與zeros函數(shù)一樣。 【例例1 1】 試用ones分別建立3*2階幺矩陣、和與前例矩陣A同樣大小的幺矩陣。 用ones(3,2) 建立一個3*2階幺陣: ones(3,2) % 一個3*2階幺陣 ans =1 1 1 1 1 1一、 特殊矩陣的實現(xiàn)44 3.單位矩陣單位矩陣:主對角線的元素值為1、其余元素值為0的矩陣稱為單位

26、矩陣。它可以用MATLAB內部函數(shù)eye建立,使用格式與zeros相同。 4.數(shù)量矩陣數(shù)量矩陣:主對角線的元素值為一常數(shù)d、其余元素值為0的矩陣稱為數(shù)量矩陣。顯然,當d=1時,即為單位矩陣,故數(shù)量矩陣可以用eye(m)*d或eye(m,n)*d建立。一、 特殊矩陣的實現(xiàn)5.對角陣對角陣:對角線的元素值為常數(shù)、其余元素值為0的矩陣稱為對角陣。我們可以通過MATLAB內部函數(shù)diag,利用一個向量構成對角陣;或從矩陣中提取某對角線構成一個向量。使用格式為diag(V)和diag(V,k)兩種。45 6.用一個向量V構成一個對角陣 設V為具有m個元素的向量,diag(V)將產生一個m*m階對角陣,其

27、主對角線的元素值即為向量的元素值;diag(V,k)將產生一個n*n(n=m+|k|,k為一整數(shù))階對角陣,其第k條對角線的元素值即為向量的元素值。注意:當k0,則該對角線位于主對角線的上方第k條;當k0,該對角線位于主對角線的下方第|k|條;當k=0,則等同于diag(V)。用diag建立的對角陣必是方陣。一、 特殊矩陣的實現(xiàn)【例例2 2】已知向量v,試建立以向量v作為主對角線的對角陣A;建立分別以向量v作為主對角線兩側的對角線的對角陣B和C。MATLAB程序如下:46 v =1;2;3; % 建立一個已知的向量A A=diag(v) A= 1 0 0 0 2 0 0 0 3 B=diag(

28、v,1) B = 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 C=diag(v,-1) C = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0% 按各種對角線情況構成相應的對角陣A、B和C一、 特殊矩陣的實現(xiàn)47 7.從矩陣中提取某對角線 我們也可以用diag從矩陣中提取某對角線構成一個向量。設A為m *n階矩陣,diag(A)將從矩陣A中提取其主對角線產生一個具有min(m,n)個元素的向量。diag(A,k)的功能是: 當k0,則將從矩陣A中提取位于主對角線的上方第k條對角線構成一個具有n-k個元素的向量;當k0,則將從矩陣A中提取位于主對角線的下方第|

29、k|條對角線構成一個具有m+k個元素的向量;當k=0,則等同于diag(A)。一、 特殊矩陣的實現(xiàn)48 【例例3 3】 已知矩陣A,試從矩陣A分別提取主對角線及它兩側的對角線構成向量B、C和D。 MATLAB程序如下:A=1 2 3;4 5 6; % 建立一個已知的2*3階矩陣A% 按各種對角線情況構成向量B、C和DB=diag(A)B = 1 5C=diag(A,1)C = 2 6D=diag(A,-1)D = 4一、 特殊矩陣的實現(xiàn)49 8.上三角陣:使用格式為triu(A)、triu(A,k) 設A為m*n階矩陣,triu(A)將從矩陣A中提取主對角線之上的上三角部分構成一個m*n階上三

30、角陣;triu(A,k)將從矩陣A中提取主對角線第|k|條對角線之上的上三角部分構成一個m*n階上三角陣。注意:這里的k與diag(A,k)的用法類似,當k0,則該對角線位于主對角線的上方第k條;當k0,該對角線位于主對角線的下方第|k|條;當k=0,則等同于triu (A)一、 特殊矩陣的實現(xiàn)50 【例例4 4】試分別用triu(A)、triu(A,1)和、triu(A,-1)從矩陣A提取相應的上三角部分構成上三角陣B、C和D。 MATLAB程序如下: A=1 2 3;4 5 6;7 8 9;9 8 7; % 一個已知的4*3階矩陣A % 構成各種情況的上三角陣B、C和D B=triu(A)

31、 B = 1 2 3 0 5 6 0 0 9 0 0 0 C=triu(A,1) D=triu(A,-1)一、 特殊矩陣的實現(xiàn)9.下三角陣:使用格式為tril(A)、tril(A,k)tril的功能是從矩陣A中提取下三角部分構成下三角陣。用法與triu相同。51 10.空矩陣空矩陣 在MATLAB里,把行數(shù)、列數(shù)為零的矩陣定義為空矩陣??站仃囋跀?shù)學意義上講是空的,但在MATLAB里確是很有用的。例如 A=0.1 0.2 0.3;0.4 0.5 0.6; B=find(A1.0) B = 這里 是空矩陣的符號,B=find(A1.0)表示列出矩陣A中值大于1.0的元素的序號。當不能滿足括號中的條

32、件時,返回空矩陣。另外,也可以將空矩陣賦給一個變量,如: B= 一、 特殊矩陣的實現(xiàn)5253常見矩陣生成函數(shù)zeros(m,n)生成一個 m 行 n 列的零矩陣,m=n 時可簡寫為 zeros(n)ones(m,n)生成一個 m 行 n 列的元素全為 1 的矩陣, m=n 時可寫為 ones(n)eye(m,n)生成一個主對角線全為 1 的 m 行 n 列矩陣, m=n 時可簡寫為 eye(n),即為 n 維單位矩陣diag(X)若 X 是矩陣,則 diag(X) 為 X 的主對角線向量若 X 是向量,diag(X) 產生以 X 為主對角線的對角矩陣tril(A)提取一個矩陣的下三角部分tri

33、u(A)提取一個矩陣的上三角部分rand(m,n)產生 01 間均勻分布的隨機矩陣 m=n 時簡寫為 rand(n)randn(m,n)產生均值為0,方差為1的標準正態(tài)分布隨機矩陣m=n 時簡寫為 randn(n)其它特殊矩陣生成函數(shù):magic、hilb、pascal二、矩陣的特征值 與特征向量54對于N*N階方陣A,所謂A的特征值問題是:求數(shù)和N維非零向量x(通常為復數(shù)),使之滿足下式:Ax=x則稱為矩陣A的一個特征值(特征根),而非零向量x為矩陣A的特征值所對應的特征向量。對一般的N*N階方陣A,其特征值通常為復數(shù),若A為實對稱矩陣,則A的特征值為實數(shù)。二、矩陣的特征值與特征向量55MA

34、TLAB提供的內部函數(shù)eig可以用來計算特征值與特征向量。eig函數(shù)的使用格式有五種,其中常見的有E=eig(A)、V,D=eig(A)和V,D=eig(A,nobalance)三種,另外兩種格式用來計算矩陣的廣義特征值與特征向量:E=eig(A,B)和V,D=eig(A,B)。二、矩陣的特征值與特征向量56 (1) E=eig(A):由eig(A)返回方陣A的N個特征值,構成向量E; (2) V,D=eig(A):由eig(A)返回方陣A的N個特征值,構成N*N階對角陣D,其對角線上的N個元素即為相應的特征值,同時將返回相應的特征向量賦予N*N階方陣V的對應列,且A、V、D滿足AV=VD;

35、(3) V,D=eig(A,nobalance):本格式的功能與格式(2)一樣,只是格式(2)是先對A作相似變換(balance),然后再求其特征值與相應的特征向量;而本格式則事先不作相似變換;二、矩陣的特征值與特征向量57(4) E=eig(A,B):由eig(A,B)返回N*N階方陣A和B的N個廣義特征值,構成向量E。(5) V,D=eig(A,B):由eig(A,B)返回方陣A和B的N個廣義特征值,構成N*N階對角陣D,其對角線上的N個元素即為相應的廣義特征值,同時將返回相應的特征向量構成N*N階滿秩矩陣,且滿足AV=BVD。二、矩陣的特征值與特征向量58 【例例5 5】試用格式(1)求

36、下列對稱矩陣A的特征值;用格式(2)求A的特征值和相應的特征向量,且驗證之。A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000 ; 執(zhí)行eig(A)將直接獲得對稱矩陣A的三個實特征值:二、矩陣的特征值與特征向量59 eig(A) ans = -0.0166 1.4801 2.5365 而下列命令則將其三個實特征值作為向量賦予變量E: E=eig(A) E = -0.0166 1.4801 2.5365二、矩陣的特征值與特征向量60三、行列式的值61 MATLAB提供的內部函數(shù)det用來計算矩陣的行列式的值。設矩陣

37、A為一方陣(必須是方陣),求矩陣A的行列式值的格式為:det(A)。注意:本函數(shù)同樣能計算通過構造出的稀疏矩陣的行列式的值。三、行列式的值【例例6 6】利用隨機函數(shù)產生一個三階方陣A,然后計算方陣之行列式的值。A=rand(3)A = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214det(A)ans = 0.428962四、矩陣求逆及線性代 數(shù)方程組求解631 . 矩陣求逆矩陣求逆若方陣A,B滿足等式A*B = B*A = I (I為單位矩陣)則稱A為B的逆矩陣,或稱B為A的逆矩陣。這時A,B都稱為可逆矩陣(或非奇異

38、矩陣、或滿秩矩陣),否則稱為不可逆矩陣(或奇異矩陣、或降秩矩陣)。四、矩陣求逆及其線性代數(shù)方程組求解64 【例例7 7】試用inv函數(shù)求方陣A的逆陣A-1賦值給B,且驗證A與A-1是互逆的。A=1 -1 1;5 -4 3;2 1 1;B=inv(A)B = -1.4000 0.4000 0.2000 0.2000 -0.2000 0.4000 2.6000 -0.6000 0.2000A*Bans = 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000B*Aans = 1.0000 0.0000 0.0000 0.000

39、0 1.0000 0.0000 0.0000 0.0000 1.0000四、矩陣求逆及其線性代數(shù)方程組求解652. 矩陣求逆解法矩陣求逆解法利用求系數(shù)矩陣A的逆陣A-1,我們可以得到矩陣求逆解法。對于線性代數(shù)方程組Ax=b,等號兩側各左乘A-1,有:A-1Ax=A-1b由于A-1A=I,故得:x=A-1b四、矩陣求逆及其線性代數(shù)方程組求解66 【例例8 8】試用矩陣求逆解法求解矩陣A為系數(shù)矩陣的線性代數(shù)方程組Ax=b的解。 A=1 -1 1;5 -4 3;2 1 1; b=2;-3;1; x=inv(A)*b x = -3.8000 1.4000 7.2000四、矩陣求逆及其線性代數(shù)方程組求解

40、67 3. 直接解法直接解法 對于線性代數(shù)方程組Ax=b,我們可以運用左除運算符“”象解一元一次方程那樣簡單地求解:x=Ab 當系數(shù)矩陣A為N*N的方陣時,MATLAB會自行用高斯消去法求解線性代數(shù)方程組。若右端項b為N*1的列向量,則x=Ab可獲得方程組的數(shù)值解x(N*1的列向量);若右端項b為N*M的矩陣,則x=Ab可同時獲得同一系數(shù)矩陣A、M個方程組數(shù)值解x(為N*M的矩陣),即x(:,j)=Ab(:,j),j=1,2,M。四、矩陣求逆及其線性代數(shù)方程組求解68132321112345111xxx543321112345111yyy四、矩陣求逆及其線性代數(shù)方程組求解69 解法解法1:分別

41、解方程組 (1)Ax=b1;(2)Ay=b2 A=1 -1 1;5 -4 3;2 1 1; b1=2;-3;1; b2=3;4;-5; x=Ab1 x = -3.8000 1.4000 7.2000y=Ab2 -3.6000 -2.2000 4.4000得兩個線性代數(shù)方程組的解: (1) x1= -3.8, x2= 1.4, x3= 7.2; (2) y1= -3.8, y2= 1.4, y3= 7.2四、矩陣求逆及其線性代數(shù)方程組求解70 解法解法2:將兩個方程組連在一起求解:Az=b b=2 3;-3 4;1 -5 z=Ab z = -3.8000 -3.6000 1.4000 -2.20

42、00 7.2000 4.4000 很明顯,這里的解z的兩個列向量便是前面分別求得的兩組解x和y四、矩陣求逆及其線性代數(shù)方程組求解71 例1 設x為二維平面上第一象限中的一個單位方塊,其四個頂點的數(shù)據(jù)可寫成 把不同的A矩陣作用于此組數(shù)據(jù),可以得到多種多樣的結果yi=Ai*x。用程序實現(xiàn)變換計算,并畫出x及yi圖形: x0,1,1,0;0,0,1,1; subplot(2,3,1), fill(x(1,:),0,x(2,:),0,r) A11,0;0,1, y1A1*xsubplot(2,3,2), fill(y1(1,:),0,y1(2,:),0,g) 721 平面上線性變換的幾何意義平面上線性

43、變換的幾何意義 01100011x73 圖 9.1 對單元方格進行幾種線性變換后生成的圖形 74幾種變換的行列式與特征值幾種變換的行列式與特征值 1 01det( 1)1,111 ,1 0 1 0 1 2det( 2)1.5,21.0 1.5 ,2 1 0 0 13det( 3)0.2, 30.2 1.0 , 3 1 0 1.0 1.04det( 4)1,411 ,4 0. DApDApDApDAp 0. 0.7071 0.7071 51,50.866 + 0.5i 0.8660.5i ,500.7071i 0 + 0.7071iDp 可以看出,矩陣A1使原圖對縱軸生成鏡像,矩陣A2使原圖在橫軸方向膨脹,矩陣A3使原圖在縱軸方向壓縮,矩陣A4使原圖向右方剪切變形,矩陣A5使原圖沿反時針方向旋轉tpi/6。分別計算出這五個矩陣的行列式和特征值; 對二維空間(平面),一個變換所造成的圖形的面積變化,取決于該變換的行列式。A1,A4和A5的行列式絕對值都是1,所以它們不會使變換后圖形的面積發(fā)生改變。而A2和A3的行列式分別為1.5和0.2, 75看

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論