《MATLAB在自動控制中的應(yīng)用》課件第2章_第1頁
《MATLAB在自動控制中的應(yīng)用》課件第2章_第2頁
《MATLAB在自動控制中的應(yīng)用》課件第2章_第3頁
《MATLAB在自動控制中的應(yīng)用》課件第2章_第4頁
《MATLAB在自動控制中的應(yīng)用》課件第2章_第5頁
已閱讀5頁,還剩283頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章MATLAB基本使用方法及常用功能介紹2.1應(yīng)用基礎(chǔ)

2.2基本操作

2.3數(shù)值運算2.4符號運算2.5圖形表達功能2.6程序設(shè)計基礎(chǔ)

2.1應(yīng)

礎(chǔ)

2.1.1最簡單的計算器使用方法

MATLAB的基本特性之一就是其演草紙式的數(shù)學運算功能,用戶可以在命令窗口中隨心所欲地進行各種數(shù)學演算,就如同在草稿紙上進行算術(shù)運算一樣方便。

【例2.1】求算術(shù)運算[9×(10-1)+19]÷22的結(jié)果。

【解】(1)在MATLAB命令窗口中輸入:

>>(9*(10-1)+19)/2^2(2)在上述表達式輸入完成后,按“回車”鍵,該命令被執(zhí)行。(3)在命令執(zhí)行后,MATLAB命令窗口中將顯示下述結(jié)果:ans=

25說明:①在全部輸入一個命令行內(nèi)容后,必須按下回車鍵,該命令才會被執(zhí)行。但注意,無需在命令行的末尾處執(zhí)行此操作,在一個命令行中的任一處均可執(zhí)行此項操作。

②命令行行首的符號“>>”是命令輸入提示符,如前所述,它由MATLAB自動產(chǎn)生,用戶不必輸入。

③MATLAB的運算符號(如+、-、*、/等)都是各種計算程序中常見的習慣符號,且運算符號均為西文字符,不能在中文狀態(tài)下輸入。

④本例計算結(jié)果顯示中的“ans”是英文“answer”的縮寫,其含義是“運算答案”,它是MATLAB的一個默認變量。⑤如果不顯示本例的計算結(jié)果,可以在命令行末尾添加分號“;”。對于以分號結(jié)尾的命令行語句,盡管該命令已執(zhí)行,但MATLAB不會把其運算結(jié)果顯示在命令窗口中。通過上面的這個小例子,相信讀者已經(jīng)對MATLAB方便、快捷及靈活的數(shù)學運算功能有了初步的體會。

2.1.2矩陣

1.矩陣的生成在MATLAB中,矩陣的生成有很多方法。既可以以矩陣格式輸入數(shù)據(jù),也可以用“l(fā)oad”命令調(diào)用已存儲的矩陣數(shù)據(jù)或矩陣變量,還可以應(yīng)用MATLAB提供的函數(shù)生成特殊矩陣。在MATLAB中輸入矩陣需要遵循以下基本規(guī)則:

(1)矩陣元素之間用空格或逗號“,”分隔,矩陣行之間用分號“;”隔離,整個矩陣放在方括號“[]”里,且標點符號一定要在英文狀態(tài)下輸入。

(2)不必事先對矩陣維數(shù)做任何說明,存儲時將自動配置。

(3)

MATLAB區(qū)分字母的大小寫。下例中的矩陣賦給了變量A,

而不是小寫的a。

【例2.2】

以矩陣格式輸入數(shù)據(jù),自定義一個三階帕斯卡矩陣

【解】

在MATLAB命令窗口中輸入:

>>A=[1,1,1;1,2,3;1,3,6]運行結(jié)果為:A=

111123136或在MATLAB命令窗口中輸入:

>>A=[111;123;136]運行后會得到同樣的輸出結(jié)果。

說明:例2.2中的命令被執(zhí)行后,矩陣A將被保存在MATLAB的工作空間中。如果用戶不用“clear”命令清除它或?qū)λ匦沦x值,那么該矩陣會一直保存在工作空間中,直到本次MATLAB命令窗口被關(guān)閉為止。進一步地,A(i,j)表示矩陣A中第i行第j列元素;A(i,:)表示矩陣A中第i行全部元素;A(:,j)表示矩陣A中第j列全部元素。

【例2.3】取出例2.2中矩陣A的第2行。

【解】在MATLAB命令窗口中輸入:

>>A(2,:)運行結(jié)果為:ans=

123顯見,取出矩陣中的某行元素,若用計算機高級語言來實現(xiàn),或許要用到循環(huán)語句,而用MATLAB來實現(xiàn),卻是如此的簡單。

MATLAB還有一個實用的操作,就是利用方括號“[]”將小矩陣合成一個大矩陣,請看下例。

【例2.4】將例2.2的矩陣A連接起來,生成矩陣B。【解】在MATLAB命令窗口中輸入:

>>B=[A,A+12;A+24,A+16]運行結(jié)果為:B=11113131312313141513613151825252517171725262717181925

27

30

171922

2.特殊矩陣的生成

MATLAB中內(nèi)置了許多特殊的矩陣生成函數(shù),通過這些函數(shù),可以自動生成一些具有某種特殊性質(zhì)的矩陣。

1)空矩陣空矩陣用方括號“[]”表示??站仃嚨拇笮榱?,但變量名卻保存在工作空間內(nèi)。

2)單位矩陣單位矩陣使用函數(shù)eye()實現(xiàn),其調(diào)用格式如下:

eye(n)生成n×n維單位矩陣

eye(n,

m)

生成n×m維單位矩陣

【例2.5】生成4×4維單位矩陣?!窘狻吭贛ATLAB命令窗口中輸入:

>>A=eye(4)運行結(jié)果為:A=1000010000100

0

0

1

3)零矩陣零矩陣可用函數(shù)zero()實現(xiàn),其調(diào)用格式與函數(shù)eye()完全相同。

【例2.6】生成3×4維的零矩陣。

【解】在MATLAB命令窗口中輸入:>>zero(3,4)運行結(jié)果為:ans=000000000

0

00

4)全部元素是1的矩陣全部元素為1的矩陣可用函數(shù)ones()實現(xiàn),其調(diào)用格式也與函數(shù)eye()完全相同。

5)對角矩陣的生成對角矩陣指對角線上的元素為任意數(shù),其他元素為零的矩陣。對角矩陣可使用函數(shù)diag()實現(xiàn)。格式:

diag(V)

diag(V,K)說明:V為某個向量,K為向量V偏離主對角線的列數(shù)。K=0,V在主對角線上;K>0,V在主對角線以上;K<0,V在主對角線以下。

【例2.7】對角矩陣生成演示?!窘狻吭贛ATLAB命令窗口中輸入:>>v=[12345];>>diag(v)運行結(jié)果為:ans=1000002000003000004000005>>diag(v,1)運行結(jié)果為:ans=010000002000000300000040000005000000>>diag(v,-1)運行結(jié)果為:ans=0000001000000200000030000

004000

000502.1.3MATLAB的基本要素

1.變量

MATLAB不要求用戶在輸入變量的時候進行聲明,也不需要指定變量類型,MATLAB會自動依據(jù)所賦予變量的值或?qū)ψ兞克M行的操作來識別變量的類型。在賦值過程中,如果賦值變量已存在,MATLAB將使用新值代替舊值,并以新值類型代替舊值類型。

MATLAB變量的命名遵循如下規(guī)則:

(1)變量均先定義、后使用。

(2)變量名以英文字母開頭。

(3)變量名可以由字母、數(shù)字和下劃線混合組成。

(4)對于6.5以上版本,變量名最多可包含63個字符。

(5)變量名中不得包含空格和標點,但可以包含下劃線。如“my-var-121”是合法的變量名,且讀起來更方便。而“my,var121”由于逗號的分隔,就不是一個合法的變量名。

(6)

MATLAB區(qū)分變量大小寫。

如變量“myvar”和“MyVar”表示兩個不同的變量。

【例2.8】生成一個固定變量,其值為45。

【解】在MATLAB命令窗口中輸入:>>con-1=45運行結(jié)果為:con-1=

45即:生成一個變量名為con-1且僅有一個元素(其值為45)的矩陣(固定變量)。

2.預(yù)定義變量

在MATLAB中存在一些固定變量(也稱為常量),這就是MATLAB默認的預(yù)定義變量,也稱為默認變量,如表2.1所示。每當MATLAB啟動時,

這些變量就被產(chǎn)生。

表2.1MATLAB的預(yù)定義變量

【例2.9】

求2π之值。【解】在MATLAB命令窗口中輸入:

>>2*pi運行結(jié)果為:

ans=

6.2832說明:在定義變量時,應(yīng)避免與表2.1中的預(yù)定義變量名重復(fù),以免改變這些常量的值。如果已經(jīng)改變了某個常量的值,可以通過“clear+常量名”命令恢復(fù)該常量的初始設(shè)定值。

3.數(shù)值

在MATLAB中,數(shù)值的表示方法很多,既可以使用傳統(tǒng)的十進制計數(shù)法表示一個數(shù)值,也可以使用科學計數(shù)法表示一個數(shù)值。下列描述都合法:

-990.017.3861.5e-104.5e333在MATLAB中,所有的數(shù)值均按IEEE浮點標準規(guī)定的長型格式存儲,數(shù)值的有效范圍為10-308~10308。

4.字符串

在MATLAB中,創(chuàng)建字符串的方法是:在MATLAB命令窗口中,先將待建的字符串放在一個“單引號對”中,再按“回車”鍵。且該“單引號對”必須在英文狀態(tài)下輸入,但字符串內(nèi)容可以為中文。

【例2.10】顯示字符串“WelcometoMATLAB!”和“歡迎使用MATLAB!”。

【解】在MATLAB命令窗口中輸入:

>>c=′WelcometoMATLAB!′%顯示字符"WelcometoMATLAB!"運行結(jié)果為:

c=

WelcometoMATLAB!

>>′歡迎使用MATLAB′%顯示字符"歡迎使用MATLAB!"

運行結(jié)果為:

ans=歡迎使用MATLAB說明:

如前所述,

本例中以“%”開頭,

直至本行末尾的語句為MATLAB的注釋語句。

5.運算符

MATLAB的運算符包括算術(shù)運算符、關(guān)系運算符和邏輯運算符。

1)算術(shù)運算符

MATLAB的算術(shù)運算符如表2.2所示。

表2.2MATLAB的算術(shù)運算符

【例2.11】

矩陣算術(shù)乘運算演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[1,2,3;4,5,6;7,8,9];>>B=[1,2,3;4,5,6;7,8,9];>>C=A*B%算術(shù)乘,按矩陣乘法規(guī)則進行運算

運行結(jié)果為:C=303642668196102

126

150【例2.12】矩陣點乘運算演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[1,2,3;4,5,6;7,8,9];>>B=[1,2,3;4,5,6;7,8,9];>>D=A.*B%點乘,元素對元素做乘法運行結(jié)果為:D=1

4916

25

36

49

64

812)關(guān)系運算符MATLAB的關(guān)系運算符如表2.3所示。

表2.3MATLAB的關(guān)系運算符

3)邏輯運算符MATLAB的邏輯運算符如表2.4所示。

表2.4MATLAB的邏輯運算符

6.標點符在MATLAB中,一些標點符號也被賦予了特殊的意義或表示要進行一定的運算等,如表2.5所示。注意,表中所有標點符號均在西文狀態(tài)下輸入。

表2.5MATLAB的標點符

1)冒號(:)在MATLAB中,冒號的作用最為豐富。冒號不僅可以定義行向量,還可以截取指定矩陣中的部分元素。下面舉例說明。

【例2.13】用冒號定義增量為1的行向量。

【解】在MATLAB命令窗口中輸入:

>>a=2:8%產(chǎn)生增量默認為1的行向量運行結(jié)果為:

a=

2345678

【例2.14】用冒號定義增量為給定值的行向量。

【解】在MATLAB命令窗口中輸入:

>>a=0:10:80%產(chǎn)生增量為10的行向量運行結(jié)果為:

a=

01020304050607080

【例2.15】用冒號截取指定矩陣中的部分元素。

【解】在MATLAB命令窗口中輸入:

>>A=[1,2,3;4,5,6;7,8,9];

>>B=A(1:2,:)%取出矩陣A的第1行和第2行運行結(jié)果為:B=123456顯見,

矩陣B由A的前兩行組成。

2)分號(;)分號在矩陣中用來分隔行,如果不希望某些運算結(jié)果顯示在屏幕中,還可以用分號作為該行結(jié)束的標志。對于以分號結(jié)尾的行語句,MATLAB不會把其運算結(jié)果顯示在命令窗口中。

