《電路分析實驗教程》課件-第3章_第1頁
《電路分析實驗教程》課件-第3章_第2頁
《電路分析實驗教程》課件-第3章_第3頁
《電路分析實驗教程》課件-第3章_第4頁
《電路分析實驗教程》課件-第3章_第5頁
已閱讀5頁,還剩86頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章MATLAB基本知識3.1

MATLAB概述3.2

MATLAB基本運算與函數3.3基本繪圖方法3.4電路分析中常用的計算方法

3.1MATLAB概述

3.1.1MATLAB的概況

MATLAB是矩陣實驗室(Matrix

Laboratory)的簡稱。除具備卓越的數值計算能力外,它還提供了專業水平的符號計算、文字處理、可視化建模仿真和實時控制等功能。

MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C、FORTRAN等語言完成相同的事情簡捷得多。時至今日,經過MathWorks公司的不斷完善,MATLAB已經發展成為適合多學科,多種工作平臺的功能強大的大型軟件。在歐美等高校,MATLAB已經成為線性代數、自動控制理論、數理統計、數字信號處理、時間序列分析、動態

系統仿真等高級課程的基本教學工具。

在設計研究單位和工業部門,MATLAB被廣泛用于科學研究和解決各種具體問題。可以說,無論從事工程方面的哪個學科,都能在MATLAB里找到合適的功能。

本章是基于MATLAB6.5版編寫的,但大部分內容也適用于其他6.x版。3.1.2MATLAB的語言特點

一種語言之所以能如此迅速地普及,顯示出如此旺盛的生命力,是由于它有著不同于其他語言的特點,以下簡單介紹一下MATLAB的主要特點。

(1)語言簡潔緊湊,使用方便靈活,庫函數極其豐富。MATLAB程序書寫形式自由,利用其豐富的庫函數避開繁雜的子程序編程任務,壓縮了一切不必要的編程工作。

(2)運算符豐富。由于MATLAB是用C語言編寫的,因

此MATLAB提供了和C語言幾乎一樣多的運算符,靈活使用MATLAB的運算符將使程序變得極為簡單。

(3)MATLAB既具有結構化的控制語句(如for循環、while循環、break語句和if語句),又有面向對象編程的特性。(4)程序限制不嚴格,程序設計自由度大。例如,在MATLAB里,用戶無需對矩陣預定義就可使用。

(5)MATLAB的圖形功能強大。在FORTRAN和C語言里,繪圖比較困難,但在MATLAB里,數據的可視化非常簡單。MATLAB還具有較強的編輯圖形界面的能力。

(6)功能強大的工具箱是MATLAB的另一特色。MATLAB包含兩個部分:核心部分和各種可選的工具箱。核心部分中有數百個核心內部函數。其工具箱又分為功能性工具箱和學科性工具箱兩類。功能性工具箱主要用來擴充其符號計算功能、圖示建模仿真功能、文字處理功能,以及與硬件實時交互功能。功能性工具箱用于多種學科,其專業性較強,如controltoolbox、signlproceessingtoolbox、commumnicationtoolbox等。

(7)源程序的開放性。開放性也許是MATLAB最受人們歡迎的特點。除內部函數以外,所有MATLAB的核心文件和工具箱文件都是可讀可改的源文件,用戶可通過對源文件的修改以及加入自己的文件構成新的工具箱。

(8)MATLAB的缺點是,它和其他高級程序相比,程序的執行速度較慢。這是因為MATLAB的程序不用編譯等預處理,也不生成可執行文件,程序為解釋執行。3.1.3MATLAB的工作環境

1.命令窗口

點擊桌面上的MATLAB圖標,進入MATLAB后,就可看到命令窗口(CommandWindow)。命令窗口是與MATLAB編譯器連接的主窗口,當其中顯示符號“>>”時,就代表系統已處于準備接受命令的狀態。它用于輸入MATLAB命令,并顯示計算結果,如圖3.1所示。圖3.1MATLAB的界面

