MATLAB上機實驗實驗報告_第1頁
MATLAB上機實驗實驗報告_第2頁
MATLAB上機實驗實驗報告_第3頁
MATLAB上機實驗實驗報告_第4頁
MATLAB上機實驗實驗報告_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z.MATLAB上機實驗一一、實驗目的初步熟悉MATLAB 工作環(huán)境,熟悉命令窗口,學會使用幫助窗口查找?guī)椭畔ⅰC畲翱诙?、實驗?1) 熟悉MATLAB 平臺的工作環(huán)境。(2) 熟悉MATLAB 的5 個工作窗口。(3) MATLAB 的優(yōu)先搜索順序。三、實驗步驟1. 熟悉MATLAB 的5 個根本窗口mand Window (命令窗口)Workspace (工作空間窗口)mand History (命令歷史記錄窗口)Current Directory (當前目錄窗口)Help Window (幫助窗口)(1) 命令窗口(mand Window)。在命令窗口中依次輸入以下命令:*=1

2、 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)* =1z1 = 1 2 3 4 5 6 7 8 9 10t1 = 1 1 1 1 1 1 1 1 t2 = 1 1 1t3 = 1 1 1t4 = 1 1 1 1 1 1 1 1 1t4 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1思考題:變量如何聲明,變量名須遵守什么規(guī)則、是否區(qū)分大小寫。答:1變量聲明 1.局部變量每個函數(shù)都有自己的局

3、部變量,這些變量只能在定義它的函數(shù)部使用。當函數(shù)運行時,局部變量保存在函數(shù)的工作空間中,一旦函數(shù)退出,這些局部變量將不復存在。腳本沒有輸入輸出參數(shù),由一系列MATLAB命令組成的M文件沒有單獨的工作空間,只能共享調(diào)用者的工作空間。當從命令行調(diào)用,腳本變量存在根本工作空間中;當從函數(shù)調(diào)用,腳本變量存在函數(shù)空間中。2.全局變量在函數(shù)或根本工作空間,用global聲明的變量為全局變量。例如聲明a為全局變量:global a聲明了全局變量的函數(shù)或根本工作空間,共享該全局變量,都可以給它曲賦值。如果函數(shù)的子函數(shù)也要使用全局變量,也必須用global聲明。3.永久變量永久變量用persistent聲明,只

4、能在M文件函數(shù)中定義和使用,只允許聲明它的函數(shù)存取。當聲明它的函數(shù)退出時,MATLAB不會從存中去除它,例如聲明a為永久變量:persistent a2變量命名規(guī)則如下:始于字母,由字母、數(shù)字或下劃線組成;區(qū)分大小寫;可任意長,但使用前N個字符。N與硬件有關,由函數(shù)namelengthma*返回,一般N=63;不能使用關鍵字作為變量名關鍵字在后面給出;防止使用函數(shù)名作為變量名。如果變量采用函數(shù)名,該函數(shù)失效。3區(qū)分大小寫試說明分號、逗號、冒號的用法。 答:分號:加上分號;其作用是將計算機結果存入存,但不顯示在屏幕上,反之,語句結尾假設不加;,則表示在語句執(zhí)行后,在將計算結果存入存的同時,還將運

5、算結果顯示出來。 逗號:分割列表 冒號:從什么到什么,比方1:10意思是1到10linspace( )稱為線性等分函數(shù),說明它的用法??墒褂胔elp命令,格式如下:help linspace說明函數(shù)ones( )、zeros( )、eye( ) 的用法。答;1ones函數(shù):全部元素都為1的常數(shù)矩陣; 2zeros函數(shù):全部元素都為0的矩陣; 3eye函數(shù):單位矩陣; 4linspace函數(shù):如a=linspace(n1,n2,n3),表示在線性空 間上,行矢量的值從n1到n2(2) 工作空間窗口(Workspace)。單擊工作空間窗口右上角的按鈕,將其從MATLAB 主界面別離出來。在工作空間