7.復(fù)數(shù)

MATLAB提供了復(fù)數(shù)的表達和運算功能,復(fù)數(shù)的基本單位表示為i或j。復(fù)數(shù)的生成可以利用如下語句:

z=a+bi或

z=r*exp(θ*i)其中,r是復(fù)數(shù)的模,θ是復(fù)數(shù)幅角的弧度數(shù)。

下面列出的數(shù)值表示方法在MATLAB中都是合法的:145.1234536i-0.3456

4.3214e12

12e5i【例2.16】已知復(fù)數(shù)z1=3+i4,z2=1+i2,,計算【解】在MATLAB命令窗口中輸入:>>z1=3+4i;>>z2=1+2i;>>z3=2*exp(pi/6)*i;>>z=z1*z2/z3運行結(jié)果為:

z=

0.3349+5.5801i2.2基

2.2.1命令窗口

圖2.1為脫離MATLAB桌面的幾何獨立命令窗口。獲得該窗口的方法是,用鼠標左鍵單擊MATLAB命令窗口右上角的圖標(見圖1.2)即可。若希望將幾何獨立命令窗口嵌放回MATLAB桌面,則只要用鼠標左鍵單擊幾何獨立命令窗口右上角的圖標即可。

2.1幾何獨立的命令窗口

1.命令窗口顯示及設(shè)置命令窗口顯示主要采用缺省顯示方式。MATLAB對該窗口內(nèi)的字符及數(shù)碼采用不同的顏色分類,這樣看起來十分醒目。在缺省顯示方式下,諸如for、while等關(guān)鍵詞采用藍色字體,輸入的指令、表達式以及計算結(jié)果等采用黑色字體,而字符串則采用赭紅色字體。此外,數(shù)值計算結(jié)果都以簡潔的“短(Short)”格式顯示。

可以根據(jù)需要對命令窗口的字體風格、大小、顏色及數(shù)值計算結(jié)果的顯示格式進行設(shè)置,其步驟如下:

(1)選擇MATLAB桌面或命令窗口菜單“File|Preference”,即可打開一個如圖2.2所示的參數(shù)設(shè)置對話框。

(2)選中此對話框左欄的“Fonts”、“Colors”及“CommandWindow”等項,對話框的右邊就出現(xiàn)相應(yīng)的選擇內(nèi)容(圖2.2右部為選中“Fonts”項后的選擇內(nèi)容)。

(3)根據(jù)需要并通過對話框提示,對數(shù)據(jù)顯示格式、字體或數(shù)值計算結(jié)果的顯示格式等進行設(shè)置。

(4)

用鼠標左鍵單擊“OK”按鈕完成設(shè)置。

圖2.2命令窗口參數(shù)設(shè)置對話框

2.命令窗口的常用控制命令命令窗口的常用控制命令見表2.6。

表2.6命令窗口的常用控制命令

3.命令窗口中命令行的編輯

MATLAB不但允許在命令窗口中對輸入的命令行進行各種編輯和運行,而且也允許對過去已經(jīng)輸入的命令行進行回調(diào)、編輯和重運行,這些操作均可用計算機鍵盤上的常用操作鍵完成,

具體內(nèi)容見表2.7。

表2.7命令窗口命令行編輯的常用操作鍵及功能

說明:命令窗口中輸入的所有命令都被記錄在MATLAB工作空間中專門開辟的命令歷史空間中,只要不專門進行刪除操作,它們將不會因為對命令窗口進行“清屏”操作(即運行“clc”命令)而消失,也不會因為用戶對工作空間進行“清除工作空間變量”(即運行“clear”命令)而消失。命令窗口中輸入過的所有命令都被顯示在命令歷史窗口中,以供隨時觀察和調(diào)用。

【例2.17】

計算

的值。

【解】首先計算x1的值。在MATLAB命令窗口中輸入:

>>x1=5*cos(0.1*pi)/(1+sqrt(2))運行結(jié)果為:

x1=

1.9697計算x2的值,既可以采用計算x1的值的方法,通過鍵盤把相應(yīng)字符一個一個“輸入”,也可以應(yīng)用操作鍵,通過命令回調(diào)和編輯,進行新的計算。后一種方法的操作過程如下:(1)用“↑”鍵調(diào)回已輸入過的命令:

>>x1=5*cos(0.1*pi)/(1+sqrt(2))(2)移動光標,把x1改成x2,把cos改成sin,得到:

>>x2=5*sin(0.1*pi)/(1+sqrt(2))(3)按“回車”鍵,即可得到計算結(jié)果:

x2=

0.64002.2.2命令歷史窗口幾何獨立的命令歷史窗口如圖2.3所示。該窗口記錄著用戶在MATLAB命令窗口中所輸入過的所有命令行。歷史記錄包括:每次開啟MATLAB的時間及每次開啟MATLAB后在命令窗口中運行過的所有命令行。同時,命令歷史窗口不但能清楚地顯示命令窗口中運行過的所有命令行,而且所有這些被記錄的命令行都能被復(fù)制或送到命令窗口中再運行。

圖2.3幾何獨立的命令歷史窗口

表2.8命令歷史窗口的主要應(yīng)用功能及操作方法2.2.3當前目錄瀏覽器

幾何獨立的當前目錄瀏覽器如圖2.4所示。該圖展示的是最完整的當前目錄瀏覽器界面,它的組件自上而下有:菜單條、當前目錄設(shè)置區(qū)與工具欄、文件詳細列表區(qū)、M文件或MAT文件描述區(qū)(缺省情況下沒有此描述區(qū))等。

圖2.4幾何獨立的當前目錄瀏覽器

表2.9文件詳細列表區(qū)的主要應(yīng)用功能及操作方法

2.2.4工作空間瀏覽器幾何獨立的工作空間瀏覽器如圖2.5所示。在MATLAB中,工作空間是一個重要的概念,它是指運行MATLAB的程序或命令時生成的所有變量與MATLAB提供的常量構(gòu)成的空間,也稱為內(nèi)存空間(簡稱內(nèi)存)。一旦MATLAB啟動,就會自動建立一個工作空間,該工作空間在MATLAB運行期間一直存在,關(guān)閉MATLAB后自動消失。當運行MATLAB程序時,程序中的變量將被加入到工作空間中,只有特定的命令才可刪除某一變量,否則該變量在關(guān)閉MATLAB之前一直存在。由此可見,一個程序中的運算結(jié)果以變量的形式保存在工作空間后,在MATLAB關(guān)閉之前,該變量還可被別的程序調(diào)用。