2.圖形窗口

通常,只要執行了任一種繪圖命令,就會自動產生圖形窗口。以后的繪圖都在這一個圖形窗口中進行。如果想再建一個或幾個圖形窗口,則可鍵入figure,MATLAB會新建一個圖形窗口,并自動給它依次排序。如果要人為規定新圖為3,則可鍵入figure(3)。

3.文本編輯窗口

用MATLAB計算有兩種方式,一種是直接在命令窗口一行一行地輸入各種命令,這只能進行簡單的計算,對于稍大一些的計算,就不方便了。另一種方法是把多行命令組成一個M文件,讓MATLAB來自動執行,編寫和修改這種文件就要用文本編輯窗口。

4.M文件

MATLAB的源文件都是以后綴為M的文件來存放的,這種.m文件其實就是一個純文本文件,它采用的是MATLAB所特有的一套語言及語法規則。

M文件有兩種寫法:一種稱為腳本,即包含了一連串的MATLAB命令,執行時依序執行;另一種稱為函數,與MATLAB提供的內部函數一樣,可以供其他程序或命令調用。注意:保存.[KG-*3]m文件所用的文件名不能以數字開頭,其中不能包含中文字符,也不能包含“.”、“+”、“-”、“^”和空格等特殊字符(但可以包含下劃線“-”),也不能與當前工作空間(Wordspace)中的參數、變量、元素同名,當然也不能與MATLAB的固有內部函數同名。3.1.4MATLAB的在線幫助

1.Help命令

Help命令是查詢函數相關信息的最基本方式,信息會直接顯示在命令窗口中,如>>helpsign

就會顯示如下解釋:

SIGNSignumfunction.

ForeachelementofX,SIGN(X)returns1iftheelement

isgreaterthanzero,0ifitequalszeroand-1ifitis

lessthanzero.ForthenonzeroelementsofcomplexX,

SIGN(X)=X./ABS(X).

2.MATLABHelp窗口

通過選擇“Help”菜單中的“MATLABHelp”項,或是選擇“View”菜單中的“Help”項,就可以打開“MATLABHelp”窗

口。窗口中包括Contents、index、Search、Demos、Favorites等子模塊,可以非常方便地對所需函數信息進行

搜索和查詢。3.2MATLAB基本運算與函數

3.2.1MATLAB的基本概念

1.變量

和其他高級語言一樣,MATLAB也是使用變量來保存信息的。變量由變量名表示,變量的命名應遵循如下規則:·變量名必須以字母開頭。

·變量名可以由字母、數字和下劃線混合組成。

·變量名區分字母大小寫。

·變量名的字符長度不應超過31個。

·在MATLAB中還存在著一些系統默認的固定變量,即在MATLAB語句中若出現變量名,則系統就將其賦予默認值。MATLAB的變量分為字符變量和數值變量兩種,字符變量必須用單引號括起來。例如,用戶可輸入:

a=′happynewyear′,

表示將字符串′happynewyear′賦值給字符變量a。

若用戶輸入:b=365,

表示將數值365賦值給數值變量b。

和其他高級語言不同的是,MATLAB使用變量時不需要預先對變量類型進行說明,MATLAB會自動根據所輸入的數字來決定變量的數據類型和分配存儲空間。

2.數值

在MATLAB內部,每一個數據元素都是用雙精度來表示和存儲的,大約有16位有效數字。其數值有效范圍約為

10-308~10+308。

但在進行數據輸入/輸出時,MATLAB可以采用不同的格式。如果參加運算的每一個元素均為整數,則MATLAB將用不加小數點的純整數格式顯示運算結果;否則,按默認的輸出格式顯示結果。MATLAB的默認格式為short格式,該格式顯示運算結果為保留小數后4位有效數字。用

戶可以通過format命令改變格式,但并不影響該數據在MATLAB內部的存儲精度,設置為short和long輸出格式的命令分別為

Formatshort

Formatlong

