




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
簡本主講大工數課中線代、積、常分程概論數統等要學法MATLAB軟的現程其用內分個分第部為MATLAB件用介介MATLAB軟件的基本容第二分線代實,紹MATLAB軟求解線方組計矩特值特向、行陣相對化及矩陣解方第三分微積分驗紹MATLAB軟進符微分算數微和值分算方;第四部為微方實介紹MATLAB軟件求線(非線性微方()解解數解進動仿的方法第部為率與理計驗用MATLAB軟進行隨變的關算隨數產及本據計可視化的法另,對體容紹相的用例以幫助學逐學用學識解實問。一后有一定量實題以學課上練及驗本適于工院大本專科學生及備工科學識計機識其科工者1
數學實驗是在數學應用于各個科領域,特別是應用于工程技術領域的過程中產生的,是伴著計算機的廣泛使用和數學軟的有效開發而發展的,它著重體現了用學和實數學的理念用學是應數學理論知識解決相關領域中的實際問題;實現數學是通過計算機及數軟件實現部分數學結果的理論推和計算過程,使抽象的數學內容直觀化、可視。數學實驗課程是學工科數學課程教學改革與建的主要成果之一,目前已在全國各高校廣泛設,并已成為大學工科數學課的重要組成部分。數學實驗課開設的主要目的是過數學實驗使學生深入理解數學基本概念和基礎理論、熟悉掌握常用的數學件,培養學生應用數學知識并合計算機工具解決實際問題的能力。數學實驗課數學知識與計算機應用有機地合起來,以數學知識為背景、以數學軟件為工具為學生自覺學習數學方法、動解決實際問題搭建了平臺,對提高學生學習數學興趣、加強學生的數學理論基、培養學生的開拓性思維等具有重要作用。本書主要講授大工科數學課程中的線性代數、積分、常微分方程、概率論與數理統計等重數學方法用MATLAB軟件的實現過程容分五個部分一部分為軟件使用簡介,介紹功能強大的MATLAB軟的基本運行,變量、矩陣、數組及其算,函數及語句和M文的編寫,以及繪圖功能及數據的導入導出等第二部為線性代數實驗介用MATLAB軟件解線性方程組計矩陣特征值和特征向以及進行矩陣相似對角化和矩分解的方法。第三部分為微積分實驗介紹用軟件行符號微積分運算值微分函插值和數值積分計算的方法四分為常微分方程實驗紹用MATLAB軟求線非性)微分方程(組)解析解和數值解、進行向量場制和動態仿真的方法。第五部分為概率論與數理計實驗紹用MATLAB軟件進隨機變量相關計算隨機數的產生,及進行樣數據的統計描述與可視化的方。另外,針對具體方法介紹了相應的應用實例,以更有利于培養學生用學意識和能力。本書的主要閱讀象是理工科院校本專科學生。學實驗課對學生后繼課程的學習,特別是學在課程設計和畢業設計等環節的學習和研究具有重要幫助,提供思想和方法的導課程也將為學生一步學習數學建模加學建模競賽、利用數學方法解各個領域中的實際問題打下良的基礎。本書由陳東彥老組織編寫,主要由劉鳳秋、李強、曹作寶編寫,牛犇、宋顯華、孫偉參與部分內容的編寫,田廣悅老師書中各部分內容的選編給與了很多具體的指導。于缺乏經驗、水平有限,書中免有不妥之處,希望同行專家及廣大讀者批評指!編者2
目
錄內簡介前2第1件用介1.1MATLAB軟件使用入門MATLAB動MATLAB作的注意事項及常用技巧11MATLAB助1.2MATLAB的變量和表達式131.3MATLAB矩陣創建及其運算MATLAB陣的創MATLAB陣的運1.4M文的編寫與調用21文的操22命文23函文241.5MATLAB編程MATLAB用的程序控制語句MATLAB程應用1.6MATLAB基本繪圖二維形繪32三圖形的繪381.7MATLAB數據的導入與導出導數413
導文本文44對MS-Excel子表格文件的操46實驗第2線性數驗.502.1線方程組的求50MATLAB矩陣的相關運算線方程組的52應實562.2矩的特征值與特征向量及其相似對角化矩的特征值特向矩的相似對61應實642.3矩的分68矩的LU分解68矩的QR解69矩的Cholesky分70矩的奇異值712.3.5*矩的分解742.3.6*矩的分解75實驗第3微積實3.1微分符號運80符變量與符表符函數的極81符函數的微834
符函數的積88符函數的求與勒多項應實933.2數微95數微分計算95數微分的MATLAB實現應實973.3函插98拉朗日插99函插值的MATLAB實現應實1033.4數積106數積分計算106誤估計和收113數積分的MATLAB實現應實1203.5*二次曲面與曲面交線的繪制122二曲122空兩曲面的124實驗第4常微方實4.1常分方程及其模129常分方程的本常分方程模1314.2常分方程解析解MATLAB實現5
4.3常分方程數值解及其MATLAB實現數解的法137數解的法140常分方程數解的MATLAB實現4.4*量場繪圖及Simulink在求微分方上的應用向場繪147Simulink應用148實驗第5概率與理計驗1605.1隨變量及概率分160概密度函數的概密度函數可分函數的計168逆積分布函的隨變量數字征計5.2隨數的產生及應175隨機的175應用1785.3樣的統計描181樣的統計量其樣的分布及可應實1945.4參估計與假設檢198參估計及其MATLAB實現假檢驗及其MATLAB實現6
應實204實驗附209附表1-1用三角函數表209附表1-2用計算函數209附表1-3件操作函數表210附表5-1見分布概率密度函表210附表5-2見分布函數表212附表5-3用函數計算概率密函表213附表5-4用函數計算累積概值數表214附表5-5用臨界值函數表215附表5-6見分布的均值和方215附表5-7機數產生函數表216附表5-8數估計函數表217參文獻7
1章MATLAB軟件使介MATLAB是矩陣實驗Matrix)簡稱,由美國司出品與并為三大數學件是一個功能強大的常用數學軟件,它但可以解決數學中的數值計算題,而且可以解決符號演算、矩陣運算、繪制圖、實現算法、創建用戶界面和接其它編程語言的程序等問題,并且能夠方便地出各種函數圖形主應用于程計算、控制設計、信號與圖像處理、號檢測、金融建模設計與分析領域。它使用方便,輸入簡潔,并且很容易由用自行擴展,因此已成為國內外多大學教學和科學研究中最常用且必不可少的工。不同的操作系統相應的MATLAB版本,本書介紹Windows操系統下的MATLAB7.1版的本使用。1.1MATLAB軟件使入門1.1.1動退出1.動版本MATLAB照安裝光盤中的安裝明成功安裝后,系統會在【始】菜的【程序】子菜單中加入啟動M命的標,用鼠標單擊此圖標就可動系統,如圖。圖
啟動8
啟動后,就可以進入MATLAB的作環境。首先出現的圖標,接著就進了其默認的桌面系統如圖。圖是桌面統的默認界面(通過更菜單的選項可以組合不同的窗口式上窗當前目錄CurrentDirectory切換為工作空間(左視窗為歷史命令(History切為當前目錄(CurrentDirectory半視窗為命令窗口令窗口是用戶與進行人機交互的主要環境,在此可輸入命令或執行M文,是命令窗口的提示符可以在它后面輸入命令或輸入句。圖界面2MATLAB基演下面通過三個實來初步了解MATLAB的操作和功能。例1.1計算
,并輸出值。x2=pi↙x11.4142x23.1416思考題:例1.1中的變量x1和x2中間能否去掉,請驗證你結果?注:MATLAB在示>>后的每一行輸后需要輸入↙,即Enter鍵回車例1.2繪制
sin(yxy
2
)
在區間x[8,8]
,[
上的圖形。>>↙>>R=sqrt(X.^2+Y.^2)+eps;↙>>Z=sin(R)./R;↙9
↙輸出圖像如圖1.3所:10.50-0.5105
%函繪制由矩陣XY,所定的曲面100
-5
-5
0
5-10-10圖例1.3極坐標繪圖示。>>t=0:0.01:2*pi;↙
直角坐標的圖形%圖1.4圖
極坐標繪圖3.出若要退出,需用鼠標點擊其系統集成界右上角的關閉按鈕,或者在命令窗口輸入exit或命即。10
1.1.2作的意事及用巧1.意項(1)在命令窗口工區中輸入MATLAB令后,須按下鍵,MATLAB才能執行所輸入命令,否則不執行該命令。(2)MATLAB區分字母大小寫(3)一般情況下,命令窗口中輸入一個命令并按下,計算機會顯示此次輸入的執行果。為了簡便,在后續的章節我們將不再顯↙號。()如果用戶不想示輸入的結果,只要在所輸命令的后面加上一個分號;即可。如:2+3↙52+3;↙(5)可以在某一行尾處鍵入個英文句號“”現續行的目的。如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)...(6)中變量必須為字母、數字及某些符號組合,某些情況也允許輸入漢字,但標符號必須是英文狀態下的標點號。(7)中需要專門定義變量類型,系統會自動根據表達式的值或輸入的值來確定變的數據類型。(8命令行M文中的注釋語句都以百分%開始句行中百分號后面的該行內容將被略而不被執行M文中后面的語句可以命顯示出來。2.用巧特殊的功能鍵如:(1)恢當前命令輸入前的空白狀態(2)調上一行命令。(3)調下一行命令。其中,為鍵盤中的向上鍵,為鍵盤中的向下鍵后兩個功能鍵在程序調試時很有用在MATLAB實使用中往往需要對剛執過的命令進行修改后重新執行了避免重復輸入可調原令后再做修改。1.1.3助MATLAB的離線助文件內容豐富,是學習MATLAB的佳資料,學習MATLAB首先要學會MATLAB幫的使用。在命令窗口中輸help命令或直接用鼠標鍵單擊菜單中的按(快捷鍵以開如圖1.5所的幫助窗口。11
圖幫窗口圖中左上有四個可以切換的選項頁,分為,Index,Search和可根據需要打開相應選項頁查找所需的信息遇見一個新的函數時,可通過進行查找其功能及詳細用提供了大量的演文件為初學者提供幫助還供了在線幫助功能,但用戶要連接網絡。下面介紹一下通查找函。進入助界面后選中選頁進入下一界面并后面空白處輸入,點擊按鈕就會看到如圖1.6的結。12
圖中Seacrchfor搜索功能還可以在命令窗直接輸入查找命令,例如>>helpsinSINSine.SIN(X)isthetheofalsosind.functionsormethodswithsamenameinothersym/sin.mReferencepageinHelpbrowserdoc借助于MATLAB提的助系統以解決在使過中到的許多問題。1.2MATLAB的變和表式1.MATLAB量名則(1)中量名可以包含字母、數字及下劃線,但必須以字母開頭,后面最多跟個字母或數字,如x,,,d3er45等是法的變量名。(2)變量名區分大寫,如abAb表兩個不同的變量13
,,B1(3)注意不要用MATLAB中內部函數或命令名作為變名。如果內部函數用作變量名,內函數將失效。2.工空中變量關函數1列出量函:who功:出當前工作空間中的變量且內存中的當前變量以簡單式列出函:whos功:出當前內存變量的名稱、小、類型等信息2清除量函:功:除工作空間中的所有變量用于釋放系統內存函:all功:除函數工作空間和基本工空間的所有函數變量,全局量和類函:clc功:除命令窗口3.MATLAB運符1數學算+加號(號(乘號(左除(右除^(乘冪)2關系算<小于(大(小于等于>=(大于等于(等于(不等于)3邏輯算&邏與運算邏輯或運算(輯非運)例1.4已矩陣
A
,對其做簡單的系與邏輯運算。>>A=[1,2;2];>>B=[1,1,2];>>C=(A<B)&(A==B)00004.MATLAB表式MATLAB的達式是常量、變量、函數和運算符成的有意義的式子。MATLAB語句由變量表達式及命組,用戶入的語句由系統解釋后運行常見的MATLAB句有兩種格式:格1表達格2變量=表達式其中系自動將格式1中的表式的運行結果賦值給內部變量ans并在屏幕上14
出;在格式,系統將表達式的運行結果賦了變量。例1.5用兩形式計算5
sin
算術運結果。%計算結果賦給默認變ans=1.5645e+004即為1.5645×10
4計算結果賦給變量aa=1.5645e+004;即如果在表達式面加;,則執行后不顯運算結果。例1.5中正弦、指數數是MATLAB自的函數。MATLAB中有很多似的函數,常用函數詳見附錄中的附表和1-25.MATLAB數顯MATLAB系統中值數據的存儲和計算默認都是精度,如果需要可以利用命來調整數據的顯示式。MATLAB默認顯示格為format(松散式的示會有一些空行,占用更大的篇幅因此可以在命令語句輸入前,入顯示格式命令formatcompact(緊湊格式此外命還可以于控制數字顯示的方式,例如formatrat表此后的數據顯示為近似有理數。下面是用控制浮點變量的輸精度的八種格式,如表所。表format用于浮點的八個格式類型formatshort
結果固定個數的輸出
例子3.1416formatlongformatshortformatlongteformatshortgformatlonggformatshort
固定15個小數的輸出帶有位度的浮點格式3.1416e+000帶有15位精度的浮點格式3.141592653589793e+002帶有位的最佳的定點數或3.1416點數帶有15位數用于顯示73.14159265358979位用于顯示single的最佳的定點數或浮點數工程格式,至少個有效小數和3.1416e+007冪為的formatlongeng
工程格式好有有效數字和冪為3的倍數
3.14159265358979e+081例1.6分別用五位點、十五位定點及有理數形式將>>a=5+sin(7);,aa=5.6570aa=15
a
表示出來。
5.65698659871879aa=6.MATLAB的量在中些變量是固的用注輕易不要對這些變量重新賦值以免出現錯誤。些常見變量及具體意義見表。表1.2MATLAB常量常量符號
常量含義i或j
虛數單位,定義為i
=j
=-1Inf或infNaNpirealmin
正無窮大,由零做數引入此常量不定式,表示非數量,產生于0/0,/∞,0*∞等運算圓周率π的雙精度示容差變量,PC上此值為2^-52最小浮點數,最大浮點數,1.3MATLAB陣創建及運算MATLAB的基本運算位是矩陣,能否熟練掌握矩陣輸入、各種數值運算以及矩陣函數的使是能否學好MATLAB的關鍵。1.3.1陣的建1.過入接建矩輸入方法是先鍵左方括[‖,后按行直接入矩陣的所有元素,最后鍵入右方括]‖。意:整個矩陣[‖和]‖為尾,同的元素用,‖空隔開,不同行的元素用;‖按鍵來隔;矩陣的元素可以是數字或表達式。
3
例1.7直輸入創建矩陣。8>>A=[1,4,15,7,A134156079>>A=[1,2,34,15,607,16
0000A1341560792.關數建陣MATLAB提供了若干數來創建一些特殊矩陣,見表。表
生成特殊矩陣的相函數函數名稱n)eye(n)n)
函數功能mn列矩陣n單位矩陣mn列素為的矩1
函數名稱randn(m,magic(n)rand(m,n)
函數功能m行列態分布隨機矩n魔方矩陣m行列勻分布隨機矩例創建陣
11
。生成元素都1階陣11111例1.9
創建矩陣
00
。5)%生成元素都為的25列矩陣0000例生魔方矩陣。>>magic(3)8135493.號作“”j:k表示生成步長為等差數列構成的數組:[j,j+1,j+2,…,k];j:i:k表生成步長為i的等差列構成的數組:[j,;例等數列的生成。>>1:5步為1的差數列ans=13417
AA>>linspace(1,%給出區間[的5個等分點數據135>>1:2:7%步長為的差數列135>>8:-2:0步長為的差、遞減數列8641.3.2陣的算1.MATLAB陣素作下面介紹矩陣元的抽取與賦值、矩陣擴充、矩元素的刪除等操作。詳細用法見表。1矩陣素抽取賦例已矩
61
,抽取與修改A
的一些元素。>>A=[156;sin(3)79;log(2)61]%輸入矩陣AA1.000056.00000.14117.00009.00000.69316.00001.0000>>A(2,抽取矩陣A的第二行第三列元素9>>A(4)抽取矩陣的第四個元素23>>A(2:%抽取矩陣的二、三、四個元素0.14110.693123.0000>>A(1,:)%抽取矩陣A的一行12356>>A(:,%抽取矩陣A的三列56913)把陣A的第一行第三列元素賦值給量a=18
,,9A56>>A(2,1)=100把陣A的二第一列素修改為A1.0000100.00007.00000.69316.00001.0000>>B=A([3,1],[2,3])B61232矩陣擴例已矩陣
A
39
,利用A
與
生成矩陣
,DA和F
A
B
。>>A=[1,3;6,9];%輸入矩陣A>>C=A;>>%把矩陣A擴充為2行列矩陣>>=1690>>B=[1,5;8];%入矩陣B>>B]由矩陣A與B合成矩陣D>>D1156>>zeros(2),B]%陣A與B合分矩陣FF=106001003矩陣分素的除例已矩
61
,刪除A
的第一行。>>A=[156;sin(3)79;log(2)61];>>A(1,:)=[]刪出A的第一行A0.14117.00009.000019
,B,B50.69316.00001.0000表矩陣元素的操作用法A(i,j)A(:,j)A(i,:)A(:,:)A(i)A(i:j)[]A([i,j],[k,l])2.陣基運
功能矩陣A的第i行第j列元矩陣A的第j列矩陣A的第i行矩陣A的所有元素構造一個維陣矩陣A的所有元素按列構造一列矩陣矩陣A(:)的第i個元素矩陣A(:)的第i個到j個素構成的向量空矩陣取出矩陣A的第i,j行及第k,l列交點上的元素:陣加法:陣減法A*B矩陣乘法A\:矩陣的左:矩陣的右除或:A的置k*A數k乘以A矩陣A的次冪:A^n矩陣的點冪其中矩陣的除\和除/如果矩陣A是非奇異方陣則等于A的逆矩陣乘B,;同理等B乘A的逆矩陣,即B*inv(A)。具體計算時可不用逆矩陣直接計算。右除B/A也可(A'\B')'來現。例已矩
A
2321
,求A
和
A.
。>>3;456];254];>>C=A+B=44101010>>C=A.^B=140961296注:點和算術運符之間不能有空格。例已X36>>X=[13];56];>>X.^220
和2.
ans=19>>2ans=28>>2.^[X;Y]ans=28163264
01
例矩
Aa2
,求A的次冪。>>>>A=[a03;0a2];>>A^3ans=[2*a^2+2*a,a*(a+2)+4+3*a][a*(a^2+3*a)+3*a^2+6*a,[a*(a^2+3*a)+2*a^2+4*a,8+a*(6+3*a)+6*a]注:當矩陣中含未知變量時,需要用syms聲未變量,則會出現???Undefinedor'a'”的誤提示。列于表1.5中其它的矩陣相關運算函數將在第二章中做細介紹。函數名稱
表函數功能
矩陣的其它相關運函數名稱
函數功能rank(A)eig(A)poly(A)trace(A)cond(A)
求A的秩求A的特值及特征向量求A的特多項式求A的跡求A的條數
rref(A)inv(A)det(A)norm(A,1)
求A行最簡形求A逆矩陣求A行列式求A范數1.4M文的編與調用在初學階段常在命令窗口中輸入語入一行命令后系統立即執行該命令,這方式稱為命令窗口下命行方。用令方式編寫的程序可讀性差且不易存。因而,對于相對復雜問題的解,一般先編寫成可存儲的程序文件,然后在中行該程文件,這種方式稱程文件式由語組成的程序件類型是M文M文的擴展名為M文件可分為兩種形:一種令文或本文(scriptfile用為解決特定問題而編制的。一種函數文(常其它M文調用。它們都是由若干MATLAB語或命令組成文件。要注意在編寫M文件時,M文名一定以字母開頭且不要與內置函數重名。21
1.4.1文件操MATLAB類型文件的開關閉和保存等操作Word非相似新建M文的操作是在命令口中選擇FileM-File(圖然后用鼠標單,打開MATLAB中函數與M文編輯器‖見圖1.8戶可以在該編輯窗口中編一個新的M文。此編器還可以用來對已存在的M文進行編輯、調試和運。實際上M文也可用其它文本編輯器來建、編輯。圖1.7
新建M文件圖M函數與M件編輯器(編輯口)22
M文有三種運行方式是在命令窗口中直接鍵入文件名鍵二是在編輯窗口中打菜再單快捷鍵三直接單擊工欄中的圖標。M文保存的路徑一定要在其設置的搜路徑上,否則找不到此文件,導致無法運。后面的例題如果不特別說明都是以第一種方式運行的。在M文中,當表達式后面接分號時,與命行方式的語句一樣,表達式計算結果不顯示,中間結果仍保存在內存中。1.4.2命令件命令文件(也稱本文件)的一般形式為文件名>,如a1.mpp.m等是合法的M文名。命令文件的格式征如下:(1)用,closeall等句開始,清除工作空間中原有的變和圖形,以避免其它已執行程所殘留數據對當前程序的影響()前幾行通常是注釋行,用對此程序用途的說明,特別在運行時對用戶輸入數據的要求更要敘述清楚,否則程序的可性將很差。這些注釋行必須以開始(這與C語中/**/似后程序運行時將忽略后該行內容。MATLAB規定可以通輸help文名‖輸出該文件中的有注釋。()程序的主體。如果文件中全局變量,即可以在子程序函數文件和主程序命令文件中共的變量,應在程序的起始部分明。其語句是global變名變量名2…為了改善程序的讀性,應注重語句的縮進及與的對應關系。在程序中有時誤操作輸入中符號,可能導致程序無法運行MATLAB用色標注有問的語句。因而在輸入序中,要注意中英文的切換。(4)命令文件常會用用戶編寫的函數或者系統自帶的函數。例編列出區間[M]
上的素數的程序列出素數的程序clear,allM=input('輸M的值M='),N=input('輸入N的x=M:N;列出從M到N的部然數foru=2:sqrt(N)%出除數(最到N的平方根)找到不是素數的序號x(n)=[];將其刪除掉end,x循環結束,顯示結果>>%執行,輸入5和x=511131723
1.4.3函數件MATLAB提了多函數文件,且隨著版本的更不斷擴充MATLAB軟的大部分功能都來自其建立的函數集,利用這函數可以使用戶方便地解決各種問題。函數文件的一般式為:<因變量=<函名(<自變量)M函文件可以有多個自變量和多個因變量,當有多個因變量時[]括來。函數文件中的變除非用global聲,否則均為局部變量,不存在工作空間中。下面看MATLAB自的求素數的M文,通過其幫助很易找到該函數為primes.m。>>typeprimes輸出:pprimes(n)%PRIMESGenerate%isarowofprimethanor%toN.Aprimenumberishas%anditself.%%Classforinput%%%SeeFACTOR,ISPRIME.%TheMathWorks,Inc.%$17:02:09iferror('MATLAB:primes:InputNotScalar','Nmustscalar');if<p=endp=1:2:n;q=p(1)=fork=ifp((k+1)/2)p(((k*k+1)/2):k:q)=0;p=p(p>0);注:函數文件是function開始,后跟數名(在保存時,會默認為M文件的文件名,不要修為其它名稱,當M文名與function后的數名不一致時,調用函數文件時常會生錯誤外函數文件通常都有變量的輸輸出。下面來編寫函數件。例設陣A
可逆,編寫求
AAA
的M函文件。24
22%編exam01_19.m用求矩陣A的個值[da,a2,inva,traa]=comp4(A)da=det(A)da為矩陣A的列a2=A^2a2為矩陣A的方inva=inv(A)%inva矩陣A的矩traa=A'%矩陣A的轉置因為函數的輸入量為A所以在調前先給A賦值然后才能對編寫的M文件進行調用。>>A=[1,2;5,8]%輸入矩陣A>>調用exam01_19.m數計算矩陣A的Ada=-2a2=111845=1.00002.5000-0.5000traa=15281.5MATLAB編程
A在解決實際問題往需要編寫較復雜程序面將介紹MATLAB編涉及到的內容。1.5.1用的序控語程序控制結構有種:順序結構、選擇結構和循結構。任何復雜的程序都由這三種基本結構成。1.序構按排列順序依次行各條語句直到程序最后這是一種最簡單的程序結構,一般涉及數據的入、輸出和計算等。1數據輸函:input格:提示信息)其中,提示信息字符串,此格式通過提示信息A的值,入的A可以是數或者字符串,輸入符串時必須帶單引號。例輸A的和的值。>>inputA:')要求用戶輸入A的值可以是數或字符輸入25
A1000>>')What'syour'Michael%輸入'=Jordan2數據顯函:disp格:disp(X)其中,X是值陣或字符串,該格式用于顯示量X的值且一次只能顯示個變量。例顯A的。>>A='Hello,Tom!';>>disp(A)Hello,Tom!3數據格化輸若要求數字以某形式輸出,則需要對數據的輸進行格式化。除了用前面介紹的format進控制外,還可以用fprintf來控輸出。函:fprintf格:fprintf(fid,format,variables)其中,fid為文件句柄,若缺省,則輸出到屏幕上用來指定變量variables出時采用的格式包含普通字符串、格式字符串見.6義字符(見.7表格式字符串%d
整數實數:科學計數法式
%f%s
實數:小數形式輸出字符串表
轉義字符%%
換行退格百分號
\t\\
制表符反斜杠例格化輸出變量。>>a='Hello';>>b=2.4;>>>>c=%e\n',a,b,c)a=Hello,c=3.141593e+0022選擇構1條件句if條件語句有種形式:形1if表式語句序列26
說:果表達式的值為真,就執語句序列,否則執行end后的句。形2if表式語句序列1語句序列2說:果表達式的值為真,就執語句序列,否則執行語句序列2形3if表達1語句序列1elseif表式2語句序列2語句序列n說:果表達式的為真,就執語句序列1然后跳出if語;否則判斷表達式如果表達式2的值為真,就執行句序列,然后跳出if語句;則依此類推,一直進下去;如果所有的表達式的值為假,就執行后面的語句序列,然后跳出if語。x例1.23編分段函數f(x)的M函文件,并計函,x數值ff(30)
和(10
)
。解%exam01_23.my=(x)ifx<1y=xelseify=2*x-1elseify=3*x-11y=sin(x)+log(x)調用exam01_23.m數文件計算函數值exam01_23(30),=0.20003.000079.000027
所以(0.2)0.02,ff79
和(10
)3.4473
。2多向件句分支switch表達式常量表達式1語句塊常量表達式2語句塊{量達式常量表達式,語句塊otherwise語句塊說:語句后面的表式可以為任何類型;每個后可是多個不同類型的常量表式;與if語句不同,各case和otherwise語出現的先后順序不會影響程序運的結果。例1.24根輸入月份來判斷節。編寫exam01_24.mformonth1:12switchseason='Spring';season={9,10,11}season={12,1,2}season=fprintf('Month===>month,season);執行exam01_24.m>>exam01_241===>Winter.2===>Winter.3===>4===>5===>6===>Summer.7===>Summer.8===>Summer.9===>Autumn.===>Autumn.===>Autumn.===>28
注MATLAB的switch指令和語的指令有差別語的中,每個需加上break以跳該switch,而在MATLAB中不需要。3.環構1for循fori=表式語句……….語句說:達式是一個向量,可以是ns:n,也可以是字符、字符串矩陣等;循環的循環體中,可多次嵌套for循環和其它的結構體。例寫出矩。%formatforforh(i,j)=1/(i+j-1);運行后,會提示入,輸入5得到如下的運行果:h=11/51/51/41/71/8上面的代碼顯然讀性很差,注意縮進對齊后為formatforforh(i,j)=1/(i+j-1);h此時代碼的邏輯構就清晰了。例利用for循環100的數之和。建立M文件exam01_26.mfori=1:sum=sum+i;sum執行M文件。>>sum=50502循環29
while表達式循環體語句說:達式一般是由關系運算符邏輯運算符及其它運算符組,用來判斷循環要繼續進行是要停止若表達式的值非零即輯為真程序就繼續循環;若表達式的值為,就停止循環。例利while循來計算+50!的值。建立M文件exam01_27.mwhilewhileprd=prd*j;j=j+1;sum=sum+prd;i=i+1;disp(..+50的和為:sum執行命令文件exam01_27.m>>1!+2!+...+50的和為:sum=2.5613e+018即得到!的值為2.56134.它制句
。(1)函數break用終止循環的行,即跳出最內層循環(2)函數continue用于束本次循環,進下一次循環break和一般與if語句配合使用。(3)函數return用退出正在運行的本或函數,通常用在函數文件。MATLAB編的容涉及很廣,也供一些現成函數供用戶直接調用,詳細請參幫助系統。1.5.2程應前面介紹了的本控制流程語句將紹的程應用。例(數游)請利用計算機隨機產生區[0,100]的一個整數然猜所產生的這個數根據猜測的情況給出不同的提。如果猜測的數大于產生的數,則顯示,小于則顯示,于則顯示Youwon時退出游戲,用戶最30
多有次機會。編寫猜數游戲的程序。猜數游戲exam01_28.mx=round(100*rand);隨機產生區間[0,100]上的一整數n=7;%7次機test=1;歡參加猜數游!你共'次機']);disp('請輸入一個0到100之的整數);for');if<xdisp('Lower');elseifguess>xwon!');test=0;你有,num2str(n),'機會!']);iftest==1lost!')執行exam01_28.m>>歡迎參加猜數游!你共有機會請輸入一個到之間的整數EnterHigher你還有機會!EnterHigher你還有機會!Enter你還有機會!Enter你還有機會!Enter你還有機會!Enter你還有機會!31
Enterwon!從上面的猜數過可見是否能猜對似乎要碰運氣但實際還是有可循的。上面的猜數過程用的是數據結構里的折半查找法于該介于和100之間此第次折半入果提示high味著數在之間,繼續折半就可以找到這個數。如果提low,意味著猜的數在1-49之,繼續折半,就可找到這個數。如果不是7次,是,能猜到數嗎?MATLAB編程還涉及圖形應用編程、界面設計編程圖形處理編程和數值分析編程等篇幅限制中做介紹內容可以進一步查閱有關MATLAB書籍。1.6MATLAB基本繪MATLAB不僅能制各種圖形,而且其表現形式是豐富多樣的。本節主要介紹常用的二維三維圖形的繪制函數,并簡要明相關圖形的修飾與標注函數。1.6.1維圖的繪1.plot函數制二圖plot函數是最基本二維圖形指令,主要有五種調格式,分別介紹如下。格1plot(y)此格式為缺省變繪圖格式。當y是數值向量時,在坐標系中順序地直線段連接頂(i,y(i))畫一條折線圖;當y是值矩陣時,矩陣y每元素的相應行下標值為坐標,以y的素為縱坐標繪制線圖。例畫向量1,3,2,的折線圖。>>y=[1,3,2,0.5];>>plot(y)%圖1.932
圖
向量式圖形格2plot(x,y)此格式為基本格,以的數關系作出角坐標圖。當x,都長度為n的數值向量時,坐標系中plot(x,y)用直線依次連接頂(y(i))出一條折線圖;當是度數值向量且y是的值矩陣時,y)用向分別與矩陣y的每一列匹配,同一坐標系中繪出m條同顏色的折線圖;當x和y都是n的數值矩時plot(x,分別矩陣x的第i列矩陣y的i列匹配同一坐標系中繪條同顏色折線圖。例畫橢圓
52
的曲線圖。解首先出橢圓的參數方程
x5costy
,其中
0
。>>t=0:pi/50:>>x=5*cos(t);>>y=2*sin(t);>>plot(x,grid210
橢
05圖1.10
橢圓例在一坐標內繪制函數0.2e
cos(4yx
cos(圖形。>>x=0:pi/100:2*pi;>>y1=0.2*exp(-0.5*x).*cos(4*pi*x);>>plot(x,y1,'b-')>>holdon>>pause>>y2=2*exp(-0.5*x).*cos(pi*x);>>plot(x,y2,>>holdoff輸出的圖形如圖1.11示。33
圖同一坐標制2條曲線注:holdon用保存原圖形off用刷新原有圖形;不帶參數的hold命令在兩者之間換。格3…])格4y1,x2,y2,x3,…)以上兩種格式用在同一圖形窗口繪制多條不同色曲線。格式中的t是量,y1,y2,…與t同的向量;格式的曲線關系為y1=f(x1),y2=f(x2),。例在一圖形窗口畫出函數y2,y和的圖形,其中
。>>x=-2:.1:2;>>plot(x,cos(2*x),'b-.',x,x.^2,'r-',%制多條曲線'x^2','x')%圖例圖1.12
例1.32的繪圖結果34
在中在一個圖形中繪制多條曲線時了對不同的曲線加以分,往往需要設每條曲線的線型、顏色和數據標記等。為此MATLAB提了一些繪圖選項,于確定所繪曲線的線型、顏色數據點標記符號,它們可以組合使用。若需要設曲線樣式,可以在函數中加繪選項。格5plot(x1,y1,繪選項1,x2,y2,繪圖選項2,?繪選項n)其中,繪圖選項包含一個單引號,在引號內部入線型和顏色的標識符。例如,,據點處用*做藍色標記而各點之間不再連線。具體設置選項可參見表1.8。標識符ymcrgbwk
表顏色黃品紅青紅綠藍白黑
線型、點型和顏色標識符.OX+-*:--s
線型或點型點圓圈X號號實線星號虛線點劃線長劃線正方形2.形口分函數在繪圖過程中,了對比等用途,常要把幾個圖在同一個圖形窗口中繪制出來即把個圖形分割成幾個子窗口的形式制出來面紹如何制這種圖形。函:功:割圖形窗口格:其中,,和為整數。該格把一個圖形窗口分割成個子區域,用戶以通過參數p調用個各子繪圖區域進行操作。子繪圖區域的編號為按從左至右編號。例繪子圖。>>>>>>title('sin(x)');>>>>plot(x,cos(x),'--o');>>>>plot(x,sin(2*x),'-.*');title('sin(2x)');>>>>plot(x,cos(3*x),':d');title('cos(3x)');得到圖形。35
cos(x)0.5
0.5-1
4
-1
2
0.5-1
48
0.5-1
cos(3x)26圖1.13
例1.33的繪圖結果3.適采的圖函1函數制數圖函:fplot功:出函數給定區間內的圖形格:選項其中fname為函名,以字符串形式出,也可以是一個用方括號括起的數組,如[,lims為x,y的值范圍,tol為相對允許差,其系統默認值為。選項的定義與函數相同,選項也可略。例繪sin,cosx,tan
函數在區間[
的圖形。fplot('[sin(x),,2*pi])%1.146420-2-4-6-6-4-2046圖1.14
正弦、余弦和正切數的圖形36
tt2函數繪符函數形函:ezplot功:制符號函數的圖形格:[xmin,xmax])其中F是含有一個變量的符號函數。該式用于繪制函數F在間[xmin,xmax]內的圖形;若區[缺,默認區間[2π,2π]。例繪
3cost2
在[4
]
內的圖形。t>>ezplot('2/3*exp(-t/2)*cos(3/2*t)',[0,4*pi])2/3exp(-t/2)cos(3/2t)0.20.150.10.05-0.05-0.1-0.15-0.2-0.2524
10圖1.15注:當文件無法示成yf(x)可以繪制其圖形4.它維殊形的制
t例1.35的圖形即以隱函數的形存在時,利用ezplot函也MATLAB還供許多其它的二維繪圖指令,這指令大大擴充了的曲線作圖功能可以滿足用戶的不同需要,見1.9函數名稱
表函數功能
繪制二維特殊圖形指令函數名稱
函數功能barhbar3bar3h
垂直的直方圖三維直方圖垂直的三維直方圖餅圖拓撲圖
areaerrorbarpie3
階梯圖火柴棍圖面積圖誤差棒棒圖三維餅圖37
矢量場圖
fill
填充1.6.2三維形繪由函數生成格點矩陣后,就可以求出各格點對應的函數值,然后利用三維網格函數或維曲面函數畫出間曲面。1.函繪網格面函:mesh功:制三維網格圖形格1mesh(X,格2Z)其中,格式的X,,是維數的矩陣;格式中x,是量,而Z矩,Y]meshgrid(y)陣,等價于。Z)例畫出數zsin
在區域
上及
2
在區域x,y
上的圖形。解建立命令文件exam01_36.m函數z=sin(x+siny)t1=-3:[x1,y1]=meshgrid(t1);%成格點矩陣z1=sin(x1+sin(y1));計算格點處的函數值1),z1),%馬鞍面z=x^2-2y^20.3:10;[x2,y2]=meshgrid(t2);z2=x2.^2-2*y2.^2;2),z2),title('馬鞍面)執行命令文件exam01_36.m>>exam01_36輸出圖形如圖:38
圖1.16函數=sin(x+siny)與馬面的網格圖2.維面圖數函:功:制著色的三維曲面圖格:其中,c用指定節點的色值,其它輸入參數的設置與mesh同。若不輸入,則默認為。MATLAB語言對表面行著色的方法是得相應網格后對每一網依據該網格所代表的點的色值(由變量控制),來定義一網格的顏色。例繪地球表面的氣溫分布示圖。>>%成階的矩陣>>t=abs(c);求絕對值>>surf(a,b,c,t);繪出單位球面>>axisequal>>colormap('hot')輸出圖形如圖所:39
101
10
0
圖1.17
等溫線示意圖MATLAB還提供了其三維圖形繪制的函數,如繪制球體函數sphere等格1格2sphere(n)其中格1生三個階矩陣一步利用函數surf(x,y,z)可生成單位球面;格式繪制球面圖,沒有返回值,若輸入sphere畫球,則默認n=20。例利函數繪球面。>>sphere(30)square%如果不設置x,y坐比相同,繪制圖形可能變形得到球體圖形如1.18:10-11
10
0
-1-1圖1.1840
球體
1.7MATLAB據的導入導出1.7.1導入據隨著MATLAB程的深入多問題解決如果僅依靠在的命令窗口中輸入命令來決問題,顯然是不夠的,而且多問題需要分解為若干個步驟,每一個步驟都可涉及到上一步處理得到的數據這樣就需要對每一步處理的數據進行保存,以便進一步使用,而且在將來需要理這些保存的數據時,可以直接把要處理的數據入到工作空間,避免重復輸入繁瑣。因此,介紹數據的導入和導出部分內容,顯然很有必要。MATLAB提了從磁盤文件或剪貼簿將數據轉工作(數據導入將工作區變量存入磁盤件(數據導出)的多種途徑。下面來簡單介紹種數據導入和導出的方法。1.用入據導導數最簡單的辦法是用界面導入向導,打開文件菜中的導入數據,然后按提示進行下面的操作首先,點擊MATLAB菜單的File項,選擇其中的Import1.19所示。圖導入數據界面41
其次,選擇你要入的數據文件,讀入的數,如下圖1.20所示。圖1.20導入數據data.txt然后,點擊Next,現界面如圖所示。圖1.21導入數據界面最后,點擊finish可以把數據導入工作空間。此時在工作空間中以看到導入的數據以為量名,如圖1.22所示。42
圖1.22工作空間顯示的變量注用同樣方法可以將表中的數據導入到MATLAB工作間實際上,對于MATLAB支的數據格式都可以將其導入到MATLAB工作空間。2.MATLAB中制Excel表格的容某個量在菜中選File就可以新建變量,取名字為,擊(工作空間)的變量excelval,在Window將出現Array,然后就可以復制、粘貼表中的數賦給MATLAB中的變量。3.函load和導文文件文本文件需要具統一的行列模式,使用分隔符為數據項間隔,這些分隔符包括空格、逗號、號或其它。1load函數對于數值數據可直接使用函數裝載。例導文本文件,中數據為1610>>A=%裝載該文本文件據賦給A2dlmread函數如果數值數據使其它分隔符,可以使用dlmread讀。例用dlmread讀數據,其中中據為1.1;2.2;2.3;6.7;>>讀入該數據包含列標簽的數值數據并賦給B例讀中的數據到MATLAB的作空間中。的數據43
Grade2Grade378.855.945.999.566.878.089.577.056.7>>fid='r');%只讀的方式打開件>>='%f%f'headerlines',在fid文中忽略%后讀入3行>>關閉文件>>=[3x1double][3x1[3x1double]注:textscan中參數代忽略行;%f%f%f表3元素,后面的代表3行textscan給格式是cell,所以需要用cell2mat將之轉成matrix格式。>>gs即>>fid='r');>>='%f%f%f',3,1))>>當中含字符和數值的混合數據,也可以用函讀入。如果是規則的用格隔開的數據,則采用data=textread(filename)式調用,讀出的數據記錄在data矩陣中。關textread的具用法請查閱MATLAB幫助。1.7.2導出本件1.save函數(1函save可把工作空間的所有變量保存為二進制的MAT文例將44
某些變量保存到test.mat中。(2)指定某些變量存到中,例如A[14;57];AASCII在利用將含整型數據文件存為文時常是件包含的都是實型格式的數據(小數點,且小數點后面有很多),很不方便。此在保存此類數據時,往往可使用dlmwrite函。2.函函:功:將一個矩寫到由分隔符分割的文件中格1dlmwrite('filename',M)格2dlmwrite('filename','D')格3dlmwrite('filename','D',R,C)其中格使用默認分隔矩陣M寫入文本文件中格2使分隔符割數據表示tab分為認分割符格3從陣M的行第C列開,作為要寫矩陣塊的左角,將數據用D分割入文件。例將量=[13;46;保到dlmwdata.txt>>a=[13;46;789]>>a);>>type%打印dlmwdata.txt內容利用保數=[13;46;9]>>save-ascii;>>typesavdata.txt打印內容1.0000000e+0002.0000000e+0004.0000000e+0005.0000000e+0006.0000000e+0007.0000000e+0008.0000000e+0009.0000000e+000例將知矩陣A寫由隔符分割的文件中。>>dlmwrite('data2.out',A,';')45
1.7.3對子格件操作1.xlsfinfo獲文信使用[type,sheets]=xlsfinfo(filename)返文件類型type和作表信息sheets。例輸tempdata.xls文類型工作表信息。>>[type,=xlsfinfo('tempdata.xls')獲取所要的文件型和工作表信息2.導出據例若數組d{'Time','Temp';1299;97},單格數組d的數導出至tempdata.xls文件新建工作',從該工作表的單元格開始寫入。>>={'Time',98;99;1497}>>xlswrite('tempdata.xls','Temperatures','E1')3.讀數例用=,其中的工作表Temperatures的容為:編號
數值123456>>=133223321424533665例將例中的工作表Temperatures的表頭提取出來并賦給。>>[ndata,headertext]=xlsread('tempdata.xls','Temperatures'/p>
424533665headertext=編號''數值'例處文本數據數值和文本混的微軟表格含有以下內容:162738495text>>A=xlsread('testdata2.xls')A162738495NaN注:函數xlsread可用NaN將EXCEL表中的文字替換。例導表例中的工表中的第一個工作簿中第4行第。>>A=xlsread('testdata2.xls',1,'A4:B5')A495NaNMATLAB提了豐富的文件操作函數章只是對其進行了簡單的介紹于其它文件操作函的使用,可參見附錄中的附表1,并且查閱MATLAB的相關幫助文件,進一步解和掌握這些命令的用法。47
A5,A5,,A0B2實驗1熟悉MATLAB環境設置和輯工具。分別用help、命查找函數的幫信息,區分其不同之處。設
38,98
計、AB、AB、
、A/、
和A^。
34
已知
,531
,在CommandWindow中創建
、
矩陣并對其進行下操作:(1)提取A
的第一行和第三;(2)交換A
的第一行和第二生成
A1
,交換B
第一列和第三列成
B1
;(3)從橫向和縱向并和B;(4)構建矩陣,的一、第二行分別由A的一和第二行的第一和第二列元素構成,的三、第四行分別由B第二和第三行的第二和第列元素構成。在同一個圖中畫出正函數和余弦函數在定義域后變換它的線型點型。
上的圖形,然利參數方程繪出
2y16
的圖形。設
y2),
其中
,請分別用plot,fplot和ezplot畫圖,并適當加線形、顏色和標注等;再對x,y
坐標軸標題及總題進行設定。設函數為
z
2
,請用命令成網線節點矩陣,再利用或命繪其三維圖形,其中,x繪制圓心和直徑待定的圓。1.10某業年各季度的產值單位萬元)別為2347,1827,2043,試用餅圖作統計分。1.11繪復的相量圖7+2.9i-1.5-6i(提示用compass函數1.12給數向量x00.1:及分段函數48
n1x
2
0x110請用命形式繪此函數在1.13編寫計K
2
的程序,要求動輸入變i量的,其中n為至的奇數或偶數。1.14練導數到變中。49
ccdc2章代數驗線性代數以向量向量空間(或稱線性空間)、性變換和有限維的線性方程組為研究對象,要討論矩陣理論、與矩陣結合有限維向量空間及其線性變換理論。科學研究中非線性模型通常可以被近似為性模型,線性代數和計算機技術正是解決這些線化問題的有力工具。線性代數數學、力學、物理學和工程技術學科中有各種重應用,尤其在計算機廣泛應用今天,計算機圖形學、計算機輔助設計、密碼學技術無不以線性代數為其理論算法基礎的一部分。本章在2.1節紹線性方程組的求解介紹矩陣的特征值和征向量及矩陣的相似對角等內容,在節紹矩陣的各種分解及其相關應。2.1線性程組求解下面介紹MATLAB提供的向量與矩陣的相關運算函數以及齊次線性方程組、非齊次線性方程和超定方程組的求解。2.1.1矩陣相關算1.陣行式det(A)例2.1求
A
b
的行列式。>>bd;%義符合變量b,c,d>>A=[ad];創建矩陣A>>計算A的列式2.陣逆陣inv(A)在矩陣A可逆,即行列式不零的情下,才可以利用函數inv計A的逆矩陣。例2.2設
A
可逆,求
的逆矩陣。>>bd;>>A=[ad];>>[d/(a*d-b*c),-b/(a*d-b*c)]a/(a*d-b*c)]50
3.陣行簡矩陣rref(A)將一個矩陣化為最簡形矩陣,會給我們研究矩帶來很大的方便,例如可以得到矩陣的秩、解矩陣的逆矩陣及線性方程組解等MALAB提函數rref用于計算矩陣的行簡形矩陣。
1
2478
9
45
63367例2.3將A13
9101312化為行最簡形矩陣。9
29114894
5
61115
>>A=[9;43313;51457;13710111313357911;96894;591113>>rref(A)ans=1000000001000000000000100001注:在例2.3中根據矩A行最簡形矩陣rref(A)可知,矩陣A的為7。此外,關于利用數rref求線方程組的應用,詳見下面的例和2.7。4.陣角元的操函:diag功:作矩陣的對角線元素格1=格2=格3X=格4X=diag(v,k)格式用于抽取矩陣X的對角線元素構成向量v格式于抽取X的k條對角線元素構向量v當k=0時抽取主對角線元素k>0時取上方第k條對角線元素;k<0時,抽取方第k條角線元素。51
1x1xxbxbm格式構造以向量v為主對角線元素,其余素為矩陣X格式4以向量v的素為矩陣X的k條角線元素。當k=0時vX的對線;當時,v為方第條角線;當時,為方第k條對角線。例2.4函數diag應用舉例。>>v=[13];>>%建以v為對線的矩陣>>s=diag(v,0)%建以v為主角線的矩陣=100003>>s2=diag(v,2)%建以v為主角線上方第二條對角的矩陣s2010002000000000>>383;359;59;>>v=diag(A)抽取A的主角線的元素v=1890>>v1=diag(A,3)抽取A的對角線上方第3對角線上的元素v142.1.2線性程的解設有
個未知數
m
個方程的線性方組
x12nxxx22nxxm11m2mn
()記
1
nana1mn
22
,則(2-1)式可以寫成以向
為未知元的向量程52
x0xx若b,則稱(2-2)為非齊線方程;記A,)線性方程組)增廣陣若b0,則稱
(),則稱A為非齊次()為齊線性程(或非齊次線性方程組)對應的齊次線性程組)。1.次性程的求方程組2-3一定有解(至少有零解)。的秩r
時,有唯一零解當
r
時,有無窮多個零解,此時可以利用函數求出其通解。例2.5試平下面化學方程式x)x)OCO)H382解要配平這個方程式,必須找到合適的,,,x12左右的碳、氫、原子個數相等,即x,,,x應滿足2
(正整數),使方程式8x02134整理得如下齊次性方程組>>A=[3,0,-1,0;8,0,0,-2;0,2,-2-1];>>U=rref(A)將矩陣A化行最簡形U10-1/401-5/400-3/4根據配平化學方式的原則,顯然取x,進一步求解得到x,,2因此方程式(2-4)配為:CO38222注:根據求解結,令(中為任意實數),到例題2.5中齊線性方程的通解為53
00464
1
2
3
3
14
54
34
1
T2.齊線方組的解關于非齊次線性程組()的解,有如下結:(1)當r,即A時線性方程組有唯一解;此時可依據克萊姆法則進行求,也可以利用矩陣的左除直接解。(2)當rr時,線性方程組有無窮多解;此時可以利用函數rref先增廣矩陣A化行最簡形,再把行最簡形中r個零元所對應的未知數取作非自由未知,其余n個知數取自由未知數,并令自由未知數分別等于
c
1
,,,,由A的行簡形,即可寫出含n個數的通解。2n(3)當r時,線性方程無解。1,求x。例2.6已知2>>-5-32-14-7>>B=[8;9;-5;>>ans=4>>%左除ans=3.00001.0000即求出
x41
例2.7求解齊次線性方程組
5
。>>-3-1;34;15-8];系數矩陣>>B=[111;3-1-34;150];%廣矩陣>>%計算系數矩陣的秩ans=2>>計算增廣矩陣的秩ans=254
0000T0000T>>rref(B)%算增廣矩陣的行最形ans=1.0000-1.50001.250001.0000-1.5000-0.250000所以非齊次線性程組的通解為
35cc243cc21
,其中c,c為任意常數。23.定程的解當線性方程組)中的時即方程中方程的個數多于未知數的個時,稱)為超方程。一般來說,超定程組無解(此時為矛盾方程組,這時需要尋找方程組的一個近似的解,如最小二乘解。設線性方程組
xx122nn1xx22n2
()
xm1m2
nm無解,即任何一數
x,12n
都使n(xi11i
xini
2
()i不等于零。我們法找到0,x,0,2-5式最小,這樣的0,x,x0稱為方12程組的最小乘,稱式2-5)為誤差方。果記xxx,,x),12nb
,則
e)
T
(
。最小二乘解所滿的代數方程組(又稱正規程)為Ax且正規方程組)總是有解的(詳文[6])。
()下面介紹利用MATLAB提的矩陣左除運算求解超定方程組的最小二乘解。此外,在2.3.4節將介紹利用矩陣的奇異值分解計算最小二乘解。55
2212x42112例2.8求定方程組x解超定方程組正規方程組為
的最小二乘解,求誤差平方和。231利用MATLAB矩陣的左除方法求解上述的正規程組可得到最小二乘解,并根據)式計算誤差平方和
。利用MATLAB現上述過程:>>2;21];>>b=[11;3;6;7];>>A1=A'*A;>>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年轉換工程師勞動合同協議書
- 售車協議和購買合同
- 2025租房裝修合同樣本
- 2025商業綜合體物業管理服務合同書
- 2025餐飲外賣配送服務合同示例
- 2025年國家生源地助學貸款合同范本
- 商品吊牌生產合同協議
- 2025標準個人借款合同范本
- 商業除塵車租賃合同協議
- 商品贈品協議書范本
- 肝硬化常見并發癥的護理
- 惠州一中、珠海一中等六校聯考2024-2025學年高三考前熱身物理試卷含解析
- 所得稅會計試題及答案
- 2025年保安員職業技能考試筆試試題(700題)附答案
- 《知不足而后進 望山遠而力行》期中家長會課件
- 專題09 鄉村和城鎮-五年(2019-2023)高考地理真題分項匯編(解析版)
- 2025年第三屆天揚杯建筑業財稅知識競賽題庫附答案(201-300題)
- 某縣公共實訓基地建設項目可研報告
- 2025年納米鎳粉市場規模分析
- T-NKFA 015-2024 中小學午休課桌椅
- 2024年山東淄博中考滿分作文《從“閱”到“悅”》5
評論
0/150
提交評論