圖2.5幾何獨立的工作空間瀏覽器

表2.10工作空間瀏覽器的主要應(yīng)用功能及操作方法

2.2.5數(shù)組編輯器數(shù)組編輯器是MATLAB工作空間瀏覽器中的一個組件,用于生成數(shù)組、觀察數(shù)組內(nèi)容以及編輯其值??刹捎靡韵氯N方法中的任一種打開數(shù)組編輯器:方法一:選中工作空間瀏覽器中的任意一維或二維數(shù)值數(shù)組,再用鼠標左鍵雙擊所選數(shù)組;方法二:用鼠標左鍵單擊工作空間瀏覽器的工具欄圖標;方法三:

選擇工作空間瀏覽器的現(xiàn)場菜單項“OpenSelection”。

圖2.6幾何獨立的數(shù)組編輯器交互界面

通常,在命令窗口中輸入較大規(guī)模數(shù)組的操作方法顯得很笨拙。此時,應(yīng)采用數(shù)組編輯器完成,具體操作方法如下:

(1)在命令窗口中向一個新變量賦“空”矩陣,即方括號[]。

(2)在工作空間瀏覽器中用鼠標左鍵雙擊該變量,打開數(shù)組編輯器。

(3)

逐格填寫數(shù)組元素值,直到完成為止。

2.2.6數(shù)據(jù)文件的存取

1.數(shù)據(jù)文件的保存

數(shù)據(jù)文件的保存使用“save”命令。該命令將工作空間變量保存為一定格式的數(shù)據(jù)文件,具體格式如下:saveFileName將全部變量保存為當前目錄下的FileName.mat文件saveFileNamev1v2將變量v1,v2保存為FileName.mat文件saveFileNamev1v2-append將變量v1,v2添加到已有的FileName.mat文件中saveFileNamev1v2-ascii將變量v1,v2保存為FileName8位ASCII文件saveFileNamev1v2-ascii-double將變量vl,v2保存為FileName16位ASCII文件

2.數(shù)據(jù)文件的調(diào)入數(shù)據(jù)文件的調(diào)入使用“l(fā)oad”命令。該命令將一定格式的數(shù)據(jù)文件中的變量裝入工作空間,具體命令如下:loadFileName將FileName.mat文件中的全部變量裝入工作空間loadFileNamev1v2將FileName.mat文件中的v1,v2變量裝入工作空間loadFileNamev1v2-ascii將FileNameASCII文件中的v1,v2變量裝入工作空間

說明:①FileName為文件名。文件名可以包含路徑,例如e:/user/my,但可以不包含擴展名。如果文件名不包含路徑,則該文件即在MATLAB的當前路徑中。缺省情況下,F(xiàn)ileName為二進制文件。②v1,v2為變量名。變量名與變量名之間必須以空格相分隔。指定的變量個數(shù)不限,只要工作空間或文件中存在即可。③-ascii選項使數(shù)據(jù)以ASCII格式處理。不包含擴展名的ASCII文件可以在任何文字處理器中被修改。如果數(shù)據(jù)較多的變量需要進行修改,則很適合使用ASCII格式的數(shù)據(jù)文件。④如果命令后沒有-ascii選項,那么數(shù)據(jù)以二進制格式處理,生成的數(shù)據(jù)文件一定包含mat擴展名。

【例2.18】數(shù)據(jù)文件存取演示。【解】在MATLAB命令窗口中輸入:>>A=[12;34];%輸入矩陣A>>B=[56;78];%輸入矩陣B>>savee:\user\myAB%將變量A,B保存為my.mat文件,該文件所在路徑為e:\user\>>savemy1ABascii%將變量A,B保存為ASCII文件%my1,該文件所在路徑為當前路徑>>loade:\user\my%將e:\user\my.mat文件中的全部變量裝入內(nèi)存

圖2.7例2.18的ASCII數(shù)據(jù)文件

2.3數(shù)

2.3.1向量及其運算

1.向量的生成

1)在命令窗口中直接生成向量在MATLAB中,生成向量最簡單的方法就是在命令窗口中按一定格式直接輸入,且遵循與矩陣輸入基本相同的規(guī)則,即向量元素用方括號“[]”括起來,行向量元素之間用空格或逗號相隔,

列向量元素之間用分號相隔。

【例2.19】命令窗口直接生成向量演示?!窘狻吭贛ATLAB命令窗口中輸入:

>>X1=[12345]運行結(jié)果為:X1=12345>>X2=[1,2,3,4,5]運行結(jié)果為:X2=12345>>X3=[1;

2;

3;

4;

5]′%求列向量的轉(zhuǎn)置

運行結(jié)果為:X3=

12345說明:MATLAB生成向量(或矩陣)轉(zhuǎn)置的符號為右單引號“′”,而不是一般線性代數(shù)教材中的上標“T”。

2)等差元素向量的生成若向量的元素過多,且向量各元素有等差規(guī)律,則可采用冒號生成法或使用linspace()函數(shù)生成向量。(1)冒號生成法?;靖袷綖椋篤=a:n:b。其中,V為生成的向量,a為向量V的第一個元素,b為向量V的最后一個元素;n為步長,缺省設(shè)置為1,且n=1時可忽略。(2)使用linspace()函數(shù)。格式:

X=linspace(a,b,n)說明:生成元素在[a,b]之間的線性等分行向量,向量元素個數(shù)為n,n的缺省值為100。

【例2.20】

等差元素向量生成演示。【解】在MATLAB命令窗口中輸入:

>>X1=1:2:9運行結(jié)果為:X1=

13579>>X2=linspace(10,-2,5)運行結(jié)果為:X2=

10

7

4

1

-2

2.向量的基本運算

1)向量與常數(shù)的四則運算向量與常數(shù)的四則運算是指向量中的每個元素與常數(shù)進行的加、減、乘、除等運算,運算符號分別為“+”、“-”、“*”及“/”。注意,當進行除法運算時,向量只能作為被除數(shù)。

2)向量與向量之間的加、減運算向量與向量之間的加、減運算是指向量中的每個元素與另一個向量中相對應(yīng)元素的加、減運算,運算符號為“+”和“-”。

