數(shù)學(xué)實驗(線性代數(shù)、微積分、常微分方程、概率論與數(shù)理統(tǒng)計等) 精品_第1頁
數(shù)學(xué)實驗(線性代數(shù)、微積分、常微分方程、概率論與數(shù)理統(tǒng)計等) 精品_第2頁
數(shù)學(xué)實驗(線性代數(shù)、微積分、常微分方程、概率論與數(shù)理統(tǒng)計等) 精品_第3頁
數(shù)學(xué)實驗(線性代數(shù)、微積分、常微分方程、概率論與數(shù)理統(tǒng)計等) 精品_第4頁
數(shù)學(xué)實驗(線性代數(shù)、微積分、常微分方程、概率論與數(shù)理統(tǒng)計等) 精品_第5頁
已閱讀5頁,還剩293頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

簡本主講大工數(shù)課中線代、積、常分程概論數(shù)統(tǒng)等要學(xué)法MATLAB軟的現(xiàn)程其用內(nèi)分個分第部為MATLAB件用介介MATLAB軟件的基本容第二分線代實,紹MATLAB軟求解線方組計矩特值特向、行陣相對化及矩陣解方第三分微積分驗紹MATLAB軟進符微分算數(shù)微和值分算方;第四部為微方實介紹MATLAB軟件求線(非線性微方()解解數(shù)解進動仿的方法第部為率與理計驗用MATLAB軟進行隨變的關(guān)算隨數(shù)產(chǎn)及本據(jù)計可視化的法另,對體容紹相的用例以幫助學(xué)逐學(xué)用學(xué)識解實問。一后有一定量實題以學(xué)課上練及驗本適于工院大本專科學(xué)生及備工科學(xué)識計機識其科工者1

數(shù)學(xué)實驗是在數(shù)學(xué)應(yīng)用于各個科領(lǐng)域,特別是應(yīng)用于工程技術(shù)領(lǐng)域的過程中產(chǎn)生的,是伴著計算機的廣泛使用和數(shù)學(xué)軟的有效開發(fā)而發(fā)展的,它著重體現(xiàn)了用學(xué)和實數(shù)學(xué)的理念用學(xué)是應(yīng)數(shù)學(xué)理論知識解決相關(guān)領(lǐng)域中的實際問題;實現(xiàn)數(shù)學(xué)是通過計算機及數(shù)軟件實現(xiàn)部分數(shù)學(xué)結(jié)果的理論推和計算過程,使抽象的數(shù)學(xué)內(nèi)容直觀化、可視。數(shù)學(xué)實驗課程是學(xué)工科數(shù)學(xué)課程教學(xué)改革與建的主要成果之一,目前已在全國各高校廣泛設(shè),并已成為大學(xué)工科數(shù)學(xué)課的重要組成部分。數(shù)學(xué)實驗課開設(shè)的主要目的是過數(shù)學(xué)實驗使學(xué)生深入理解數(shù)學(xué)基本概念和基礎(chǔ)理論、熟悉掌握常用的數(shù)學(xué)件,培養(yǎng)學(xué)生應(yīng)用數(shù)學(xué)知識并合計算機工具解決實際問題的能力。數(shù)學(xué)實驗課數(shù)學(xué)知識與計算機應(yīng)用有機地合起來,以數(shù)學(xué)知識為背景、以數(shù)學(xué)軟件為工具為學(xué)生自覺學(xué)習(xí)數(shù)學(xué)方法、動解決實際問題搭建了平臺,對提高學(xué)生學(xué)習(xí)數(shù)學(xué)興趣、加強學(xué)生的數(shù)學(xué)理論基、培養(yǎng)學(xué)生的開拓性思維等具有重要作用。本書主要講授大工科數(shù)學(xué)課程中的線性代數(shù)、積分、常微分方程、概率論與數(shù)理統(tǒng)計等重數(shù)學(xué)方法用MATLAB軟件的實現(xiàn)過程容分五個部分一部分為軟件使用簡介,介紹功能強大的MATLAB軟的基本運行,變量、矩陣、數(shù)組及其算,函數(shù)及語句和M文的編寫,以及繪圖功能及數(shù)據(jù)的導(dǎo)入導(dǎo)出等第二部為線性代數(shù)實驗介用MATLAB軟件解線性方程組計矩陣特征值和特征向以及進行矩陣相似對角化和矩分解的方法。第三部分為微積分實驗介紹用軟件行符號微積分運算值微分函插值和數(shù)值積分計算的方法四分為常微分方程實驗紹用MATLAB軟求線非性)微分方程(組)解析解和數(shù)值解、進行向量場制和動態(tài)仿真的方法。第五部分為概率論與數(shù)理計實驗紹用MATLAB軟件進隨機變量相關(guān)計算隨機數(shù)的產(chǎn)生,及進行樣數(shù)據(jù)的統(tǒng)計描述與可視化的方。另外,針對具體方法介紹了相應(yīng)的應(yīng)用實例,以更有利于培養(yǎng)學(xué)生用學(xué)意識和能力。本書的主要閱讀象是理工科院校本??茖W(xué)生。學(xué)實驗課對學(xué)生后繼課程的學(xué)習(xí),特別是學(xué)在課程設(shè)計和畢業(yè)設(shè)計等環(huán)節(jié)的學(xué)習(xí)和研究具有重要幫助,提供思想和方法的導(dǎo)課程也將為學(xué)生一步學(xué)習(xí)數(shù)學(xué)建模加學(xué)建模競賽、利用數(shù)學(xué)方法解各個領(lǐng)域中的實際問題打下良的基礎(chǔ)。本書由陳東彥老組織編寫,主要由劉鳳秋、李強、曹作寶編寫,牛犇、宋顯華、孫偉參與部分內(nèi)容的編寫,田廣悅老師書中各部分內(nèi)容的選編給與了很多具體的指導(dǎo)。于缺乏經(jīng)驗、水平有限,書中免有不妥之處,希望同行專家及廣大讀者批評指!編者2

錄內(nèi)簡介前2第1件用介1.1MATLAB軟件使用入門MATLAB動MATLAB作的注意事項及常用技巧11MATLAB助1.2MATLAB的變量和表達式131.3MATLAB矩陣創(chuàng)建及其運算MATLAB陣的創(chuàng)MATLAB陣的運1.4M文的編寫與調(diào)用21文的操22命文23函文241.5MATLAB編程MATLAB用的程序控制語句MATLAB程應(yīng)用1.6MATLAB基本繪圖二維形繪32三圖形的繪381.7MATLAB數(shù)據(jù)的導(dǎo)入與導(dǎo)出導(dǎo)數(shù)413

導(dǎo)文本文44對MS-Excel子表格文件的操46實驗第2線性數(shù)驗.502.1線方程組的求50MATLAB矩陣的相關(guān)運算線方程組的52應(yīng)實562.2矩的特征值與特征向量及其相似對角化矩的特征值特向矩的相似對61應(yīng)實642.3矩的分68矩的LU分解68矩的QR解69矩的Cholesky分70矩的奇異值712.3.5*矩的分解742.3.6*矩的分解75實驗第3微積實3.1微分符號運80符變量與符表符函數(shù)的極81符函數(shù)的微834

