版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、MATLAB程序設(shè)計基礎(chǔ)MATLAB的數(shù)值計算Matlab的數(shù)據(jù)類型o變量 變量不需要事先聲明,也不需要指定變量類型,它會自動根據(jù)所賦予變量的值或?qū)ψ兞康牟僮鱽泶_定變量的類型;賦值過程中,如果變量已存在,則用新值代替舊值,以新的類型代替舊的類型。 變量的命名規(guī)則:l變量名區(qū)分大小寫;l變量名長度不超過31位,第31位之后的字符被忽略;l變量名以字母開頭,變量名中可以包含字母、數(shù)字、下劃線,但不能使用標(biāo)點。 變量一般為局部變量,即僅在其調(diào)用的M文件內(nèi)部有效;若要定義全局變量,須在變量前加關(guān)鍵字global。o常量 matlab中預(yù)定義的一些特殊的量。 i,j 虛數(shù)單位Realmin 最小的正浮點
2、數(shù), pi 圓周率Realmax 最大的浮點數(shù), eps 浮點運算的相對精度Inf 無窮大 NaN not a number ,不定值 例如:pians = 3.14161102221023252101/0Warning: Divide by zero.ans = Inf0/0Warning: Divide by zero.ans = NaNo定義變量時應(yīng)避免與常量名相同,如果改變了某個常量的值,可以用clear命令來恢復(fù)。pi=1pi = 1clear pipians = 3.1416o數(shù)字變量l數(shù)字變量的運算258*369ans = 95202x=258*369x = 952021233a
3、ns = 1860867sqrt(ans)ans = 1.3641e+003l數(shù)字的輸入輸出格式 缺省為實數(shù)保留小數(shù)點后4位浮點數(shù)表示。 其輸入格式與C語言一致: 如:9 -73 0.1999 1.475e6 輸出格式由format命令控制,只是影響屏幕顯示效果,不影響內(nèi)部存儲和計算。format long;pians = 3.14159265358979format long e;pians = 3.141592653589793e+000format long g;pians = 3.14159265358979o字符串l1、字符串的約定字符串用單引號輸入或賦值;字符串的每個字符都是都是字
4、符數(shù)組的一個元素;字符串和字符數(shù)組基本上等價。s=symbolics =symbolic size(s)ans = 1 8 s(3)ans =ml字符串的轉(zhuǎn)換 double 字符串轉(zhuǎn)換為數(shù)值代碼 num2str 數(shù)字轉(zhuǎn)換為字符串 int2str 整數(shù)轉(zhuǎn)換為字符串 mat2str 矩陣轉(zhuǎn)換為字符串 str2num 轉(zhuǎn)換字符串為數(shù)字 double(s)ans = 49 50 51 50 51 52l字符串操作 strcat strcmp strvcat strncmp findstr upper lower blanks deblank l執(zhí)行字符串 t=1/(a*b-1);a=2;b=3;c=e
5、val(t)c = 0.2000o結(jié)構(gòu)型變量 由函數(shù)struct定義,以指針操作符“.”連接結(jié)構(gòu)型變量名與屬性名。 結(jié)構(gòu)型變量名結(jié)構(gòu)型變量名struct(元素名(元素名1,元素值,元素值1,元素名,元素名2,元素值,元素值2,) c=struct(c1,1,c2,1 2 3 4,c3,abcd)c = c1: 1 c2: 1 2 3 4 c3: abcd c.c2ans = 1 2 3 4 c.c3ans =abcdabcdo單元型變量 單元型變量為任意類型的多維數(shù)組,其定義需用大括號,元素間用逗號隔開。 a=1,2;3,4a = 1 2 3 4 b=1:4,a,abcdb = 1x4 dou
6、ble 2x2 double abcd?cellplot(b) 單元型變量元素的引用采用大括號為下標(biāo)標(biāo)識,用小括號只顯示該元素的壓縮形式。 b2ans = 1 2 3 4 b(2)ans = 2x2 doubleo向量 向量元素用“”括起來,元素間用空格、逗號或分號分隔; 注意:空格和逗號分隔成行向量,分號分割成列向量。注意:空格和逗號分隔成行向量,分號分割成列向量。l冒號表達式生成向量 基本格式:xx1:step:x2 xx1:x2 a=1:2:12a = 1 3 5 7 9 11 a=12:-2:1a = 12 10 8 6 4 2 a=1:6a = 1 2 3 4 5 6l線性等分向量生
7、成 y=linspace(x1,x2) 生成100維行向量 y=linspace(x1,x2,n) 生成n維行向量 a=linspace(1,100,6)a = 1.0000 20.8000 40.6000 60.4000 80.2000 100.0000l對數(shù)等分向量生成 y=logspace(x1,x2)生成50維對數(shù)等分向量,y(1)=10 x1 y(50)=10 x2 y=logspace(x1,x2,n)生成n維對數(shù)等分向量y(1)=10 x1 y(n)=10 x2 a=logspace(0,5,6)a = 1 10 100 1000 10000 100000o向量的基本運算l與數(shù)運
8、算a = 1.0000 20.8000 40.6000 60.4000 80.2000 100.0000 a-1ans = 0 19.8000 39.6000 59.4000 79.2000 99.0000 a*2ans = 2.0000 41.6000 81.2000 120.8000 160.4000 200.0000l點積計算 指兩個向量在其中一個向量方向上的投影的乘積。 dot(a,b) a,b必須同維。 a=1 2 3; b=3,4,5; dot(a,b)ans = 26 sum(a.*b)ans = 26l叉積 表示過兩相交向量的交點的垂直于兩向量所在平面的向量。 cross(a,
9、b) a,b必須為三維向量。l混合積 c=cross(a,b)c = -2 4 -2 dot(a,cross(b,c)ans = 24o矩陣大型矩陣通借助M文件來輸入。矩陣987654321A的輸入: A = 1,2,3; 4,5,6; 7,8,9A = 1 2 3 4 5 6 7 8 9 a=1 2 34 5 67 8 9a = 1 2 3 4 5 6 7 8 9x=rand(1,5)%產(chǎn)生的均布隨機數(shù)組產(chǎn)生的均布隨機數(shù)組 x =0.9501 0.2311 0.6068 0.4860 0.8913 x(3)%尋訪數(shù)組尋訪數(shù)組x的第三個元素。的第三個元素。 ans =0.6068 x(1 2
10、5)%尋訪數(shù)組尋訪數(shù)組x的第一、二、五個元素組成的子數(shù)組。的第一、二、五個元素組成的子數(shù)組。 ans =0.9501 0.2311 0.8913 x(1:3)%尋訪前三個元素組成的子數(shù)組尋訪前三個元素組成的子數(shù)組 ans = 0.9501 0.2311 0.6068 x(3:end)%尋訪除前尋訪除前2個元素外的全部其他元素。個元素外的全部其他元素。end是最后一是最后一個元素的下標(biāo)。個元素的下標(biāo)。 ans = 0.6068 0.4860 0.8913 常用的特殊矩陣單位矩陣:eye(m,n); eye(m)零 矩 陣:zeros(m,n); zeros(m)一 矩 陣:ones(m,n);
11、ones(m)對角矩陣:對角元素向量 V=a1,a2,an A=diag(V)隨機矩陣:rand(m,n)產(chǎn)生一個mn的均勻分別的隨機矩陣 eye(2,3)ans= 1 0 0 0 1 0 zeros(2,3)ans= 0 0 0 0 0 0 ones(2,3)ans= 1 1 1 1 1 1 V=5 7 2; A=diag(V)A= 5 0 0 0 7 0 0 0 2 eye(2)ans= 1 0 0 1 zeros(2)ans= 0 0 0 0 ones(2)ans= 1 1 1 1 如果已知A為方陣,則V=diag(A)可以提取A的對角元素構(gòu)成向量V。其他特殊矩陣 compan 友矩陣函
12、數(shù) magic 魔方矩陣 hankel Hankel矩陣 rosser 對稱特征值測試矩陣 hilb Hilbert矩陣 pascal Pascal矩陣 invhilb 反Hilbert矩陣 vander 范德蒙矩陣 o矩陣的基本運算l加減運算 要求兩矩陣必須同階。 a=1 2 3;2 3 4; 3 4 5; b=1 1 1;2 2 2;3 3 3; c=a+bc = 2 3 4 4 5 6 6 7 8l乘法 要求a為ij階,b為jk階時,ab才能相乘。 e=b,5 5 5e = 1 1 1 5 2 2 2 5 3 3 3 5 f=a*ef = 14 14 14 30 20 20 20 45
13、26 26 26 60l除法左除“”: 相當(dāng)于Ax=B的解,x=A-1B。右除“/”:相當(dāng)于xA=B的解,x=BA-1 A-1B=(BA-1)。通常,右除稍快一些,而左除可以避免奇異性。對于AxB,其中A為(nm)階矩陣:n=m且非奇異時,方程為恰定方程;nm方程為超定方程;n A=1 2 3;4 5 6;7 8 0;1 3 5; B=1 3 5;2 4 6; A/Bans = 0 0.5000 -3.0000 3.5000 -12.0000 10.2500 1.0000 0.0000(BA)ans = 0 0.5000 -3.0000 3.5000 -12.0000 10.2500 1.00
14、00 0.0000 rand(seed,12); a=rand(100)+1.e8; x=ones(100,1); b=a*x; cond(a)ans = 5.0482e+011 tic;x1=b/a;t1=toct1 = 0.0773 er1=norm(x-x1)er1 = 139.8328 tic;x1=ab;t1=toct1 = 0.0014 er2=norm(x-x1)er2 = 1.1311e-004l矩陣與常數(shù)的運算 常數(shù)與此矩陣的各元素之間進行運算。 注意:進行數(shù)除時,常數(shù)通常只能做除數(shù)。l矩陣的逆運算 函數(shù) inv A=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1
15、 0 -1 5; inv(A)ans = -0.0471 0.5882 -0.2706 -0.9412 0.3882 -0.3529 0.4824 0.7647 -0.2235 0.2941 -0.0353 -0.4706 -0.0353 -0.0588 0.0471 0.2941l矩陣的行列式運算 函數(shù) det A=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5; a1=det(A)a1 = -85 a2=det(inv(A)a2 = -0.0118 a1*a2ans = 1l矩陣的冪運算 與數(shù)字的冪運算形式相同,用“”算符。l矩陣的指數(shù)運算 常用函數(shù) expm e
16、xpm1 expm2 expm3l矩陣的對數(shù)運算 函數(shù) logml矩陣的開方運算 函數(shù) sqrtm b=magic(3)b = 8 1 6 3 5 7 4 9 2 sqrtm(b)ans = 2.7065 + 0.0601i 0.0185 + 0.5347i 1.1480 - 0.5948i 0.4703 + 0.0829i 2.0288 + 0.7378i 1.3739 - 0.8207i 0.6962 - 0.1430i 1.8257 - 1.2725i 1.3511 + 1.4155i b0.5ans = 2.7065 + 0.0601i 0.0185 + 0.5347i 1.1480
17、- 0.5948i 0.4703 + 0.0829i 2.0288 + 0.7378i 1.3739 - 0.8207i 0.6962 - 0.1430i 1.8257 - 1.2725i 1.3511 + 1.4155io矩陣的基本函數(shù)運算l特征值函數(shù) 函數(shù) x,y=eig(A) 可以給出特征值和特征向量的值 x為特征向量矩陣,y為特征值矩陣。 A=7 3 -2;3 4 -1;-2 -1 3;x,y=eig(A)x = 0.5774 0.0988 -0.8105 -0.5774 -0.6525 -0.4908 0.5774 -0.7513 0.3197y = 2.0000 0 0 0 2.3
18、944 0 0 0 9.6056l奇異值函數(shù) 函數(shù) svd svds 矩陣非零特征值的平方根稱作矩陣的奇異值。 矩陣的奇異值大小通常決定矩陣的性態(tài),如果矩陣的奇異值變化特別大,則矩陣中某個參數(shù)的微小變化將嚴(yán)重影響到原矩陣的參數(shù),這樣的矩陣又稱為病態(tài)矩陣,也稱奇異矩陣。例:A=1,1;5*eps,0;0,5*eps; sqrt(eig(A*A)l矩陣翻轉(zhuǎn) 函數(shù) fliplr flipud rot90a = 7 3 -2 3 4 -1 -2 -1 3 fliplr(a)ans = -2 3 7 -1 4 3 3 -1 -2 flipud(a)ans = -2 -1 3 3 4 -1 7 3 -2
19、rot90(a)ans = -2 -1 3 3 4 -1 7 3 -2l條件數(shù)函數(shù) 判斷矩陣的“病態(tài)”程度。 函數(shù)cond 計算矩陣的條件數(shù)的值 condest計算矩陣的1范數(shù)條件數(shù)的估計值 rcond 計算矩陣的條件數(shù)的倒數(shù)值 矩陣的條件數(shù)condA=最大奇異值/最小奇異值,條件數(shù)越大,則對參數(shù)變化越敏感。l范數(shù)函數(shù) 函數(shù) norm(X,P) P1 1范數(shù) P2 2范數(shù) Pinf 無窮范數(shù) Pfro F范數(shù) norm(X)norm(X,2)njijniTniijnjaAAAsAaA11max2111|max|maxl秩函數(shù) 函數(shù) ranke = 1 1 1 5 2 2 2 2 3 3 3 5
20、 rank(e)ans = 2l跡函數(shù) 矩陣所有對角線上元素的和稱為矩陣的跡。 函數(shù) tracel正交空間函數(shù) 函數(shù) orth 用來求矩陣的一組正交基。l偽逆函數(shù) 函數(shù) pinv 求解“病態(tài)”問題時,避免產(chǎn)生偽解。 a=magic(4)a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 b=a*1 1 1 1; inv(a)*bWarning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.567374e-017.ans = 0 8 0 0 p
21、inv(a)*bans = 1.0000 1.0000 1.0000 1.0000o稀疏矩陣 用元素的行列號和元素值來存儲一個元素。 a=speye(100)a = (1,1) 1 (2,2) 1 (3,3) 1 (4,4) 1 (99,99) 1 (100,100) 1 b=eye(100); whos a b Name Size Bytes Class a 100 x100 1604 sparse array b 100 x100 80000 double arrayGrand total is 10100 elements using 81604 bytesl常規(guī)矩陣轉(zhuǎn)換為稀疏矩陣 sp
22、arse(A) a=1 2 3;4 5 6;7 8 0; b=sparse(a)b = (1,1) 1 (2,1) 4 (3,1) 7 (1,2) 2 (2,2) 5 (3,2) 8 (1,3) 3 (2,3) 6 whos a b Name Size Bytes Class a 3x3 72 double array b 3x3 112 sparse arrayGrand total is 17 elements using 184 bytes sparse(i,j,s,n,m,nzmax) sparse(i,j,s,n,m) sparse(i,j,s,n) n,m為生成稀疏矩陣的行列數(shù),i
23、,j,s為子矩陣,nzmax最多的非零元素數(shù)l稀疏矩陣轉(zhuǎn)換為常規(guī)矩陣 full()l通用函數(shù)形式 通用函數(shù)調(diào)用格式 funm(A,funname) funname包括sin sinh asin asinh cos cosh acos acosh tan exp log log2 pow2 sqrt abs funm(a,sqrt)ans = 3.7584 - 0.2071i -0.2271 + 0.4886i 0.3887 + 0.7700i 1.9110 - 1.0514i 0.2745 - 0.0130i 2.3243 + 0.0306i 2.0076 + 0.0483i 1.2246 -
24、 0.0659i 1.3918 - 0.2331i 1.5060 + 0.5498i 1.4884 + 0.8666i 1.4447 - 1.1833i 0.4063 + 0.4533i 2.2277 - 1.0691i 1.9463 - 1.6848i 1.2506 + 2.3006i sqrtm(a)ans = 3.7584 - 0.2071i -0.2271 + 0.4886i 0.3887 + 0.7700i 1.9110 - 1.0514i 0.2745 - 0.0130i 2.3243 + 0.0306i 2.0076 + 0.0483i 1.2246 - 0.0659i 1.39
25、18 - 0.2331i 1.5060 + 0.5498i 1.4884 + 0.8666i 1.4447 - 1.1833i 0.4063 + 0.4533i 2.2277 - 1.0691i 1.9463 - 1.6848i 1.2506 + 2.3006i sqrt(a)ans = 4.0000 1.4142 1.7321 3.6056 2.2361 3.3166 3.1623 2.8284 3.0000 2.6458 2.4495 3.4641 2.0000 3.7417 3.8730 1.0000p矩陣分解函數(shù)l特征值分解V,D=eig(X) 矩陣的特征值分解:XVVDV,D=eig
26、(X,nobalance) 關(guān)閉平衡算法的求解方法(平衡算法對于某些問題可以得到更高的精度)。V,D=eig(A,B) 廣義特征值分解:AVBVD a=-149 -50 -154;537 180 546;-27 -9 -25;v,d=eig(a)v = 0.3162 0.4041 0.1391 -0.9487 -0.9091 -0.9740 0.0000 -0.1010 0.1789d = 1.0000 0 0 0 2.0000 0 0 0 3.0000 b=2 10 2;10 5 -8;2 -8 11;v,d=eig(a,b)v = 0.8211 -0.3138 -0.0191 -0.345
27、2 0.9495 -0.9441 -0.4546 -0.0044 0.3290d = 12.9030 0 0 0 -0.0045 0 0 0 0.0706l奇異值分解 U,S,V=svd(X) 其中XUSV a=1;1;U,S,V=svd(a)U = 0.7071 -0.7071 0.7071 0.7071S = 1.4142 0V = 1 lLU分解 L,U=lu(A) 又稱三角分解,目的是分解成一個下三角陣L和一個上三角陣U的乘積,即ALU a=1 2 3;2 4 1;4 6 7;l,u=lu(a)l = 0.2500 0.5000 1.0000 0.5000 1.0000 0 1.000
28、0 0 0u = 4.0000 6.0000 7.0000 0 1.0000 -2.5000 0 0 2.5000注意:L實際上是一個“心理上”的下三角矩陣,它事實上是一個置換矩陣P的逆矩陣與一個真正下三角矩陣L1(其對角線元素為1)的乘積。l,u,p=lu(a)l = 1.0000 0 0 0.5000 1.0000 0 0.2500 0.5000 1.0000u = 4.0000 6.0000 7.0000 0 1.0000 -2.5000 0 0 2.5000p = 0 0 1 0 1 0 1 0 0 inv(p)*l*uans = 1 2 3 2 4 1 4 6 7p為置換矩陣,此時滿
29、足AP-1LUlChol分解 如果A為n階對稱正定矩陣,則存在一個非奇異下三角實矩陣L,使得ALLT,當(dāng)限定L的對角元素為正時,這種分解是唯一的。 a=4 -1 1;-1 4.25 2.75;1 2.75 3.5; chol(a)ans = 2.0000 -0.5000 0.5000 0 2.0000 1.5000 0 0 1.0000l正交分解 AQR a=1 1 1;2 -1 -1;2 -4 5;q,r=qr(a)q = -0.3333 -0.6667 -0.6667 -0.6667 -0.3333 0.6667 -0.6667 0.6667 -0.3333r = -3 3 -3 0 -3
30、 3 0 0 -3將矩陣A做正交化分 解 , 使 得Q*R=A,其中Q為正交矩陣(其范 數(shù) 為 1 , 指 令norm(Q)=1),R為對角化的上三角矩陣。矩陣的特殊操作p變維lreshape(X,M,N) X變?yōu)镸N維lreshape(X,M,N,P,)X變?yōu)镸NP 或reshape(X,M N P )l“:” 操作符 a=1:12; b=reshape(a,2,6)b = 1 3 5 7 9 11 2 4 6 8 10 12 c=zeros(4,3); c(:)=a(:)c = 1 5 9 2 6 10 3 7 11 4 8 12p矩陣抽取l對角元素抽取 diag(X,k)抽取X的第k條對
31、角線元素,k=0為主對角線,上對角線為正值,下對角線為負值。 diag(X) 抽取主對角線元素 a=pascal(4)a = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 v=diag(a)v = 1 2 6 20 v=diag(a,2)v = 1 4l三角陣的抽取 tril(X)提取X的主下三角部分 tril(X,k) 提取X的第k條對角線下面的元素 triu(X)提取X的主上三角部分 triu(X,k) 提取X的第k條對角線上面的元素 al=tril(a,-1)al = 0 0 0 0 1 0 0 0 1 3 0 0 1 4 10 0 au=triu(a,-1)au
32、 = 1 1 1 1 1 2 3 4 0 3 6 10 0 0 10 20數(shù)組及其運算 數(shù)組的建立、存儲完全同于矩陣,由于計算的不同,把相同型矩陣之間的運算稱為數(shù)組運算。p基本數(shù)組運算l數(shù)組的四則運算 普通運算同矩陣的運算,另有點運算“.*”、”./”、”.”,即兩數(shù)組對應(yīng)元素之間的運算。 a1=1 2 3;2 3 4;3 4 5; b1=1 1 1;2 2 2;3 3 3; a1./b1ans = 1.0000 2.0000 3.0000 1.0000 1.5000 2.0000 1.0000 1.3333 1.6667 a1.b1ans = 1.0000 0.5000 0.3333 1.0000 0.6667 0.5000 1.0000 0.7500 0.6000l
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個體經(jīng)營行業(yè)會計的技能要求
- 2025綠化苗木購銷合同
- 家庭教育在辦公環(huán)境的創(chuàng)新實踐
- 教育政策與學(xué)術(shù)研究的關(guān)聯(lián)性分析
- 2025重慶市家庭居室裝飾裝修工程施工合同
- 客戶忠誠度管理合同(2篇)
- 2025年徐州貨運資格證培訓(xùn)考試題
- 教育工作者如何推廣家庭健康飲食文化
- 小兒重癥肺炎的西醫(yī)治療與護理配合
- 家庭用電安全隱患的識別與處理
- 河南省鄭州外國語高中-【高二】【上期中】【把握現(xiàn)在 蓄力高三】家長會【課件】
- 2025年中煤電力有限公司招聘筆試參考題庫含答案解析
- 建設(shè)項目施工現(xiàn)場春節(jié)放假期間的安全管理方案
- 國有資產(chǎn)出租出借審批表(學(xué)校事業(yè)單位臺賬記錄表)
- 30第七章-農(nóng)村社會治理課件
- 考研考博-英語-東北石油大學(xué)考試押題三合一+答案詳解1
- 出國學(xué)生英文成績單模板
- 植物細胞中氨基酸轉(zhuǎn)運蛋白的一些已知或未知的功能
- 山東省高等學(xué)校精品課程
- 三菱張力控制器LE-40MTA-E說明書
- 生活垃圾填埋場污染控制標(biāo)準(zhǔn)
評論
0/150
提交評論