3)向量的點積和叉積運算根據(jù)數(shù)學知識可知,向量的點積等于其中一個向量的模與另一個向量的模在這個向量方向上投影的乘積。向量叉積的幾何意義是指過兩個相交向量的交點并與兩向量所在平面垂直的向量,且向量維數(shù)只能為3。在MATLAB中,使用函數(shù)dot()與cross()分別計算向量的點積與叉積。

【例2.21】

向量的點積與叉積運算演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[102030];>>B=[405060];>>C=dot(A,B)算向量A與B的點積運行結(jié)果為:C=

3200>>C=cross(A,B)%計算向量A與B的叉積運行結(jié)果為:C=

-300600-3002.3.2數(shù)組及其運算

1.數(shù)組的概念數(shù)組是一組實數(shù)或復(fù)數(shù)排成的長方陣列。單維數(shù)組通常是指單行或單列的矩陣,即行向量或列向量。而多維數(shù)組則可以認為是矩陣在維數(shù)上的擴張,實際上也是矩陣中的一種特例。例如,從數(shù)據(jù)結(jié)構(gòu)上看,二維數(shù)組和數(shù)學中的矩陣沒有區(qū)別。在MATLAB中,數(shù)組和矩陣的運算有較大的區(qū)別。因為,矩陣作為一種變換或映射算子的體現(xiàn),其運算有著明確而嚴格的數(shù)學規(guī)則。而MATLAB中的數(shù)組運算是MATLAB所定義的規(guī)則,其目的是為了數(shù)據(jù)管理方便、操作簡單、命令形式自然以及執(zhí)行計算的有效。

2.數(shù)組的基本數(shù)值運算

1)數(shù)組與常數(shù)的四則運算數(shù)組與常數(shù)的四則運算是指數(shù)組中的每個元素與數(shù)進行加、減、乘、除運算,運算符號分別為“+”、“-”、“*”及“/”。單維數(shù)組與常數(shù)的運算與向量與數(shù)的運算完全相同。

【例2.22】數(shù)組與常數(shù)的四則運算演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[1,2,3;2,3,4;3,4,5];>>B=[1,2,3;4,5,6;7,8,9];>>s=5;>>C=s*A-B/s+10運行結(jié)果為:C=14.800019.600024.400019.200024.000028.800023.6000

28.400033.2000

2)數(shù)組間的四則運算在MATLAB中,數(shù)組間的四則運算按元素與元素的方式進行。其中,數(shù)組之間的加法、減法運算與矩陣的加法、減法運算完全相同,運算符號為“+”、“-”;數(shù)組間的相乘、相除運算符號為“.*”、“./”或“.\”。

【例2.23】數(shù)組相乘運算演示。【解】在MATLAB命令窗口中輸入:>>A=[1,3,5;2,4,6;3,5,7];>>B=[2,4,6;1,3,5;3,5,7];>>C=A.*B運行結(jié)果為:C=21230212309

2549【例2.24】

數(shù)組相除運算演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[1,3,5;2,4,6;3,5,7];>>B=[2,4,6;1,3,5;3,5,7];>>C=A\.B%點左除運行結(jié)果為:C=2.00001.33331.20000.50000.75000.83331.00001.00001.0000>>C=A./B%點右除

運行結(jié)果為:C=0.50000.75000.83332.00001.33331.20001.00001.00001.0000顯見,

由于數(shù)組點左除與點右除含義不同,

因而運算結(jié)果不相同。

3)數(shù)組的乘方運算在MATLAB中,數(shù)組的乘方運算(即冪運算)符號為“.^”,按元素對元素的冪運算進行,

這與矩陣的冪運算完全不同。

【例2.25】數(shù)組的乘方運算演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[1,3,5;2,4,6;3,5,7];>>C=A.^2運行結(jié)果為:C=1925416369

2549

說明:①數(shù)組“乘、除”及“乘方”運算符前的小黑點絕不能遺漏,否則將不按照數(shù)組運算規(guī)則進行運算。②在執(zhí)行數(shù)組與數(shù)組之間的運算時,參與運算的數(shù)組必須維數(shù)相同,運算結(jié)果所得數(shù)組也總與原數(shù)組維數(shù)相同。

3.元胞數(shù)組(CellArray)

元胞數(shù)組是MATLAB中一種特殊的數(shù)組,它的基本元素是元胞(Cell),每個元胞本身在數(shù)組中是平等的,它們只能以下標區(qū)分。元胞可以存放任何類型、任何大小的數(shù)組,包括任意維數(shù)值數(shù)組、字符串數(shù)組以及符號對象等,并且同一個元胞數(shù)組中各元胞中的內(nèi)容可以不同。此外,同數(shù)值數(shù)組一樣,元胞數(shù)組維數(shù)不受限制,可以是一維、二維或更高維。在MATLAB中,元胞數(shù)組必須使用花括號“{}”,這也是元胞數(shù)組與一般數(shù)組(或矩陣)的區(qū)別。例如,元胞數(shù)組A的第i行、第j列的元胞(元素)可表示為A{i,j}。生成元胞數(shù)組有兩種方法。

1)使用函數(shù)cell()生成元胞數(shù)組格式:c=cell(n)生成n×n維空元胞數(shù)組

c=cell(m,n)生成m×n維空元胞數(shù)組

c=cell(m,n,p,…)生成m×n×p×…維空元胞數(shù)組

c=cell(size(A))生成與A維數(shù)組相同的空元胞數(shù)組,A為數(shù)值數(shù)組或元胞數(shù)組

【例2.26】使用函數(shù)cell()生成一個2×2維元胞數(shù)組。

【解】在MATLAB命令窗口中輸入:

>>A=ones(3,4)%生成3×4維全部元素為1的數(shù)值矩陣運行結(jié)果為:A=111111111

111

>>C=cell({A,[1,2];′cell′,[1;2]})%使用cell()函數(shù)生成元胞數(shù)組C運行結(jié)果為:

C=[3x4double][1x2double]

′cell′[2x1double]

>>C(:,1)%顯示元胞數(shù)組C的第1列內(nèi)容運行結(jié)果為:ans=[3x4double]

′cell′

2)使用花括號“{}”生成元胞數(shù)組

【例2.27】直接使用花括號“{}”生成例2.26的元胞數(shù)組?!窘狻吭贛ATLAB命令窗口中輸入:

>>A=ones(3,4);

>>C={A,[1,2];′cell′,[1;2]}運行結(jié)果為:

C=[3x4double][1x2double]′cell′[2x1double]顯見,