MATLAB通常用十進制數來表示一個數,也可用科學計數法來表示一個數。另外,MATLAB還可以由如下語句來

產生:

c=a+i*b或c=a+j*b%將實部為a虛部為b的復數賦值給復

變量c

c=a*exp(i*b)或c=a*exp(j*b)%將模為a輻角為b的復數賦

值給復變量c

其中,i、j是虛數單位。

3.矩陣

矩陣是MATLAB進行數據處理和運算的基本元素,MATLAB的大部分運算或命令都是在矩陣運算的意義下執行的。我們通常意義上的數量(標量)在MATLAB系統中是作為1×1的矩陣,而僅有一行或一列的矩陣在MATLAB中稱為向量。

4.數組

在MATLAB中,數組也是一個非常重要的概念,矩陣在某些情況下可視為二階的數值型數組。但是在MATLAB中,數組和矩陣的運算規則有著較大的區別。例如,兩矩陣相乘和兩數組相乘所遵循的運算規則是完全不同的。

5.函數

MATLAB為用戶提供了豐富且功能各異的函數,用戶可以直接調用這些函數來進行數據處理。函數由函數名和參數組成,函數調用的格式為函數名(參數)

例如,若在MATLAB的命令窗口輸入命令:

a=sin(b)

則表示計算b的正弦值并將其賦值給變量a。

6.運算符

MATLAB的基本運算為數值運算、關系運算、邏輯運算和特殊運算等,每一類運算都有自己專用的運算符。有關各個運算符的使用,將在后述的應用中詳細介紹。

7.MATLAB的語句

MATLAB采用命令行式的表達式語言,每一個命令行就是一條語句,其格式與書寫的數學表達式十分相近,非常容易掌握。用戶在命令窗口輸入語句并按下回車鍵后,該語句就由MATLAB系統解釋運行,并即時給出運行結果。

MATLAB的語句采用以下兩種形式:

(1)表達式;

(2)變量=表達式。

表達式由變量名、常數、函數和運算構成,例如:

4*sin(2*t),sqrt(2)*exp(-i*4),s*a+b/c。表達式執行運算后產生的矩陣,將自動賦值給名為“ans

”的默認變量,并即時在屏幕上顯示出來。變量“ans”的值將在下一次運算表達式的語句時被刷新。例如,輸入下列語句4*2+5/6

則表達式執行結果為

ans=

8.8333

在MATLAB語句的第二種形式中,語句執行的結果是將表達式計算產生的矩陣,賦值給等號左邊的變量,并存入內存。例如,若用戶輸入以下語句

a=1+2+3+4+5

則執行結果為

a=

15

8.幾點說明

·MATLAB使用雙精度數據,它對字母大小寫敏感,所有的系統命令都是小寫形式。

·采用formatlong以顯示雙精度數據類型的結果,而format返回缺省顯示。

·矩陣是MATLAB進行數據運算的基本元素,矩陣中的下標從1開始(而不是0)。標量(數量)作為1×1的矩陣來處理。

·矩陣與數組是完全不同的兩個概念,它們的運算規則差別極大。

·語句或命令結尾的分號“;”可屏蔽當前結果的顯示。

·注釋(位于%之后)不執行。

·使用上下箭頭實現命令的滾動顯示,用于再編輯和再執行。

·續行符用一個空格加“...”,然后再按回車鍵即可。3.2.2矩陣及其元素的賦值與訪問

在MATLAB中,把由下標表示次序的標量數的集合稱為矩陣或數組。從數的集合的角度來看,數組和矩陣沒有什么不同,但從運算角度看,矩陣運算和數組運算遵循不同的運算規則。

矩陣是MATLAB進行數據處理的基本單元,MATLAB的大部分運算都是在矩陣的意義上進行的,矩陣運算也是MATLAB最重要的運算。因此,對于初學者來說,掌握矩陣的生成、尋訪及基本運算是非常重要的。對于簡單且維數較小的矩陣,創建矩陣的最佳方法就是從鍵盤直接輸入矩陣,在輸入過程中必須遵循以下規則:

·矩陣的所有元素必須放在括號“[]”內;

·矩陣元素之間必須用逗號“,”或空格隔開;

·矩陣行與行之間用分號“;”或回車符隔開;

·矩陣元素可以是任何不含未定義變量的表達式。

例如,用戶在命令窗口內直接輸入

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

>>a=[123;456;789]上述語句執行后,將建立3×3矩陣,并賦值給變量a,運行結果顯示為

a=

123

456

789

對上述每行元素較多的矩陣,則可按矩陣書寫的慣用格式輸入。例如,在命令窗口內直接鍵入

>>a=[123

456

789]

a=

123

456

789

矩陣的元素用“()”中的數字(也稱下標)來注明,如x(2)=12,a(2,3)=5等。如果賦值元素的下標超出了原來矩陣的大小,矩陣的行、列會自動擴展。例如

>>a(4,3)=6.5

a=

1.00002.00003.0000

4.00005.00006.0000

7.00008.00009.0000

006.5000給全行賦值時可用冒號。例如,給a的第5行賦值。

>>a(5,:)=[101112]

a=

1.00002.00003.0000

4.00005.00006.0000

7.00008.00009.0000

0

06.5000

10.000011.000012.0000把a的第2、4行及第1、3列交點上的元素取出,構成一個新矩陣b。

>>b=a([2,4],[13])

b=

4.00006.0000

06.5000

要抽去a中的第2、4、5行,可利用空矩陣[]的概念。

>>a([245],:)=[]

a=

123

789矩陣的元素可以是復數,例如

>>a=2.7358;b=33/79;

>>C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]

C=

1.00005.4716+0.4177i0.6909

0.70714.8244

3.5000+1.0000i復數數組還可用另一種方式輸入,例如

>>M-r=[1,2,3;4,5,6];M-i=[11,12,13;14,15,16];

CN=M-r+i*M-i

CN=

1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i

4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i表3-1給出了二維矩陣的基本訪問規則。3.2.3基本函數和矩陣

表3-2為MATLAB常用的基本數學函數及三角函數。

表3-3為MATLAB常用的基本矩陣。3.2.4矩陣和數組的基本運算

1.矩陣加、減、乘法

矩陣算術運算的書寫格式與普通算術運算的書寫格式相同,但它的乘法定義與普通數(標量)不同。相應地,作為乘法逆運算的除法也不同,有左除“\”和右除“/”兩種符號。

當兩個矩陣相加(減),其中有一個是標量時,MATLAB承認算式有效,它自動把該標量擴展成同階等元素矩陣,如

>>x=[-101];

y=x-1

y=

-2-10如果兩個乘數,其中有一個是標量,則該標量乘以矩陣的每個元素,如

>>pi*x

ans=

-3.141603.1416

若把y轉置,成為3×1階,則內階數與x相同,即乘法為

>>x*y′

ans=

2上式稱為x左乘y′。若是x右積y′,則有

>>y′*x

ans=

20-2

10-1

000

2.矩陣除法及線性方程組的解

矩陣除法是MATLAB從逆矩陣的概念引申而來的,用函數inv可以求逆矩陣。設方程D*X=B,X為未知矩陣,在等式兩端同時左乘inv(D),即

inv(D)*D*X=inv(D)*B

所以,有

X=inv(D)*B=D\B

上式稱之為“左除”。左除的條件是:兩矩陣的行數必須相等。設方程X*D=B,X為未知矩陣,用同樣的方法可以寫出X=B*inv(D)=B/D

上式稱之為“右除”。右除的條件是:兩矩陣的列數必須相等。矩陣除法可以用來方便地解線性方程組,如

6x1+3x2+4x3=3

-2x1+5x2+7x3=-4

8x1-4x2-3x3=-7

寫成矩陣形式為AX=B,用MATLAB求解,命令如下:

>>A=[634;-257;8-4-3];B=[3-4-7];

X=A\B′

X=

0.6000

7.0000

-5.4000

3.數組運算

數組運算相當于數據的批處理操作(常用它來代替循環),它對矩陣中的元素逐個進行同樣的運算。

數組運算符和矩陣運算符的區別是:矩陣運算符前沒有小黑點,數組運算符前有小黑點。

除非含有標量,否則數組運算表達式中的矩陣大小必須相同。

矩陣運算與數組運算的比較。例如,乘法運算,運行結果如下:

>>A=[12;34],B=[23;45],C=A*B,D=A.*B

A=

12

34

B=

23

45

C=

1013

2229

D=

26

1220

例如,除法運算,運行結果如下:

>>E=A./B

E=

0.50000.6667

0.75000.8000

>>E=A.\B

E=

2.00001.5000

1.33331.2500

>>E=A\B

E=

0-1

12

>>E=A/B

E=

1.5000-0.5000

0.50000.5000

數組與矩陣的冪次運算比較如下:

>>A^2

ans=

710

1522

>>A.^2

ans=

14

9163.2.5符號運算

MATALB不僅提供了數值計算功能,還提供了強大的符號計算功能。符號運算是指符號之間的運算,其運算結果仍以標準的符號形式表達。符號運算是MATLAB的一個極其

重要的組成部分,符號表示的解析式比數值解具有更好的通用性。

1.定義符號變量或表達式

在進行符號運算之前必須定義符號變量,并創建符號表達式。定義符號變量的格式為

syms變量名

其中,各個變量名須用空格隔開,如

symsytx。

定義符號表達式的格式為

sym(′表達式′)

如x+sin(x)+1為符號表達式,命令格式為

sym(′x+sin(x)+1′)。

2.符號表達式的運算

例如,兩個符號表達式相加,MATLAB的命令為

>>symsab

>>f1=1/(a+1);f2=2*a/(a+b);f=f1+f2

f=

1/(a+1)+2*a/(a+b)

MATLAB符號運算可以有多種計算方法,例如:

>>diff(′cos(x)′)%對cos(x)求導

ans=

-sin(x)

>>M=sym(′[a,b;c,d]′)%建立符號矩陣M

M=

[a,b]

[c,d]

>>determ(M)%求符號矩陣M的行列式

ans=

a*d-b*c注意,上面的第一個例子的符號表達式是用單引號以隱含方式定義的,它告訴MATLAB′cos(x)′是一個字符串,并說明diff(′cos(x)′)是一個符號表達式而不是數字表達式;然而在第二個例子中,用函數sym告訴MATLABM=sym(′[a,b;c,d]′)是一符號表達式。在MATLAB可以自己確定變量類型的場合下,通常不要求顯示函數sym。然而,很多時候sym是必要的,如在上述的第二個例子中。

3.變量替換

假設有一個以x為變量的符號表達式,并希望將變量轉換為y。MATLAB提供一個工具稱作subs,以便在符號表達式中進行變量替換。其格式為subs(f,old,new),其中,f是符號表達式,new和old是字符、字符串或其他符號表達式。“新”字符串將代替表達式f中各個“舊”字符串,例如:

>>f=sym(′a*x^2+b*x+c′)

f=

a*x^2+b*x+c

>>subs(f,′x′,′s′)

ans=

a*(s)^2+b*(s)+c

>>g=sym(′3*x^2+5*x-4′)

g=

3*x^2+5*x-4

>>h=subs(g,′x′,2)

h=

18該例表明subs如何進行替換,并力圖簡化表達式。因為替換結果是一個符號常數,

MATLLAB可以將其簡化為一個符號值。注意,因為subs是一個符號函數,所以它返回一個符號表達式。盡管看似數字,實質上是一個符號常數。為了得到數字,我們需要使用函數numeric或eval來轉換字符串。3.3基本繪圖方法

