gai1“《工程應用軟件》上機”實驗指導書_第1頁
gai1“《工程應用軟件》上機”實驗指導書_第2頁
gai1“《工程應用軟件》上機”實驗指導書_第3頁
gai1“《工程應用軟件》上機”實驗指導書_第4頁
gai1“《工程應用軟件》上機”實驗指導書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、“工程應用軟件上機”實驗指導書一、實驗類型 驗證性實驗二、實驗目的本實驗是與專業(yè)基礎(chǔ)課工程應用軟件不可分離的一門實踐課程,通過上機實習,掌握MATLAB軟件使用和編程方法,驗證和深化書本知識,從而加強基礎(chǔ)知識,掌握基本技能,提高MATLAB軟件的編程能力,并用MATLAB軟件解決實際問題,如建模、計算和數(shù)據(jù)處理等。三、實驗教學的基本要求要求學生通過上機實習,熟悉MATLAB的基本操作命令,掌握利用計算機進行數(shù)值計算、繪圖的方法,并為以后在各門主要課程中的應用打下良好的基礎(chǔ)。四、實驗設(shè)備與軟件臺式計算機,MATLAB軟件。五、實驗內(nèi)容完成教材MATLAB基礎(chǔ)及其應用教程中的上機實驗。即:實驗一

2、熟悉MATLAB工作環(huán)境;實驗二 MATAB語言基礎(chǔ);實驗三 MALTAB數(shù)值運算;實驗四 MALTAB符號運算;實驗五 MATLAB程序設(shè)計;實驗六 MATLAB數(shù)據(jù)可視化;實驗七Simulink仿真集成環(huán)境五、實驗方法與步驟 實驗一 熟悉MATLAB工作環(huán)境一、實驗目的初步熟悉MATLAB工作環(huán)境,熟悉命令窗口,學會使用幫助窗口查找?guī)椭畔ⅰ6?、實驗?nèi)容 (1)熟悉MATLAB平臺的工作環(huán)境。 (2)熟悉MATLAB的5個工作窗口。 (3)MATLAB的優(yōu)先搜索順序。三、實驗步驟1.熟悉MATLAB的5個工作窗口。Command Window (命令窗口)Workspace (工作空間窗口

3、)Command History (命令歷史記錄窗口)Current Directory (當前目錄窗口)Help Window (幫助窗口)(1)命令窗口(Command Window)在命令窗口中輸入一下命令>>x=1>> y=1 2 3 4 5 6 7 8 9;>> z1=1:10,z2=1:2:5;>> w=linspace(1,10,10);>> t1=ones(3),t2=ones(1,3),t3=ones(3,1)>> t4=ones(3),t4=eye(4)思考題:變量名如何聲明,變量名必須遵守什么規(guī)則、是

4、否區(qū)分大小寫。試說明分號、逗號、冒號的用法。linspace( )稱為“線性等分”函數(shù),說明它的用法??墒褂胔elp命令,格式如下: >>help linspace說明函數(shù)ones()、zeros()、eye()的用法。 (2)工作空間窗口(Workspace)單擊工作窗口右上角的按鈕,將其從MATLAB主界面分出來。在工作空間查看各個變量,或在命令窗口用who,whos(注意大小寫)查看各個變量。在工作空間雙擊變量,彈出Array Editor 窗口(數(shù)據(jù)編輯器窗口),即可修改變量。使用save命令把工作空間的全部變量保存為my_var.mat文件。>>save my

5、_var.mat輸入下列命令>> clear all %清除工作空間的所有的變量。觀察工作空間的變量是否被清空,使用load命令把剛才保存的變量載入工作空間。>> load my_var.mat清除命令窗口命令:>> clc(3)歷史命令窗口打開歷史命令窗口可以看到每次運行MATLAB的時間和曾在命令窗口輸入過的命令,練習以下幾種利用歷史命令窗口重復執(zhí)行輸入過的命令的方法。在歷史命令窗口選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇copy然后再paste到命令窗口。在歷史命令窗口雙擊要重復執(zhí)行的一行,或者選中要重復執(zhí)行的一行或幾行命令,用鼠標將其