運行結(jié)果與例2.26完全相同。

建議讀者優(yōu)先采用第二種方法生成元胞數(shù)組。

2.3.3基本數(shù)學函數(shù)運算

MATLAB之所以被稱為是演草紙式的科學計算語言,是因為在其工作空間中可以方便地進行針對數(shù)組(或標量)的各種基本數(shù)學函數(shù)運算。MATLAB的基本數(shù)學函數(shù)見表2.11~2.15。

表2.11三角函數(shù)和雙曲函數(shù)

表2.12指數(shù)與對數(shù)函數(shù)

表2.14坐標變換函數(shù)

說明:①表2.11~2.15中所列函數(shù)既滿足數(shù)組運算規(guī)則,也滿足標量運算規(guī)則,因此,可以在MATLAB工作空間中隨心所欲地進行針對數(shù)組(或標量)的各種基本函數(shù)的運算,尤其是針對標量的各種基本函數(shù)的運算,就如同使用一個功能強大的計算器一樣方便。②表2.11中三角函數(shù)運算的角度單位均為弧度。③

表2.11~2.15中各函數(shù)的使用格式,可參見MATLAB命令行幫助或聯(lián)機幫助。

【例2.28】求tan45°的函數(shù)值。

【解】由于三角函數(shù)運算的角度單位是弧度,因此應(yīng)先將單位由度轉(zhuǎn)化為弧度再計算。在MATLAB命令窗口中輸入:

>>tan(pi/4)運行結(jié)果為: ans=

1.0000【例2.29】求復(fù)數(shù)z=5+i5的模和相角?!窘狻吭贛ATLAB命令窗口中輸入:>>z=5+5i;>>Am=abs(z)%計算復(fù)數(shù)z的模運行結(jié)果為:Am=

7.0711>>Fm=angle(z)%計算復(fù)數(shù)z的相角運行結(jié)果為:Fm=

0.7854即:|z|=|5+i5|=7.0711,∠z=∠(5+i5)=0.7854(rad)=45°。

2.3.4矩陣的函數(shù)運算

2.1.2節(jié)已經(jīng)介紹了矩陣與特殊矩陣的生成等內(nèi)容?,F(xiàn)代控制理論中應(yīng)用最多的數(shù)學運算就是矩陣運算,它包括矩陣特征值運算與矩陣函數(shù)運算。其中,矩陣的基本數(shù)值運算與數(shù)組的基本數(shù)值運算基本相同,惟一不同的是,矩陣之間進行“乘、除”及“乘方”運算的運算符沒有小黑點,即為“*”、“/”(或“\”)及“^”。鑒于此,本章對矩陣的基本數(shù)值運算就不作專門介紹了,而只著重介紹矩陣的函數(shù)運算。矩陣的函數(shù)運算是指對矩陣自身進行一些特有的運算,例如矩陣的行列式運算、特征值運算、求逆運算、秩運算等。

MATLAB提供了進行這一類運算的函數(shù),

如表2.16所示。

表2.16實現(xiàn)矩陣特有運算的函數(shù)

1.矩陣的轉(zhuǎn)置、逆運算與行列式運算

盡管矩陣的轉(zhuǎn)置運算不屬于矩陣函數(shù)運算之列,但這里都一并給予介紹。與向量轉(zhuǎn)置一樣,矩陣的轉(zhuǎn)置也用符號“′”表示。

【例2.30】求矩陣的轉(zhuǎn)置演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[123;456;789];>>C=A′運行結(jié)果為:C=1472583

6

9【例2.31】矩陣求逆演示?!窘狻吭贛ATLAB命令窗口中輸入:>>A=[120;25-1;410-1];>>B=inv(A)運行結(jié)果為:B=

52-2-2-110-21在MATLAB中,

求矩陣的行列式可用函數(shù)det()來實現(xiàn)。

【例2.32】求矩陣的行列式演示。【例】在MATLAB命令窗口中輸入:>>A=[120;25-1;410-1];>>B=det(A)運行結(jié)果為:B=

1

2.矩陣的特征值運算在線性代數(shù)中,矩陣特征值的計算過程相當麻煩,而在MATLAB中,只需使用函數(shù)eig()即可完成。格式:d=eig(A)

D=eig(A)[V,D]=eig(A)說明:d為矩陣A的特征值向量;V、D分別為矩陣A的特征向量矩陣與特征值矩陣。

【例2.33】求矩陣 的特征值向量、

特征向量矩陣和特征值矩陣。

【解】在MATLAB命令窗口中輸入:>>A=[120;25-1;410-1];>>d=eig(A)%求矩陣A的特征值向量運行結(jié)果為:d=3.73210.26791.0000>>[B,

C]=eig(A)%求矩陣A的特征向量矩陣和特征值矩陣

運行結(jié)果為:B=-0.2440-0.91070.4472-0.33330.33330.0000-0.9107-0.24400.8944C=3.73210000.267900

0

1.0000即:矩陣A的特征值向量為[3.73210.26791];矩陣A的特征向量矩陣B和特征值矩陣C分別為

3.矩陣的秩運算

線性代數(shù)中,矩陣秩的計算非常繁雜,但在MATLAB中,只需使用函數(shù)rank()就可求得。

【例2.34】矩陣求秩演示。

【解】在MATLAB命令窗口中輸入:

>>A=[120;25-1;410-1];

>>B=rank(A)運行結(jié)果為:

B=

32.3.5多項式及其運算在控制系統(tǒng)的分析與設(shè)計中,常常需要求出控制系統(tǒng)的特征根或傳遞函數(shù)的零、極點,這些都與多項式及其運算有關(guān)。

1.多項式的表達及其構(gòu)造代數(shù)運算中,

多項式一般可表示為如下形式:P(x)=a0xn+a1xn-1+a2xn-2+…+an-1x+an

(2.1)對于式(2.1),很容易將其系數(shù)按降冪次序存放在如下的行向量中:P=[a0,a1,a2,…,an-1,an]

【例2.35】用MATLAB構(gòu)造多項式P(x)=2x5+5x4+4x2+x+4。

【解】在MATLAB命令窗口中輸入:>>P=[250414];>>poly2sym(P)運行結(jié)果為:ans=

2*x^5+5*x^4+4*x^2+x+4說明:函數(shù)poly2sym()是MATLAB符號數(shù)學工具箱(見2.4節(jié))中的函數(shù)。要注意的是,用上述方法構(gòu)造多項式時,無論多項式的系數(shù)是否為零,