6、查看各個變量,或在命令窗口用who, whos(注意大小寫)查看各個變量。在工作空間雙擊變量,彈出Array Editor 窗口(數(shù)組編輯器窗口),即可修改變量。使用save 命令把工作空間的全部變量保存為my_var.mat 文件。save my_var.mat輸入以下命令:clear all %去除工作空間的所有變量觀察工作空間的變量是否被清空。使用load 命令把剛剛保存的變量載入工作空間。load my_var.mat去除命令窗口命令:clc(3) 歷史命令窗口(mand History)。翻開歷史命令窗口,可以看到每次運行MATLAB 的時間和曾在命令窗口輸入過的命令,練習以下幾種利

7、用歷史命令窗口重復執(zhí)行輸入過的命令的方法。在歷史命令窗口中選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇Copy,然后再Paste 到命令窗口。在歷史命令窗口中雙擊要執(zhí)行的一行命令,或者選中要重復執(zhí)行的一行或幾行命令后,用鼠標將其拖動到命令窗口中執(zhí)行。在歷史命令窗口中選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇Evaluate Selection,也可以執(zhí)行。或者在命令窗口使用方向鍵的上下鍵得到以前輸入的命令。例如,按方向鍵一次,就重新將用戶最后一次輸入的命令調(diào)到MATLAB 提示符下。重復地按方向上鍵,就會在每次按下的時候調(diào)用再往前一次輸入的命令。類似地,按方向鍵的時候

8、,就往后調(diào)用一次輸入的命令。按方向鍵或者方向鍵就會在提示符的命令中左右移動光標,這樣用戶就可以用類似于在字處理軟件中編輯文本的方法編輯這些命令。(4) 當前目錄命令窗口(Current Directory)。MATLAB 的當前目錄即是系統(tǒng)默認的實施翻開、裝載、編輯和保存文件等操作時的文件夾。翻開當前目錄窗口后,可以看到用save命令所保存的my_var.mat 文件是保存在目錄C:MATLAB6p5work 下。(5) 幫助窗口(Help Window)。單擊工具欄的圖標,或選擇菜單View|Help,或選擇菜單Help|MATLAB Help 都能啟動幫助窗口。通過Inde* 選項卡查找l

9、og2()函數(shù)的用法,在Search inde* for 欄中輸入需要查找的詞匯log2,在左下側就列出與之最匹配的詞匯條目,選擇log21,右側的窗口就會顯示相應的容。也可以通過Search 選項卡查找log2( )函數(shù)的用法。Search 選項卡與Inde* 選項卡不同,Inde* 只在專用術語表中查找,而Search 搜索的是整個HTML 幫助文件。2. MATLAB 的數(shù)值顯示格式設置屏幕顯示方式有緊湊(pact)和松散(Loose)兩種,其中Loose 為默認方式。a=ones(1,30)format pacta數(shù)字顯示格式有short、long、short e、long e 等,請

10、參照教材的列表練習一遍。format longpiformat shortpiformat longpiformat +pi-pi3. 變量的搜索順序在命令窗口中輸入以下指令:pisin(pi);e*ist(pi)pi=0;e*ist(pi)piclear pie*ist(pi)pi思考題:3 次執(zhí)行e*ist(pi)的結果一樣嗎?如果不一樣,試解釋為什么?答:不一樣,pi原來是庫存函數(shù),但是如果被賦值則系統(tǒng)默認被賦予的值為pi后來的值,但是當執(zhí)行clear pi之后所賦的值被清空,因此pi的值又成為3.1416圓周率pi 是系統(tǒng)的默認常量,為什么會被改變?yōu)??答:pi原來是庫存函數(shù),但是如果

11、被賦值則系統(tǒng)默認被賦予的值為pi后來的值,但是當執(zhí)行clear pi之后所賦的值被清空,因此pi的值又成為3.1416實驗二 MATLAB語言根底實驗目的根本掌握MATLAB向量、矩陣、數(shù)組的生成及其根本運算區(qū)分數(shù)組運算和矩陣運算)、常用的數(shù)學函數(shù)。交接字符串的操作。實驗容(1) 向量的生成和運算。(2) 矩陣的創(chuàng)立、引用和運算。(3) 多維數(shù)組的創(chuàng)立及運算。(4) 字符串的操作。三、實驗步驟1.向量的生成和運算1) 向量的生成直接輸入法:A = 2 3 4 5 6 B=1;2;3;4;5 B = 1 2 3 4 5 冒號生成發(fā): A=1:2:10 ,B=1:10 ,C=10:-1:1 A =