數據可視化能使人們用視覺器官直接感受到數據的許多內在本質。因此,數據可視化是人們研究科學、認識世界所不可缺少的手段。MATLAB不僅在數值計算方面是一個優秀的科技應用軟件,而且在數據可視化方面也具有極佳的表現。最常用的是高層繪圖指令。高層繪圖指令簡單明了,容易掌握。本節介紹高層繪圖指令,其中最常用的兩個繪圖指令是plot和stem。3.3.1簡單的繪圖

MATLAB的繪圖功能很強,我們先介紹最簡單的二維繪圖指令plot。plot是用來畫函數x對函數y的二維圖,例如,要畫出y=sin(x),0<x<2π。plot可以在一個圖上畫數條曲線,且以不同的符號及顏色來標示曲線。如要在x及y軸及全圖加注說明,則可利用指令xlabel、ylabel、title。三維圖的指令為plot3,此外,二維圖及三維圖皆可使用指令grid加上格線。例如:>>t=linspace(0,2*pi,100);y1=sin(t);%建立t及y1數組

>>figure(1)%建立第1個圖形窗口

>>plot(t,y1)%t為x軸,y1為y軸畫曲線

>>y2=cos(t);%建立y2數組

>>figure(2)%建立第2個圖形窗口

>>plot(t,y1,t,y2)%畫兩條曲線y1和y2

>>figure(3)%建立第3個圖形窗口

>>plot(t,y1,t,y2,′+′)%第二條曲線以符號+標示>>figure(4)

%建立第4個圖形窗口

>>plot(t,y1,t,y1.*y2,′--′)%畫兩條曲線,y1和y1.*y2>>xlabel(′x-axis′)%加上x軸的說明

>>ylabel(′y-axis′)%加上y軸的說明

>>title(′2Dplot′)%加上圖的說明

>>figure(5)%建立第5個圖形窗口

>>plot3(y1,y2,t),grid%將y1-y2-t畫三維圖,并加上格線

顯示的圖形如圖3.2~圖3.6所示。圖3.2建立第1個圖形窗口圖3.3建立第2個圖形窗口圖3.4建立第3個圖形窗口圖3.5建立第4個圖形窗口圖3.6建立第5個圖形窗口將以上命令全部放在一個M文件中,就是一個MATLAB程序s3-1.m。

stem函數與plot函數在用法和功能上幾乎完全相同,只不過通常用stem函數來繪制離散信號的圖形,即繪制出來的圖形是點點分立的。例如:

>>n=0:pi/10:3*pi;stem(n,sin(n))

顯示的圖形如圖3.7所示。圖3.7用stem函數繪制離散信號的圖形示例

MATLAB的基本繪圖函數由表3-4給出。3.3.2顏色和線型、點型的標識符

MATLAB會自動設定曲線的顏色和線型。例如:

>>t=(0:pi/50:2*pi)′;k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)

顯示的圖形如圖3.8所示,可見曲線的顏色是自動生成的。圖3.8自動設定曲線的顏色和線型示例表3-5給出了繪圖設定的顏色、線型、點型的標識符。3.3.3子圖的畫法

要在一個圖形窗口顯示多幅子圖,可用MATLAB提供的subplot函數實現。下面舉例說明。

用圖形表示連續調制波形y=sin(t)sin(9t)。

%子圖的畫法

t1=(0:11)/11*pi;

y1=sin(t1).*sin(9*t1);

t2=(0:100)/100*pi;

y2=sin(t2).*sin(9*t2);

subplot(2,2,1),plot(t1,y1,′r.′),axis([0,pi,-1,1]),title(′子圖(1)′)

subplot(2,2,2),plot(t2,y2,′r.′),axis([0,pi,-1,1]),title(′子圖(2)′)

subplot(2,2,3),plot(t1,y1,t1,y1,′r.′)

axis([0,pi,-1,1]),title(′子圖(3)′)

subplot(2,2,4),plot(t2,y2)

axis([0,pi,-1,1]),title(′子圖(4)′)