6、拖到命令窗口中執(zhí)行。在歷史命令窗口選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇Evaulate Selection,也可以執(zhí)行?;蛘咴诿畲翱谑褂梅较蜴I的上下鍵得到以前輸入的命令,使用方向鍵的左右鍵可以移動光標。(4)、當前目錄命令窗口MATLAB的當前目錄即是系統(tǒng)默認的實施打開,裝載,編輯和保存文件等操作時的文件夾。(5)幫助窗口單擊工具欄的?圖標,或選擇菜單ViewHelp,或者選擇菜單helpMATLAB Help都能啟動幫助窗口。 通過Index選項卡查找log2() 函數(shù)的用法,在Search index for欄中輸入需要查找的詞匯“ log2”,在左下側(cè)就列出與之最匹

7、配的詞匯條目,選擇“ log21”,右側(cè)的窗口就會顯示相應的內(nèi)容。 也可以通過Search選項卡查找log2()函數(shù)的用法。Search選項卡與 Index 選項卡不同,Index只在專用術(shù)語表中查找,而 Search搜素的是整個 HTML幫助文件。2.MATLAB的數(shù)值顯示格式設(shè)置頻幕顯示方式有緊湊(compact)和松散(loose)兩種其中l(wèi)oose為默認方式。>> a=ones(1,30)>> format compact>> a數(shù)字顯示格式有short、long、/short e示計算結(jié)果的個3333333333333333333333333333

8、33333333333333333333333333333333333333333333333333333333333333333333333333333333short e、long e等,參照教材的列表練習。>> format long>> pi>> format short>> pi>> format long>> pi>> format +>> pi>> -pi3.變量的搜索順序>> pi>> sin(pi);>> exist('pi&

9、#39;)>> pi=0;>> exist('pi')>> pi>> clear pi>> exist('pi')>> pi思考題:3次執(zhí)行的結(jié)果exist(pi)的結(jié)果一樣嗎?如果不一樣,試解釋為什么?圓周率pi是系統(tǒng)的默認常量,為什么會被改變?yōu)??實驗二 MATAB語言基礎(chǔ)一、實驗目的基本掌握MATLAB向量、矩陣、數(shù)組、的生成及其基本運算(區(qū)別數(shù)組運算和矩陣運算)、常用的數(shù)學函數(shù)。了解字符串的操作。二、實驗內(nèi)容(1)向量的生成和運算。(2)矩陣的創(chuàng)建、引用和運算。(3)多維數(shù)組的創(chuàng)建和

10、運算。(4)字符串的操作。三、實驗步驟1向量的生成和運算1)向量的生成直接輸入法:>> A=2,3,4,5,6 %生成行向量>> B=1;2;3;4;5; %生成列向量冒號表達輸入法:>> A=1:2:10,B=1:10,C=10:-1:1函數(shù)法Linspace()是線性等分函數(shù),logspace()是對數(shù)等分函數(shù)。>> A=linspace(1,10)(自認100個數(shù)),B=linspace(1,30,10)>> A=logspace(0,4,5)練習:使用logspace()創(chuàng)建14的有10個元素的行向量。2)向量的運算維數(shù)相同的

11、行向量之間可以相加減,維數(shù)相同的列向量之間也可以相加減,標量可以與向量相乘出。>> A=1 2 3 4 5,B=3:7,>> AT=A',BT=B',>> E1=A+B,E2=A-B>> F=AT-BT,>> G1=3*A,G2=B/3,向量的點積與叉積的運算。>> A=ones(1,10);B=(1:10);BT=B'>> E1=dot(A,B)>> E2=A*BT>> clear>> A=1:3,B=3:5,>> E=cross(A,B

12、) 2.矩陣的創(chuàng)建、引用和運算1)矩陣的創(chuàng)建和引用矩陣是由m×n元素構(gòu)成的矩形結(jié)構(gòu),行向量和列向量是矩陣的特殊情況形式。直接輸入法:>> A=1 2 3;4 5 6>> B=1 4 7 2 5 83 6 9>> A(1)>> A(4:end)>> B(:,1)>> B(:)>> B(5)抽取法:>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16>> B=A(1:3,2:3) 一到三行,二到三列>> C=

13、A(1 3,2 4)>> D=A(1 3;2 4)函數(shù)法:>> clear>> A=ones(3,4)>> B=zeros(3)>> C=eye(3,2)>> D=magic(3)拼接法:>> clear>> A=ones(3,4)>> B=zeros(3)>> C=eye(4)>> D=A B>> F=A;C拼接函數(shù)和變形函數(shù)法:>> clear>> A=0 1;1 1>> B=2*ones(2)>>

