版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
控制系統(tǒng)仿真與CAD教材:《控制系統(tǒng)仿真與CAD》王燕平
——高等教育“十二五”規(guī)劃教材主講教師:閆晶晶聯(lián)系方式:yanjingjing2009@163.com公用郵箱:hngydxdqgcxy@163.com(20130901)計算機輔助設(shè)計(Computer-AidedDesign)2本課程主要內(nèi)容第1章
控制系統(tǒng)仿真及工具軟件概述第2章控制系統(tǒng)的數(shù)學(xué)描述第3章控制系統(tǒng)分析第4章控制系統(tǒng)設(shè)計與仿真第5章控制系統(tǒng)CAD-Simulink基礎(chǔ)第1章
控制系統(tǒng)仿真及工具軟件概述控制系統(tǒng)及仿真軟件
MATLAB的操作與使用數(shù)值計算與矩陣運算程序、文件和函數(shù)控制系統(tǒng)是指由控制主體、控制客體和控制媒體組成的具有自身目標和功能的管理系統(tǒng)。1.1控制系統(tǒng)及仿真軟件概述2023/2/4運動體多傳感器控制器運動空間構(gòu)建導(dǎo)航與控制…………信息濾波與融合4仿真軟件發(fā)展概述仿真技術(shù)引起該領(lǐng)域各國學(xué)者、專家們的重視,建立起國際仿真委員會,該公司于1967年通過了仿真語言規(guī)范。仿真語言CSMP(computersimulationmodelingprogram)應(yīng)該屬于建立在該標準上的最早的專用仿真語言。中科院沈陽自動化研究所在1988年推出了該語言的推廣版本
CSMP-C。51.1控制系統(tǒng)及仿真軟件概述6系統(tǒng)仿真領(lǐng)域需求:
最高水平,最實用的軟件或語言介紹仿真技術(shù),能直接采用該語言解決自己的問題。實踐證明,MATLAB就是這樣的仿真軟件,由于它本身卓越的功能,已經(jīng)使得它成為自動控制、航空航天、汽車設(shè)計等諸多領(lǐng)域仿真的首選語言。所以在本課程中將介紹基于MATLAB/Simulink的控制系統(tǒng)仿真與設(shè)計方法及其應(yīng)用。1.1控制系統(tǒng)及仿真軟件概述7本課程的主要研究內(nèi)容:1.1控制系統(tǒng)及仿真軟件概述分析系統(tǒng)的數(shù)學(xué)模型編寫程序運算語句得到關(guān)于系統(tǒng)輸出和中間變量的有關(guān)數(shù)據(jù)、曲線實現(xiàn)對控制系統(tǒng)性能指標的分析與設(shè)計。8本課程的主要研究內(nèi)容:1.1控制系統(tǒng)及仿真軟件概述本章主要說明控制系統(tǒng)模型和控制系統(tǒng)仿真等基本概念,并詳細介紹控制系統(tǒng)仿真工具軟件MATLAB。9
實際系統(tǒng)的物理模型:根據(jù)相似原理,把真實系統(tǒng)按比例放大或縮小制成的模型,其狀態(tài)變量與原系統(tǒng)完全相同。1.1.1 控制系統(tǒng)模型
10數(shù)學(xué)模型:用數(shù)學(xué)方程(微分方程、傳遞函數(shù)、狀態(tài)方程)或信號流程圖、結(jié)構(gòu)圖來描述系統(tǒng)性能的模型。1.1.1 控制系統(tǒng)模型11
仿真模型:原始控制系統(tǒng)的數(shù)學(xué)模型不能用來直接對系統(tǒng)進行仿真,應(yīng)該將其轉(zhuǎn)換為能在計算機中對系統(tǒng)進行仿真的模型。1.1.1 控制系統(tǒng)模型傳遞函數(shù)模型狀態(tài)空間模型動態(tài)結(jié)構(gòu)圖模型數(shù)字控制器模型12本課程的主要研究內(nèi)容:1.1控制系統(tǒng)及仿真軟件概述本章主要說明控制系統(tǒng)模型和控制系統(tǒng)仿真等基本概念,并詳細介紹控制系統(tǒng)仿真工具軟件MATLAB。13將實際系統(tǒng)抽象為數(shù)學(xué)模型,稱為建模問題1.1.2 控制系統(tǒng)仿真
控制系統(tǒng)仿真研究對象:控制系統(tǒng)仿真過程可劃分為三個基本活動:建模,模型實現(xiàn)和模型實驗
1.1.2 控制系統(tǒng)仿真
控制系統(tǒng)仿真研究對象:控制系統(tǒng)仿真過程可劃分為三個基本活動:建模,模型實現(xiàn)和模型實驗
將數(shù)學(xué)模型轉(zhuǎn)換為可在計算機上運行的仿真模型,稱為模型實現(xiàn)傳遞函數(shù)模型狀態(tài)空間模型動態(tài)結(jié)構(gòu)圖模型數(shù)字控制器模型14模型試驗傳遞函數(shù)模型狀態(tài)空間模型動態(tài)結(jié)構(gòu)圖模型數(shù)字控制器模型1.1.2 控制系統(tǒng)仿真
控制系統(tǒng)仿真研究對象:控制系統(tǒng)仿真過程可劃分為三個基本活動:建模,模型實現(xiàn)和模型實驗。
15
通常,采用計算機來實現(xiàn)控制系統(tǒng)仿真的過程以下幾個步驟:
一、根據(jù)仿真目的確定仿真方案
二、建立控制系統(tǒng)的數(shù)學(xué)模型
三、建立控制系統(tǒng)的仿真模型四、用合適的開發(fā)語言編制控制系統(tǒng)的仿真程序五、在計算機上進行仿真實驗并輸出仿真結(jié)果1.1.2 控制系統(tǒng)仿真
1617系統(tǒng)仿真領(lǐng)域需求:
最高水平,最實用的軟件或語言介紹仿真技術(shù),能直接采用該語言解決自己的問題。實踐證明,MATLAB就是這樣的仿真軟件,由于它本身卓越的功能,已經(jīng)使得它成為自動控制、航空航天、汽車設(shè)計等諸多領(lǐng)域仿真的首選語言。所以在本課程中將介紹基于MATLAB/Simulink的控制系統(tǒng)仿真與設(shè)計方法及其應(yīng)用。1.1控制系統(tǒng)及仿真軟件概述語言簡單,使用方便
181.1.3
MATLAB的語言特點例:矩陣乘法C語言程序(核心部分)for(i=0:i<n;i++){for(j=0;j<m;j++){c[i][j]=0;for(k=0;k<p
;
k++)c[i][j]+=a[i][k]*b[k][j];}}MATLAB實現(xiàn):C=A*B功能強大,適用范圍廣在數(shù)值計算方面,MATLAB的內(nèi)容幾乎涵蓋了所有的數(shù)學(xué)知識門類;有強大的符號運算功能;
十分方便的繪圖功能。擴充能力和可開發(fā)性很強MATLAB軟件除了有基本部分,還有專業(yè)擴展部分-工具箱(toolbox
);MATLAB的庫函數(shù)豐富,且可擴充。191.1.3
MATLAB的語言特點1.1.4MATLAB的控制產(chǎn)品MATLAB中與控制系統(tǒng)設(shè)計分析相關(guān)6個基礎(chǔ)工具箱控制系統(tǒng)工具箱(ControlSystemToolbox)系統(tǒng)辨識工具箱(SystemIdentificationToolbox)模糊邏輯工具箱(FuzzyLogicToolbox)魯棒控制工具箱(RobustControlToolbox)模型預(yù)測控制工具箱(ModelPredictiveControlToolbox)航空航天工具箱(AerospaceToolbox)20
Simulink為控制系統(tǒng)的仿真提供了一種可視化的編程方式,被廣泛應(yīng)用于控制理論和數(shù)字信號處理的復(fù)雜仿真和設(shè)計。
MATLAB的控制產(chǎn)品可以完成的主要功能:使用經(jīng)典和狀態(tài)空間方法設(shè)計單回路和多回路控制系統(tǒng)使用GUI或命令行函數(shù)分析系統(tǒng)響應(yīng)和性能在Simulink模型中手動或自動調(diào)整SISO回路優(yōu)化控制系統(tǒng)性能以滿足時間和頻率要求將線性模型表示或轉(zhuǎn)換為傳遞函數(shù)、狀態(tài)空間、零極點增益和頻率響應(yīng)數(shù)據(jù)對象在模型表示間轉(zhuǎn)換,使連續(xù)時間模型離散化計算高階系統(tǒng)的低階近似值等211.1.4MATLAB的控制產(chǎn)品1.2MATLAB的操作與使用在公用郵箱中按照“說明”下載MATLAB安裝包并進行安裝。雙擊打開MATLAB的桌面平臺(Desktop),在默認情況下的桌面平臺包含幾個主要窗口,分別是MATLAB主窗口、命令窗口(CommandWindow)、當(dāng)前目錄窗口(CurrentDirectory)、工作空間管理窗口(Workspace)、歷史窗口(CommandHistory)等;22工作空間窗口中顯示目前內(nèi)存中所有的MATLAB變量的變量名、數(shù)學(xué)結(jié)構(gòu)、字節(jié)數(shù)以及類型231.2.1MATLAB的工作空間(Workspace)其中等號右邊的表達式可由操作符或其它字符、函數(shù)和變量組成,它可以是MATLAB允許的數(shù)學(xué)或矩陣運算,也可以包含MATLAB下的函數(shù)調(diào)用;等號左邊的變量名是給右邊表達式返回結(jié)果所賦予的名字,該變量將出現(xiàn)在工作空間。如果左邊的變量名為默認,則返回值自動賦給系統(tǒng)默認變量ans。MATLAB語句的一般格式為:變量名=表達式;241.2.2MATLAB的命令窗口(CommandWindow)
1.2.2MATLAB的命令窗口(CommandWindow)
25在命令窗口的提示符號“>>”后輸入命令,并按“Enter”鍵,則MATLAB立即執(zhí)行命令,完成相應(yīng)的運算,顯示結(jié)果或繪制圖形。
,和;的差別
1.2.3MATLAB的程序編輯器
MATLAB不僅可以以交互式的命令行的方式工作,也可以進行控制流的程序設(shè)計,即將一段程序編寫在以.m為擴展名的M文件內(nèi)。M文件的打開方法:
單擊
File-New-M-file/Script26MATLAB的M文件的兩種形式命令式文本文件編制相當(dāng)于在命令窗口中逐行輸入命令,變量不需要預(yù)先定義,也可以通過文本編輯對其進行查看或修改。%P15函數(shù)(Function)文件
函數(shù)文件的功能是建立一個函數(shù),且這個文件能夠與MATLAB的庫函數(shù)一樣被調(diào)用。函數(shù)文件的第一行必為function。函數(shù)文件中定義的變量為局部變量,只在函數(shù)內(nèi)部起作用。%leapyear
27
1.2.3MATLAB的程序編輯器
幫助系統(tǒng):聯(lián)機幫助系統(tǒng);
命令窗口查詢幫助系統(tǒng);
聯(lián)機演示系統(tǒng)。聯(lián)機幫助系統(tǒng)(1)單擊MATLAB主窗口工具條中的 按鈕。
(2)選擇下拉菜單Help/ProductHelp。
(3)在命令窗口執(zhí)行helpwin,helpdesk
或doc。(4)快捷鍵<F1>進入簡潔版的幫助界面。281.2.4MATLAB的幫助文件291.2.4MATLAB的幫助文件幫助導(dǎo)航面板幫助顯示面板初學(xué)者最好的入門教程:
Contents-MATLAB-GettingStartedContents-MATLAB-Demos-GettingStarted在學(xué)習(xí)過程中,可以隨時通過選擇某條命令后,點擊右鍵,選擇HelpOnSelection來打開簡潔版幫助窗口界面,查詢該命令的功能及使用方法。301.2.4MATLAB的幫助文件311.2.4MATLAB的幫助文件命令窗口查詢幫助系統(tǒng)
在命令窗口通過幫助命令對特定的內(nèi)容進行快速查詢。這些幫助指令包括help系列、lookfor系列和其他常用幫助命令。
help系列的幫助命令有help,help+函數(shù)(類)名,helpwin及helpdesk,其中后兩個命令是用來調(diào)用聯(lián)機幫助窗口的。321.2.4MATLAB的幫助文件
33例:若在命令窗口中直接輸入“helpabs”,執(zhí)行后會列出函數(shù)abs()的說明,結(jié)果如下:
ABSAbsolutevalue.
ABS(X)istheabsolutevalueoftheelementsofX.
WhenXiscomplex,ABS(X)isthecomplexmodulus(magnitude)oftheelementsofX.
Seealsosign,angle,unwrap,hypot1.2.4MATLAB的幫助文件聯(lián)機演示系統(tǒng)
對于MATLAB或者其中某個工具箱的初學(xué)者,最好的學(xué)習(xí)方法之一就是查看MATLAB的聯(lián)機演示系統(tǒng)。
進入方法:(1)MATLAB主窗口菜單-Help-Demos(2)在命令窗口輸入demos命令(3)在幫助頁面上選中Demos選項均可進入MATLAB幫助系統(tǒng)的主演示頁面
341.2.4MATLAB的幫助文件35演示系統(tǒng)提供多種演示類型,通過研究它們來學(xué)習(xí)MATLAB是一種十分有效的方式。1.2.4MATLAB的幫助文件1.3數(shù)值計算與矩陣運算36數(shù)值計算功能是MATLAB的基礎(chǔ),本節(jié)將簡要介紹1.3.1MATLAB的數(shù)值類型1.3.2矩陣運算1.3.3符號運算37MATLAB中的基本數(shù)據(jù)類型主要有數(shù)字、字符、矩陣、邏輯型、單元型數(shù)據(jù)及結(jié)構(gòu)型數(shù)據(jù)等,這里只介紹幾個常用類型。變量與常量MATLAB不要求事先對要使用的變量進行定義或聲明,也不需要指定變量的類型,MATLAB會自動根據(jù)所賦予變量的值或?qū)ψ兞克M行的操作來識別變量的類型。
在賦值過程中如果賦值變量已經(jīng)存在,則MATLAB將使用新值代替舊值,并以新值類型代替舊值類型。1.3.1MATLAB的數(shù)值類型
MATLAB變量命名規(guī)則
(1)變量名區(qū)分字母大小寫。
(2)變量名不超過31個字符,且字符之間不能有空格。
(3)變量名必須以字母打頭,之后可以是任意字母、數(shù)字或下畫線。變量名不允許使用標點符號。
3839在命令窗口中執(zhí)行的命令和運行M文件所產(chǎn)生的變量信息全部存放在當(dāng)前的工作空間(Workspace)中;Who;Whos永久變量含義ans計算結(jié)果的默認變量名eps機器零閾值,浮點運算的相對精度Inf無窮大,如1/0i或j虛數(shù)單位pi圓周率πNaN非數(shù)變量(NotaNumber),如0/0、∞/∞nargin函數(shù)輸入變量數(shù)目,用于M文件程序設(shè)計nargout函數(shù)輸出變量數(shù)目,用于M文件程序設(shè)計realmax最大正實數(shù)realmin最小正實數(shù)MATLAB語言預(yù)先定義了一些常量(或稱永久變量)表1-1常用的永久變量40(1)永久變量不能用clear命令清除,所以稱為永久變量。(2)永久變量不響應(yīng)Who,Whos命令。
41(3)永久變量的變量名如果沒有被賦值,那么永久變量將取表1-1中所給定的值。
4243(4)若賦值,則默認值將被所賦的值臨時覆蓋。如果使用clear命令清除MATLAB內(nèi)存中的變量,或者MATLAB的命令窗口被關(guān)閉后重新啟動,不管永久變量曾經(jīng)被賦值與否,所有的永久變量將被重新設(shè)置為默認值。44(5)在遵循IEEE算法規(guī)則的計算機上,被0除是允許的。它不會導(dǎo)致程序執(zhí)行的中斷,系統(tǒng)會給出警告信息,且用一個特殊的名稱(如Inf,NaN)記述。數(shù)字和算術(shù)表達式
對于簡單的數(shù)字運算,可以直接用表達式語句和賦值語句的形式在MATLAB命令窗口輸入。
45MATLAB語言的算術(shù)運算符可按優(yōu)先級由低到高分為五級,
每一級的優(yōu)先級相同,運算時從左向右進行結(jié)合。如果要改變運算的優(yōu)先級,可以用括號強制實現(xiàn)。各優(yōu)先級所包含的運算符為:
(1)數(shù)組轉(zhuǎn)置符“.’”、數(shù)組冪符“.^”、
矩陣轉(zhuǎn)置符“’”、矩陣冪符“^”。
(2)標量加“+”、標量減“-”。
(3)數(shù)組乘法“.*”、數(shù)組右除“./”、數(shù)組左除“.\”、
矩陣乘法“*”、矩陣右除“/”、矩陣左除“\”。
(4)加法“+”、減法“-”。
(5)冒號運算符。
46[1,2,3;4+5,6,1;sin(pi/2),0,1]'*[0,1,2;9,1,2;4,3,2]+[0,1,2;9,1,2;4,3,2]矩陣的生成直接輸入法:從鍵盤上直接輸入矩陣。注意:
①輸入矩陣時要以“[]”為
其標識符號,矩陣的所有元
素必須都在括號內(nèi)。
②矩陣同行元素之間由空格
或逗號分隔,行與行之間用分
號或回車鍵分隔。
③矩陣大小不需要預(yù)先定義。
④矩陣元素可以是運算表達式。
⑤若“[]”中無元素表空矩陣。471.3.2矩陣運算
介紹矩陣的生成、矩陣的基本運算和矩陣的數(shù)組運算。
在MATLAB語言中冒號的作用是最為豐富的。
首先,可以用冒號來定義行向量。
例如可在命令窗口輸入:
a=1:0.5:4
返回結(jié)果為:a=1.00001.50002.00002.50003.00003.50004.0000
48其次,通過使用冒號,可以截取指定矩陣中的一部分
例如可在命令窗口輸入:
A=[123;456;789],B=A(1:2,:)
返回結(jié)果為:
A=
123
456
789
B=
123
456
通過上例可以看到B是由矩陣A的1到2行和相應(yīng)的所有列的元素構(gòu)成的一個新的矩陣。在這里,冒號代替了矩陣A的所有列。
49
外部文件讀入法
MATLAB語言允許用戶調(diào)用在MATLAB環(huán)境之外定義的矩陣??梢岳萌我獾奈谋揪庉嬈骶庉嬎褂玫木仃嚕ㄟ^菜單File/ImportData…來導(dǎo)入到MATLAB工作空間。
另外也可以利用load函數(shù),其調(diào)用方法為:load+文件名[參數(shù)]。
Load函數(shù)將會從文件名所指定的文件中讀取數(shù)據(jù),并將輸入的數(shù)據(jù)賦給以文件名命名的變量。50
例如:事先在記事本中建立文件:1,2,3
2,3,4
并以data1.txt保存在當(dāng)前工作目錄下。
在MATLAB命令窗口中輸入:
loaddata1.txt%載入文件中的數(shù)據(jù)至MATLAB工作空間
data1
%查看工作空間中的數(shù)據(jù)
運行后結(jié)果為:
data1=
123
23451特殊矩陣的生成
對于一些比較特殊的矩陣,MATLAB提供了一些函數(shù)用于生成這些矩陣。
zeros(m) %生成m階全0矩陣
eye(m) %生成m階單位矩陣
ones(m) %生成m階全1矩陣
rand(m) %生成m階均勻分布的隨機陣
randn(m)%生成m階正態(tài)分布的隨機矩陣
52矩陣的基本數(shù)學(xué)運算
矩陣的基本數(shù)學(xué)運算包括矩陣的四則運算、與常數(shù)的運算、逆運算、行列式運算、秩運算、特征值運算等基本函數(shù)運算。四則運算
矩陣的加、減、乘運算符:“+,-,*”
矩陣的除法:左除“\”和右除“/”
在傳統(tǒng)的MATLAB算法中,右除是先計算矩陣的逆再相乘,而左除則不需要計算逆矩陣直接進行除運算。通常右除要快一點,但左除可避免被除矩陣的奇異性所帶來的麻煩。在MATLAB7中兩者的區(qū)別不太大。53常數(shù)與矩陣的運算
常數(shù)與矩陣的運算即是同該矩陣的每一元素進行運算。但需注意進行數(shù)除時,常數(shù)通常只能做除數(shù)?;竞瘮?shù)運算
常用的基本函數(shù)運算主要有以下幾個:
det(a) %求矩陣a的行列式
eig(a) %求矩陣a的特征值
inv(a)或a^(-1)
%求矩陣a的逆矩陣
rank(a) %求矩陣a的秩
trace(a) %求矩陣a的跡(對角線元素之和)54例如可在命令窗口輸入:
a=[21-3-1;3107;-124-2;10-15];
a1=det(a);a2=det(inv(a));
a1*a2
返回結(jié)果為:ans=1
注意:命令行后加“;”表示該命令執(zhí)行但不顯示
執(zhí)行結(jié)果。55
矩陣的數(shù)組運算
矩陣對應(yīng)元素之間的運算,也稱為“點”運算。
56基本數(shù)學(xué)運算
(1)數(shù)組的加、減與矩陣的加、減運算完全相同。
(2)數(shù)組的乘除法是指兩同維數(shù)組對應(yīng)元素之間的乘除法,它們的運算符為“.*”和“./”或“.\”。(3)矩陣的數(shù)組運算中還有冪運算(.^)、指數(shù)運算(exp)、對數(shù)運算(log)、和開方運算(sqrt)等。數(shù)組運算實質(zhì)上就是針對矩陣內(nèi)部的每個元素進行的。例如可在命令窗口輸入:
a=[123;456;789];b=a^2,c=a.^2
返回結(jié)果為:
b=
303642
668196
102126150
c=
149
162536
496481
可見矩陣的冪運算與數(shù)組的冪運算有很大的區(qū)別。57表1-2常用邏輯函數(shù)
邏輯關(guān)系運算符號運算符功能函數(shù)名==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge&邏輯與and|邏輯或or~邏輯非not58說明:
①在關(guān)系比較中,若比較的雙方為同維數(shù)組,則比較的結(jié)果也是同維數(shù)組。當(dāng)滿足比較關(guān)系時,對應(yīng)值為1,否則為0。
②當(dāng)比較的雙方中一方為常數(shù),另一方為一數(shù)組,則比較的結(jié)果與數(shù)組同維。
③在算術(shù)運算、比較運算和邏輯與、或、非運算中,它們的優(yōu)先級關(guān)系先后為:比較運算、算術(shù)運算、邏輯與或非運算。59例如可在命令窗口輸入:
a=[123;456;789];x=5;y=ones(3)*5;xa=x<=a
返回結(jié)果為:
xa=
000
011
111
若在命令窗口輸入:b=[010;101;001];ab=a&b
返回結(jié)果為:
ab=
010
101
001601.3.2符號運算61符號運算的基本操作
符號運算與數(shù)值運算的區(qū)別:數(shù)值運算中必須先對變量賦值,然后才能參與運算。而符號運算無須事先對獨立變量賦值,運算結(jié)果以標準的符號形式表達,但是符號變量必須預(yù)先定義。
字符串與符號變量、符號常量
①字符串
MATLAB用半角狀態(tài)下的單引號“''”來定義字符串。例在指令窗口輸入A='hello,thisisastring',回車執(zhí)行后返回“A=hello,thisisastring”,此時在工作空間里觀察,或者用class(A)命令來返回對象A的數(shù)據(jù)類型為“char”,即字符型。62字符串對象也可以用于定義符號表達式,比如:f='sin(x)+5x',表達式中f為字符串名,sin(x)+5x為函數(shù)表達式,單引號里的內(nèi)容可以是函數(shù)表達式,也可以是方程。
例如:
f1='a*x^2+b*x+c'%二次三項式
f2='a*x^2+b*x+c=0'%方程
f3='Dy+y^2=1'
%微分方程
對于這種方式定義的表達式或方程,在MATLAB工作空間中仍然顯示為字符格式。63
②符號變量
符號變量是內(nèi)容可變的符號對象。它通常是指一個或幾個特定的字符。相關(guān)指令為sym()和syms(),sym是symbolic的縮寫,用于定義符號變量。
64例如:
a=sym('a'),b=sym('c')%定義單個符號變量
symsabcde %同時定義多個符號變量
顯見:當(dāng)需要同時定義多個符號變量時,使用syms()更簡潔一些,可以用whos來查看所有變量類型。
③符號常量
當(dāng)數(shù)值常量作為sym()的輸入?yún)⒘繒r,就建立了一個符號對象--符號常量,符號常量雖然看上去是一個數(shù)值量,但已經(jīng)是一個符號對象了。
例如:a=3/4;b='3/4';c=sym(3/4);d=sym('3/4');
用whos來查看所有變量類型:a為實雙精度浮點數(shù)值類型;b為實字符類型;c和d都是符號對象類型。65
④符號函數(shù)和符號方程
符號表達式是由符號常量、符號變量、符號函數(shù)運算符以及專用函數(shù)連接起來的符號對象。它包括:符號函數(shù)和符號方程。判斷看帶不帶等號。
例如:
symsxyz;f1=x*y/z;f2=x^2+y^2+z^2;f3=f1/f2;%符號函數(shù)
e1=sym('a*x^2+b*x+c')%符號函數(shù)e2=sym('sin(x)^2+2*cos(x)=1');
e3=sym('Dy-y=x')
%符號方程66符號矩陣的創(chuàng)建與修改
①創(chuàng)建符號矩陣
與數(shù)值矩陣不同,需要用MATLAB函數(shù)sym來創(chuàng)建矩陣,并用“''”標識
命令格式:A=sym('[]')。注意sym('[a,b;c,d]')與'[a,b;c,d]'的區(qū)別,后者只是定義了一系列字符串。67例如:在命令窗口輸入
“A=sym('[a,2*b;3*a,0]')”,
運行結(jié)果為:
A=
[a,2*b]
[3*a,0]
這就創(chuàng)建了一個符號矩陣。符號矩陣的每一行的兩端都有方括號,這是與數(shù)值矩陣的一個重要區(qū)別。
68
②符號矩陣的修改
直接修改,即在工作空間中找到要修改的矩陣,逐層雙擊打開后找到需要修改的值,直接修改。指令修改,用A(m,n)=‘new’或A1=subs(A,‘new’,‘old’)來修改。前者與普通數(shù)字矩陣的調(diào)用方法相同,后者將用新字符new代替矩陣A中的所有舊字符old。69例如:
A=sym('[a,2*b;3*a,0]')
A(2,2)='4*b' %把符號矩陣A中的第二行第二
列的元素用4*b代替
A1=subs(A,'c','b')%用新字符c代替矩陣A中的所有b
執(zhí)行結(jié)果為:
A= [a,2*b]
[3*a,0]
A= [a,2*b]
[3*a,4*b]
A1=[a,2*c]
[3*a,4*c]
70符號運算
MATLAB中,符號計算表達式的運算符和基本函數(shù),在形狀、名稱以及使用方法上,都與數(shù)值計算幾乎完全相同。下面主要介紹與符號計算相關(guān)的一些常用函數(shù)。71符號表達式的化簡
①collect函數(shù)——合并同類項
格式:R=collect(S)%以x為默認變量,返回系數(shù)
整理后的多項式
R=collect(S,v)%以v為指定變量,返回系數(shù)
整理后的多項式例如:
symsxy; %定義基本變量x,y
R1=collect((exp(x)+x)*(x+2))
%合并多項式中x的同
類項,exp為指數(shù)函數(shù)
R2=collect((x+y)*(x^2+y^2+1),y)%合并多項式中y的同類項
程序運行結(jié)果為:
R1=2*exp(x)+x*(exp(x)+2)+x^2
R2=y^3+x*y^2+(x^2+1)*y+x*(x^2+1)72
例如:
symsxyabt;
R1=expand((x-2)*(x-4)),R2=expand(cos(x+y)),
R3=expand(exp((a+b)^2)),
R4=expand([sin(2*t),cos(2*t)]),
程序運行結(jié)果為:
R1=x^2-6*x+8
R2=cos(x)*cos(y)-sin(x)*sin(y)
R3=exp(2*a*b)*exp(a^2)*exp(b^2)
R4=[2*cos(t)*sin(t),cos(t)^2-sin(t)^2]73②expand函數(shù)——展開符號表達式
格式:R=expand(S)
說明:對符號表達式S中每個因式的乘積進行展開。
例如:
symsxyab;
R1=factor(x^3-y^3),R2=factor([a^2-b^2,a^3+b^3])
R3=factor(sym('12345678901234567890'))
程序運行結(jié)果為:
R1=(x-y)*(x^2+x*y+y^2)
R2=[(a-b)*(a+b),(a+b)*(a^2-a*b+b^2)]
R3=2*3^2*5*101*3541*3607*3803*2796174③factor函數(shù)——符號表達式的因式分解
格式:factor(X)
說明:將系數(shù)為有理數(shù)的多項式(矩陣),表示成低階多項式相乘的形式,如果不能分解,則返回其本身。
④simple和simplify函數(shù)——符號表達式的化簡
格式:R=simple(S)或simplify(S)
例如:symsx;simple(cos(x)^2+sin(x)^2)
運行以后,從結(jié)果看出,simple比較這些不同函數(shù)的結(jié)果,最終把最少字符作為標準。75
符號表達式的計算
①符號表達式的極限
格式:limit(F,x,a)
%求當(dāng)x→a時,表達式F的極限
limit(F,a)
%默認自變量趨于a的極限
limit(F)%默認自變量,默認a=0
limit(F,x,a,'left')、limit(F,x,a,'right')%取F的左或右極限
注意:對于極限不存在,返回NaN7677例如:symshnx
dc=limit((sin(x+h)-sin(x))/h,h,0)%按照導(dǎo)數(shù)的定義求sin的導(dǎo)數(shù),結(jié)果為:dc=cos(x)
limit(1/x,x,0) %ans=NaN
limit(1/x,x,0,'left') %ans=-Inf
limit(1/x,x,0,'right') %ans=Inf
②符號表達式的微分
格式:diff(f)
%對缺省變量求f的微分
diff(f,v)
%對指定變量v求微分
diff(f,n)
%對默認變量求n階微分
diff(f,v,n)
%對指定變量v求f的n階微分78例如:symsax;f=sin(a*x);%定義函數(shù)f=sin(a*x)
df=diff(f) %對默認變量x求1階微分結(jié)果為:df=a*cos(a*x)
dfa=diff(f,a,2) %對指定變量a求f的2階微分結(jié)果為:dfa=-x^2*sin(a*x)③符號表達式的積分
格式:int(f)
%對f表達式的缺省變量求不定積分
int(f,v)
%對f表達式的v變量求不定積分
int(f,v,a,b)
%對f表達式的v變量在(a,b)區(qū)間求
定積分
findsym(f)
%可以找出f中的每個變量
注意:當(dāng)函數(shù)的積分不存在時,Matlab將簡單地返回原來的積分表達式;當(dāng)積分上限和積分下限缺省時為不定積分。79
例如:symsx;int(-2*x/(1+x^2)^2) %ans=1/(1+x^2)
int(x*log(1+x),0,1) %ans=1/4
int(log10(x)) %ans=(x*(log(x)-1))/log(10)
int(sin(x),x,-pi,pi)
%ans=0
80④符號函數(shù)的Taylor級數(shù)展開
格式:taylor(f,n,v)
%n階泰勒級數(shù)展開
另外,MATLAB提供了可以使用Taylor級數(shù)計數(shù)器的taylortool命令。
81該命令生成一圖形用戶界面,顯示默認函數(shù)f=x*cos(x)在區(qū)間[-2*pi,2*pi]內(nèi)的圖形,同時顯示函數(shù)f的前7項Taylor級數(shù)和的圖形(在a=0附近)。通過更改f(x)項可以得到不同的函數(shù)圖形。通過改變相關(guān)的參量,利用taylortool('cos(x*sin(x))')或直接在打開的界面中修改相關(guān)參量,可得到如圖所示的界面。
82
⑤Fourier積分變換公式:格式:F=fourier(f)
%對符號單值函數(shù)f中的默認變量x計算fourier變換形式。默認的輸出結(jié)果F是變量ω的函數(shù)若f=f(ω),則fourier(f)返回變量為v的函數(shù)F=F(v)。
F=fourier(f,v)
%對符號單值函數(shù)f中的默認變量x計算fourier變換形式,F(xiàn)(v)F=fourier(f,u,v)
%令符號函數(shù)f為變量u的函數(shù),而F為變量v的函數(shù),計算fourier變換形式。83
例如:symsxwu;
f=exp(-x^2);F1=fourier(f)
g=exp(-abs(w));F2=fourier(g)
h=x*exp(-abs(x));F3=fourier(h,u)
執(zhí)行結(jié)果為:
F1=pi^(1/2)/exp(w^2/4)
F2=2/(v^2+1)
F3=-(4*i*u)/(u^2+1)^2
84⑥ifourier函數(shù)
逆Fourier積分變換定義為:格式:f=ifourier(F)
%輸出參量f=f(x)為默認變量w的標量符號對象F的逆fourier積分變換,即F=F(w)→f=f(x)。若F=F(x),ifourier(F)返回變量t的函數(shù),即F=F(x)→f=f(t)。
f=ifourier(F,u)
%使f為變量u的函數(shù),即
f=ifourier(F,v,u)
%使F為變量v的函數(shù),f為變量u的函數(shù)85
例如:symsawxtreal;
F=exp(-w^2/(4*a^2));f=ifourier(F);
f1=simple(f),
F=exp(-abs(x));f2=ifourier(F),
F=2*exp(-abs(w))-1;f3=ifourier(F,t)
執(zhí)行結(jié)果為:
f1=abs(a)/(pi^(1/2)*exp(a^2*x^2))
f2=1/(pi*(t^2+1))
f3=2/(pi*(t^2+1))-dirac(t)
86
⑦Laplace函數(shù)
Laplace變換定義為: 。
格式:L=laplace(F)
%返回默認獨立變量t的符號表達式F的Laplace變換,函數(shù)返回默認變量為s的函數(shù),即F=F(t)→L=L(s)。若F=F(s),則返回的變量為t。L=laplace(F,t)
%以t代替s為變量的Laplace變換
L=laplace(F,w,z)
%在指定自變量w和指定參變量z的情況下,計算符號函數(shù)F的Laplace變換。87例如:symstsax;
F=t^4; L1=laplace(F)
F=1/sqrt(s); L2=laplace(F)
F=exp(-a*t); L3=laplace(F,x)
執(zhí)行結(jié)果為:
L1=24/s^5
L2=pi^(1/2)/t^(1/2)
L3=1/(a+x)
88⑧ilaplace函數(shù),逆Laplace變換。
逆Laplace變換的定義為:格式:F=ilaplace(L)
%在默認自變量s和參變量t情況下,計算L(s)的laplace逆變換,即。
另:
F=ilaplace(L,y)%以y代替默認的t。
F=ilaplace(L,y,x)
%以x代替t,對y取積分。
89例如:
symssatxu
L=1/s^2;
F1=ilaplace(L)
L=1/(t-a)^2;F2=ilaplace(L)
symsareal;L=1/(u^2-a^2);
F3=simplify(ilaplace(L,x))
執(zhí)行結(jié)果為:
F1=t
F2=x*exp(a*x)
F3=sinh(a*x)/a90
符號方程求解
①符號代數(shù)方程求解
Matlab符號運算能夠解一般的線性方程、非線性方
程、超越方程。線性方程的求解函數(shù)為solve。
調(diào)用格式如下:
solve(f)
%求一個方程f=0的解;
solve(f,‘t’
)
%對指定變量t求解,‘’可以忽略;t缺省時默認為x或最接近x的符號變量;
solve(f1,f2,…,fn)
%求n個方程的解。91例如:求解方程:ax^2+bx+c=0
輸入程序:f='a*x^2+b*x+c'; %定義符號方程
solve(f) %對缺省變量x求解
返回結(jié)果:ans=
-(b+(b^2-4*a*c)^(1/2))/(2*a)
-(b-(b^2-4*a*c)^(1/2))/(2*a)
92例如:解方程組輸入命令:[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')
返回結(jié)果為:x=2/3,y=-1/2,z=5/693例如:解方程組輸入命令:[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')
返回結(jié)果為:x=2/3,y=-1/2,z=5/6[x,y,z]=solve('x+y+z-1','x-y+z-2','2*x-y-z-1')②符號微分方程求解
符號微分方程求解指令:dsolve
格式:dsolve('eq1','eq2',...,'cond1','cond2',...,'v')
說明:eq1,eq2,…為微分方程(組),可多至12個微分方程的求解;cond1,cond2,...為初始條件;v為指定自變量,默認時為t;微分方程的各階導(dǎo)數(shù)項以大寫字母D表示,如:y的一階導(dǎo)數(shù) 可表示為:Dy,
y的二階導(dǎo)數(shù) 可表示為:D2y,
y的n階導(dǎo)數(shù) 可表示為:Dny。94例如:求微分方程的解
在命令窗口輸入:y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')
運行返回結(jié)果為:y=cos(t)/exp(t)+sin(t)/exp(t)
若再輸入命令“ezplot(y)”,可進行符號函數(shù)繪圖。
951.4程序、文件和函數(shù)
Matlab不僅具有強大的數(shù)值處理和符號運算功能,而且可以像計算機高級語言一樣進行程序設(shè)計。用matlab編程語言編寫的程序以.m為擴展名,簡稱M文件。M文件的打開方法:
單擊
File-New-M-file/Script96
1.4.1m文件編程
M文件根據(jù)調(diào)用方式的不同分為命令文件和函數(shù)文件。命令式文件(又稱文本文件)特點:1、可以通過調(diào)用文件名來執(zhí)行,逐條讀取和執(zhí)
行命令;2、運行產(chǎn)生的變量都是駐留在MATLAB的工作空間中,除非用clear命令清除工作空間;3、可以通過其他編輯器來編寫m文件;
97在編輯/調(diào)試窗口中按順序輸入下面的命令語句:
%該文件用于順次求出從sin(1)到sin(10)的值。
fori=1:10
a=sin(i);
fprintf('sin(%d)=',i)
fprintf('%12.4f\n',a)
end
將該命令式文件以文件名sinvalue.m保存在MATLAB的work文件夾中(默認值),然后在命令窗口輸入sinvalue,即可運行sinvalue.m文件,結(jié)果為:
sin(1)=0.8415
sin(2)=0.9093
…
sin(10)=-0.544098%d讀取“,”后面的數(shù)值,并要求該數(shù)值必須為整數(shù)。%12.4f
讀取后面的數(shù)值,并要求輸出的結(jié)果占12個字符的位置,并保留4個有效數(shù)字。\n指換行。
函數(shù)式文件作用:實現(xiàn)參數(shù)傳遞特點:1、第一行為function;2、返回值可有可無;3、執(zhí)行后只保留最后結(jié)果,不在工作空間中保留任何中間過程,所定義的變量也只在函數(shù)內(nèi)部起作用,并隨著調(diào)用的結(jié)束而被清除。4、M函數(shù)必須由其它語句調(diào)用,不能直接鍵入一個文件名來運行一個M函數(shù)。99
MATLAB語言的函數(shù)文件包含以下幾個部分。
(1)函數(shù)題頭:指函數(shù)的定義行,在該行中定義函數(shù)名、輸入輸出變量列表等。函數(shù)文件的第一行總是以“function”引導(dǎo)的函數(shù)聲明行,一般格式為:
function[輸出變量列表]=函數(shù)名(輸入變量列表)(2)幫助信息索引行:函數(shù)幫助文本第一行,內(nèi)容為該函數(shù)功能的大致描述,當(dāng)使用lookfor命令查看該函數(shù)時,顯示該行。(3)詳細幫助信息:該部分提供函數(shù)的完整幫助信息,通過MATLAB的幫助系統(tǒng)查看函數(shù)的幫助信息時,顯示該部分。(4)函數(shù)體:指函數(shù)代碼段,是函數(shù)的主體部分。(5)注釋部分:是對函數(shù)體中各語句的解釋和說明文本,注釋語句以英文輸入狀態(tài)下的%引導(dǎo)。
100例如:編寫一個函數(shù)文件,來求一向量的平均值。
在MATLAB語言的編輯/調(diào)試窗口中輸入如下內(nèi)容:
functiony=myaverage(x)%函數(shù)題頭
%MYAVERAGEMeanofvectorelements.%幫助信息索引行
%MYAVERAGE(X),whereXisavector,isthemeanof%詳細幫助信息
%vectorelements.Nonvectorinputresultsinanerror. %詳細幫助信息[m,n]=size(x); %函數(shù)主體,判斷輸入?yún)?shù)維數(shù)
if(~((m==1)|(n==1))) %m,n為臨時變量
disp(‘輸入必須是向量!’);%判斷輸入變量為矩陣顯示提示
return; %并結(jié)束函數(shù)文件的運行
end
y=sum(x)/length(x);%實際計算,臨時的函數(shù)變量
101
將該函數(shù)文件以myaverage.m為文件名保存在MATLAB的work文件夾中,若在命令窗口輸入“a=myaverage([12345678910])”,可調(diào)用函數(shù)文件,完成向量1~10平均值的計算,返回結(jié)果a=5.5000。
若在命令窗口輸入“myaverage([12345;678910])”,也可以調(diào)用函數(shù)文件,但由于輸入?yún)?shù)為矩陣,返回結(jié)果為程序中設(shè)置的提示信息:“輸入必須是向量!”。
102注意1、上述函數(shù)文件的五個組成部分,并不是所有的函數(shù)均需要。實際上,除了函數(shù)題頭是必須的以外,其它部分均可以省略。
注意2、在MATLAB語言中,存儲M函數(shù)時文件名應(yīng)當(dāng)與文件內(nèi)主函數(shù)名一致。這是因為調(diào)用M文件時,系統(tǒng)查詢的是相應(yīng)的文件而不是函數(shù)名,如果兩者不一致,這或者打不開目的文件,或者打開的是其他文件。鑒于這種查詢方式與其他程序設(shè)計語言不同,所以建議在儲存M函數(shù)文件時,應(yīng)該將文件名與主函數(shù)名統(tǒng)一起來,方便理解和使用。
103
For循環(huán)語句功能:重復(fù)執(zhí)行循環(huán)體內(nèi)的MATLAB語句特點:1、循環(huán)判斷條件通常就是對循環(huán)次數(shù)的判斷,即
for循環(huán)語句的循環(huán)次數(shù)是預(yù)先設(shè)定好的;2、可以多次嵌套for循環(huán)或者是與其他的結(jié)構(gòu)形式
嵌套使用。使用格式:
for循環(huán)變量=表達式1(初值):表達式2(增量):表達式3(終值)
循環(huán)語句組
end1041.4.2常用編程語句形式可以是m:s:n。如1:0.1:5生成從1到5等差為0.1的數(shù)列。當(dāng)增量為1時可以省略表達式2。如1:5生成從1到5等差為1的數(shù)列。例如:用for循環(huán)實現(xiàn)數(shù)值1~10平方的求取,程序如下:
fori=1:10
x(i)=(i+1).^2;
end
x
程序運行后結(jié)果為:
x=
49162536496481100121
該段程序使用了一個for循環(huán),求出了數(shù)組x從x(1)到x(10)的值,程序運行結(jié)束后,自動在工作空間生成雙精度變量i和雙精度數(shù)組x。105while循環(huán)語句
特點:判斷控制語句可以是邏輯判斷語句通用格式:while表達式
執(zhí)行語句
end
只要表達式的值為真,程序就會一直運行下去,當(dāng)程序設(shè)計出現(xiàn)了問題,比如表達式的值總是為真,程序?qū)⑾萑胨姥h(huán),可以利用鍵盤CTRL+Break中斷程序運行。106a=0;while1<2;a=a+1,end
例如:利用while循環(huán)求1+2+3+…+100的值。
sum=0;i=1;
while(i<=100)
sum=sum+i;i=i+1;
end
sum
執(zhí)行結(jié)果為:sum=5050107作用:流程控制,選擇執(zhí)行指定的命令if:判斷一個邏輯表達式,當(dāng)表達式為true時執(zhí)行一組語句。elseif和else:是可選的,用于提供替代語句的執(zhí)行end:和if匹配,放在最后,用于終止最后一組語句
條件判斷語句if,elseif,else,end108(1)當(dāng)if語句只有一種選擇時,它的程序結(jié)構(gòu)為:
if表達式
執(zhí)行語句
end
當(dāng)表達式為真時,執(zhí)行語句被執(zhí)行;否則不予執(zhí)行。(2)當(dāng)if語句有兩種選擇時,它的程序結(jié)構(gòu)為:
if表達式
執(zhí)行語句1
else
執(zhí)行語句2
end如果表達式為真,則系統(tǒng)將運行執(zhí)行語句1;如果表達式為假,則系統(tǒng)將運行執(zhí)行語句2。109(3)當(dāng)if語句有3種或者更多選擇時,它的程序結(jié)構(gòu)為:
if表達式1 //表達式1為真時的執(zhí)行語句1執(zhí)行語句1
elseif表達式2 //表達式2為真時的執(zhí)行語句2執(zhí)行語句2
elseif表達式3//表達式3為真時的執(zhí)行語句3執(zhí)行語句3
…
else
//所有表達式都為假時的執(zhí)行語句執(zhí)行語句N
end
在這種情況下,當(dāng)運行到程序的某一條表達式為真時,則執(zhí)行與之相關(guān)的執(zhí)行語句,此時系統(tǒng)將不再檢驗其他的關(guān)系表達式。在實際應(yīng)用中,最后的else命令可有可無。110
例如:編寫一個M文件繪制函數(shù)的圖形程序:
x=-6:0.1:6;%設(shè)定自變量x的取值范圍
leng=length(x);%計算向量x的長度
form=1:leng %計算函數(shù)值
ifx(m)<=0 %判斷x取值所在范圍
y(m)=sin(x(m)); %計算分段函數(shù)值
elseifx(m)<=3
y(m)=x(m); %計算分段函數(shù)值
else
y(m)=-x(m)+6; %計算分段函數(shù)值
end
end
plot(x,y,‘*’),grid; %繪制函數(shù)曲線
將其存盤為demoif.m(該文件就是一個MATLAB腳本文件),然后在MATLAB命令行下輸入“demoif”,則生成函數(shù)曲線。
111多分支判斷語句switch-case
作用:多分支判斷選擇。
一般表達形式:
switch〈選擇判斷量〉
case選擇判斷值1
選擇判斷語句1
case選擇判斷值2
選擇判斷語句2
……
otherwise
判斷執(zhí)行語句
end注意:當(dāng)其中一個case語句后的條件為真時,switch-case語句不對其后的case語句進行判斷。112
例如:利用switch_case語句編寫判斷季節(jié)的函數(shù)文件。
functiondemo_switch_case(month)
switchmonth
case{3,4,5}
season='spring'
case{6,7,8}
season='summer'
case{9,10,11}
season='autumn'
otherwise
season='winter'
end
將該函數(shù)文件以demo_switch_case.m為文件名保存后,在命令窗口輸入“demo_switch_case(1)”,可調(diào)用該函數(shù)文件,返回結(jié)果為:season=winter。113人機交互命令作用:在執(zhí)行MATLAB主程序文件時,在適當(dāng)?shù)牡胤綄Τ绦虻倪\行進行觀察或干預(yù)。重要性:在調(diào)試程序的時候,人機交互命令更是不可缺少。MATLAB語言提供的基本人機交互命令有:echo、input、pause和keyboard四種。114
echo命令
作用:使M文件的命令在執(zhí)行時可見,有利于程序的調(diào)試和演示。
115echofile %文件在執(zhí)行中的回應(yīng)顯示開關(guān)。echofileon %使指定的file文件的命令在執(zhí)行中被顯示出來。
echofileoff %關(guān)閉指定文件的命令在執(zhí)行中的回應(yīng)。對于函數(shù)文件,echo命令一般只用于其調(diào)試階段。函數(shù)文件echoon %打開文本文件的回應(yīng)命令。
echooff %關(guān)閉回應(yīng)命令。
echoonall %顯示其后所有執(zhí)行文件的執(zhí)行過程。
echooffall %關(guān)閉其后所有執(zhí)行文件的顯示。文本文件
input命令
input命令用來提示用戶從鍵盤輸入數(shù)據(jù)、字符串或表達式,并接收輸入值。116例:R=input('Howmanyapples')pause命令
作用:使程序暫時執(zhí)行,等待用戶按任意鍵后繼續(xù)執(zhí)行?;菊{(diào)用格式:
pause%暫停程序等待回應(yīng)。
pause(n) %在程序運行中等待n秒后繼續(xù)運行。
pauseon %顯示其后的pause命令,并且執(zhí)行pause命令。
pauseoff %顯示其后的pause命令,但不執(zhí)行該命令。
keyboard命令
keyboard命令與input命令的作用相似。當(dāng)程序遇到此命令時,MATLAB就將暫時停止運行程序,處于等待鍵盤輸入狀態(tài)且在屏幕上顯示字符K。鍵盤處理完畢后,輸入字符串return,程序?qū)⒗^續(xù)執(zhí)行。在M文件中使用該命令,對于程序的調(diào)試和在程序運行中修改變量都很方便。117例如:
disp(‘pleaseinputamonth:’) %顯示提示信息
keyboard %控制權(quán)交給鍵盤
demo_switch_case(ans)
輸入數(shù)字(例如3)回車,繼續(xù)在命令行輸入“return”,控制權(quán)返回給MATLAB,即可顯示3月是春天。
程序調(diào)試與診斷MATLAB程序出錯時的基本處理方法
語法格式錯誤
如缺“(”或“)”等,在運行時可檢測出大多數(shù)該類錯誤,并指出錯在哪一行。
算法邏輯錯誤這樣的錯誤非常隱蔽,往往是對算法考慮不周全,程序可以順利通過,顯示的結(jié)果也是正常的數(shù)值,但是與先驗的預(yù)期不符合。118
注意:在包含函數(shù)調(diào)用的M
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年外債借款合同標準范本及信息披露要求3篇
- 2024年擔(dān)保與保證合同新型擔(dān)保方式研發(fā)與應(yīng)用合同3篇
- 2024年新能源產(chǎn)業(yè)質(zhì)押借款合同范本3篇
- 2024年人工智能產(chǎn)業(yè)信托資金借款合同3篇
- 2024年二零二四年度大棚蔬菜種植基地病蟲害生物防治技術(shù)研究合同3篇
- 2024年度農(nóng)產(chǎn)品質(zhì)量安全風(fēng)險評估與防控合作協(xié)議3篇
- 2024年農(nóng)業(yè)項目質(zhì)押擔(dān)保及反擔(dān)保合同范本詳解3篇
- 2024年度直播平臺內(nèi)容版權(quán)許可合同3篇
- 2024年度渣土運輸勞務(wù)合同環(huán)保責(zé)任追究范本3篇
- 防性安全教育
- 《護理臨床帶教》課件
- 艾滋病病毒抗體快速檢測技術(shù)手冊(2011年版)
- 企業(yè)信息安全意識培訓(xùn)課件
- 公安派出所建筑外觀形象設(shè)計規(guī)范1
- 2023年1月福建省普通高中學(xué)生學(xué)業(yè)基礎(chǔ)會考地理試題
- 2022年中等職業(yè)學(xué)校公共藝術(shù)課程教學(xué)大綱
- 精選天津高三生物知識點
- 2021-2022學(xué)年天津市河西區(qū)五年級上學(xué)期期末語文試卷
- 國際商務(wù)單證員考證總復(fù)習(xí)
- 道路、橋梁、隧道、地鐵施工標準化手冊(專業(yè)篇)
- 住宅小區(qū)室外道路及管網(wǎng)配套工程施工方案
評論
0/150
提交評論