顯示的圖形如圖3.9所示。圖3.9用subplot函數顯示多幅子圖示例3.3.4坐標、刻度和分格線控制

在圖形中可加入格柵、坐標軸標志、文本說明等,現舉例說明。

%在圖中加圖例和文字

t=linspace(0,pi*3,30);

x=sin(t);

y=cos(t);

plot(t,x,′r--′,t,y,′b-′,′linewidth′,2)

grid%加入格柵

xlabel(′x軸′)

ylabel(′y軸′)

title(′正弦與余弦曲線′)

text(1,-0.1,′余弦′)%在圖中標文字′余弦′

text(3.1,0.1,′正弦′)

legend(′sin(x)′,′cos(x)′,3)%在圖中標圖例

%LEGEND(′string′,Pos)placesthelegendinthespecified,

%0=Automatic“best”placement

(leastconflictwithdata)

%1=Upperright-handcorner(default)

%2=Upperleft-handcorner

%3=Lowerleft-handcorner

%4=Lowerright-handcorner

%-1=Totherightoftheplot

%按鼠標leftmousebutton拖legend到指定的位置

顯示的圖形如圖3.10所示。圖3.10加入格柵、坐標軸標志、文本說明示例3.3.5多次疊繪、雙縱坐標

例如:利用hold繪制離散信號通過零階保持器后產生的波形。

%離散信號通過零階保持器后產生的波形

t=2*pi*(0:20)/20;

y=cos(t).*exp(-0.4*t);

stem(t,y,′fill′);holdon;

stairs(t,y,′r′);holdoff

顯示的圖形如圖3.11所示。圖3.11離散信號通過零階保持器后產生的波形例如:用雙縱坐標畫出函數y=xsinx和積分

在區間[0,4]上的曲線。

%雙縱坐標畫圖

clf;dx=0.1;x=0:dx:4;y=x.*sin(x);

s=cumtrapz(y)*dx;%梯形法求累計積分

plotyy(x,y,x,s),

text(0.5,0,′\fontsize{14}\ity=xsinx′)

sint=′{\fontsize{16}\int-{\fontsize{8}0}^{x}}′;

text(2.5,3.5,[′\fontsize{14}\its=′,sint,′\fontsize{14}\itxsinxdx′])

顯示的圖形如圖3.12所示。圖3.12用雙縱坐標畫圖示例3.4電路分析中常用的計算方法

3.4.1方程組的解法

1.線性代數方程組

設矩陣方程:AX=B,X=inv(A)*B=A\B,矩陣除法可以用來方便地解線性方程組。例如,節點方程為用MATLAB求解,命令如下:

>>Y=[2-0.5-0.5;-0.51.25-0.25;-0.5-0.251];

I=[70-11];U=Y\I′

U=

0.0370

-2.2963

-11.5556

所以,U1=0.037V,U2=-22963V,U3=-11.5556V。

2.用函數solve()解一般方程或方程組

用MATLAB求解單個方程。如果表達式不是一個方程式(不含等號),則在求解之前函數solve將表達式置0。

>>solve(′a*x^2+b*x+c′)

ans=

[1/2/a*(-b+(b^2-4*a*c)^1/2)]

[1/2/a*(-b-(b^2-4*a*c)^1/2)]

結果是符號向量,其元素是方程的兩個解。如果想對非缺省x變量求解,solve必須指定變量。

>>solve(′a*x^2+b*x+c′,′b′)%solveforb

ans=

-(a*x^2+c)/x

帶有等號的符號方程也可以求解。

>>f=solve(′cos(x)=sin(x)′)

f=

1/4*pi

>>eval(f)

ans=

0.7854此外,solve函數能解一般的線性、非線性或超越代數方程組。語句solve(s1,s2,…,sn)對缺省變量求解n個方程,語句

solve(s1,s2,…,sn,′v1,v2,…,vn′)對n個′v1,v2,…,vn′的未知數求解n個方程。

溫馨提示

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

評論

0/150

提交評論