14、cat(1,A,B,A)>> cat(2,A,B,A)>> repmat(A,2,2)>> repmat(A,2)練習:使用函數(shù)法、拼接法、拼接函數(shù)法和變形函數(shù)法,按照要求創(chuàng)建以下矩陣:A為3×4的全1矩陣、B為3×3的0矩陣、C為3×3的單位矩陣、D為3×3的魔方陣、E由C和D縱向拼接而成、F抽取E的25行元素生成、G由F經(jīng)變形為3×4的矩陣而得、以G為子矩陣用復制函數(shù)(repmat)生成6×8的大矩陣H。2)矩陣的運算矩陣加減、數(shù)乘和乘法已知矩陣:>> A=1 2;3 -1,B=-1

15、 0;1 2求 A+B,2A,2A-3B,4B矩陣的逆矩陣>> format rat;A=1 0 1;2 1 2;0 4 6>> A1=inv(A)>> A*A1矩陣的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'>> c1=b*inv(a),c2=b/a>> c3=inv(a)*d,c4=ad觀察結(jié)果C1是否等于C2,C3是否等于C4?如何取出記憶左除和右除?斜杠向左邊傾斜就是左除,向右邊傾斜就是右除。左除就是左邊的數(shù)或矩陣作分母,右除就是右邊的數(shù)或矩陣作分母。練習:用矩陣除法求下列方

16、程組的解x=x1;x2;x3;3.多維數(shù)組的創(chuàng)建及運算1)多維數(shù)組的創(chuàng)建>> A1=1,2,3;4,5,6;7,8,9;A2=reshape(10:18,3,3)>> T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3)>> T2=ones(3,3,2)>> T3=cat(3,A1,A2),T4=repmat(A1,1,1,2)2)多維數(shù)組的運算數(shù)組運算用小圓點加在運算符的前面表示,以區(qū)別矩陣的運算。特點是兩個數(shù)組相對應的元素進行運算。>> A=1:6;B=ones(1,6);>> C1=A+B,C2=

17、A-B>> C3=A.*B,C4=B./A,C5=A.B關(guān)系運算或邏輯運算的結(jié)果都是邏輯值。>> A=1:6;B=ones(1,6);>> I=A>3,C6=A(I)>> A1=A-3,I2=A1&A>> I3=I練習:創(chuàng)建三維數(shù)組A,第一頁為,第二頁為 ,第三頁為 ,然后用rashape函數(shù)重排為數(shù)組B,B為3行、2列、2頁。4.字符串的操作1)字符串的創(chuàng)建>> S1='I like MATLAB'>> S2='I''m a student.' %

18、注意這里用兩個連續(xù)的單引號輸出一個單引號>> S3=S2,'adn',S12)求字符串長度>> length(S1)>> size(S1)3)字符串與一維數(shù)組數(shù)值數(shù)組的相互轉(zhuǎn)換>> CS1=abs(S1)>> CS2=double(S1)>> char(CS2)>> setstr(CS2)練習:用char()和向量生成的辦法創(chuàng)建如下字符串AaBbCcXxYyZz提示:A和a的ASC碼分別是65,97實驗三 MALTAB數(shù)值運算一、實驗目的掌握MATLAB的數(shù)值運算及其運算中所用到的函數(shù),掌握結(jié)構(gòu)

19、數(shù)組和細胞數(shù)組的操作。二、實驗內(nèi)容1) 多項式運算。2) 多項式插值和擬合。3) 數(shù)值為積分。4) 結(jié)構(gòu)數(shù)組和細胞數(shù)組。三、實驗步驟1、多項式運算1) 多項式表示。在MATLAB中,多項式表示成向量的形式。如: 在MATLAB中表示為>> s=1 3 -5 0 92) 多項式的加減法相當于向量的加減法,但必須注意階次要相同。如不同,低階次的要補0。如多項式與多項式相加。>> s1=0 0 2 3 11>> s2=1 2 -5 4 7>> s3=s1+s23) 多項式的乘、除法分別用函數(shù)conv和的deconv實現(xiàn)。>> s1=2 3