都必須寫完整。

2.多項式運算函數(shù)

表2.17多項式運算函數(shù)

3.多項式運算舉例

1)代數(shù)方程求根

【例2.36】求方程x5+2x4+24x3+48x2-25x-50=0的根。

【解】在MATLAB命令窗口中輸入:

>>P=[122448-25-50];

>>r=roots(P)運行結(jié)果為:r=

0.0000+5.0000i0.0000-5.0000i1.0000-2.0000-1.00002)用多項式的根構(gòu)造多項式

【例2.37】用多項式的根構(gòu)造多項式P(x)=x5+2.5x4+2x2+0.5x+2。

【解】在MATLAB命令窗口中輸入:>>P=[12.5020.52];>>r=roots(P)%求多項式的根

運行結(jié)果為:r=-2.77090.5611+0.7840i0.5611-0.7840i-0.4257+0.7716i-0.4257-0.7716i>>poly(r)%用多項式的根構(gòu)造多項式運行結(jié)果為:ans=

1.00002.5000-0.00002.00000.50002.0000

顯見,運行結(jié)果為多項式P(x)=x5+2.5x4+2x2+0.5x+2按降冪次序排列的系數(shù)向量。說明:當用多項式的根生成多項式時,如果某些根有虛部(由于截斷誤差的存在,用函數(shù)poly()生成的多項式可能有一些小的虛部),則可以通過使用函數(shù)real()抽取實部來消除。

3)求矩陣的特征多項式

MATLAB中的函數(shù)poly()也可以用來計算矩陣特征多項式的系數(shù)。

【例2.38】求矩陣的特征多項式。

【解】在MATLAB命令窗口中輸入:>>A=[1.2,3,-0.9;5,1.75,6;9,0,1];>>poly(A)運行結(jié)果為:ans=

1.0000-3.9500-1.8500-163.2750即:矩陣A的特征多項式為

f(s)=s3-3.95s2-1.85s-163.275

4)多項式卷積(乘法)與多項式解卷(除法)

【例2.39】已知多項式p(x)=x

3+2x

2+3x+4和q(x)=10x+20x+30,求兩個多項式的卷積p(x)*q(x),并用多項式解卷驗證。

【解】(1)求兩個多項式的卷積。在MATLAB命令窗口中輸入:>>p=[1234];>>q=[102030];>>c=conv(p,q)運行結(jié)果為:

c=

1040100160170120即:兩個多項式的卷積為c(x)=p(x)*q(x)=10x5+40x4+100x3+160x2+170x+120(2)用多項式解卷驗證。在MATLAB命令窗口中輸入:

>>[s,r]=deconv(c,p)運行結(jié)果為:s=

102030r=

000000說明:①本例運行結(jié)果中的s是向量c除以向量p所得的結(jié)果,r為余數(shù)。②由本例可見,多項式卷積函數(shù)conv()與解卷函數(shù)deconv()互為逆運算。③

用MATLAB建立控制系統(tǒng)的傳遞函數(shù)模型時,

會經(jīng)常使用函數(shù)conv()。

5)分式多項式的部分分式展開在應(yīng)用時域分析法分析控制系統(tǒng)動態(tài)性能時,常常需要求出系統(tǒng)在典型輸入信號作用下的時間響應(yīng)c(t),為此,必須首先求出c(t)的象函數(shù)C(s),并將其展開成部分分式。這項計算盡管不難,但卻很繁瑣。而使用分式多項式的部分分式展開函數(shù)residue(),可以輕松地解決這個問題?!纠?.40】已知控制系統(tǒng)的輸出象函數(shù),將其展開為部分分式。

【解】在MATLAB命令窗口中輸入:>>num=[28];>>den=[1560];>>[z,p,k]=residue(num,den)運行結(jié)果為:z=0.6667-2.00001.3333p=-3.0000-2.00000k= []

由運行結(jié)果可得到C(s)的部分分式展開式為

6)多項式曲線擬合進行控制系統(tǒng)設(shè)計與仿真時,常常需要采用曲線擬合方法。所謂曲線擬合,就是要尋找一條光滑曲線,使其在某種準則下能最佳地擬合已知數(shù)據(jù)。在MATLAB中,使用函數(shù)polyfit()對已知數(shù)據(jù)進行曲線擬合,擬合方法采用最小二乘法(即最小誤差平方和準則)。

【例2.41】曲線擬合的實例?!窘狻吭贛ATLAB命令窗口中輸入:>>x=0:0.1:1;%生成用行向量表示的自變量數(shù)據(jù)>>y=[-.4471.9783.286.167.087.347.669.569.489.3011.2];>>p=polyfit(x,y,2)%計算二階擬合多項式系數(shù)運行結(jié)果為:p=

-9.810820.1293-0.03172.4符

2.4.1符號對象的創(chuàng)建和使用在MATLAB的數(shù)值計算中,數(shù)值表達式所引用的變量必須事先被賦值,否則無法計算。因此,前面介紹的有關(guān)數(shù)值運算,其運算變量都是被賦值的數(shù)值變量。而在MATLAB的符號運算中,運算變量則是符號變量,所出現(xiàn)的數(shù)字也作為符號來處理。實際上,符號數(shù)學是對字符串進行的運算。進行符號運算時,首先要創(chuàng)建(即定義)基本的符號對象,它可以是常數(shù)、變量和表達式。然后利用這些基本符號對象構(gòu)成新的表達式,進而完成所需的符號運算。

符號對象的創(chuàng)建使用函數(shù)sym()和syms()來完成,它們的調(diào)用格式如下:

S=sym(A)將數(shù)值A(chǔ)轉(zhuǎn)換成符號對象S,A是數(shù)字(值)或數(shù)值矩陣或數(shù)值表達式

S=sym(′x′)將字符串x轉(zhuǎn)換成符號對象S

S=sym(A,flag)將數(shù)值A(chǔ)轉(zhuǎn)換成flag格式的符號對象

symsarg1arg2…arg1=sym(′arg1′),arg2=sym(′arg2′),…

的簡潔形式

【例2.42】創(chuàng)建符號變量和符號表達式演示。

【解】在MATLAB命令窗口中輸入:

>>y=sym(′x′);%定義變量y,它代表字符x運行結(jié)果為:

y=

x

>>f=sym(′x^3+x^2+4*x+4′)%定義變量f,它代表符號表達式x3+x2+4x+4運行結(jié)果為:f=

