




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1
計算機仿真技術(shù)—基于MATLAB的電氣工程2
MATLAB語言簡介MATLAB基本操作MATLAB程序設(shè)計MATLAB圖形處理MATLAB高級操作Simulink動態(tài)仿真集成環(huán)境MATLAB在電力電子變流中的應(yīng)用MATLAB在直流調(diào)速系統(tǒng)中的應(yīng)用MATLAB在交流調(diào)速系統(tǒng)中的應(yīng)用MATLAB在電力系統(tǒng)中的應(yīng)用本書內(nèi)容3本章內(nèi)容
MATLAB的功能特點;
MATLAB的操作界面;
MATLAB的工作窗口;
MATLAB的文件管理;
MATLAB的的幫助系統(tǒng)。第1章MATLAB語言簡介4
MATLAB是由美國MathWorks公司發(fā)布的主要面對科學(xué)計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它的應(yīng)用范圍非常廣,包括工程計算、系統(tǒng)設(shè)計、數(shù)值分析、信號和圖像處理、通訊、測試和測量、財務(wù)與金融分析以及計算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱擴展了MATLAB環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。5
1.1MATLAB的功能特點MATLAB是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境。使用它可以較使用傳統(tǒng)的編程語言(如C、C++和Fortran)更快地解決技術(shù)計算問題。它的應(yīng)用范圍非常廣,包括工程計算、控制系統(tǒng)設(shè)計、信號和圖像處理、通訊、測試和測量、金融建模和分析以及計算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱擴展了MATLAB環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。6
在科學(xué)研究和工程應(yīng)用中,為了克服一般語言對大量的數(shù)學(xué)運算,尤其當(dāng)涉及矩陣運算時,編程難、調(diào)試麻煩等困難,美國MathWorks公司于1967年構(gòu)思并開發(fā)了“MatrixLaboratory”(縮寫MATLAB,即矩陣實驗室)軟件包,經(jīng)過不斷更新和擴充,該公司于1984年推出了正式版的MATLAB1.0。特別是1992年推出了具有劃時代意義的MATLAB4.0版,并于1993年推出了其微機版,以配合當(dāng)時日益流行的MicrosoftWindows一起使用。7
到目前為止先后推出了微機版的MATLAB4.x~MATLAB9.x/23.2
,使之應(yīng)用范圍越來越廣。從2006年開始,MathWorks公司每年發(fā)布兩個用年號表示建造編號的MATLAB版本,其中上半年3月份左右發(fā)布a版,下半年9月份左右發(fā)布b版。如MATLAB7.2(R2006a)、MATLAB7.3(R2006b)。欲查看MATLAB版本更新一覽表請掃描下面二維碼1。
8
用MATLAB編程運算與人進行科學(xué)計算的思路和表達方式完全一致,所以使用MATLAB進行數(shù)學(xué)運算就象在草稿紙上演算數(shù)學(xué)題一樣方便。
萬能的、科學(xué)的數(shù)學(xué)運算“演算紙”萬能的計算器9MATLAB大大降低了對使用者的數(shù)學(xué)基礎(chǔ)和計算機語言知識的要求,既使用戶不懂C或FORTRAN這樣的程序設(shè)計語言,也可使用MATLAB輕易的再現(xiàn)C或FORTRAN語言幾乎全部的功能,設(shè)計出功能強大、界面優(yōu)美、穩(wěn)定可靠的高質(zhì)量程序來,而且編程效率和計算效率極高。10
盡管MATLAB開始并不是為電氣工程的設(shè)計者們編寫的,但以它“語言”化的數(shù)值計算、強大的矩陣處理及繪圖功能、靈活的可擴充性和產(chǎn)業(yè)化的開發(fā)思路很快就為電氣工程界研究人員所矚目。目前,在電氣工程、自動控制、圖像處理、信號分析、語言處理、振動理論、優(yōu)化設(shè)計、時序分析和系統(tǒng)建模等領(lǐng)域。11
由著名專家與學(xué)者以MATLAB為基礎(chǔ)開發(fā)的實用工具箱極大地豐富了MATLAB的內(nèi)容,較為常見的MATLAB工具箱主要有:(1)AerospaceToolbox—航空航天工具箱;(2)AntennaToolbox—天線工具箱;(3)AutomatedDrivingSystemToolbox—自動駕駛系統(tǒng)工具箱;(4)BioinformaticsToolbox—生物信息工具箱;(5)CommunicationsSystemToolbox—通信系統(tǒng)工具箱;(6)ComputerVisionSystemToolbox—計算機視覺系統(tǒng)工具箱;(7)ControlSystemToolbox—控制系統(tǒng)工具箱;(8)CurveFittingToolbox—曲線擬合工具箱;12(9)DataAcquisitionToolbox—數(shù)據(jù)采集工具箱;(10)DatabaseToolbox—數(shù)據(jù)庫工具箱;(11)DatafeedToolbox—數(shù)據(jù)饋送工具箱;(12)DeepLearningToolbox—深度學(xué)習(xí)工具箱;(13)DSPSystemToolbox—DSP系統(tǒng)工具箱;(14)EconometricsToolbox—經(jīng)濟計量學(xué)工具箱;(15)FilterDesignToolbox—濾波器設(shè)計工具箱;(16)FinancialInstrumentsToolbox—金融工具箱;(17)FinancialToolbox—財務(wù)工具箱;(18)Fixed-PointBlockset—定點運算模塊集;(19)FuzzyLogicToolbox—模糊邏輯工具箱;(20)GaugesBlockset—儀表模塊集;13(21)GeneticAlgorithmandDirectSearchToolbox—遺傳算法與直
接搜索工具箱;(22)GlobalOptimizationToolbox—全局優(yōu)化工具箱;(23)Higher-OrderSpectralAnalysisToolbox—高階譜分析工具箱;(24)ImageAcquisitionToolbox—圖像采集工具箱;(25)ImageProcessingToolbox—圖像處理工具箱;(26)InstrumentControlToolbox—儀器控制工具箱;(27)LMIControlToolbox—線性矩陣不等式工具箱;(28)LTESystemToolbox—LTE系統(tǒng)工具箱;(29)MappingToolbox—繪圖工具箱;(30)ModelPredictiveControlToolbox—模型預(yù)測控制工具箱;(31)Model-BasedCalibrationToolbox—基于模型的標定工具箱;(32)NeuralNetworkToolbox—神經(jīng)網(wǎng)絡(luò)工具箱;(33)OPCToolbox—OPC開發(fā)工具箱;(34)OptimizationToolbox—優(yōu)化工具箱;14(35)ParallelComputingToolbox—并行計算工具箱;(36)PartialDifferentialEquationToolbox—偏微分方程工具箱;(37)PhasedArraySystemToolbox—相控陣系統(tǒng)工具箱;(38)PowersysToolbox—電力系統(tǒng)工具箱;(39)ReinforcementLearningToolbox—強化學(xué)習(xí)工具箱;(40)RoboticsToolbox—機器人工具箱;(41)RobustControlToolbox—魯棒控制工具箱;(42)SensorFusionandTrackingToolbox—傳感器融合和跟蹤工具箱;(43)SignalProcessingToolbox—信號處理工具箱;(44)SimulinkToolbox—動態(tài)仿真工具箱;(45)SplineToolbox—樣條工具箱;(46)StatisticsToolbox—統(tǒng)計工具箱;15(47)Statistics
and
MachineLearning
Toolbox—統(tǒng)計和機器學(xué)習(xí)工具箱;(48)SymbolicMathToolbox—符號數(shù)學(xué)工具箱;(49)SystemIdentificationToolbox—系統(tǒng)辨識工具箱;(50)TradingToolbox—貿(mào)易工具箱;(51)VehicleNetworkToolbox—運輸網(wǎng)絡(luò)工具箱;(52)WaveletToolbox—小波工具箱;(53)μ-AnalysisandSynthesisToolbox—μ分析和綜合工具箱;(54)5GToolbox—5G工具箱。16
模型輸入與仿真環(huán)境Simulink更使MATLAB為電氣工程系統(tǒng)的仿真與CAD中的應(yīng)用打開了嶄新的局面,并使得MATLAB目前已經(jīng)成為國際上最流行的電氣工程系統(tǒng)計算機輔助設(shè)計的軟件工具。
MATLAB不僅流行于電氣工程系統(tǒng),在控制系統(tǒng)、語言處理、圖像信號處理、雷達工程、信號分析、數(shù)學(xué)計算、生物醫(yī)學(xué)工程、金融統(tǒng)計和計算機技術(shù)等各行各業(yè)中都有極廣泛的應(yīng)用。17
嚴格地說,MATLAB并不是一種計算機語言,它僅僅是一種高級的科學(xué)分析與計算軟件。因為,用它編寫出來的程序并不能脫離MATLAB環(huán)境而執(zhí)行,但從其功能上講,MATLAB已經(jīng)完全具備了計算機語言的結(jié)構(gòu)與性能,所以我們這里將其簡稱為“MATLAB語言”。18
一臺計算機上可同時安裝多種MATLAB版本,它們之間相互獨立互不干擾。從MATLAB7.1開始,MATLAB同時支持32和64位操作系統(tǒng),安裝包win32和win64兩個文件夾分別與之對應(yīng)。使用WindowsXP系統(tǒng)的用戶需要安裝MATLAB6.5及以上的版本,否則不能正常使用。MATLAB7.8(R2009a)及以上的版本基本都兼容Windows7及以上操作系統(tǒng)。
1.2MATLAB的操作界面
19目前較為常用MATLAB版本的操作界面如圖1-1所示。(a)MATLAB6.1(b)MATLAB6.5圖1-120
(c)MATLAB7.5(R2007b)
(d)MATLAB7.13(R2011b)
(c)MATLAB8.5(R2015a)(d)MATLAB9.14(R2023a)
21
由圖1-1可知,MATLAB各種版本的操作界面略有不同。
MATLAB6.5以前版本的操作界面通常由工作窗口、功能菜單和工具欄等組成。
MATLAB6.5和MATLAB7.x的操作界面中新增加了開始(Start)按鈕。在MATLAB8.x/9.x操作界面中,又新設(shè)置了主頁(HOME)、繪圖(PLOTS)和應(yīng)用程序(APPS)等3個頁面,同時取消了開始按鈕并將其主要操作命令合并到應(yīng)用程序頁面中。其中主頁中包含一些常用的功能菜單和快捷按鈕;繪圖頁面中包含所有繪圖函數(shù);應(yīng)用程序頁面包含常用工具箱中的各種交互操作界面命令,其更加方便、實用和靈活。22
隨著MATLAB的迅速變化,盡管目前最新版本與MATLAB7.x相比,其內(nèi)容和功能急劇擴充,但就本教材所涉及的內(nèi)容而言,它們并無本質(zhì)性變化,且常用功能的使用方法基本相同。另外,最新版本安裝程序大,且運行速度慢,尤其是啟動初始化時特慢。特別指出的是,MATLAB9.14(R2023a)等雖已將主操作界面漢化,并支持中文,便于讀者自學(xué),但其大多子操作界面和子菜單仍為英文,且主要功能的使用方法仍同于MATLAB7.x。23
故本書仍以目前流行的經(jīng)典版本MATLAB7.5(R2007b)為基礎(chǔ)來進行敘述,但增加了新版本與以前版本有較大變化且涉及本課程內(nèi)容的部分,使得本書所述內(nèi)容對使用最新版本的用戶仍可完全適用,同時也兼顧了當(dāng)前仍在較低配置計算機上使用較低版本的用戶。24
由圖1-1所示MATLAB的操作界面可知,在默認狀態(tài)下,MATLAB通常包含以下幾個工作窗口。
1.3MATLAB的工作窗口
圖1-125①命令窗口(CommandWindow)
MATLAB的命令窗口位于MATLAB操作界面的右方或中間,它是MATLAB的主要操作窗口,MATLAB的大部分操作命令和結(jié)果都需要在此窗口中進行操作和顯示。在MATLAB命令窗口中的“>>”標志為MATLAB的命令提示符,“|”標志為輸入字符提示符。26
如果用戶是第一次使用MATLAB,則建議首先在命令行中鍵入demo命令,它將啟動MATLAB的演示程序,用戶可以在這些演示程序中領(lǐng)略到MATLAB所提供的強大的運算和繪圖功能。27②歷史命令(CommandHistory)窗口在默認狀態(tài)下,該命令窗口出現(xiàn)在MATLAB操作界面的左下方或右下方
。這個窗口記錄用戶已經(jīng)操作過的各種命令,用戶可以對這些歷史信息進行編輯、復(fù)制和剪切等操作。28③當(dāng)前工作目錄(CurrentDirectory)窗口在默認狀態(tài)下,該窗口出現(xiàn)在MATLAB操作界面的左上方的前臺或左方
。在這個窗口中,用戶可以設(shè)置MATLAB的當(dāng)前工作目錄,并展示目錄中的M文件等。同時,用戶可以對這些M文件進行編輯等操作。29④工作空間(Workspace)瀏覽器窗口在默認狀態(tài)下,該窗口出現(xiàn)在MATLAB操作界面的左上方的后臺或右上方
。在這個窗口中,用戶可以查看工作空間中所有變量的類別、名稱和大小。用戶可以在這個窗口中觀察、編輯和提取這些變量。30
1.4MATLAB的文件管理
1.開始按鈕開始按鈕(Start)位于MATLAB6.5和MATLAB7.x操作界面的左下角,單擊這個按鈕后,會出現(xiàn)MATLAB的操作菜單。這個菜單上半部分的選項包含MATLAB的各種交互操作命令,下半部分的選項的主要功能是窗口設(shè)置、訪問MATLAB公司的網(wǎng)頁和查看幫助文件等。但在MATLAB8.x/9.x操作界面中,取消了左下角的開始按鈕(Start),并將其主要操作命令合并到應(yīng)用程序頁面中。312.功能菜單為了更好地利用MATLAB,在其操作界面中設(shè)置了以下多個功能菜單。32*File文件操作菜單
New新建M文件、圖形、模型和圖形用戶界面
Open打開.m,.fig,.mat,.mdl,.cdr等文件
CloseCommandWindow關(guān)閉命令窗口
ImportData從其他文件導(dǎo)入數(shù)據(jù)
SaveWorkspaceAs
保存工作空間數(shù)據(jù)到相應(yīng)的路徑文件中窗口
SetPath設(shè)置工作路徑
Preferences設(shè)置命令窗口的屬性
PageSetup頁面設(shè)置
Print設(shè)置打印機屬性
PrintSelection選擇打印
ExitMATLAB退出MATLAB操作界面33*Edit編輯菜單
Undo撤消上一步操作
Redo重新執(zhí)行上一步操作
Cut剪切
Copy復(fù)制
Paste粘貼
PasteSpecial粘貼特定內(nèi)容
SelectAll全部選定
Delete刪除所選對象
Find查找所需對象
FindFiles查找所需文件
ClearCommandWindow清除命令窗口的內(nèi)容
ClearCommandHistory清除歷史窗口的內(nèi)容
ClearWorkspace清除工作區(qū)的內(nèi)容34*Debug調(diào)試菜單
OpenM-FileswhenDebugging調(diào)試時打開M文件
Step單步調(diào)試
StepIn單步調(diào)試進入子函數(shù)
StepOut單步調(diào)試跳出子函數(shù)
Continue連續(xù)執(zhí)行到下一斷點
ClearBreakpointsinAllFiles清除所有文件中的斷點
StopifErrors/Warnings出錯或報警時停止運行
ExitDebugMode退出調(diào)試模式35*Desktop桌面菜單
UnlockCommandWindow命令窗口設(shè)為當(dāng)前全屏活動窗口
DesktopLayout桌面設(shè)計
SaveLayout保存桌面設(shè)計
OrganizeLayout組織桌面設(shè)計
CommandWindow顯示命令窗口
CommandHistory顯示歷史窗口
CurrentDirectory顯示當(dāng)前工作目錄
Workspace顯示工作空間
Help幫助窗口
Profiler輪廓圖窗口
Toolbar顯示/隱藏工具欄
ShortcutsToolbar顯示/隱藏快捷工具欄
Titles顯示/隱藏標題36*Window窗口菜單
CloseAllDocuments關(guān)閉所有文檔
CommandWindow選定命令窗口為當(dāng)前活動窗口
CommandHistory選定歷史窗口為當(dāng)前活動窗口
CurrentDirectory選定當(dāng)前工作目錄為當(dāng)前活動窗口
Workspace選定工作空間為當(dāng)前活動窗口
在MATLAB8.x/9.x/23.2的操作界面中,由于取消了功能菜單,因此將其主要操作命令均合并到主頁
(HOME)中,另外在其操作界面中利用鼠標右鍵也可彈出相應(yīng)的菜單命令。373.工具欄
MATLAB操作界面工具欄中的工具“”分別用來建立M文件編輯窗口和打開編輯文件窗口;工具“”對應(yīng)的功能與Windows操作系統(tǒng)類似;工具“”分別用來快捷啟動Simulink庫瀏覽窗口、GUIDE模版窗口和輪廓圖窗口;工具“”分別用來快捷設(shè)置當(dāng)前目錄和返回到當(dāng)前目錄的父目錄。38MATLAB的各種版本都為用戶提供非常詳細的幫助系統(tǒng),可以幫助用戶更好地了解和運用MATLAB。因此,不論用戶是否使用過MATLAB,是否熟悉MATLAB,都應(yīng)該了解和掌握MATLAB的幫助系統(tǒng)。
1.5MATLAB的文件管理
391.純文本幫助在MATLAB中,所有執(zhí)行命令或者函數(shù)的M源文件都有較為詳細的注釋。這些注釋都是用純文本的形式來表示的,一般都包括函數(shù)的調(diào)用格式或者輸入?yún)?shù)、輸出結(jié)果的含義。在MATLAB的命令窗口中,用戶利用以下命令可以查閱不同范圍的純文本幫助。
helphelp%查閱如何在MATLAB中使用
help命令,如圖1-2所示;
help%查閱關(guān)于MATLAB系統(tǒng)中的所有主題的幫助信息;
help命令或函數(shù)名%查閱關(guān)于該命令或函數(shù)的所有幫助信息。40圖1-2查閱如何在MATLAB中使用help命令412.演示(demo)幫助在MATLAB中,各個工具包都有設(shè)計好的演示程序,這組演示程序在交互界面中運行,操作非常簡便。因此,如果用戶運行這組演示程序,然后研究演示程序的相關(guān)m文件,對MATLAB用戶而言是十分有益的。這種演示功能對提高用戶對MATLAB的運用能力有著重要的作用。特別對于那些初學(xué)者而言,不需要了解復(fù)雜的程序就可以直觀地查看程序結(jié)果,可以加強用戶對MATLAB的掌握能力。42
如果用戶是第一次使用MATLAB,則建議首先在命令提示符“>>”后鍵入demo命令,它將啟動MATLAB演示程序的幫助對話框,如圖1-3所示,用戶可以在這些演示程序中領(lǐng)略到MATLAB所提供的強大的運算和繪圖功能。43單擊圖1-4對話框右側(cè)的“Runthisdemo”選項,MATLAB會打開“3-DPlotinHandleGraphics”窗口,該窗口就是演示demo的交互界面,如圖1-5所示。用戶可以調(diào)整該界面中的選項,來改變圖形的處理方式,這些程序命令會出現(xiàn)在圖1-5左下角的“CommandWindow”窗口中。圖1-4“3-DSurfacePlots”演示程序介紹圖1-5demo的交互界面44用戶除了可以在打開的動態(tài)界面中演示demo,還可以查看該demo的程序代碼,單擊圖1-4對話框右側(cè)的“Opengraf3d.mintheEditor”選項,就會打開該GUI界面的MATLAB程序代碼,如圖1-6所示。45
另外,為提高讀者對MATLAB的興趣,MATLAB中提供了許多有趣的實例,具體內(nèi)容可掃描以下二維碼2。46再見!47本章內(nèi)容
MATLAB的基本數(shù)學(xué)函數(shù)和常用命令的使用;
MATLAB的基本輸入/輸出函數(shù)及其應(yīng)用;
MATLAB的外部命令調(diào)用方法;
MATLAB的基本數(shù)值運算方法;
MATLAB的基本符號運算方法。第2章MATLAB基本操作482.1MATLAB語言的結(jié)構(gòu)其中等號右邊的表達式可由操作符或其它字符、函數(shù)和變量名組成,它可以是MATLAB允許的數(shù)學(xué)或矩陣運算,也可以包含MATLAB下的函數(shù)調(diào)用;等號左邊的變量名為MATLAB語句右邊表達式的返回值語句所賦值的變量的名字。MATLAB語句的一般形式為
變量名=表達式49
在調(diào)用函數(shù)時,MATLAB允許一次返回多個結(jié)果,這時等號左邊的變量名需用[]括起來,且各個變量名之間用逗號分隔開。
MATLAB語句結(jié)構(gòu)形式中的等號和左邊的變量名也可以缺省,此時返回值自動賦給變量ans。50
在MATLAB中變量名必須以字母開頭,之后可以是任意字母、數(shù)字或者下劃線(不能超過19個字符),但變量中不能含有標點符號。變量名區(qū)分字母的大小寫,同一名字的大寫與小寫被視為兩個不同的變量。一般說來,在MATLAB下變量名可以為任意字符串,但MATLAB保留了一些特殊的字符串如表2-1所示。1.MATLAB的變量名51表2-1MATLAB中的特殊變量
特殊變量取值特殊變量取值ans默認變量名nargin函數(shù)的輸入變量數(shù)目pi圓周率(
=3.1415926…)nargout函數(shù)的輸出變量數(shù)目i或j基本虛數(shù)單位realmin系統(tǒng)所能表示的最小數(shù)值inf或Inf無限大,如1/0realmax系統(tǒng)所能表示的最大數(shù)值nan或NaN不定量,如0/0,
/
,0*
lasterr存放最新的錯誤信息eps浮點相對精度lastwarn存放最新的警告信息522.MATLAB的算術(shù)運算符
MATLAB中使用的算術(shù)運算符如表2-2所示。表2-1MATLAB中的算術(shù)運算符算術(shù)運算符意義算術(shù)運算符意義+加\左除-減∕右除*乘^冪53
對于矩陣來說,這里左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于標量,兩種除法運算的結(jié)果相同,如1/4和4\1有相同的值0.25。
常用的十進制符號如小數(shù)點、負號等,在MATLAB中也可以同樣使用,表示10的冪次要用符號e或E,如:3、-99、0.0001、1.6e-20、6.2e23。
543.MATLAB的基本數(shù)學(xué)函數(shù)
為了方便用戶,MATLAB提供了豐富的庫函數(shù),庫函數(shù)是根據(jù)系統(tǒng)已經(jīng)編制好了的,提供用戶直接使用的函數(shù)。其中MATLAB中常用的基本數(shù)學(xué)函數(shù),如表2-3所示。55函數(shù)名含義函數(shù)名含義sin()正弦sqrt()平方根cos()余弦real()實部tan()正切imag()虛部asin()反正弦conj()復(fù)數(shù)共軛acos()反余弦round()4舍5入到整數(shù)atan()反正切fix()舍入到最接近0的整數(shù)atan2()第四象反正切floor()舍入到最接近-∝的整數(shù)sonh()雙曲正弦ceil()舍入到最接近+∝的整數(shù)cosh()雙曲余弦sign()符號函數(shù)tanh()雙曲正切rem()留數(shù)exp()自然指數(shù)bessel()貝塞爾函數(shù)log()自然對數(shù)gamma()伽嗎函數(shù)logl0()以10為底的對數(shù)rat()有理逼近隨機數(shù)abs()絕對值或模
rand()
表2-3MATLAB的基本函數(shù)
56
除了基本函數(shù)外,不同版本的MATLAB還增加了具有不同功能的庫函數(shù),也稱工具箱或模塊集。例如電力系統(tǒng)工具箱、控制系統(tǒng)工具箱和信號處理工具箱等等等等。對于各種函數(shù)的功能和調(diào)用方法可使用MATLAB的聯(lián)機幫肋help來查詢,例如:
>>helpsin%得到正弦函數(shù)的使用信息;
>>help[%顯示如何使用方括號。572.1MATLAB的窗口命令MATLAB命令窗口就是MATLAB語言的工作空間,因為MATLAB的各種功能的執(zhí)行必須在此窗口下才能實現(xiàn)。所謂窗口命令,就是在上述命令窗口中輸入的MATLAB語句,并直接執(zhí)行它們完成相應(yīng)的運算等。58MATLAB命令語句能即時執(zhí)行,它不是輸入完全部MATLAB命令語句經(jīng)過編譯、連接形成可執(zhí)行文件后才開始執(zhí)行,而是每輸入完一條命令,MATLAB就立即對其處理,并得出中間結(jié)果,完成了MATLAB所有命令語句的輸入,也就完成了它的執(zhí)行,直接便可得到最終結(jié)果。從這一點來說,MATLAB清晰地體現(xiàn)了類似“演算紙”的功能。2.2.1窗口命令的執(zhí)行及回調(diào)
1.窗口命令的執(zhí)行59例如>>a=5;>>b=6;>>c=a*b,>>d=c+2其中第3,4條命令的執(zhí)行結(jié)果分別顯示如下:
c=30d=3260
注意,以上各命令行中的“>>”標志為MATLAB的命令提示符,其后的內(nèi)容才是用戶輸入的命令語句。每行命令輸入完后,只有當(dāng)用回車鍵進行確定后,命令才會被執(zhí)行。
MATLAB語句既可由分號結(jié)束,也可由逗號或換行號結(jié)束,但它們的含義是不同的。如果用分號“;”結(jié)束,則說明除了這一條命令外還有下一條命令等待輸入,MATLAB這時將不立即顯示運行的中間結(jié)果,而等待下一條命令的輸入,如以上前兩條命令;如果以逗號“,”或回車結(jié)束,則將把左邊返回的內(nèi)容全部顯示出來,如以上后兩條命令。
61
當(dāng)然在任何時候也可輸入相應(yīng)的變量名來查看其內(nèi)容。如>>aa=5
在MATLAB中,幾條語句也可以出現(xiàn)在同一行中,只要用分號或逗號將它們分割。例如>>a=5;b=6;c=a*b,d=c+2這時可得與上面相同的結(jié)果。62MATLAB工作空間中的變量在退出MATLAB時會丟失,如果在退出MATLAB前想將工作空間中的變量保存到文件中,則可以調(diào)用save命令來完成,該命令的調(diào)用格式為>>save文件名變量列表其它選項
注意這一命令中不能使用逗號,不同的元素之間只能用空格來分隔。2.2.2窗口變量的處理
1.變量的保存63例如,想把工作空間中的a,b,c變量存到mydat.mat文件中去,則可用下面的命令來實現(xiàn)。>>savemydatabc
這里將自動地使用文件擴展名mat。如果想將整個工作空間中所有的變量全部存入該文件,則應(yīng)采用下面的命令。>>savemydat64
當(dāng)然這里的mydat也可省略,這時將工作空間中的所有變量自動地存入到文件matlab.mat中了。應(yīng)該指出的是,這樣存儲的文件均是按照二進制的形式進行的,所以得出的文件往往是不可讀的,如果想按照ASCII碼的格式來存儲數(shù)據(jù),則可以在命令后面加上一個控制參數(shù)-ascii,該選項將變量以單精度的ASCII碼形式存入文件中去,如果想獲得高精度的數(shù)據(jù)。則可使用控制參數(shù):-ascii-double。65MATLAB提供的load命令可以從文件中把變量調(diào)出并重新裝入到MATLAB的工作空間中去,該函數(shù)的調(diào)用格式與save命令同。當(dāng)然工作空間中變量的保存和調(diào)出也可利用菜單項中的File|SaveWorkspaceAs…和File|Open命令來完成。2.變量的調(diào)取66
如果想查看目前的工作空間中都有哪些變量名,則可以使用who命令來完成。例如當(dāng)MATLAB的工作空間中有a,b,c,d四個變量名時,使用who命令將得出如下的結(jié)果。>>whoyourvariableare:abcd
想進一步了解這些變量的具體細節(jié),則可以使用whos命令來查看。3.變量的查看67
了解了當(dāng)前工作空間中的現(xiàn)有變量名之后,則可以使用clear命令來刪除其中一些不再使用的變量名,這樣可使得整個工作空間更簡潔,節(jié)省一部分內(nèi)存,例如想刪除工作空間中的a,b兩個變量,則可以使用下面的命令>>clearab
如果想刪除整個工作空間中所有的變量,則可以使用以下命令>>clear4.變量的刪除68
在MATLAB操作界面中,用戶可以根據(jù)自己的需要,對窗口命令的字體風(fēng)格、大小和顏色等進行自定義的設(shè)置。利用MATLAB操作界面中的菜單命令File
Preferences命令可打開Preferences參數(shù)設(shè)置窗口,用戶可以在此設(shè)置字體格式等,如圖2-1所示。2.2.3窗口命令的屬性6970MATLAB可以使用format命令來改變顯示格式,其調(diào)用格式為format控制參數(shù)其中控制參數(shù)決定顯示格式,控制參數(shù)如表2-4表示。除format命令外,還可由MATLAB命令窗口的Options|NumericFormat菜單項來設(shè)置顯示形式。2.2.4數(shù)值結(jié)果顯示格式71控制參數(shù)意義例100/3short5位有效數(shù)字,同默認顯示33.3333long長格式,15位有效數(shù)字33.33333333333334shorte短格式,5位有效數(shù)字的浮點數(shù)3.3333e+001longe長格式,15位有效數(shù)字的浮點數(shù)3.333333333333334e+001hex十六進制格式4040aaaaaaaaaaabbank2個十進制位33.33+正、負或零+rat有理格式100/3表2-4format命令的控制參數(shù)
722.2.5基本輸入與輸出函數(shù)
除上面提到的用于機器間交換數(shù)據(jù)的命令語句save和load外,MATLAB還允許計算機和用戶之間進行數(shù)據(jù)交換,允許對文件進行讀寫操作。73
如果用戶想在計算的過程中給計算機輸入一個參數(shù),則可以使用input()函數(shù)來進行,該函數(shù)的調(diào)用格式為變量名=input(提示信息,選項)這里提示信息可以為一個字符串顯示,它用來提示用戶輸入什么樣的數(shù)據(jù),input()函數(shù)的返回值賦給等式左邊的變量名。1.輸入函數(shù)74
例如,用戶想輸入x的值,則可以采用下面的命令來完成>>x=input(‘Entermatrixx=>’);
執(zhí)行該命令時首先給出EntermatrixA=>提示信息,然后等待用戶從鍵盤按MATLAB格式輸入值,并把此值賦給x。如果在input()函數(shù)調(diào)用時采用了‘s’選項,則允許用戶輸入一個字符串,此時需用單引號將所輸字符串括住。75MATLAB提供的命令窗口輸出函數(shù)主要有disp()函數(shù),其調(diào)用格式為
disp(變量名)其中變量名既可以為字符串,也可以為變量矩陣。例如>>s=‘HelloWorld’,s=HelloWorld>>disp(s)HelloWorld2.輸出函數(shù)76MATLAB提供了較實用的字符串處理及轉(zhuǎn)換的函數(shù),例如int2str()函數(shù)就可以方便在將一個整形數(shù)據(jù)轉(zhuǎn)換成字符串形式,該函數(shù)的調(diào)用格式為cstr=int2str(n)其中n為一個整數(shù),而該函數(shù)將返回一個相關(guān)的字符串cstr。例如
num的數(shù)值為num=15,而在輸出中還想給出其它說明性附加信息,則可利用下面的語句>>disp([‘Thevalueofnumis’,int2str(num),‘!ok’])這樣可得
Thevalueofnumis15!ok3.字符串轉(zhuǎn)換函數(shù)77
與int2str()函數(shù)的功能及調(diào)用方式相似,MATLAB還提供了num2str()函數(shù),可以將給出的實型數(shù)據(jù)轉(zhuǎn)換成字符串的表達式,最終也可以將該字符串輸出出來。例如給繪制的圖形賦以數(shù)字的標題時可采用下面的命令>>c=(70-32)/1.8;>>title([‘Roomtemperatureis’,num2str(c),‘degreesC’])則會在當(dāng)前圖形上加上題頭標注
Roomtemperatureis21.1111degreesC782.2.5外部程序的調(diào)用MATLAB允許在其命令窗口中調(diào)用可執(zhí)行文件(.exe),其調(diào)用方法是在MATLAB提示符下鍵入驚嘆號!后面直接跟該可執(zhí)行文件即可。
MATLAB也允許采用這樣的方式來直接使用DOS命令,如磁盤復(fù)制命令copy可以由!copy來直接使用,而文件列表命令dir可以由!dir來調(diào)用。事實上,為了使用戶提供更大的方便,MATLAB已經(jīng)把一些常用的DOS命令做成了相應(yīng)的MATLAB命令,表2-5列出了MATLAB中提供的一些文件管理命令。79命令注釋what列出當(dāng)前目錄下所有的m文件dir列當(dāng)前目錄下所有的文件1s與dir命令相同typemyfile在命令窗口中顯示文件myfile.m的內(nèi)容deletemyfile刪除文件myfile.mcdpath進入子目錄pathwhichmyfile顯示文件myfile.m所在的路徑表2-5文件管理命令
802.3MATLAB的數(shù)值運算MATLAB具有強大的數(shù)值能力,它不僅能對矩陣和向量進行相應(yīng)的運算,而且也可進行關(guān)系運算、邏輯運算和多項式運算等問題。812.3.1矩陣運算MATLAB的基本數(shù)據(jù)單元是不需要指定維數(shù)的復(fù)數(shù)矩陣,它提供了各種矩陣的運算與操作,因它既可以對矩陣整體地進行處理,也可以對矩陣的某個或某些元素進行單獨地處理,所以在MATLAB環(huán)境下矩陣的操作同數(shù)的操作一樣簡單。821.矩陣的實現(xiàn)
在MATLAB語言中不必描述矩陣的維數(shù)和類型,它們是由輸入的格式和內(nèi)容來確定的,例如當(dāng)
時,把A自動當(dāng)作一個2×2的矩陣;A=[12]時,把A當(dāng)作一個2維向量
時,把A自動當(dāng)作一個2維列向量;A=5時,把A當(dāng)作一個標量;A=1+2i時,把A當(dāng)作一個復(fù)數(shù)。831)矩陣的賦值矩陣可以用以下幾種方式進行賦值*直接列出元素的形式;*通過語句和函數(shù)產(chǎn)生;*建立在文件中;*從外部的數(shù)據(jù)文件中裝入。84(1)簡單矩陣的輸入對于比較小的簡單矩陣可以使用直接排列的形式輸入,把矩陣的元素直接排列到方括號中,每行內(nèi)的元素間用空格或逗號分開,行與行的內(nèi)容用分號隔開。在MATLAB下的輸入方式為
>>A=[1,2,3;4,5,6;7,8,9]或>>A=[123;456;789]都將得相同的結(jié)果85
對于比較大的矩陣,可以用回車鍵代替分號,對每一行的內(nèi)容分行輸入,也可利用續(xù)行符號(…),把一行的內(nèi)容分兩行來輸入。如前面的矩陣還可以等價地由下面兩種方式來輸入。
>>A=[123;456789]或>>A=[123;45…6;789]
輸入后A矩陣將一直保存在工作空間中,除非被替代和清除,在MATLAB的命令窗口中可隨時查看其內(nèi)容。86(2)利用語句或函數(shù)產(chǎn)生矩陣在MATLAB中,矩陣也可利用下例語句來產(chǎn)生s1:s2:s3其中,s1為起始值;s3為終止值;s2為步矩。使用這樣的命令就可以產(chǎn)生一個由s1開始,以步距s2自增,并終止于s3的行向量,如87>>y=[0:pi/4:pi;0:10/4:10]y=00.78541.57082.35623.141602.50005.00007.500010.0000如果S2省略,則可以認為自增步距為1,例如>>x=1:5結(jié)果顯示:
x=1234588
利用size()函數(shù)可測取一個矩陣的維數(shù),該函數(shù)的調(diào)用格式為[n,m]=size(A)其中A為要測試的矩陣名,而返回的兩個參數(shù)n和m分別為A矩陣的行數(shù)和列數(shù)。當(dāng)要測試的變量是一個向量時,當(dāng)然仍可由size()函數(shù)來得出其大小,更簡潔地,用戶可以使用length()函數(shù)來求出,該函數(shù)的調(diào)用格式為n=length(x)其中x為要測試的向量名,而返回的n為向量x的元素個數(shù)。89
如果對一個矩陣A用length(A)函數(shù)測試,則返回該矩陣行列的最大值,即該函數(shù)等效于max(size(A))。902)矩陣的元素
MATLAB的矩陣元素可用任何表達式來描述,它既可以是實數(shù),也可以是復(fù)數(shù),例如>>B=[-1/31.3;sqrt(3)(1+2+3)*i]
B=
-0.3333+0.0000i1.3000+0.0000i1.7321+0.0000i0.0000+6.0000iMATLAB允許把矩陣作為元素來建立新的矩陣,例如,利用A矩陣通過下面的語句>>A=[123;456;789];C=[A;[101112]]91MATLAB還允許對一個矩陣的單個元素進行賦值和操作,例如如果想將A矩陣的第2行第3列的元素賦為100,則可通過下面的語句來完成>>A(2,3)=100
A=1 23451007 89
這時將只改變此元素的值,而不影響其它元素的值。92
如果給出的行數(shù)或列數(shù)大于原來矩陣的范圍,則MATLAB將自動擴展原來的矩陣,并將擴展后未賦值的矩陣元素置為0。例如如果想把矩陣A的第4行第5列元素的值定義為8,就可以通過下面語句來完成。>>A(4,5)=8A=1230045100007890000008933)特殊矩陣的實現(xiàn)在MATLAB中特殊矩陣可以利用函數(shù)來建立。(1)單位矩陣函數(shù)eye()基本格式
A=eye(n)
%產(chǎn)生一個n階的單位矩陣A或A=eye(size(B))
%產(chǎn)生與B矩陣同階的單位矩陣A94(2)零矩陣函數(shù)zeros()(3)1矩陣函數(shù)ones()(4)隨機元素矩陣函數(shù)rand()(5)對角矩陣函數(shù)diag()(6)伴隨矩陣函數(shù)compan()(7)上三角矩陣函數(shù)triu()和下三角矩陣函數(shù)tril()952.矩陣的基本運算
矩陣運算是MATLAB的基礎(chǔ),MATLAB的矩陣運算功能十分強大,并且運算的形式和一般的數(shù)學(xué)表示十分相似。1)矩陣的轉(zhuǎn)置矩陣轉(zhuǎn)置的運算符為“'”。例如>>A=[123;456];B=A'
142536962)矩陣的加和減
矩陣的加減法的運算符為“+”和“-”。矩陣只有同階方可進行加減運算,標量可以和矩陣進行加減運算但應(yīng)對矩陣的每個元素施加運算。例如>>A=[123;456];B=A+1B=234567973)
矩陣的乘法矩陣的乘法運算符為“*”。當(dāng)兩個矩陣中前一矩陣的列數(shù)和后一矩陣的行數(shù)相同時,可以進行乘法進行運算,這與數(shù)學(xué)上的形式是一致的。例>>C=A*B;在MATLAB中還可進行矩陣和標量相乘,其結(jié)果為標量與矩陣中的每個元素分別相乘。984)矩陣的除法
矩陣的除法有兩種運算符“\”和“/”,分別表示左除和右除。一般地講,x=A\B是A*x=B的解,x=B/A是x*A=B的解,通常A\B≠B/A,而A\B=inv(A)*B,B/A=B*inv(A)。995)矩陣的乘方
矩陣的乘方運算符為“^”。一個方陣的乘方運算可以用A^P來表示。P為正整數(shù),則A的P次冪即為A矩陣自乘P次。如果P為負整數(shù),則可以將A自乘P次,然后對結(jié)果進行求逆運算,就可得出該乘方結(jié)果。如果P是一個分數(shù),例如P=m\n,其中n和m均為整數(shù),則首先應(yīng)該將A矩陣自乘n次,然后對結(jié)果再開m次方。1006)矩陣的翻轉(zhuǎn)MATLAB還提供了一些矩陣翻轉(zhuǎn)處理的特殊命令,對n×m維矩陣A如B=fliplr(A)%命令將矩陣A進行左右翻轉(zhuǎn)再賦給B,即bij=ai,m+1-j,
C=flipud(A)%命令將矩陣A進行上下翻轉(zhuǎn)再賦給C,即cij=an+1-i,j,
D=rot90(A)%命令將矩陣A進行旋轉(zhuǎn)90度后賦給D,即dij=aj,m+1-I。1017)矩陣的超越函數(shù)MATLAB中exp(),sqrt(),sin(),cos()等基本函數(shù)命令可以直接使用在矩陣上,這種運算只定義在矩陣的單個元素上,即分別對矩陣的每個元素進行運算。超越數(shù)學(xué)函數(shù),可以在函數(shù)后加上m而成為矩陣的超越函數(shù),例如expm(A),sqrtm(A),logm(A)分別為矩陣指數(shù)、矩陣開方和矩陣對數(shù)。矩陣的超越函數(shù)要求運算的矩陣必須為方陣。1022.3.2
MATLAB的向量運算
雖然向量和矩陣在形式上有很多的一致性,但在MATLAB中它們實際上遵循著不同的運算規(guī)則。MATLAB向量運算符由矩陣運算符前面加一點“.”來表示,如“.*”、“./”和“.^”等。 在MATLAB中,兩個維數(shù)相同的矩陣也可以采用向量運算符,但與采用以上矩陣運算符的結(jié)果是不一樣的,它實與向量運算結(jié)果一致,均為對應(yīng)元素之間的運算。實際上向量就是矩陣的一種特殊形式,即僅有一行或一列元素的矩陣,因此MATLAB中的向量運算又被稱為矩陣元素運算。1031.向量的加減向量的加、減運算與矩陣的運算相同,所以“+”和“-”既可被向量接收又可被矩陣接收。1042.向量的乘法
向量乘法的操作符為“.*”。如果x,y兩向量具有相同的維數(shù),則x.*y表示x和y單個對應(yīng)元素之間的對應(yīng)相乘。例如>>x=[123];y=[456];z=x.*yz=41018
可見向量的輸入和輸出與矩陣具有相同的格式,但它們的運算規(guī)則不同,例如,如果x是一個向量,則求取函數(shù)x平方時不能直接寫成x*x,而必須寫成x.*x,否則將給出錯誤信息。105
但是對于矩陣可以使用向量運算符號,這時實際上就相當(dāng)于把矩陣看成了向量進行對應(yīng)元素間的運算。例如對于兩個維數(shù)相同的A,B矩陣,C=A.*B表示A和B矩陣的相應(yīng)元素之間直接進行乘法運算,然后將結(jié)果賦給C矩陣,把這種運算稱為矩陣的點積運算,兩個矩陣之間的點積是它們對應(yīng)元素的直接運算,它與矩陣的乘法是不同的。例如>>A=[123;456;789];>>B=[234;567;890];C=A.*B結(jié)果顯示C=261220304256720
1063.向量的除法
向量除法的操作符為“./”或“.\”。它們的運算結(jié)果一樣。例如對前面給出的x和y向量>>z=y./xz=4.00002.50002.0000
對于向量x.\y和y./x一樣,將得到相同的結(jié)果,這與矩陣的左、右除是不一樣的,因向量的運算是它們對應(yīng)元素間的運算。對于矩陣也可使用向量的除法操作符,這時就相當(dāng)于把矩陣看成向量進行對應(yīng)元素間的除法運算。
1074.向量的乘方向量乘方的運算符為“.^”。向量的乘方是對應(yīng)元素的乘方,在這種底與指數(shù)均為向量的情況下,要求它們的維數(shù)必須相同。例如>>x=[123];>>y=[456];>>z=x.^yz=132729
它相當(dāng)于z=[123]^[456]=[142536]1082.3.3關(guān)系和邏輯運算1.關(guān)系運算MATLAB常用的關(guān)系操作符見表2-6表示。表2-6關(guān)系運算符
關(guān)系操作符意義關(guān)系操作符意義<小于>=大于等于<=小于等于==等于>大于~=不等于109
函數(shù)find()在關(guān)系運算中很有用,它可以在矩陣中找出一些滿足一定關(guān)系的數(shù)據(jù)元素。例如
>>A=1:9;B=A>4>>C=A(A>4)C=56789或>>C=find(A>4)
C
=567891102.邏輯運算MATLAB的邏輯操作符有&(與)、|(或)和~(非)。它們通常用于元素或0-1矩陣的邏輯運算。與和或運算符可比較兩個標量或兩個同階矩陣,對于矩陣,邏輯運算符是作用于矩陣中的元素。邏輯運算結(jié)果信息也用“0”和“1”表示,邏輯操作符認定任何非零元素都表示為真。給出1為真,0為假。111
非是一元操作符,當(dāng)A非零時,~A返回的信息為0,當(dāng)A為零時,~A返回信息為1。因而就有:P|(~P)返回值為1,P&(~P)返回值為0。例>>A=1:9;C=~(A>4)C=111100000>>C=(A>4)&(A<7)
C=0000110001123.關(guān)系和邏輯運算函數(shù)
除了上面介紹的關(guān)系和邏輯運算符外,MATLAB中還提供了一些關(guān)系和邏輯運算函數(shù)如表1-10所示。表1-10關(guān)系和邏輯操作符
函數(shù)名說明xor(x,y)異或any(x)向量x中的任一元素非零,返回1all(x)向量x中的所有元素非零,返回1isnan(x)當(dāng)x是NaN時,返回1isinf(x)當(dāng)x是inf時,返回1finite(x)當(dāng)x屬于(-∞,+∞)時返回1,而當(dāng)x=NaN時,返回零。1132.3.4多項式運算
多項式運算是數(shù)學(xué)中最基本的運算之一。在MATLAB中同樣可對多項式進行相應(yīng)的一系列運算。1.多項式的表示在高等數(shù)學(xué)中,多項式一般可表示成以下形式f(x)=a0
x
n+a1x
n-1+…+an-1x+an其中,a0,a1,…,an稱為多項式的系數(shù)。所以在MATLAB中多項式很容易用其系數(shù)組成的行向量來表示,即P=[a
0
a
1…an]其中行向量是按其系數(shù)降冪排列組成的系數(shù)向量。114
在MATLAB中,利用函數(shù)poly2str()可將多項式的系數(shù)向量表示成相應(yīng)多項式的習(xí)慣表示形式,該函數(shù)的調(diào)用格式為f=poly2str(p,'s')其中,p為多項式的系數(shù)向量;s為多項式的變量名;f為相應(yīng)的多項式。例>>p=[15032];f=poly2str(p,'x')結(jié)果顯示:f=x^4+5x^3+3x+21152.多項式的四則運算多項式的四則運算主要是多項式的加、減、乘和除運算。其中多項式的加、減運算要求兩個相加、減多項式的系數(shù)向量維數(shù)的大小必須相等。多項式的加減例1-12
求以下兩個多項式
f1(x)=x
4+5x
3+3x+2,f2(x)=x
2+6x+5的和解
MATLAB命令如下>>p1=[15032];p2=[00165];p=p1+p21162)多項式的乘法在MATLAB中,多項式的乘法運算,利用函數(shù)conv()來實現(xiàn),函數(shù)conv()相等于執(zhí)行兩個數(shù)組的卷積,其調(diào)用格式為
p=conv(p1,p2)3)多項式的除法在MATLAB中,多項式的除法運算,利用函數(shù)deconv()來實現(xiàn),其調(diào)用格式為
[p,r]=deconv(p1,p2)1173.多項式的值及多項式的導(dǎo)數(shù)如果f(x)函數(shù)為下面的一個多項式f(x)=a0xn+a1xn-1+…+an-1x+an則可以求出該函數(shù)的導(dǎo)數(shù)函數(shù)為
f'(x)=na0xn-1+(n-1)a1xn-2+…+an-1
在MATLAB中提供了多項式求值函數(shù)polyval()和多項式求導(dǎo)的函數(shù)polyder()它們的調(diào)用格式分別為
f0=polyval(p,x0)及dp=polyder(p)118
同樣,MATLAB也提供了多項式矩陣的求值函數(shù)polyvalm(),其調(diào)用格式為fA=polyvalm(p,A)4.多項式的求解
MATLAB中多項式的求解運算可利用函數(shù)roots()來實現(xiàn),其調(diào)用格式為r=roots(p)1192.4MATLAB的符號運算MATLAB的優(yōu)點不僅在于其強大的數(shù)值運算功能,而且也在于其強大的符號運算功能。MATLAB的符號運算是通過集成在MATLAB中的符號數(shù)學(xué)工具箱(SymbolicMathToolbox)來實現(xiàn)的。它可完成幾乎所有的符號運算功能,如符號表達式的生成、復(fù)合和化簡;符號矩陣的求解;符號微積分的求解;符號函數(shù)的畫圖;符號代數(shù)方程的求解;符號微分方程的求解等。120
2.4.1符號表達式的生成在MATLAB中的符號數(shù)學(xué)工具箱中,符號表達式是代表數(shù)字、函數(shù)和變量的MATLAB字符串或字符串?dāng)?shù)組,它不要求變量要有預(yù)先確定的值。符號表達式可以是符號函數(shù)或符號方程。其中,符號函數(shù)沒有等號,而符號方程必須有等號。
MATLAB在內(nèi)部把符號表達式表示成字符串,以與數(shù)字區(qū)別。符號表達式可由以下三種方法生成。1211.用單引號生成符號表達式在MATLAB中,符號表達式如同字符串一樣也可利用單引號來直接設(shè)定。如>>fun='sin(x)‘2.用函數(shù)sym()生成符號表達式在MATLAB可自動確定變量類型的情況下,可不用函數(shù)sym()來顯式生成符號表達式。但在某些情況下,特別是在建立符號數(shù)組時,必須要用函數(shù)sym()來將字符串轉(zhuǎn)換成符號表達式。如
>>A=sym('[sin(x)b;cd]')122>>symsKtT;fun=K*(exp(-t/T))結(jié)果顯示:fun=K*exp(-t/T)3.用命令syms生成符號表達式在MATLAB中,利用命令syms只能生成符號函數(shù),而不能生成符號方程。例如
另外,在MATLAB中,利用函數(shù)symvar()可知道符號表達式中哪些變量為符號變量。同時MATLAB會自動把i,j,pi,inf,nan,eps等特殊字母不當(dāng)成符號變量。
1232.4.2符號表達式的基本運算
MATLAB的符號工具箱中,符號方程的求解包括符號代數(shù)線性方程的求解、符號代數(shù)非線性方程的求解和符號微分方程的求解等。1.符號表達式的提取分子/分母運算在MATLAB中,如果符號表達式為有理分式的形式或可展開為有理分式的形式,則可通過函數(shù)numden()來提取符號表達式中的分子與分母。其調(diào)用格式如下[nem,den]=numden(f)124例>>f=sym('(x+d)/(a*x^2+b*x+c)');>>[num,den]=numden(f)運行結(jié)果:num=x+dden=a*x^2+b*x+c
1252.符號表達式的基本代數(shù)運算在MATLAB中,符號表達式的加、減、乘、除四則運算及冪運算等基本的代數(shù)運算,分別由函數(shù)symadd(),symsub(),symmul(),symdiv()及sympow()來實現(xiàn)。其中求和函數(shù)symadd()的調(diào)用格式為:
h=symadd(f,g)1263.符號表達式與數(shù)值表達式的相互轉(zhuǎn)換在MATLAB中,利用函數(shù)numeric()(僅適用于MATLAB6.5及以前的版本)或eval()可將符號表達式轉(zhuǎn)換成數(shù)值表達式。反之,函數(shù)sym()可將數(shù)值表達式轉(zhuǎn)換成符號表達式。例
>>f='abs(-1)+sqrt(1)/2',p=eval(f),n=sym(p)運行結(jié)果:f=abs(-1)+sqrt(1)/2p=1.5000n=3/2
127
若已知數(shù)值多項式系數(shù)向量,則可以通過符號運算工具箱提供的函數(shù)poly2sym()將其轉(zhuǎn)換成多項式表達式。若已知多項式表達式,則可以由函數(shù)sym2poly()將其轉(zhuǎn)換成系數(shù)向量形式。它們調(diào)用格式為f=poly2sym(p)和p=sym2poly(f)其中,p為多項式系數(shù)降冪排列構(gòu)成的系數(shù)向量;f為多項式表達式。1284.符號表達式的化簡在MATLAB中,函數(shù)simple()可按有關(guān)數(shù)學(xué)規(guī)則把符號表達式化簡成最簡形式,其調(diào)用格式如下:y=simple(f)1295.符號表達式的替換在MATLAB的符號數(shù)學(xué)工具箱中,函數(shù)subexpr()和函數(shù)subs()可以進行符號表達式的替換。其中函數(shù)subexpr()用于把復(fù)雜表達式中所含的多個相同子表達式用一個符號代替,使其表達簡潔,其調(diào)用格式如下g=subexpr(f,'S')
1302.4.3符號表達式的微積分
MATLAB的符號工具箱中,符號微積分包括符號序列求和、符號極限、符號微分和符號積分等運算。1.符號序列求和對于求和問題,在MATLAB中可利用符號序列求和函數(shù)symsum()來實現(xiàn),其調(diào)用格式為y=symsum(f,'x',a,b)%求符號表達式f在指定變量x
取遍[a,b]中所有整數(shù)和yy=symsum(f,'x')%求符號表達式f在指定變量x
取遍[0,x-1]中所有整數(shù)和yy=symsum(f,a,b)%求符號表達式f對獨立變量
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 濮陽縣2025年五年級數(shù)學(xué)第二學(xué)期期末監(jiān)測模擬試題含答案
- 提升自動化水平選擇好的電磁閥解決方案
- 供應(yīng)商選擇與評估管理制度制度
- 投影水幕設(shè)計施工方案
- 寧波單層廠房施工方案
- 電力搶修施工方案
- 汽車尾燈資料
- 2025年家居業(yè)務(wù)面試題及答案
- 6個紅包紙折燈籠的制作方法
- 5年級下冊英語單詞第三單元帶讀音朗讀
- 2025年合肥幼兒師范高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫新版
- 2025年浙江寧波交投公路營運管理限公司招聘12人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 勞務(wù)派遣勞務(wù)外包項目方案投標文件(技術(shù)方案)
- 第四單元 第三課 拍攝學(xué)校創(chuàng)意短視頻教學(xué)設(shè)計 2024-2025學(xué)年西交大版(2024)初中信息技術(shù)七年級上冊
- 2025年蘇州工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年尖葉菠菜種子項目可行性研究報告
- DB3306T 074-2025 餐用具消毒房管理規(guī)范
- 2025年重慶市初中學(xué)業(yè)水平暨高中招生考試數(shù)學(xué)試題預(yù)測卷(二)
- “記憶中的人、事兒”為副標題(四川眉山原題+解題+范文+副標題作文“追求”主題)-2025年中考語文一輪復(fù)習(xí)之寫作
- 2024年吉安職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 消化系統(tǒng)疾病患者的睡眠質(zhì)量改善及失眠應(yīng)對措施
評論
0/150
提交評論