20、11>> s2=1 3 -5 4 7>> s3=conv(s1,s2)>> s4=deconv(s3,s1)4) 多項式求根用函數(shù)roots。>> s1=2 4 2>> roots(s1)5) 多項式求值用函數(shù)polyval>> s1=2 4 1 -3>> polyval(s1,3)>> x=1:10>> y=polyval(s1,x)練習:求的“商”及余數(shù)。>> s1=1 0 1;s2=1 3;s3=1 1;>> s4=1 0 2 1;>> q,r=

21、deconv(conv(conv(s1,s2),s3),s4)2、多項式插值和擬合有一組實驗數(shù)據(jù)如附表1-1所示。附表1-1X12345678910Y163270142260436682101014321960分別用擬合(二階至三階)和插值(線性和三次樣條)的方法來估算X=9.5時Y的值。以下是實現(xiàn)一階擬合的語句。>> x=1:10>> y=16 32 70 142 260 436 682 1010 1342 1960>> p1=polyfit(x,y,1) %一階擬合>> y1=polyval(p1,9.5) %計算多項式P1在x=9.5的值3

22、、數(shù)值微積分1) 差分使用diff函數(shù)實現(xiàn)。>> x=1:2:9>> diff(x)2) 可以用因變量和自變量差分的結(jié)果相處得到數(shù)值微分。>> x=linspace(0,2*pi,100);>> y=sin(x);>> plot(x,y)>> y1=diff(y)./diff(x);>> plot(x(1:end-1),y1)3) cumsum函數(shù)求累計積分,trapz函數(shù)用梯形法求定積分,即曲線的面積。>> x=ones(1,10)>> cumsum(x)>> x=lins

23、pace(0,pi,100);>> y=sin(x);>> trapz(x,y)>> p=cumsum(y);>> p(100)*pi/(100-1)練習:圖A1是瑞士地圖,為了算出其國土面積,首先對地圖作如下測量:以由西向東方向為X軸,由南向北方向為Y軸,選擇方便的原點,并將從最西邊界點到最東邊界點在X軸上的區(qū)間適當劃分為若干段,在每個分點的Y方向測出南邊界點和北邊界點的Y坐標Y1和Y2,這樣就得到表1,根據(jù)地圖比例尺回到18mm相當于40Km,試由測量數(shù)據(jù)計算瑞士國土近似面積,與其精確值41228比較。地圖的數(shù)據(jù)見附表1-2(單位mm)。附表

24、1-2X710.51317.53440.544.548566168.576.580.591Y14445475050383030343634414546Y24459707293100110110110117118116118118續(xù)表X96101104106.5111.5118123.5136.5142146150157158Y143373328326555545250666668Y2121124121121121116122838182868568提示:由高等數(shù)學的知識,一條曲線的定積分是它與x軸所圍成的面積,那么兩條曲線所圍成的面積可由兩條曲線的定積分相減得到。4、結(jié)構(gòu)數(shù)組與細胞數(shù)組1) 機

25、構(gòu)數(shù)組的創(chuàng)建。>> student.number='20050731001'>> ='Jack'>> student(2).number='20050731002'>> student(2).name='Lucy'>> student或者用struct函數(shù)創(chuàng)建。>> student=struct('number','001','002','name','Jack&#

26、39;,'Lucy');2) 機構(gòu)數(shù)組的操作。>> student(1).subject= %添加subject域并賦予空值>> student(1).score=>> filednames(studeng)>>fieldnames(studeng)>>fieldnames(student)>> getfield(student,2,'name')>> student=rmfield(student,'subject') %刪除subject域>> s

27、tudent=setfield(student,1,'score',90);>> student(2).score=88; %比較和上一條語句是否效果一樣練習:創(chuàng)建一結(jié)構(gòu)數(shù)組stusorce,其域為:No,Name,English,Math,Chinese,Total,Average。結(jié)構(gòu)數(shù)組的大小為2×2。3) 細胞數(shù)組的創(chuàng)建。 >> A='How are you!',ones(3);1 2;3 4,'cell' %直接創(chuàng)建 >> B(1,1)='Hello world' %由各個細

28、胞元素創(chuàng)建 >> B(1,2)=magic(3); >> B(2,1)=1 2 3 4;或者用cell函數(shù)先創(chuàng)建空的細胞數(shù)組,然后再給各個元素賦值c=cell(1,2);>> c(1,1)='Hello world'>> c(1,2)=magic(3);>> c(1,3)=1 2 3 4;4) 細胞數(shù)組的操作。>> ans1=A(1,1)>> ans2=A(1,1)>> whos ans1 ans2>> celldisp(A)>> a1=A2,1(1,2)&g