符函數(shù)的積88符函數(shù)的求與勒多項應(yīng)實933.2數(shù)微95數(shù)微分計算95數(shù)微分的MATLAB實現(xiàn)應(yīng)實973.3函插98拉朗日插99函插值的MATLAB實現(xiàn)應(yīng)實1033.4數(shù)積106數(shù)積分計算106誤估計和收113數(shù)積分的MATLAB實現(xiàn)應(yīng)實1203.5*二次曲面與曲面交線的繪制122二曲122空兩曲面的124實驗第4常微方實4.1常分方程及其模129常分方程的本常分方程模1314.2常分方程解析解MATLAB實現(xiàn)5

4.3常分方程數(shù)值解及其MATLAB實現(xiàn)數(shù)解的法137數(shù)解的法140常分方程數(shù)解的MATLAB實現(xiàn)4.4*量場繪圖及Simulink在求微分方上的應(yīng)用向場繪147Simulink應(yīng)用148實驗第5概率與理計驗1605.1隨變量及概率分160概密度函數(shù)的概密度函數(shù)可分函數(shù)的計168逆積分布函的隨變量數(shù)字征計5.2隨數(shù)的產(chǎn)生及應(yīng)175隨機的175應(yīng)用1785.3樣的統(tǒng)計描181樣的統(tǒng)計量其樣的分布及可應(yīng)實1945.4參估計與假設(shè)檢198參估計及其MATLAB實現(xiàn)假檢驗及其MATLAB實現(xiàn)6

應(yīng)實204實驗附209附表1-1用三角函數(shù)表209附表1-2用計算函數(shù)209附表1-3件操作函數(shù)表210附表5-1見分布概率密度函表210附表5-2見分布函數(shù)表212附表5-3用函數(shù)計算概率密函表213附表5-4用函數(shù)計算累積概值數(shù)表214附表5-5用臨界值函數(shù)表215附表5-6見分布的均值和方215附表5-7機數(shù)產(chǎn)生函數(shù)表216附表5-8數(shù)估計函數(shù)表217參文獻7

1章MATLAB軟件使介MATLAB是矩陣實驗Matrix)簡稱,由美國司出品與并為三大數(shù)學(xué)件是一個功能強大的常用數(shù)學(xué)軟件,它但可以解決數(shù)學(xué)中的數(shù)值計算題,而且可以解決符號演算、矩陣運算、繪制圖、實現(xiàn)算法、創(chuàng)建用戶界面和接其它編程語言的程序等問題,并且能夠方便地出各種函數(shù)圖形主應(yīng)用于程計算、控制設(shè)計、信號與圖像處理、號檢測、金融建模設(shè)計與分析領(lǐng)域。它使用方便,輸入簡潔,并且很容易由用自行擴展,因此已成為國內(nèi)外多大學(xué)教學(xué)和科學(xué)研究中最常用且必不可少的工。不同的操作系統(tǒng)相應(yīng)的MATLAB版本,本書介紹Windows操系統(tǒng)下的MATLAB7.1版的本使用。1.1MATLAB軟件使入門1.1.1動退出1.動版本MATLAB照安裝光盤中的安裝明成功安裝后,系統(tǒng)會在【始】菜的【程序】子菜單中加入啟動M命的標(biāo),用鼠標(biāo)單擊此圖標(biāo)就可動系統(tǒng),如圖。圖

啟動8