12、 1 3 5 7 9 B = 1 2 3 4 5 6 7 8 9 10 C = 10 9 8 7 6 5 4 3 2 1 函數(shù)法:Linspace( )是線性等分函數(shù),logspace( )是對數(shù)等分函數(shù)。 A=linspace(1,10) ,B=linspace(1,30,10)A = Columns 1 through 9 1.0000 1.0909 1.1818 1.2727 1.3636 1.4545 1.5455 1.6364 1.7273 Columns 10 through 18 1.8182 1.9091 2.0000 2.0909 2.1818 2.2727 2.3636 2

13、.4545 2.5455 Columns 19 through 27 2.6364 2.7273 2.8182 2.9091 3.0000 3.0909 3.1818 3.2727 3.3636 Columns 28 through 36 3.4545 3.5455 3.6364 3.7273 3.8182 3.9091 4.0000 4.0909 4.1818 Columns 37 through 45 4.2727 4.3636 4.4545 4.5455 4.6364 4.7273 4.8182 4.9091 5.0000 Columns 46 through 54 5.0909 5.1

14、818 5.2727 5.3636 5.4545 5.5455 5.6364 5.7273 5.8182 Columns 55 through 63 5.9091 6.0000 6.0909 6.1818 6.2727 6.3636 6.4545 6.5455 6.6364 Columns 64 through 72 6.7273 6.8182 6.9091 7.0000 7.0909 7.1818 7.2727 7.3636 7.4545 Columns 73 through 81 7.5455 7.6364 7.7273 7.8182 7.9091 8.0000 8.0909 8.1818

15、 8.2727 Columns 82 through 90 8.3636 8.4545 8.5455 8.6364 8.7273 8.8182 8.9091 9.0000 9.0909 Columns 91 through 99 9.1818 9.2727 9.3636 9.4545 9.5455 9.6364 9.7273 9.8182 9.9091 Column 100 10.0000 B = Columns 1 through 9 1.0000 4.2222 7.4444 10.6667 13.8889 17.1111 20.3333 23.5556 26.7778 Column 10

16、30.0000 A=logspace(0,4,5)A = 1 10 100 1000 10000練習: 使用logspace( )創(chuàng)立1-4的有10個元素的行向量。答案: A=logspace(1,10,4*pi)A = 1.0e+010 * Columns 1 through 9 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0005 0.0035 Columns 10 through 12 0.0231 0.1520 1.00002) 向量的運算維數(shù)一樣的行向量只見可以相加減,維數(shù)一樣的列向量也可以相加減,標量可以與向量直接相乘除。

17、A=1 2 3 4 5, B=3:7, A = 1 2 3 4 5 B = 3 4 5 6 7 AT=A, BT=B, AT = 1 2 3 4 5 BT = 3 4 5 6 7 E1=A+B, E2=A-B E1 = 4 6 8 10 12E2 = -2 -2 -2 -2 -2 F=AT-BT, F = -2 -2 -2 -2 -2 G1=3*A, G2=B/3, G1 = 3 6 9 12 15 G2 = 1.0000 1.3333 1.6667 2.0000 2.3333 向量的點積與叉積運算。 A=ones(1,10);B=(1:10); BT=B; E1=dot(A,B) E1 =

18、55 E2=A*BT E2 = 55 clear A=1:3,B=3:5, A = 1 2 3 B = 3 4 5 E=cross(A,B) E =-2 4 -2矩陣的創(chuàng)立、引用和運算 1) 矩陣的創(chuàng)立和引用 矩陣是由元素構成的矩陣構造,行向量和列向量是矩陣的特殊形式。 直接輸入法: A=1 2 3;4 5 6 A = 1 2 3 4 5 6 B= 1 4 7 2 5 8 3 6 9 B = 1 4 7 2 5 8 3 6 9 A(1)ans = 1 A(4:end)ans = 5 3 6 B(:,1)ans = 1 2 3 B(:)ans = 1 2 3 4 5 6 7 8 9 B(5)an

19、s = 5抽取法 clear A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 B=A(1:3,2:3)B = 2 3 6 7 10 11 C=A(1 3,2 4)C = 2 4 10 12 A(1 3;2 4)ans = 1 9 5 13 函數(shù)法: A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1 B=zero(3) Undefined function or method zero for input arguments of type doubl