x^3+x^2+4*x+4

【例2.43】字符表達式轉(zhuǎn)換為符號變量演示。

【解】在MATLAB命令窗口中輸入:

>>y=sym(′2*sin(x)*cos(x)′)%將字符表達式轉(zhuǎn)換為符號變量運行結(jié)果為:y=

2*sin(x)*cos(x)>>y=simple(y)%將已有的y符號表達式化成最簡形式運行結(jié)果為:y=

sin(2*x)

【例2.44】應(yīng)用符號運算驗證三角等式sinφ1cosφ2-cosφ1sinφ2=sin(φ1-φ2)。

【解】在MATLAB命令窗口中輸入:

>>symsfai1fai2;%定義符號變量fai1,fai2

>>y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))

運行結(jié)果為:

y=

sin(fai1-fai2)

說明:由本例可看出,使用函數(shù)syms創(chuàng)建符號對象較函數(shù)sym()簡單。但注意,使用symsarg1arg2…格式定義符號變量時,變量名之間只能用空格符隔離,而不能采用逗號或分號,如寫成symsfai1,fai2就是錯誤的,它不能把fai2定義為符號變量。

2.4.2符號運算中的運算符號和基本函數(shù)

1.基本運算符

(1)運算符號“+”、“-”、“*”、“\”、“/”、“^”分別實現(xiàn)矩陣的加法、減法、乘法、左除、右除與求冪運算。

(2)運算符號“.*”、“.\”、“./”、“.^”分別實現(xiàn)元素對元素的數(shù)組相乘、左除、右除與求冪運算。

(3)

運算符號“′”實現(xiàn)矩陣的Hermition轉(zhuǎn)置或復(fù)數(shù)矩陣的共軛轉(zhuǎn)置;

運算符號“.′”實現(xiàn)數(shù)組轉(zhuǎn)置或復(fù)數(shù)矩陣的非共軛轉(zhuǎn)置。

2.關(guān)系運算符在符號對象的比較中,沒有“大于”、“大于等于”、“小于”、“小于等于”的概念,而只有是否“等于”的概念。運算符號“==”和“~=”分別對它兩邊的對象進行“相等”、“不相等”的比較。當事實為“真”時,比較結(jié)果用1表示;當事實為“假”時,比較結(jié)果用0表示。需要特別指出的是,MATLAB的符號對象無邏輯運算功能。

3.三角函數(shù)及雙曲函數(shù)除函數(shù)atan2()僅能用于數(shù)值計算外,其余的三角函數(shù)(如sin())、雙曲函數(shù)(如cosh())及其反函數(shù)(如asin()、acosh()),無論在數(shù)值計算還是符號運算中,其使用方法都相同。

4.指數(shù)與對數(shù)函數(shù)在數(shù)值計算與符號運算中,指數(shù)函數(shù)與對數(shù)函數(shù)的使用方法完全相同,如函數(shù)sqrt()、exp()、expm()、log()、

log2()及l(fā)og10()等。

5.復(fù)數(shù)函數(shù)涉及復(fù)數(shù)的共軛函數(shù)conj()、求實部的函數(shù)real()、求虛部的函數(shù)imag()和求絕對值的函數(shù)abs(),在符號與數(shù)值計算中的使用方法相同。

6.矩陣代數(shù)運算

在符號運算中,MATLAB提供的常用矩陣代數(shù)函數(shù)有diag()、inv()、det()、rank()、poly()、expm()及eig()等。它們的用法幾乎與數(shù)值計算中的情況完全一樣?!纠?.45】基本運算符號與基本函數(shù)應(yīng)用演示。【解】在MATLAB命令窗口中輸入:>>symsx;%定義符號變量x>>f1=x^3+x^2+4*x+4;%生成多項式f1>>f2=x^2+4*x+10;%生成多項式f2>>f=f1+f2%求f1與f2之和運行結(jié)果為:

f=x^3+2*x^2+8*x+14>>y=sqrt(x^5) %求函數(shù)的平方根

運行結(jié)果為:y=(x^5)^(1/2)>>z=log10(x) %求以10為底的對數(shù)運行結(jié)果為:z=log(x)/log(10)【例2.46】矩陣代數(shù)運算演示。求矩陣的行列式值、逆和特征值。

【解】在MATLAB命令窗口中輸入:

>>symsa11a12a21a22;%定義符號變量a11,a12,a21,a22

>>A=[a11,a12;a21,a22]%生成矩陣A運行結(jié)果為:A=[a11,a12][a21,a22]>>DA=det(A)

%求矩陣A的行列式

運行結(jié)果為:DA=

a11*a22-a12*a21>>IA=inv(A)%求矩陣A的逆矩陣運行結(jié)果為:IA=[a22/(a11*a22-a12*a21),-a12/(a11*a22-a12*a21)][-a21/(a11*a22-a12*a21),a11/(a11*a22-a12*a21)]>>EA=eig(A)%求矩陣A的特征值運行結(jié)果為:EA=1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)

2.4.3符號表達式的操作

MATLAB符號表達式的操作涉及符號運算中的因式分解、展開、簡化等,在符號運算中非常重要,其相關(guān)的操作命令及功能見表2.18。

表2.18符號表達式的操作命令

1.符號(包括符號變量、符號常量及數(shù)值數(shù)組)替換

【例2.47】

已知數(shù)學表達式y(tǒng)=axn+bt+c,試對其進行以下的符號替換:(1)a=sint,b=lnz,c=de2t的符號變量替換;(2)n=3,c=π的符號常量替換;(3)c=1∶2∶5的數(shù)值數(shù)組替換;(4)的數(shù)值矩陣替換。

【解】在MATLAB命令窗口中輸入:>>symsabcdetnxyz;>>y=a*x^n+b*t+c;>>y1=subs(y,[abc],[sin(t)log(z)d*exp(2*t)])%符號變量替換運行結(jié)果為:y1=

sin(t)*x^n+log(z)*t+d*exp(2*t)>>y2=subs(y,[nc],[3pi])%符號常量替換

運行結(jié)果為:y2=

a*x^3+b*t+pi>>y3=subs(y,c,1:2:5)%數(shù)值數(shù)組替換運行結(jié)果為:y3=[a*x^n+b*t+1,a*x^n+b*t+3,a*x^n+b*t+5]>>y4=subs(y,c,[12;34])%數(shù)值矩陣替換

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論