啟動后,就可以進入MATLAB的作環(huán)境。首先出現(xiàn)的圖標(biāo),接著就進了其默認的桌面系統(tǒng)如圖。圖是桌面統(tǒng)的默認界面(通過更菜單的選項可以組合不同的窗口式上窗當(dāng)前目錄CurrentDirectory切換為工作空間(左視窗為歷史命令(History切為當(dāng)前目錄(CurrentDirectory半視窗為命令窗口令窗口是用戶與進行人機交互的主要環(huán)境,在此可輸入命令或執(zhí)行M文,是命令窗口的提示符可以在它后面輸入命令或輸入句。圖界面2MATLAB基演下面通過三個實來初步了解MATLAB的操作和功能。例1.1計算

,并輸出值。x2=pi↙x11.4142x23.1416思考題:例1.1中的變量x1和x2中間能否去掉,請驗證你結(jié)果?注:MATLAB在示>>后的每一行輸后需要輸入↙,即Enter鍵回車例1.2繪制

sin(yxy

2

)

在區(qū)間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極坐標(biāo)繪圖示。>>t=0:0.01:2*pi;↙

直角坐標(biāo)的圖形%圖1.4圖

極坐標(biāo)繪圖3.出若要退出,需用鼠標(biāo)點擊其系統(tǒng)集成界右上角的關(guān)閉按鈕,或者在命令窗口輸入exit或命即。10

1.1.2作的意事及用巧1.意項(1)在命令窗口工區(qū)中輸入MATLAB令后,須按下鍵,MATLAB才能執(zhí)行所輸入命令,否則不執(zhí)行該命令。(2)MATLAB區(qū)分字母大小寫(3)一般情況下,命令窗口中輸入一個命令并按下,計算機會顯示此次輸入的執(zhí)行果。為了簡便,在后續(xù)的章節(jié)我們將不再顯↙號。()如果用戶不想示輸入的結(jié)果,只要在所輸命令的后面加上一個分號;即可。如:2+3↙52+3;↙(5)可以在某一行尾處鍵入個英文句號“”現(xiàn)續(xù)行的目的。如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)...(6)中變量必須為字母、數(shù)字及某些符號組合,某些情況也允許輸入漢字,但標(biāo)符號必須是英文狀態(tài)下的標(biāo)點號。(7)中需要專門定義變量類型,系統(tǒng)會自動根據(jù)表達式的值或輸入的值來確定變的數(shù)據(jù)類型。(8命令行M文中的注釋語句都以百分%開始句行中百分號后面的該行內(nèi)容將被略而不被執(zhí)行M文中后面的語句可以命顯示出來。2.用巧特殊的功能鍵如:(1)恢當(dāng)前命令輸入前的空白狀態(tài)(2)調(diào)上一行命令。(3)調(diào)下一行命令。其中,為鍵盤中的向上鍵,為鍵盤中的向下鍵后兩個功能鍵在程序調(diào)試時很有用在MATLAB實使用中往往需要對剛執(zhí)過的命令進行修改后重新執(zhí)行了避免重復(fù)輸入可調(diào)原令后再做修改。1.1.3助MATLAB的離線助文件內(nèi)容豐富,是學(xué)習(xí)MATLAB的佳資料,學(xué)習(xí)MATLAB首先要學(xué)會MATLAB幫的使用。在命令窗口中輸help命令或直接用鼠標(biāo)鍵單擊菜單中的按(快捷鍵以開如圖1.5所的幫助窗口。11

圖幫窗口圖中左上有四個可以切換的選項頁,分為,Index,Search和可根據(jù)需要打開相應(yīng)選項頁查找所需的信息遇見一個新的函數(shù)時,可通過進行查找其功能及詳細用提供了大量的演文件為初學(xué)者提供幫助還供了在線幫助功能,但用戶要連接網(wǎng)絡(luò)。下面介紹一下通查找函。進入助界面后選中選頁進入下一界面并后面空白處輸入,點擊按鈕就會看到如圖1.6的結(jié)。12

圖中Seacrchfor搜索功能還可以在命令窗直接輸入查找命令,例如>>helpsinSINSine.SIN(X)isthetheofalsosind.functionsormethodswithsamenameinothersym/sin.mReferencepageinHelpbrowserdoc借助于MATLAB提的助系統(tǒng)以解決在使過中到的許多問題。1.2MATLAB的變和表式1.MATLAB量名則(1)中量名可以包含字母、數(shù)字及下劃線,但必須以字母開頭,后面最多跟個字母或數(shù)字,如x,,,d3er45等是法的變量名。(2)變量名區(qū)分大寫,如abAb表兩個不同的變量13

,,B1(3)注意不要用MATLAB中內(nèi)部函數(shù)或命令名作為變名。如果內(nèi)部函數(shù)用作變量名,內(nèi)函數(shù)將失效。2.工空中變量關(guān)函數(shù)1列出量函:who功:出當(dāng)前工作空間中的變量且內(nèi)存中的當(dāng)前變量以簡單式列出函:whos功:出當(dāng)前內(nèi)存變量的名稱、小、類型等信息2清除量函:功:除工作空間中的所有變量用于釋放系統(tǒng)內(nèi)存函:all功:除函數(shù)工作空間和基本工空間的所有函數(shù)變量,全局量和類函:clc功:除命令窗口3.MATLAB運符1數(shù)學(xué)算+加號(號(乘號(左除(右除^(乘冪)2關(guān)系算<小于(大(小于等于>=(大于等于(等于(不等于)3邏輯算&邏與運算邏輯或運算(輯非運)例1.4已矩陣

A

,對其做簡單的系與邏輯運算。>>A=[1,2;2];>>B=[1,1,2];>>C=(A<B)&(A==B)00004.MATLAB表式MATLAB的達式是常量、變量、函數(shù)和運算符成的有意義的式子。MATLAB語句由變量表達式及命組,用戶入的語句由系統(tǒng)解釋后運行常見的MATLAB句有兩種格式:格1表達格2變量=表達式其中系自動將格式1中的表式的運行結(jié)果賦值給內(nèi)部變量ans并在屏幕上14

出;在格式,系統(tǒng)將表達式的運行結(jié)果賦了變量。例1.5用兩形式計算5

sin

算術(shù)運結(jié)果。%計算結(jié)果賦給默認變ans=1.5645e+004即為1.5645×10

4計算結(jié)果賦給變量aa=1.5645e+004;即如果在表達式面加;,則執(zhí)行后不顯運算結(jié)果。例1.5中正弦、指數(shù)數(shù)是MATLAB自的函數(shù)。MATLAB中有很多似的函數(shù),常用函數(shù)詳見附錄中的附表和1-25.MATLAB數(shù)顯MATLAB系統(tǒng)中值數(shù)據(jù)的存儲和計算默認都是精度,如果需要可以利用命來調(diào)整數(shù)據(jù)的顯示式。MATLAB默認顯示格為format(松散式的示會有一些空行,占用更大的篇幅因此可以在命令語句輸入前,入顯示格式命令formatcompact(緊湊格式此外命還可以于控制數(shù)字顯示的方式,例如formatrat表此后的數(shù)據(jù)顯示為近似有理數(shù)。下面是用控制浮點變量的輸精度的八種格式,如表所。表format用于浮點的八個格式類型formatshort

結(jié)果固定個數(shù)的輸出

例子3.1416formatlongformatshortformatlongteformatshortgformatlonggformatshort

固定15個小數(shù)的輸出帶有位度的浮點格式3.1416e+000帶有15位精度的浮點格式3.141592653589793e+002帶有位的最佳的定點數(shù)或3.1416點數(shù)帶有15位數(shù)用于顯示73.14159265358979位用于顯示single的最佳的定點數(shù)或浮點數(shù)工程格式,至少個有效小數(shù)和3.1416e+007冪為的formatlongeng

工程格式好有有效數(shù)字和冪為3的倍數(shù)

3.14159265358979e+081例1.6分別用五位點、十五位定點及有理數(shù)形式將>>a=5+sin(7);,aa=5.6570aa=15

a

表示出來。

5.65698659871879aa=6.MATLAB的量在中些變量是固的用注輕易不要對這些變量重新賦值以免出現(xiàn)錯誤。些常見變量及具體意義見表。表1.2MATLAB常量常量符號

常量含義i或j

虛數(shù)單位,定義為i

=j

=-1Inf或infNaNpirealmin

正無窮大,由零做數(shù)引入此常量不定式,表示非數(shù)量,產(chǎn)生于0/0,/∞,0*∞等運算圓周率π的雙精度示容差變量,PC上此值為2^-52最小浮點數(shù),最大浮點數(shù),1.3MATLAB陣創(chuàng)建及運算MATLAB的基本運算位是矩陣,能否熟練掌握矩陣輸入、各種數(shù)值運算以及矩陣函數(shù)的使是能否學(xué)好MATLAB的關(guān)鍵。1.3.1陣的建1.過入接建矩輸入方法是先鍵左方括[‖,后按行直接入矩陣的所有元素,最后鍵入右方括]‖。意:整個矩陣[‖和]‖為尾,同的元素用,‖空隔開,不同行的元素用;‖按鍵來隔;矩陣的元素可以是數(shù)字或表達式。

3

例1.7直輸入創(chuàng)建矩陣。8>>A=[1,4,15,7,A134156079>>A=[1,2,34,15,607,16

0000A1341560792.關(guān)數(shù)建陣MATLAB提供了若干數(shù)來創(chuàng)建一些特殊矩陣,見表。表

生成特殊矩陣的相函數(shù)函數(shù)名稱n)eye(n)n)

函數(shù)功能mn列矩陣n單位矩陣mn列素為的矩1

函數(shù)名稱randn(m,magic(n)rand(m,n)

函數(shù)功能m行列態(tài)分布隨機矩n魔方矩陣m行列勻分布隨機矩例創(chuàng)建陣

11

。生成元素都1階陣11111例1.9

創(chuàng)建矩陣

00

。5)%生成元素都為的25列矩陣0000例生魔方矩陣。>>magic(3)8135493.號作“”j:k表示生成步長為等差數(shù)列構(gòu)成的數(shù)組:[j,j+1,j+2,…,k];j:i:k表生成步長為i的等差列構(gòu)成的數(shù)組:[j,;例等數(shù)列的生成。>>1:5步為1的差數(shù)列ans=13417

AA>>linspace(1,%給出區(qū)間[的5個等分點數(shù)據(jù)135>>1:2:7%步長為的差數(shù)列135>>8:-2:0步長為的差、遞減數(shù)列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的所有元素構(gòu)造一個維陣矩陣A的所有元素按列構(gòu)造一列矩陣矩陣A(:)的第i個元素矩陣A(:)的第i個到j(luò)個素構(gòu)成的向量空矩陣取出矩陣A的第i,j行及第k,l列交點上的元素:陣加法:陣減法A*B矩陣乘法A\:矩陣的左:矩陣的右除或:A的置k*A數(shù)k乘以A矩陣A的次冪:A^n矩陣的點冪其中矩陣的除\和除/如果矩陣A是非奇異方陣則等于A的逆矩陣乘B,;同理等B乘A的逆矩陣,即B*inv(A)。具體計算時可不用逆矩陣直接計算。右除B/A也可(A'\B')'來現(xiàn)。例已矩

A

2321

,求A

A.

。>>3;456];254];>>C=A+B=44101010>>C=A.^B=140961296注:點和算術(shù)運符之間不能有空格。例已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]注:當(dāng)矩陣中含未知變量時,需要用syms聲未變量,則會出現(xiàn)???Undefinedor'a'”的誤提示。列于表1.5中其它的矩陣相關(guān)運算函數(shù)將在第二章中做細介紹。函數(shù)名稱

表函數(shù)功能

矩陣的其它相關(guān)運函數(shù)名稱

函數(shù)功能rank(A)eig(A)poly(A)trace(A)cond(A)

求A的秩求A的特值及特征向量求A的特多項式求A的跡求A的條數(shù)

rref(A)inv(A)det(A)norm(A,1)

求A行最簡形求A逆矩陣求A行列式求A范數(shù)1.4M文的編與調(diào)用在初學(xué)階段常在命令窗口中輸入語入一行命令后系統(tǒng)立即執(zhí)行該命令,這方式稱為命令窗口下命行方。用令方式編寫的程序可讀性差且不易存。因而,對于相對復(fù)雜問題的解,一般先編寫成可存儲的程序文件,然后在中行該程文件,這種方式稱程文件式由語組成的程序件類型是M文M文的擴展名為M文件可分為兩種形:一種令文或本文(scriptfile用為解決特定問題而編制的。一種函數(shù)文(常其它M文調(diào)用。它們都是由若干MATLAB語或命令組成文件。要注意在編寫M文件時,M文名一定以字母開頭且不要與內(nèi)置函數(shù)重名。21

1.4.1文件操MATLAB類型文件的開關(guān)閉和保存等操作Word非相似新建M文的操作是在命令口中選擇FileM-File(圖然后用鼠標(biāo)單,打開MATLAB中函數(shù)與M文編輯器‖見圖1.8戶可以在該編輯窗口中編一個新的M文。此編器還可以用來對已存在的M文進行編輯、調(diào)試和運。實際上M文也可用其它文本編輯器來建、編輯。圖1.7

新建M文件圖M函數(shù)與M件編輯器(編輯口)22

M文有三種運行方式是在命令窗口中直接鍵入文件名鍵二是在編輯窗口中打菜再單快捷鍵三直接單擊工欄中的圖標(biāo)。M文保存的路徑一定要在其設(shè)置的搜路徑上,否則找不到此文件,導(dǎo)致無法運。后面的例題如果不特別說明都是以第一種方式運行的。在M文中,當(dāng)表達式后面接分號時,與命行方式的語句一樣,表達式計算結(jié)果不顯示,中間結(jié)果仍保存在內(nèi)存中。1.4.2命令件命令文件(也稱本文件)的一般形式為文件名>,如a1.mpp.m等是合法的M文名。命令文件的格式征如下:(1)用,closeall等句開始,清除工作空間中原有的變和圖形,以避免其它已執(zhí)行程所殘留數(shù)據(jù)對當(dāng)前程序的影響()前幾行通常是注釋行,用對此程序用途的說明,特別在運行時對用戶輸入數(shù)據(jù)的要求更要敘述清楚,否則程序的可性將很差。這些注釋行必須以開始(這與C語中/**/似后程序運行時將忽略后該行內(nèi)容。MATLAB規(guī)定可以通輸help文名‖輸出該文件中的有注釋。()程序的主體。如果文件中全局變量,即可以在子程序函數(shù)文件和主程序命令文件中共的變量,應(yīng)在程序的起始部分明。其語句是global變名變量名2…為了改善程序的讀性,應(yīng)注重語句的縮進及與的對應(yīng)關(guān)系。在程序中有時誤操作輸入中符號,可能導(dǎo)致程序無法運行MATLAB用色標(biāo)注有問的語句。因而在輸入序中,要注意中英文的切換。(4)命令文件常會用用戶編寫的函數(shù)或者系統(tǒng)自帶的函數(shù)。例編列出區(qū)間[M]

上的素數(shù)的程序列出素數(shù)的程序clear,allM=input('輸M的值M='),N=input('輸入N的x=M:N;列出從M到N的部然數(shù)foru=2:sqrt(N)%出除數(shù)(最到N的平方根)找到不是素數(shù)的序號x(n)=[];將其刪除掉end,x循環(huán)結(jié)束,顯示結(jié)果>>%執(zhí)行,輸入5和x=511131723

1.4.3函數(shù)件MATLAB提了多函數(shù)文件,且隨著版本的更不斷擴充MATLAB軟的大部分功能都來自其建立的函數(shù)集,利用這函數(shù)可以使用戶方便地解決各種問題。函數(shù)文件的一般式為:<因變量=<函名(<自變量)M函文件可以有多個自變量和多個因變量,當(dāng)有多個因變量時[]括來。函數(shù)文件中的變除非用global聲,否則均為局部變量,不存在工作空間中。下面看MATLAB自的求素數(shù)的M文,通過其幫助很易找到該函數(shù)為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);注:函數(shù)文件是function開始,后跟數(shù)名(在保存時,會默認為M文件的文件名,不要修為其它名稱,當(dāng)M文名與function后的數(shù)名不一致時,調(diào)用函數(shù)文件時常會生錯誤外函數(shù)文件通常都有變量的輸輸出。下面來編寫函數(shù)件。例設(shè)陣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的轉(zhuǎn)置因為函數(shù)的輸入量為A所以在調(diào)前先給A賦值然后才能對編寫的M文件進行調(diào)用。>>A=[1,2;5,8]%輸入矩陣A>>調(diào)用exam01_19.m數(shù)計算矩陣A的Ada=-2a2=111845=1.00002.5000-0.5000traa=15281.5MATLAB編程

A在解決實際問題往需要編寫較復(fù)雜程序面將介紹MATLAB編涉及到的內(nèi)容。1.5.1用的序控語程序控制結(jié)構(gòu)有種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循結(jié)構(gòu)。任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)成。1.序構(gòu)按排列順序依次行各條語句直到程序最后這是一種最簡單的程序結(jié)構(gòu),一般涉及數(shù)據(jù)的入、輸出和計算等。1數(shù)據(jù)輸函:input格:提示信息)其中,提示信息字符串,此格式通過提示信息A的值,入的A可以是數(shù)或者字符串,輸入符串時必須帶單引號。例輸A的和的值。>>inputA:')要求用戶輸入A的值可以是數(shù)或字符輸入25

A1000>>')What'syour'Michael%輸入'=Jordan2數(shù)據(jù)顯函:disp格:disp(X)其中,X是值陣或字符串,該格式用于顯示量X的值且一次只能顯示個變量。例顯A的。>>A='Hello,Tom!';>>disp(A)Hello,Tom!3數(shù)據(jù)格化輸若要求數(shù)字以某形式輸出,則需要對數(shù)據(jù)的輸進行格式化。除了用前面介紹的format進控制外,還可以用fprintf來控輸出。函:fprintf格:fprintf(fid,format,variables)其中,fid為文件句柄,若缺省,則輸出到屏幕上用來指定變量variables出時采用的格式包含普通字符串、格式字符串見.6義字符(見.7表格式字符串%d

整數(shù)實數(shù):科學(xué)計數(shù)法式

%f%s

實數(shù):小數(shù)形式輸出字符串表

轉(zhuǎn)義字符%%

換行退格百分號

\t\\

制表符反斜杠例格化輸出變量。>>a='Hello';>>b=2.4;>>>>c=%e\n',a,b,c)a=Hello,c=3.141593e+0022選擇構(gòu)1條件句if條件語句有種形式:形1if表式語句序列26

說:果表達式的值為真,就執(zhí)語句序列,否則執(zhí)行end后的句。形2if表式語句序列1語句序列2說:果表達式的值為真,就執(zhí)語句序列,否則執(zhí)行語句序列2形3if表達1語句序列1elseif表式2語句序列2語句序列n說:果表達式的為真,就執(zhí)語句序列1然后跳出if語;否則判斷表達式如果表達式2的值為真,就執(zhí)行句序列,然后跳出if語句;則依此類推,一直進下去;如果所有的表達式的值為假,就執(zhí)行后面的語句序列,然后跳出if語。x例1.23編分段函數(shù)f(x)的M函文件,并計函,x數(shù)值ff(30)

和(10

)

。解%exam01_23.my=(x)ifx<1y=xelseify=2*x-1elseify=3*x-11y=sin(x)+log(x)調(diào)用exam01_23.m數(shù)文件計算函數(shù)值exam01_23(30),=0.20003.000079.000027

所以(0.2)0.02,ff79

和(10

)3.4473

。2多向件句分支switch表達式常量表達式1語句塊常量表達式2語句塊{量達式常量表達式,語句塊otherwise語句塊說:語句后面的表式可以為任何類型;每個后可是多個不同類型的常量表式;與if語句不同,各case和otherwise語出現(xiàn)的先后順序不會影響程序運的結(jié)果。例1.24根輸入月份來判斷節(jié)。編寫exam01_24.mformonth1:12switchseason='Spring';season={9,10,11}season={12,1,2}season=fprintf('Month===>month,season);執(zhí)行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.環(huán)構(gòu)1for循fori=表式語句……….語句說:達式是一個向量,可以是ns:n,也可以是字符、字符串矩陣等;循環(huán)的循環(huán)體中,可多次嵌套for循環(huán)和其它的結(jié)構(gòu)體。例寫出矩。%formatforforh(i,j)=1/(i+j-1);運行后,會提示入,輸入5得到如下的運行果:h=11/51/51/41/71/8上面的代碼顯然讀性很差,注意縮進對齊后為formatforforh(i,j)=1/(i+j-1);h此時代碼的邏輯構(gòu)就清晰了。例利用for循環(huán)100的數(shù)之和。建立M文件exam01_26.mfori=1:sum=sum+i;sum執(zhí)行M文件。>>sum=50502循環(huán)29

while表達式循環(huán)體語句說:達式一般是由關(guān)系運算符邏輯運算符及其它運算符組,用來判斷循環(huán)要繼續(xù)進行是要停止若表達式的值非零即輯為真程序就繼續(xù)循環(huán);若表達式的值為,就停止循環(huán)。例利while循來計算+50!的值。建立M文件exam01_27.mwhilewhileprd=prd*j;j=j+1;sum=sum+prd;i=i+1;disp(..+50的和為:sum執(zhí)行命令文件exam01_27.m>>1!+2!+...+50的和為:sum=2.5613e+018即得到!的值為2.56134.它制句

。(1)函數(shù)break用終止循環(huán)的行,即跳出最內(nèi)層循環(huán)(2)函數(shù)continue用于束本次循環(huán),進下一次循環(huán)break和一般與if語句配合使用。(3)函數(shù)return用退出正在運行的本或函數(shù),通常用在函數(shù)文件。MATLAB編的容涉及很廣,也供一些現(xiàn)成函數(shù)供用戶直接調(diào)用,詳細請參幫助系統(tǒng)。1.5.2程應(yīng)前面介紹了的本控制流程語句將紹的程應(yīng)用。例(數(shù)游)請利用計算機隨機產(chǎn)生區(qū)[0,100]的一個整數(shù)然猜所產(chǎn)生的這個數(shù)根據(jù)猜測的情況給出不同的提。如果猜測的數(shù)大于產(chǎn)生的數(shù),則顯示,小于則顯示,于則顯示Youwon時退出游戲,用戶最30

多有次機會。編寫猜數(shù)游戲的程序。猜數(shù)游戲exam01_28.mx=round(100*rand);隨機產(chǎn)生區(qū)間[0,100]上的一整數(shù)n=7;%7次機test=1;歡參加猜數(shù)游!你共'次機']);disp('請輸入一個0到100之的整數(shù));for');if<xdisp('Lower');elseifguess>xwon!');test=0;你有,num2str(n),'機會!']);iftest==1lost!')執(zhí)行exam01_28.m>>歡迎參加猜數(shù)游!你共有機會請輸入一個到之間的整數(shù)EnterHigher你還有機會!EnterHigher你還有機會!Enter你還有機會!Enter你還有機會!Enter你還有機會!Enter你還有機會!31

Enterwon!從上面的猜數(shù)過可見是否能猜對似乎要碰運氣但實際還是有可循的。上面的猜數(shù)過程用的是數(shù)據(jù)結(jié)構(gòu)里的折半查找法于該介于和100之間此第次折半入果提示high味著數(shù)在之間,繼續(xù)折半就可以找到這個數(shù)。如果提low,意味著猜的數(shù)在1-49之,繼續(xù)折半,就可找到這個數(shù)。如果不是7次,是,能猜到數(shù)嗎?MATLAB編程還涉及圖形應(yīng)用編程、界面設(shè)計編程圖形處理編程和數(shù)值分析編程等篇幅限制中做介紹內(nèi)容可以進一步查閱有關(guān)MATLAB書籍。1.6MATLAB基本繪MATLAB不僅能制各種圖形,而且其表現(xiàn)形式是豐富多樣的。本節(jié)主要介紹常用的二維三維圖形的繪制函數(shù),并簡要明相關(guān)圖形的修飾與標(biāo)注函數(shù)。1.6.1維圖的繪1.plot函數(shù)制二圖plot函數(shù)是最基本二維圖形指令,主要有五種調(diào)格式,分別介紹如下。格1plot(y)此格式為缺省變繪圖格式。當(dāng)y是數(shù)值向量時,在坐標(biāo)系中順序地直線段連接頂(i,y(i))畫一條折線圖;當(dāng)y是值矩陣時,矩陣y每元素的相應(yīng)行下標(biāo)值為坐標(biāo),以y的素為縱坐標(biāo)繪制線圖。例畫向量1,3,2,的折線圖。>>y=[1,3,2,0.5];>>plot(y)%圖1.932

向量式圖形格2plot(x,y)此格式為基本格,以的數(shù)關(guān)系作出角坐標(biāo)圖。當(dāng)x,都長度為n的數(shù)值向量時,坐標(biāo)系中plot(x,y)用直線依次連接頂(y(i))出一條折線圖;當(dāng)是度數(shù)值向量且y是的值矩陣時,y)用向分別與矩陣y的每一列匹配,同一坐標(biāo)系中繪出m條同顏色的折線圖;當(dāng)x和y都是n的數(shù)值矩時plot(x,分別矩陣x的第i列矩陣y的i列匹配同一坐標(biāo)系中繪條同顏色折線圖。例畫橢圓

52

的曲線圖。解首先出橢圓的參數(shù)方程

x5costy

,其中

0

。>>t=0:pi/50:>>x=5*cos(t);>>y=2*sin(t);>>plot(x,grid210

05圖1.10

橢圓例在一坐標(biāo)內(nèi)繪制函數(shù)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

圖同一坐標(biāo)制2條曲線注:holdon用保存原圖形off用刷新原有圖形;不帶參數(shù)的hold命令在兩者之間換。格3…])格4y1,x2,y2,x3,…)以上兩種格式用在同一圖形窗口繪制多條不同色曲線。格式中的t是量,y1,y2,…與t同的向量;格式的曲線關(guān)系為y1=f(x1),y2=f(x2),。例在一圖形窗口畫出函數(shù)y2,y和的圖形,其中

。>>x=-2:.1:2;>>plot(x,cos(2*x),'b-.',x,x.^2,'r-',%制多條曲線'x^2','x')%圖例圖1.12

例1.32的繪圖結(jié)果34

在中在一個圖形中繪制多條曲線時了對不同的曲線加以分,往往需要設(shè)每條曲線的線型、顏色和數(shù)據(jù)標(biāo)記等。為此MATLAB提了一些繪圖選項,于確定所繪曲線的線型、顏色數(shù)據(jù)點標(biāo)記符號,它們可以組合使用。若需要設(shè)曲線樣式,可以在函數(shù)中加繪選項。格5plot(x1,y1,繪選項1,x2,y2,繪圖選項2,?繪選項n)其中,繪圖選項包含一個單引號,在引號內(nèi)部入線型和顏色的標(biāo)識符。例如,,據(jù)點處用*做藍色標(biāo)記而各點之間不再連線。具體設(shè)置選項可參見表1.8。標(biāo)識符ymcrgbwk

表顏色黃品紅青紅綠藍白黑

線型、點型和顏色標(biāo)識符.OX+-*:--s

線型或點型點圓圈X號號實線星號虛線點劃線長劃線正方形2.形口分函數(shù)在繪圖過程中,了對比等用途,常要把幾個圖在同一個圖形窗口中繪制出來即把個圖形分割成幾個子窗口的形式制出來面紹如何制這種圖形。函:功:割圖形窗口格:其中,,和為整數(shù)。該格把一個圖形窗口分割成個子區(qū)域,用戶以通過參數(shù)p調(diào)用個各子繪圖區(qū)域進行操作。子繪圖區(qū)域的編號為按從左至右編號。例繪子圖。>>>>>>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的繪圖結(jié)果3.適采的圖函1函數(shù)制數(shù)圖函:fplot功:出函數(shù)給定區(qū)間內(nèi)的圖形格:選項其中fname為函名,以字符串形式出,也可以是一個用方括號括起的數(shù)組,如[,lims為x,y的值范圍,tol為相對允許差,其系統(tǒng)默認值為。選項的定義與函數(shù)相同,選項也可略。例繪sin,cosx,tan

函數(shù)在區(qū)間[

的圖形。fplot('[sin(x),,2*pi])%1.146420-2-4-6-6-4-2046圖1.14

正弦、余弦和正切數(shù)的圖形36

tt2函數(shù)繪符函數(shù)形函:ezplot功:制符號函數(shù)的圖形格:[xmin,xmax])其中F是含有一個變量的符號函數(shù)。該式用于繪制函數(shù)F在間[xmin,xmax]內(nèi)的圖形;若區(qū)[缺,默認區(qū)間[2π,2π]。例繪

3cost2

在[4

]

內(nèi)的圖形。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注:當(dāng)文件無法示成yf(x)可以繪制其圖形4.它維殊形的制

t例1.35的圖形即以隱函數(shù)的形存在時,利用ezplot函也MATLAB還供許多其它的二維繪圖指令,這指令大大擴充了的曲線作圖功能可以滿足用戶的不同需要,見1.9函數(shù)名稱

表函數(shù)功能

繪制二維特殊圖形指令函數(shù)名稱

函數(shù)功能barhbar3bar3h

垂直的直方圖三維直方圖垂直的三維直方圖餅圖拓撲圖

areaerrorbarpie3

階梯圖火柴棍圖面積圖誤差棒棒圖三維餅圖37

矢量場圖

fill

填充1.6.2三維形繪由函數(shù)生成格點矩陣后,就可以求出各格點對應(yīng)的函數(shù)值,然后利用三維網(wǎng)格函數(shù)或維曲面函數(shù)畫出間曲面。1.函繪網(wǎng)格面函:mesh功:制三維網(wǎng)格圖形格1mesh(X,格2Z)其中,格式的X,,是維數(shù)的矩陣;格式中x,是量,而Z矩,Y]meshgrid(y)陣,等價于。Z)例畫出數(shù)zsin

在區(qū)域

上及

2

在區(qū)域x,y

上的圖形。解建立命令文件exam01_36.m函數(shù)z=sin(x+siny)t1=-3:[x1,y1]=meshgrid(t1);%成格點矩陣z1=sin(x1+sin(y1));計算格點處的函數(shù)值1),z1),%馬鞍面z=x^2-2y^20.3:10;[x2,y2]=meshgrid(t2);z2=x2.^2-2*y2.^2;2),z2),title('馬鞍面)執(zhí)行命令文件exam01_36.m>>exam01_36輸出圖形如圖:38

圖1.16函數(shù)=sin(x+siny)與馬面的網(wǎng)格圖2.維面圖數(shù)函:功:制著色的三維曲面圖格:其中,c用指定節(jié)點的色值,其它輸入?yún)?shù)的設(shè)置與mesh同。若不輸入,則默認為。MATLAB語言對表面行著色的方法是得相應(yīng)網(wǎng)格后對每一網(wǎng)依據(jù)該網(wǎng)格所代表的點的色值(由變量控制),來定義一網(wǎng)格的顏色。例繪地球表面的氣溫分布示圖。>>%成階的矩陣>>t=abs(c);求絕對值>>surf(a,b,c,t);繪出單位球面>>axisequal>>colormap('hot')輸出圖形如圖所:39

101

10

0

圖1.17

等溫線示意圖MATLAB還提供了其三維圖形繪制的函數(shù),如繪制球體函數(shù)sphere等格1格2sphere(n)其中格1生三個階矩陣一步利用函數(shù)surf(x,y,z)可生成單位球面;格式繪制球面圖,沒有返回值,若輸入sphere畫球,則默認n=20。例利函數(shù)繪球面。>>sphere(30)square%如果不設(shè)置x,y坐比相同,繪制圖形可能變形得到球體圖形如1.18:10-11

10

0

-1-1圖1.1840

球體

1.7MATLAB據(jù)的導(dǎo)入導(dǎo)出1.7.1導(dǎo)入據(jù)隨著MATLAB程的深入多問題解決如果僅依靠在的命令窗口中輸入命令來決問題,顯然是不夠的,而且多問題需要分解為若干個步驟,每一個步驟都可涉及到上一步處理得到的數(shù)據(jù)這樣就需要對每一步處理的數(shù)據(jù)進行保存,以便進一步使用,而且在將來需要理這些保存的數(shù)據(jù)時,可以直接把要處理的數(shù)據(jù)入到工作空間,避免重復(fù)輸入繁瑣。因此,介紹數(shù)據(jù)的導(dǎo)入和導(dǎo)出部分內(nèi)容,顯然很有必要。MATLAB提了從磁盤文件或剪貼簿將數(shù)據(jù)轉(zhuǎn)工作(數(shù)據(jù)導(dǎo)入將工作區(qū)變量存入磁盤件(數(shù)據(jù)導(dǎo)出)的多種途徑。下面來簡單介紹種數(shù)據(jù)導(dǎo)入和導(dǎo)出的方法。1.用入據(jù)導(dǎo)導(dǎo)數(shù)最簡單的辦法是用界面導(dǎo)入向?qū)?,打開文件菜中的導(dǎo)入數(shù)據(jù),然后按提示進行下面的操作首先,點擊MATLAB菜單的File項,選擇其中的Import1.19所示。圖導(dǎo)入數(shù)據(jù)界面41

其次,選擇你要入的數(shù)據(jù)文件,讀入的數(shù),如下圖1.20所示。圖1.20導(dǎo)入數(shù)據(jù)data.txt然后,點擊Next,現(xiàn)界面如圖所示。圖1.21導(dǎo)入數(shù)據(jù)界面最后,點擊finish可以把數(shù)據(jù)導(dǎo)入工作空間。此時在工作空間中以看到導(dǎo)入的數(shù)據(jù)以為量名,如圖1.22所示。42

圖1.22工作空間顯示的變量注用同樣方法可以將表中的數(shù)據(jù)導(dǎo)入到MATLAB工作間實際上,對于MATLAB支的數(shù)據(jù)格式都可以將其導(dǎo)入到MATLAB工作空間。2.MATLAB中制Excel表格的容某個量在菜中選File就可以新建變量,取名字為,擊(工作空間)的變量excelval,在Window將出現(xiàn)Array,然后就可以復(fù)制、粘貼表中的數(shù)賦給MATLAB中的變量。3.函load和導(dǎo)文文件文本文件需要具統(tǒng)一的行列模式,使用分隔符為數(shù)據(jù)項間隔,這些分隔符包括空格、逗號、號或其它。1load函數(shù)對于數(shù)值數(shù)據(jù)可直接使用函數(shù)裝載。例導(dǎo)文本文件,中數(shù)據(jù)為1610>>A=%裝載該文本文件據(jù)賦給A2dlmread函數(shù)如果數(shù)值數(shù)據(jù)使其它分隔符,可以使用dlmread讀。例用dlmread讀數(shù)據(jù),其中中據(jù)為1.1;2.2;2.3;6.7;>>讀入該數(shù)據(jù)包含列標(biāo)簽的數(shù)值數(shù)據(jù)并賦給B例讀中的數(shù)據(jù)到MATLAB的作空間中。的數(shù)據(jù)43

Grade2Grade378.855.945.999.566.878.089.577.056.7>>fid='r');%只讀的方式打開件>>='%f%f'headerlines',在fid文中忽略%后讀入3行>>關(guān)閉文件>>=[3x1double][3x1[3x1double]注:textscan中參數(shù)代忽略行;%f%f%f表3元素,后面的代表3行textscan給格式是cell,所以需要用cell2mat將之轉(zhuǎn)成matrix格式。>>gs即>>fid='r');>>='%f%f%f',3,1))>>當(dāng)中含字符和數(shù)值的混合數(shù)據(jù),也可以用函讀入。如果是規(guī)則的用格隔開的數(shù)據(jù),則采用data=textread(filename)式調(diào)用,讀出的數(shù)據(jù)記錄在data矩陣中。關(guān)textread的具用法請查閱MATLAB幫助。1.7.2導(dǎo)出本件1.save函數(shù)(1函save可把工作空間的所有變量保存為二進制的MAT文例將44

某些變量保存到test.mat中。(2)指定某些變量存到中,例如A[14;57];AASCII在利用將含整型數(shù)據(jù)文件存為文時常是件包含的都是實型格式的數(shù)據(jù)(小數(shù)點,且小數(shù)點后面有很多),很不方便。此在保存此類數(shù)據(jù)時,往往可使用dlmwrite函。2.函函:功:將一個矩寫到由分隔符分割的文件中格1dlmwrite('filename',M)格2dlmwrite('filename','D')格3dlmwrite('filename','D',R,C)其中格使用默認分隔矩陣M寫入文本文件中格2使分隔符割數(shù)據(jù)表示tab分為認分割符格3從陣M的行第C列開,作為要寫矩陣塊的左角,將數(shù)據(jù)用D分割入文件。例將量=[13;46;保到dlmwdata.txt>>a=[13;46;789]>>a);>>type%打印dlmwdata.txt內(nèi)容利用保數(shù)=[13;46;9]>>save-ascii;>>typesavdata.txt打印內(nèi)容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ǎo)出據(jù)例若數(shù)組d{'Time','Temp';1299;97},單格數(shù)組d的數(shù)導(dǎo)出至tempdata.xls文件新建工作',從該工作表的單元格開始寫入。>>={'Time',98;99;1497}>>xlswrite('tempdata.xls','Temperatures','E1')3.讀數(shù)例用=,其中的工作表Temperatures的容為:編號

數(shù)值123456>>=133223321424533665例將例中的工作表Temperatures的表頭提取出來并賦給。>>[ndata,headertext]=xlsread('tempdata.xls','Temperatures'/p>

424533665headertext=編號''數(shù)值'例處文本數(shù)據(jù)數(shù)值和文本混的微軟表格含有以下內(nèi)容:162738495text>>A=xlsread('testdata2.xls')A162738495NaN注:函數(shù)xlsread可用NaN將EXCEL表中的文字替換。例導(dǎo)表例中的工表中的第一個工作簿中第4行第。>>A=xlsread('testdata2.xls',1,'A4:B5')A495NaNMATLAB提了豐富的文件操作函數(shù)章只是對其進行了簡單的介紹于其它文件操作函的使用,可參見附錄中的附表1,并且查閱MATLAB的相關(guān)幫助文件,進一步解和掌握這些命令的用法。47

A5,A5,,A0B2實驗1熟悉MATLAB環(huán)境設(shè)置和輯工具。分別用help、命查找函數(shù)的幫信息,區(qū)分其不同之處。設(shè)

38,98

計、AB、AB、

、A/、

和A^。

34

已知

,531

,在CommandWindow中創(chuàng)建

、

矩陣并對其進行下操作:(1)提取A

的第一行和第三;(2)交換A

的第一行和第二生成

A1

,交換B

第一列和第三列成

B1

;(3)從橫向和縱向并和B;(4)構(gòu)建矩陣,的一、第二行分別由A的一和第二行的第一和第二列元素構(gòu)成,的三、第四行分別由B第二和第三行的第二和第列元素構(gòu)成。在同一個圖中畫出正函數(shù)和余弦函數(shù)在定義域后變換它的線型點型。

上的圖形,然利參數(shù)方程繪出

2y16

的圖形。設(shè)

y2),

其中

,請分別用plot,fplot和ezplot畫圖,并適當(dāng)加線形、顏色和標(biāo)注等;再對x,y

坐標(biāo)軸標(biāo)題及總題進行設(shè)定。設(shè)函數(shù)為

z

2

,請用命令成網(wǎng)線節(jié)點矩陣,再利用或命繪其三維圖形,其中,x繪制圓心和直徑待定的圓。1.10某業(yè)年各季度的產(chǎn)值單位萬元)別為2347,1827,2043,試用餅圖作統(tǒng)計分。1.11繪復(fù)的相量圖7+2.9i-1.5-6i(提示用compass函數(shù)1.12給數(shù)向量x00.1:及分段函數(shù)48

n1x

2

0x110請用命形式繪此函數(shù)在1.13編寫計K

2

的程序,要求動輸入變i量的,其中n為至的奇數(shù)或偶數(shù)。1.14練導(dǎo)數(shù)到變中。49

ccdc2章代數(shù)驗線性代數(shù)以向量向量空間(或稱線性空間)、性變換和有限維的線性方程組為研究對象,要討論矩陣理論、與矩陣結(jié)合有限維向量空間及其線性變換理論??茖W(xué)研究中非線性模型通??梢员唤茷樾阅P?,線性代數(shù)和計算機技術(shù)正是解決這些線化問題的有力工具。線性代數(shù)數(shù)學(xué)、力學(xué)、物理學(xué)和工程技術(shù)學(xué)科中有各種重應(yīng)用,尤其在計算機廣泛應(yīng)用今天,計算機圖形學(xué)、計算機輔助設(shè)計、密碼學(xué)技術(shù)無不以線性代數(shù)為其理論算法基礎(chǔ)的一部分。本章在2.1節(jié)紹線性方程組的求解介紹矩陣的特征值和征向量及矩陣的相似對角等內(nèi)容,在節(jié)紹矩陣的各種分解及其相關(guān)應(yīng)。2.1線性程組求解下面介紹MATLAB提供的向量與矩陣的相關(guān)運算函數(shù)以及齊次線性方程組、非齊次線性方程和超定方程組的求解。2.1.1矩陣相關(guān)算1.陣行式det(A)例2.1求

A

b

的行列式。>>bd;%義符合變量b,c,d>>A=[ad];創(chuàng)建矩陣A>>計算A的列式2.陣逆陣inv(A)在矩陣A可逆,即行列式不零的情下,才可以利用函數(shù)inv計A的逆矩陣。例2.2設(shè)

A

可逆,求

的逆矩陣。>>bd;>>A=[ad];>>[d/(a*d-b*c),-b/(a*d-b*c)]a/(a*d-b*c)]50

3.陣行簡矩陣rref(A)將一個矩陣化為最簡形矩陣,會給我們研究矩帶來很大的方便,例如可以得到矩陣的秩、解矩陣的逆矩陣及線性方程組解等MALAB提函數(shù)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中根據(jù)矩A行最簡形矩陣rref(A)可知,矩陣A的為7。此外,關(guān)于利用數(shù)rref求線方程組的應(yīng)用,詳見下面的例和2.7。4.陣角元的操函:diag功:作矩陣的對角線元素格1=格2=格3X=格4X=diag(v,k)格式用于抽取矩陣X的對角線元素構(gòu)成向量v格式于抽取X的k條對角線元素構(gòu)向量v當(dāng)k=0時抽取主對角線元素k>0時取上方第k條對角線元素;k<0時,抽取方第k條角線元素。51

1x1xxbxbm格式構(gòu)造以向量v為主對角線元素,其余素為矩陣X格式4以向量v的素為矩陣X的k條角線元素。當(dāng)k=0時vX的對線;當(dāng)時,v為方第條角線;當(dāng)時,為方第k條對角線。例2.4函數(shù)diag應(yīng)用舉例。>>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線性程的解設(shè)有

個未知數(shù)

m

個方程的線性方組

x12nxxx22nxxm11m2mn

()記

1

nana1mn

22

,則(2-1)式可以寫成以向

為未知元的向量程52

x0xx若b,則稱(2-2)為非齊線方程;記A,)線性方程組)增廣陣若b0,則稱

(),則稱A為非齊次()為齊線性程(或非齊次線性方程組)對應(yīng)的齊次線性程組)。1.次性程的求方程組2-3一定有解(至少有零解)。的秩r

時,有唯一零解當(dāng)

r

時,有無窮多個零解,此時可以利用函數(shù)求出其通解。例2.5試平下面化學(xué)方程式x)x)OCO)H382解要配平這個方程式,必須找到合適的,,,x12左右的碳、氫、原子個數(shù)相等,即x,,,x應(yīng)滿足2

(正整數(shù)),使方程式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根據(jù)配平化學(xué)方式的原則,顯然取x,進一步求解得到x,,2因此方程式(2-4)配為:CO38222注:根據(jù)求解結(jié),令(中為任意實數(shù)),到例題2.5中齊線性方程的通解為53

00464

1

2

3

3

14

54

34

1

T2.齊線方組的解關(guān)于非齊次線性程組()的解,有如下結(jié):(1)當(dāng)r,即A時線性方程組有唯一解;此時可依據(jù)克萊姆法則進行求,也可以利用矩陣的左除直接解。(2)當(dāng)rr時,線性方程組有無窮多解;此時可以利用函數(shù)rref先增廣矩陣A化行最簡形,再把行最簡形中r個零元所對應(yīng)的未知數(shù)取作非自由未知,其余n個知數(shù)取自由未知數(shù),并令自由未知數(shù)分別等于

c

1

,,,,由A的行簡形,即可寫出含n個數(shù)的通解。2n(3)當(dāng)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];系數(shù)矩陣>>B=[111;3-1-34;150];%廣矩陣>>%計算系數(shù)矩陣的秩ans=2>>計算增廣矩陣的秩ans=254

0000T0000T>>rref(B)%算增廣矩陣的行最形ans=1.0000-1.50001.250001.0000-1.5000-0.250000所以非齊次線性程組的通解為

35cc243cc21

,其中c,c為任意常數(shù)。23.定程的解當(dāng)線性方程組)中的時即方程中方程的個數(shù)多于未知數(shù)的個時,稱)為超方程。一般來說,超定程組無解(此時為矛盾方程組,這時需要尋找方程組的一個近似的解,如最小二乘解。設(shè)線性方程組

xx122nn1xx22n2

()

xm1m2

nm無解,即任何一數(shù)

x,12n

都使n(xi11i

xini

2

()i不等于零。我們法找到0,x,0,2-5式最小,這樣的0,x,x0稱為方12程組的最小乘,稱式2-5)為誤差方。果記xxx,,x),12nb

,則

e)

T

(

。最小二乘解所滿的代數(shù)方程組(又稱正規(guī)程)為Ax且正規(guī)方程組)總是有解的(詳文[6])。

()下面介紹利用MATLAB提的矩陣左除運算求解超定方程組的最小二乘解。此外,在2.3.4節(jié)將介紹利用矩陣的奇異值分解計算最小二乘解。55

2212x42112例2.8求定方程組x解超定方程組正規(guī)方程組為

的最小二乘解,求誤差平方和。231利用MATLAB矩陣的左除方法求解上述的正規(guī)程組可得到最小二乘解,并根據(jù))式計算誤差平方和

。利用MATLAB現(xiàn)上述過程:>>2;21];>>b=[11;3;6;7];>>A1=A'*A;>>

溫馨提示

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

評論

0/150

提交評論