20、e. B=zeros(3)B = 0 0 0 0 0 0 0 0 0 C=eyes(3,2) Undefined function or method eyes for input arguments of type double. C=eye(3,2)C = 1 0 0 1 0 0 D=magic(3)D = 8 1 6 3 5 7 4 9 2拼接法 clear A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1 B=zeros(3)B = 0 0 0 0 0 0 0 0 0 C=eye(4)C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 D

21、=A BD = 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 F=A;CF = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1拼接函數(shù)和變形函數(shù)法: clear A=0 1;1 1A = 0 1 1 1 B=2*ones(2)B = 2 2 2 2 cat (1,A,B,A)ans = 0 1 1 1 2 2 2 2 0 1 1 1 cat (2 A,B,A) cat (2 A,B,A)Error: Une*pected MATLAB e*pression. cat(2,A,B,A)ans =

22、 0 1 2 2 0 1 1 1 2 2 1 1 repmat(A,2,2)ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 repmat(A,2)ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1練習:使用函數(shù)法、拼接法、拼接函數(shù)法和變形函數(shù)法,按照要求創(chuàng)立以下矩陣:A為 的全1矩陣、B為的0矩陣/C為的單位矩陣、D為的魔方陣、E由C 和D縱向拼接而成,F(xiàn)抽取E的2-5行元素生成、G由經(jīng)變形為的矩陣而得、 以為子矩陣用復制函數(shù)(repmat)生成的大矩陣H。答案: A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1