29、t;> a2 a3=deal(A1:2)實驗四 MALTAB符號運算一、實驗目的 掌握符號變量和符號表達式的創(chuàng)建,掌握MALTAB的symbol工具箱的一些基本運用。二、實驗內(nèi)容1) 符號變量、表達式、方程及函數(shù)的表示。2) 符號微積分運算。3) 符號表達式的操作和轉(zhuǎn)換。4) 符號微分方程求解。三、實驗步驟1、符號運算的引入 在數(shù)值運算中如果求,則可以不斷讓的讓x趨近0,一球的表達式趨近什么數(shù),但終究不能令x=0,因為在數(shù)值運算中0不是能作除數(shù)的。MATLAB的符號運算能解決這內(nèi)問題。輸入如下命令:>> f=sym('sin(pi*x)/x')>>

30、 limit(f,'x',0)2、符號常量、符號變量、符號表達式的創(chuàng)建1) 使用sym()創(chuàng)建輸入以下命令,觀察Workspace中A、B、f是什么內(nèi)性的數(shù)據(jù),占用多少字節(jié)的內(nèi)存空間。 >> A=sym('1') %符號常量>> B=sym('x') %符號變量>> f=sym('2*x2+3*x-1') %符號表達式>> clear>> f1=sym('1+2') %有單引號,表示字符串>> f2=sym(1+2) %無單引號>>

31、 f2=sym(1+2)>> f4=sym('2*x+3') %為什么出錯>> x=1>> f4=sym(2*x+3)通過看MATLAB的幫助可知,sym()的參數(shù)可以使字符串或是數(shù)值類型,無論是哪種類型都會生成符號類型數(shù)據(jù)。2) 使用syms創(chuàng)建>> clear>> syms x y z>> x,y,z>> f1=x2+2*x+1>> f2=exp(y)+exp(z)2>> f3=f1+f23、符號矩陣創(chuàng)建>> syms a1 a2 a3 a4>>

32、; A=a1 a2;a3 a4>> A(1),A(3)4、符號算術(shù)運算1) 符號向量相乘、相除符號量相成和數(shù)值量相乘一樣,分成矩陣乘和數(shù)組乘。>> a=sym(5);b=sym(7);>> c1=a*b>> c2=a/b>> a=sym(5);B=sym(3 4 5);>> C1=a*B,C2=aB>> syms a b>> A=5 a;b 3;B=2*a b;2*b a;>> C1=A*B,C2=A.*B>> C3=AB,C4=A./B2) 符號數(shù)值任意精度控制和運算任意精

33、度的VPA運算可以使用命令digits(設(shè)定默認的精度)和vpa(對指定對象以新的精度進行計算)來實現(xiàn)。>> a1=sym('2*sqrt(5)+pi')>> a=sym('2*sqrt(5)+pi')>> b=sym(2*sqrt(5)+pi)>> digits>> vpa(a)>> digits(15)>> vpa(a)>> c1=vpa(a,56)>> c2=vpa(b,56)注意觀察c1和c2的數(shù)值類型,c1和c2是否相等。3) 符號類型與數(shù)值類型

34、的轉(zhuǎn)換使用命令sym可以把數(shù)值型對象轉(zhuǎn)換成有理數(shù)性符號對象,命令vpa可以講數(shù)值型對象轉(zhuǎn)換為任意精度的VPA型符號對象。使用double,numeric函數(shù)可以將有理數(shù)型和VPA型符號對象轉(zhuǎn)換成數(shù)值對象.>> clear>> a1=sym('2*sqrt(5)+pi') >> b1=double(a1) %符號轉(zhuǎn)數(shù)值>> b2=isnumeric(b1) %判斷是否轉(zhuǎn)換成了數(shù)值>> a2=vpa(a1,70) %數(shù)值轉(zhuǎn)符號5、 符號表達式的操作和轉(zhuǎn)換1)獨立變量的確定原則獨立變量的確定原則:在符號表達式中默認變量是惟一

35、的。MATLAB會對單個英文小寫字母(除i、j外)進行搜索,且以x為首選獨立變量。如果表達式中字母不唯一,且無x,就選在字母表最接近x的字母。如果有相連的字母,則選擇在字母表中較后的那一個。例如:中,y是默認獨立變量。,t是默認獨立變量。輸入以下命令,觀察并分析結(jié)果。>> clear>> f=sym('a+b+i+j+x+y+xz')>> findsym(f)>> findsym(f,1)>> findsym(f,2)>> findsym(f,3)>> findsym(f,4)>>