23、B=zeros(3,3)B = 0 0 0 0 0 0 0 0 0 C=eye(3)C = 1 0 0 0 1 0 0 0 1 D=magic(3)D = 8 1 6 3 5 7 4 9 2 E=C;DE = 1 0 0 0 1 0 0 0 1 8 1 6 3 5 7 4 9 2 F=(2:5,:) F=(2:5,:)Error: E*pression or statement is incorrect-possibly unbalanced (, , or . F=E(2:5,:)F = 0 1 0 0 0 1 8 1 6 3 5 7 G=respace(E,3,4) Undefined m

24、and/function respace. G=respace(F,3,4) Undefined mand/function respace. G=reshape(F,3,4)G = 0 3 1 1 0 1 5 6 8 0 0 7 H=repmat(G,2,2)H = 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7矩陣的運算 矩陣的加減、數(shù)乘與乘法 矩陣: A=1 2 3 -1,A = 1 2 3 -1 B=-1 0 1 2B = -1 0 1 2 A

25、+Bans = 0 2 4 1 2*Aans = 2 4 6 -2 2*A-3*Bans = 5 4 3 -8 A*Bans = 1 4-4 -2 矩陣的逆矩陣 format rat;A=1 0 1;2 1 2;0 4 6A = 1 0 1 2 1 2 0 4 6 A1=inv(A)A1 = -1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 A*A1ans = 1 0 0 0 1 0 0 0 1 矩陣的除法 a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=ba = 1 2 1 3 1 4 2 2 1 b = 1 1 2 d = 1 1 2 c1=b*inv(a),

26、c2=b/ac1 = 6/7 3/7 -4/7 c2 = 6/7 3/7 -4/7 c3=inv(a)*d, c4=abc3 = 1 2/7 -4/7 Error using = mldivideMatri* dimensions must agree. c3=inv(a)*d, c4=adc3 = 1 2/7 -4/7 c4 = 1 2/7 -4/7 練習: 按以下要求求出各種的矩陣運算的值 求矩陣的秩、特征值和特征向量、 矩陣的乘冪與開方; 矩陣的指數(shù)與對數(shù) 矩陣的提取與翻轉答案: A=6 3 4 3 -2 5 7 -4 8 -1 -3 -7A = 6 3 4 3 -2 5 7 -4 8

27、-1 -3 -7 B=rank(A)B = 3 rb=rank(A)rb = 3 *,Lamda=eig(A) Error using = eigMatri* must be square. *,Lamda=eigs(A) Error using = eigsA must be a square matri* or a function which putes A*. C=6 3 4 -2 5 7 8 -1 -3C = 6 3 4 -2 5 7 8 -1 -3 *,Lamda=eigs(C)* = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4

28、749 0.7464 -0.4719Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602 *,Lamda=eig(C)* = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602 *,Lamda=eig(C)* = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719Lamda = 9.7326 0 0 0 -3.2928 0

29、 0 0 1.5602 D=A2 Error using = mpowerMatri* must be square. D=C2D = 62 29 33 34 12 6 26 22 34 E=sqrtm(C)E = 2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i 1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i F=e*pm(C)F = 1.0e+004 * 1.0653 0.5415

30、 0.6323 0.4830 0.2465 0.2876 0.6316 0.3206 0.3745 G=logm(C)Warning: Principal matri* logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matri* logarithm is returned. In funm at 153 In logm at 27G = 1.7129 + 0.4686i 0.5305 - 0.2425i 0.5429 - 0.6049i 1.1938 + 2.8123i 0.3

31、658 - 1.4552i -0.5514 - 3.6305i -0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 + 4.1282i H=fliplr(C)H = 4 3 6 7 5 -2 -3 -1 8 I=triu(C)I = 6 3 4 0 5 7 0 0 -3 J=tril(C)J = 6 0 0 -2 5 0 8 -1 -3 K=diag(C)K = 6 5-3多維數(shù)組的創(chuàng)立及運算多維數(shù)組的創(chuàng)立 A1=1,2,3;4 5 6;7,8,9;A2=reshape(10:18,3,3)A2 = 10 13 16 11 14 17 12 15 18 T1(:

32、,:,1)=ones(3);T1(:,:,2)=zeros(3)T1(:,:,1) = 1 1 1 1 1 1 1 1 1T1(:,:,2) = 0 0 0 0 0 0 0 0 0 T2=ones(3,3,2)T2(:,:,1) = 1 1 1 1 1 1 1 1 1T2(:,:,2) = 1 1 1 1 1 1 1 1 1 T3=cat(3,A1,A2),T4=repmat(A1,1,1,2)T3(:,:,1) = 1 2 3 4 5 6 7 8 9T3(:,:,2) = 10 13 16 11 14 17 12 15 18T4(:,:,1) = 1 2 3 4 5 6 7 8 9T4(:,

33、:,2) = 1 2 3 4 5 6 7 8 9多維數(shù)組的創(chuàng)立 數(shù)組運算用小圓點加在運算符的前面表示,以區(qū)分矩陣的運算。特點是兩個數(shù)組相對應的元素進展運算。 A=1:6;B=ones(1,6); C1=A+B,C2=A-BC1 = 2 3 4 5 6 7C2 = 0 1 2 3 4 5 C3=A.*B,C4=B./A,C5=A.BC3 = 1 2 3 4 5 6C4 = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667C5 =1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 關系運算或邏輯運算的結果都是邏輯值。 I=A3,C6

34、=A(I)I = 0 0 0 1 1 1C6 = 4 5 6 A1=A-3,I2=A1&AA1 = -2 -1 0 1 2 3I2 = 1 1 0 1 1 1 I3=II3 = 1 1 1 0 0 0字符串的操作1 字符串的創(chuàng)立 S1=Ilike MATLABS1 =Ilike MATLAB S2=Im a stuent.S2 =Im a stuent. S3=S2,and,S1S3 =Im a stuent.andIlike MATLAB求字符串長度 length(S1)ans = 12 size(S1)ans = 1 12字符串與一維數(shù)值數(shù)組的相互轉換 CS1=abs(S1)CS1 = 7

35、3 108 105 107 101 32 77 65 84 76 65 66 CS2=double(S1)CS2 = 73 108 105 107 101 32 77 65 84 76 65 66 char(CS2)ans =Ilike MATLAB setstr(CS2)ans =Ilike MATLAB練習:用char( )和向量生成的方法創(chuàng)立如下字符串AaBbCc.*YyZz. S1=65:90;S2=97:122; C=S1;S2; C=C(:); S3=double(C);char(S3)ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuV

36、vWw*YyZz實驗三 MALTAB數(shù)值運算一、實驗目的掌握MATLAB的數(shù)值運算及其運算中所用到的函數(shù),掌握構造數(shù)組和細胞數(shù)組的操作。二、實驗容多項式運算。多項式插值和擬合。數(shù)值為積分。構造數(shù)組和細胞數(shù)組。三、實驗步驟1、多項式運算多項式表示。在MATLAB中,多項式表示成向量的形式。如:在MATLAB中表示為 s=1 3 -5 0 9多項式的加減法相當于向量的加減法,但必須注意階次要一樣。如不同,低階次的要補0。如多項式與多項式相加。 s1=0 0 2 3 11 s2=1 2 -5 4 7 s3=s1+s2答;s1 = 0 0 2 3 11s2 = 1 2 -5 4 7s3 = 1 2 -

37、3 7 18多項式的乘、除法分別用函數(shù)conv和的deconv實現(xiàn)。 s1=2 3 11 s2=1 3 -5 4 7 s3=conv(s1,s2) s4=deconv(s3,s1)答;s1 = 2 3 11s2 = 1 3 -5 4 7s3 = 2 9 10 26 -29 65 77s4 = 1 3 -5 4 7多項式求根用函數(shù)roots。 s1=2 4 2 roots(s1)答;s1 = 2 4 2ans = -1 -1多項式求值用函數(shù)polyval s1=2 4 1 -3 polyval(s1,3) *=1:10 y=polyval(s1,*)答;s1 = 2 4 1 -3ans = 90

38、* = 1 2 3 4 5 6 7 8 9 10y = Columns 1 through 8 4 31 90 193 352 579 886 1285 Columns 9 through 10練習:求的商及余數(shù)。 s1=1 0 1;s2=1 3;s3=1 1; s4=1 0 2 1; q,r=deconv(conv(conv(s1,s2),s3),s4)答;q = 1 4r = 0 0 2 -5 -12、多項式插值和擬合有一組實驗數(shù)據(jù)如附表1-1所示。附表1-1*12345678910Y163270142260436682101014321960分別用擬合二階至三階和插值線性和三次樣條的方法

39、來估算*=9.5時Y的值。以下是實現(xiàn)一階擬合的語句。 *=1:10 y=16 32 70 142 260 436 682 1010 1342 1960 p1=polyfit(*,y,1) %一階擬合 y1=polyval(p1,9.5) %計算多項式P1在*=9.5的值答;* = 1 2 3 4 5 6 7 8 9 10y = Columns 1 through 8 16 32 70 142 260 436 682 1010 Columns 9 through 10 1342 1960p1 = 200.9818 -510.4000y1 = 1.3989e+0033、數(shù)值微積分差分使用diff函

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

41、 1 1 1 1 1 1 1 1 1ans = 1 2 3 4 5 6 7 8 9 10ans = 1.9998ans = 1.9998練習:圖A1是瑞士地圖,為了算出其國土面積,首先對地圖作如下測量:以由西向向為*軸,由南向北方向為Y軸,選擇方便的原點,并將從最西邊界點到最東邊界點在*軸上的區(qū)間適當劃分為假設干段,在每個分點的Y方向測出南邊界點和北邊界點的Y坐標Y1和Y2,這樣就得到表1,根據(jù)地圖比例尺回到18mm相當于40Km,試由測量數(shù)據(jù)計算瑞士國土近似面積,與其準確值41228比擬。地圖的數(shù)據(jù)見附表1-2單位mm。附表1-2*710.51317.53440.544.548566168.

42、576.580.591Y14445475050383030343634414546Y24459707293100110110110117118116118118續(xù)表*96101104106.5111.5118123.5136.5142146150157158Y143373328326555545250666668Y2121124121121121116122838182868568提示:由高等數(shù)學的知識,一條曲線的定積分是它與*軸所圍成的面積,則兩條曲線所圍成的面積可由兩條曲線的定積分相減得到。4、構造數(shù)組與細胞數(shù)組機構數(shù)組的創(chuàng)立。 student.number=; =

43、Jack; student(2).number=; student(2).name=Lucy; student或者用struct函數(shù)創(chuàng)立。 student=struct(number,001,002,name,Jack,Lucy);答;student = 1*2 struct array with fields: number name機構數(shù)組的操作。 student(1).subject= %添加subject域并賦予空值 student(1).score= filednames(studeng)fieldnames(studeng)fieldnames(student) getfield(

44、student,2,name) student=rmfield(student,subject) %刪除subject域 student=setfield(student,1,score,90); student(2).score=88; %比擬和上一條語句是否效果一樣答;student = 1*2 struct array with fields: number name subjectstudent = 1*2 struct array with fields: number name subject score Undefined function or variable studeng

45、.練習:創(chuàng)立一構造數(shù)組stusorce,其域為:No,Name,English,Math,Chinese,Total,Average。構造數(shù)組的大小為22。細胞數(shù)組的創(chuàng)立。 A=How are you!,ones(3);1 2;3 4,cell; %直接創(chuàng)立 B(1,1)=Hello world; %由各個細胞元素創(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;細胞數(shù)組的操作。 ans

46、1=A(1,1) ans2=A(1,1) whos ans1 ans2 celldisp(A) a1=A2,1(1,2) a2 a3=deal(A1:2)答;ans1 = How are you!ans2 = How are you! Name Size Bytes Class Attributes ans1 1*1 84 cell ans2 1*1 84 cell A1,1 =How are you!A2,1 = 1 2 3 4A1,2 = 1 1 1 1 1 1 1 1 1A2,21 =cella1 = 2a2 =How are you!a3 = 1 2 3 4實驗四 MALTAB符號運算

47、一、實驗目的掌握符號變量和符號表達式的創(chuàng)立,掌握MALTAB的symbol工具箱的一些根本運用。二、實驗容符號變量、表達式、方程及函數(shù)的表示。符號微積分運算。符號表達式的操作和轉換。符號微分方程求解。三、實驗步驟1、符號運算的引入在數(shù)值運算中如果求,則可以不斷讓的讓*趨近0,一球的表達式趨近什么數(shù),但終究不能令*=0,因為在數(shù)值運算中0不是能作除數(shù)的。MATLAB的符號運算能解決這問題。輸入如下命令: f=sym(sin(pi*)/*) limit(f,*,0)答;f =sin(pi*)/*ans =pi2、符號常量、符號變量、符號表達式的創(chuàng)立使用sym()創(chuàng)立輸入以下命令,觀察Workspa

48、ce中A、B、f是什么性的數(shù)據(jù),占用多少字節(jié)的存空間。 A=sym(1) %符號常量 B=sym(*) %符號變量 f=sym(2*2+3*-1) %符號表達式 clear f1=sym(1+2) %有單引號,表示字符串 f2=sym(1+2) %無單引號 f2=sym(1+2) f4=sym(2*+3) %為什么出錯 *=1 f4=sym(2*+3)答;A =1B =*f =2*2+3*-1f1 =1+2f2 =3f2 =3f4 =2*+3* = 1f4 =5通過看MATLAB的幫助可知,sym的參數(shù)可以使字符串或是數(shù)值類型,無論是哪種類型都會生成符號類型數(shù)據(jù)。使用syms創(chuàng)立 clear

49、syms * y z *,y,z f1=*2+2*+1 f2=e*p(y)+e*p(z)2 f3=f1+f2答;* =*y =yz =zf1 =*2+2*+1f2 =e*p(y)+e*p(z)2f3 =*2+2*+1+e*p(y)+e*p(z)23、符號矩陣創(chuàng)立 syms a1 a2 a3 a4 A=a1 a2;a3 a4 A(1),A(3)答;A = a1, a2 a3, a4ans =a1ans =a24、符號算術運算符號向量相乘、相除符號量相成和數(shù)值量相乘一樣,分成矩陣乘和數(shù)組乘。 a=sym(5);b=sym(7); c1=a*b c2=a/b a=sym(5);B=sym(3 4 5

50、); 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./B答;c1 =35c2 =5/7C1 = 15, 20, 25C2 = 3/5, 4/5, 1C1 = 10*a+2*a*b, 5*b+a2 2*a*b+6*b, b2+3*aC2 = 10*a, a*b 2*b2, 3*aC3 = 2*a*(b-3)/(-15+a*b), (a2-3*b)/(-15+a*b) 2*b*(a-5)/(-15+a*b), -(5*a-b2)/(-15+a*b)C4 = 5/2/a, a/b 1/2, 3/a符號

51、數(shù)值任意精度控制和運算任意精度的VPA運算可以使用命令digits設定默認的精度和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)答a1 =2*sqrt(5)+pia =2*sqrt(5)+pib =35796*2(-50)Digits = 32ans =7.421ans =7.937c1 =7.2696c2 =7.0000注意觀察c1和c2的數(shù)值類型,c1和c2是

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

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

54、=*,*zans =*,*z,yans =*,*z,y,jans =*,*z,y,j,bans =*,*z,y,j,b,a2符號表達式的化簡符號表達式化簡主要包括表達式美化pretty、合并同類項collcet、多項式展開e*pand、因式分解factor、化簡simple或simplify等函數(shù)。合并同類項collect。分別按*的同冪項和e指數(shù)同冪項合并表達式:。 syms * t; f=(*2+*e*p(-t)+1)*(*+e*p(-t); f1=collect(f) f2=collect(f,e*p(-t)答;f1 =*3+e*p(-t)*2+(*e*p(-t)+1)*+(*e*p(-

55、t)+1)*e*p(-t)f2 =(*2+*e*p(-t)+1)*e*p(-t)+(*2+*e*p(-t)+1)*對顯示格式加以美化pretty。針對上例,用格式美化函數(shù)可以使顯示的格式更符合數(shù)學書寫習慣。 pretty(f1) pretty(f2)答;f1 =*3+e*p(-t)*2+(*e*p(-t)+1)*+(*e*p(-t)+1)*e*p(-t)f2 =(*2+*e*p(-t)+1)*e*p(-t)+(*2+*e*p(-t)+1)* pretty(f1)pretty(f2) 3 2 e*p(-t) e*p(-t) * + e*p(-t) * + (* + 1) * + (* + 1)

56、e*p(-t) 2 e*p(-t) 2 e*p(-t) (* + * + 1) e*p(-t) + (* + * + 1) *注意與直接輸出的f1和f2比照。多項式展開e*pand。展開成*不同次冪的多項式. syms * f=(*-1)12; e*pand(f) pretty(e*pand(f)答;ans =1+*12-12*11+66*10-220*9+495*8-792*7+924*6-792*5+495*4-220*3+66*2-12* 12 11 10 9 8 7 6 5 1 + * - 12 * + 66 * - 220 * + 495 * - 792 * + 924 * - 79

57、2 * 4 3 2 + 495 * - 220 * + 66 * - 12 *因式分解factor。將表達式做因式分解。 syms *;f=*12-1; pretty(factor(f)答;ans =1+*12-12*11+66*10-220*9+495*8-792*7+924*6-792*5+495*4-220*3+66*2-12* 12 11 10 9 8 7 6 5 1 + * - 12 * + 66 * - 220 * + 495 * - 792 * + 924 * - 792 * 4 3 2 + 495 * - 220 * + 66 * - 12 * syms *;f=*12-1;p

58、retty(factor(f) 2 2 2 4 2 (* - 1) (1 + * + *) (1 + *) (1 - * + * ) (1 + * ) (* - * + 1)化簡simple或simplify。將函數(shù)化簡。 clear syms *;f=(1/*3+6/*2+12/*+8)(1/3); g1=simple(f) g2=simplify(f)答;g1 =(2*+1)/*g2 =(2*+1)3/*3)(1/3)6、符號表達式的變量替換subs函數(shù)可以對符號表達式中的符號變量進展替換 clear f=sym(*+y)2+4*+10) f1=subs(f,*,s) %使用s替換* f2

59、=subs(f,*+y,z)答;f =(*+y)2+4*+10f1 =(s+y)2+4*s+10f2 =z2+4*+107、符號極限、符號積分與微分求極限函數(shù)的調(diào)用格式limit(F,*,a) %返回符號對象F當*a時的極限limit(F,a) %返回符號對象F當獨立變量*a時的極限limit(F) %返回符號對象F當獨立變量0a=0時的極限limit(F,*,a,right) %返回符號對象F當*a時的右極限limit(F,*,a,left) %返回符號對象F當*a時的左極限例一: clear f=sym(sin(*)/*+a*) limit(f,*,0) %以*為自變量求極限 limit(

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

溫馨提示

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

最新文檔

評論

0/150

提交評論