36、findsym(f,5)>> findsym(f,6)2)符號表達式的化簡符號表達式化簡主要包括表達式美化(pretty)、合并同類項(collcet)、多項式展開(expand)、因式分解(factor)、化簡(simple或simplify)等函數(shù)。合并同類項(collect)。分別按x的同冪項和e指數(shù)同冪項合并表達式: 。>> syms x t;>> f=(x2+xexp(-t)+1)*(x+exp(-t);>> f1=collect(f)>> f2=collect(f,'exp(-t)')對顯示格式加以美化(p

37、retty)。針對上例,用格式美化函數(shù)可以使顯示的格式更符合數(shù)學書寫習慣。>> pretty(f1)>> pretty(f2)注意與直接輸出的f1和f2對比。多項式展開(expand)。展開成x不同次冪的多項式.>> syms x>> f=(x-1)12;>> expand(f)>> pretty(expand(f)因式分解(factor)。將表達式做因式分解。>> syms x;f=x12-1;>> pretty(factor(f)化簡(simple或simplify)。將函數(shù)化簡。>>

38、; clear>> syms x;f=(1/x3+6/x2+12/x+8)(1/3);>> g1=simple(f)>> g2=simplify(f)6、符號表達式的變量替換subs函數(shù)可以對符號表達式中的符號變量進行替換>> clear>> f=sym('(x+y)2+4*x+10')>> f1=subs(f,'x','s') %使用s替換x>> f2=subs(f,'x+y','z')7、符號極限、符號積分與微分1) 求極限函數(shù)

39、的調(diào)用格式limit(F,x,a) %返回符號對象F當xa時的極限limit(F,a) %返回符號對象F當獨立變量*a時的極限limit(F) %返回符號對象F當獨立變量0(a=0)時的極限limit(F,x,a,right) %返回符號對象F當xa時的右極限limit(F,x,a,left) %返回符號對象F當xa時的左極限例一:>> clear>> f=sym('sin(x)/x+a*x') >> limit(f,'x',0) %以x為自變量求極限>> limit(f,'a',0) %以a為自變

40、量求極限>> limit(f) %在默認情況下以x為自變量求極限>> findsym(f) %得到變量并且按字母表順序排列例二:>> clear>> f=sym('sqrt(1+1/n); >> limit(f,n,inf) %求n趨于無窮大時的極限2) 求積分函數(shù)的調(diào)用格式int(F) %求符號對象F關(guān)于默認變量的不定積分int(F,v) %求符號對象F關(guān)于指定變量v的不定積分int(F,a,b) %求符號對象F關(guān)于默認變量的從a到b的定積分int(F,v,a,b) %求符號對象F關(guān)于指定變量的從a到b的定積分3) 求微分方

41、程的調(diào)用格式diff(F) %求符號對象F關(guān)于默認變量的微分diff(F,v) %求符號對象F關(guān)于指定變量v的微分diff(F,n) %求符號對象F關(guān)于默認變量的n階微分,n為自然數(shù)1、2、3diff(F,v,n) %求符號對象F關(guān)于指定變量v的n階微分8、符號方程求解1)常規(guī)方程求解函數(shù)的調(diào)用格式g=solve(eq) %求方程(或表達式或字串)eq關(guān)于默認變量的解g=solve(eq,var) %求方程(或表達式或字串)eq關(guān)于指定變量var的解g=solve(eq1,eq2,.,eqn,var1,var2,varn) %求方程(或表達式或字串)eq1,eq2,eq3,eqn關(guān)于指定變量組

42、var1,var2,,varn)的解求一元二次方程的解。其求解方法有多種形式:seq=solve('a*x2+b*x+c')seq=solve('a*x2+b*x+c=0')eq=a*x2+b*x+c;eq=a*x2+b*x+c=0;seq=solve(eq)sym x a b c eq=a*x2+b*x+cseq=solve(eq)2)常微分方程求解求解常微分方程的函數(shù)是dsolve。應用此函數(shù)可以求得常微分方程(組)的通解,以及給定邊界條件(或初始條件)后的特解。常微分方程求解函數(shù)的調(diào)用格式:r=dsolve(eq1,eq2,cond1,cond2,v)r=

43、dsolve(eq1,eq2,cond1,cond2,v)說明:以上兩式均可給出方程eq1,、qeq2對應初始條件cond1、cond2之下的一v作為解變量的各微分方程的解。常微分方程解的默認變量為t。第二式中最多可接受的輸入式是12個。微分方程的表達方法。在用MATLAB求解常微分方程時,用大寫字母Dy表示,用D2y表示,依此類推。邊界條件以類似于y(a)=b給出。其中y為因變量,a、b為常數(shù).如果初始條件給的不夠,求出的解為含有C1、C2等待定常數(shù)的通解。例一 求微分方程的通解.練習:(1)求。(2)求函數(shù)的積分;求函數(shù)的導數(shù)(3)計算定積分(4)求下列線性方程組的解 (5)求解但y(0)

44、=2,在z(0)=7時,微分方程組的解。實驗五 MATLAB程序設(shè)計一、實驗目的掌握MATLAB程序設(shè)計的主要方法,熟練編寫MATLAB函數(shù).二、 實驗內(nèi)容 (1)M文件的編輯。(2)程序流程控制結(jié)構(gòu)。(3)子函數(shù)調(diào)用和參數(shù)傳遞。(4)局部變量和全局變量。三、實驗步驟1、M文件的編輯選擇MATLAB的菜單File|New|M-file, 打開新的M文件進行編輯,然后輸入以下內(nèi)容,并保存文件名為expl.m。s=0;for n=1:100 s=s+n;ends保存好文件后,在命令窗口輸入expl即可運行該腳本文件,主義觀察變量空間。緊接著創(chuàng)建M函數(shù)文件,然后輸入以下內(nèi)容,并保存文件名為expl2

45、.m。 function s=expl2(x)s=0;for n=1:x s=s+n;end 保存好文件后,在命令窗口輸入 >> clear>> s=expl2(100)以open命令可以打開M文件進行修改。 >>open conv %打開conv函數(shù)2、程序流程控制結(jié)構(gòu)1) for循環(huán)結(jié)構(gòu) >> for n=1:10nend另一種形式的for循環(huán):>> n=10:-1:5;>> for i=n %循環(huán)的次數(shù)為向量n的列數(shù)iend2) while循環(huán)結(jié)構(gòu)在命令窗口輸入:clearx=1;while 1x=x*2end將會看

46、到MATLAB進入死循環(huán)因為while判斷的值恒為真,這時須按Ctrl+C鍵來中斷運行,并且可看到x的值為無窮大。練習:(1)請把exp2.m函數(shù)文件用while循環(huán)改寫。(2)用公式求的近似值,直到最后一項的絕對值小于為止,試編寫M腳本文件.3) if-else-end分支結(jié)構(gòu) if-else-end分支結(jié)構(gòu)有如下3種形式。(a) if 表達式語句組1end(b) if 表達式語句組1else語句組2end(c) if 表達式A語句組1else if 表達式B語句組2else if語句組3else 語句組nend4) switch-case結(jié)構(gòu)創(chuàng)建M腳本文件exp3.m,輸入以下內(nèi)容并在命令

47、窗口中運行。%功能:判斷鍵盤輸入的數(shù)是奇數(shù)還是偶數(shù)n=input('n=');if isempty(n) error('please input n'); n=input('n=');endswitch mod(n,2) case 1 A='奇數(shù)' case 0 A='偶數(shù)'end3、子函數(shù)和參數(shù)傳遞有一個函數(shù),試編寫實現(xiàn)該函數(shù)的函數(shù)文件。function g=expl4(x) %主函數(shù)g=0;for n=1:x g=g+fact(n); %調(diào)用子函數(shù)endfunction y=fact(k) %子函數(shù)y=1;fo

48、r n=1:k y=y*n;end輸入?yún)?shù)可以有函數(shù)nargin計算,下面的例子sinplot(),當知輸入一個參數(shù)w時,sinplot()函數(shù)會給p賦予默認值0。4、局部變量和全局變量自程序執(zhí)行開始到退出MATLAB,始終存放在工作空間,可被任何命令文件和數(shù)據(jù)文件存取或修改的變量即為全局變量,全局變量可用于函數(shù)之間傳遞參數(shù),全局變量用關(guān)鍵字global聲明。編寫一個求和的函數(shù)文件,其名為summ.m。程序如下:function s=summglobal BEG ENDk=BEG:END;s=sum(k);再編寫調(diào)用M腳本文件use.m來調(diào)用summ.m函數(shù)文件,它們之間通過全局變量傳遞參數(shù)。

49、程序如下:global BEG ENDBEG=1;END=10;s1=summ;BEG=1;END=20;S2=summ;實驗六 MATLAB數(shù)據(jù)可視化一、實驗目的掌握MATLAB二維、三維圖形繪制,掌握圖形屬性的設(shè)置和圖形修飾;掌握圖像文件的讀取和現(xiàn)實。二、 實驗內(nèi)容(1)二維圖形繪制。(2)三維曲線和三維曲面繪制。(3)圖像文件的讀取和顯示。三、實驗步驟1、二維圖形繪制1) 二維圖形繪制主要使用函數(shù)plot。>>clear>> x=linspace(0,2*pi,100);>> y1=sin(x);>> plot(x,y)>> p

50、lot(x,y1)>> hold on %保持原有的圖形>> plot(x,cos(x)注:hold on 用于保持圖形窗口中原有的圖形,hold off解除保持。2) 函數(shù)plot的參數(shù)也可以是矩陣。>> close all %關(guān)閉所有圖形窗口>> x=linspace(0,2*pi,100); >> y1=sin(x);>> y2=cos(x);>> A=y1;y2' %把矩陣轉(zhuǎn)置>> B=x;x'>> plot(B,A)3) 選用繪圖線型和顏色。>> c

51、lose all %關(guān)閉所有圖形窗口>> plot(x,y1,'g+',x,y2,'r:')>> grid on %添加網(wǎng)格線4) 添加文字標注。>> title('正弦曲線和余弦曲線')>> ylabel('幅度')>> xlabel('時間')>> legend('sin(x)','cos(x)')>> gtext('leftarrowsinx') %可用鼠標選擇標注的位置 % l

52、eftarrowsinx產(chǎn)生左箭頭,為轉(zhuǎn)義符 5) 修改坐標軸范圍。>> axis equal>> axis normal>> axis (0 pi 0 1.5)6) 子圖和特殊圖形繪制。>> subplot(2,2,1)>> t1=0:0.1:3;>> y1=exp(-t1);>> bar(t1,y1);>> subplot(2,2,2)>> t2=0:0.2:2*pi;>> y2=sin(t2);>> stem(t2,y2);>> subplot(

53、2,2,3)>> t3=0:0.1:3;>> y3=t3.2+1;>> stairs(t3,y3);>> subplot(2,2,4)>> t4=0:.01:2*pi;>> y4= abs(cos(2*t4);>> polar(t4,y4);2、三維曲線和三維曲面繪制1) 三維曲線繪制使用plot3函數(shù)。繪制一條空間螺旋線:>> z=0:0.1:6*pi; >> x=cos(z);>> y=sin(z);>> plot3(x,y,z)練習:利用子圖函數(shù),繪制以上空

54、間螺旋線的俯視圖、左視圖和前視圖。2) 三維曲面圖的繪制:MATLAB繪制網(wǎng)線圖和網(wǎng)面圖的函數(shù)分別是mesh()、surf(),其具體操作步驟是:用函數(shù)meshgrid()生成平面網(wǎng)格點矩陣X,Y;由X,Y計算函數(shù)數(shù)值矩陣Z;用mesh()繪制網(wǎng)線圖,用surf()繪制網(wǎng)面圖。繪制橢圓拋物面:>> clear all,close all >> x=-4:0.2:4; >> y=x;>> X Y=meshgrid(x,y);>> Z=X.2/9+Y.2/9;>> mesh(X,Y,Z); >> title(

55、9;橢圓拋物面網(wǎng)線圖')>> surf(X,Y,Z);>>title('橢圓拋物面網(wǎng)面圖') 繪制闊邊帽曲面;>> clear all,close all;>> x=-7.5:0.5:7.5;>> Y=x;>> X,Y=meshgrid(x,Y);>> R=sqrt(X.2+Y.2)+eps; %避開零點,以免零做除數(shù)>> Z=sin(R)./R; >> mesh(X,Y,Z);>> title('闊邊帽面網(wǎng)線圖')>> figure(2)>> surf(X

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論