MATLAB數(shù)值計算_第1頁
MATLAB數(shù)值計算_第2頁
MATLAB數(shù)值計算_第3頁
MATLAB數(shù)值計算_第4頁
MATLAB數(shù)值計算_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、MATLABMATLAB的數(shù)值計算Matlab的數(shù)據(jù)類型o 變量 變量不需要事先聲明,也不需要指定變量類型,它會自動根據(jù)變量不需要事先聲明,也不需要指定變量類型,它會自動根據(jù)所賦予變量的值或?qū)ψ兞康牟僮鱽泶_定變量的類型;賦值過程中,所賦予變量的值或?qū)ψ兞康牟僮鱽泶_定變量的類型;賦值過程中,如果變量已存在,則用新值代替舊值,以新的類型代替舊的類型。如果變量已存在,則用新值代替舊值,以新的類型代替舊的類型。 變量的命名規(guī)則:l 變量名區(qū)分大小寫;變量名區(qū)分大小寫;l 變量名長度不超過變量名長度不超過3131位,第位,第3131位之后的字符被忽略;位之后的字符被忽略;l 變量名以字母開頭,變量名中可

2、以包含字母、數(shù)字、下劃線,變量名以字母開頭,變量名中可以包含字母、數(shù)字、下劃線,但不能使用標(biāo)點(diǎn)。但不能使用標(biāo)點(diǎn)。 變量一般為局部變量,即僅在其調(diào)用的M文件內(nèi)部有效;若要定義全局變量,須在變量前加關(guān)鍵字global。o 常量 matlab中預(yù)定義的一些特殊的量。 i,j 虛數(shù)單位Realmin 最小的正浮點(diǎn)數(shù), pi 圓周率Realmax 最大的浮點(diǎn)數(shù), eps 浮點(diǎn)運(yùn)算的相對精度Inf 無窮大 NaN not a number ,不定值 例如:pians = 3.14161102221023252101/0Warning: Divide by zero.ans = Inf0/0Warning:

3、 Divide by zero.ans = NaNo 定義變量時應(yīng)避免與常量名相同,如果改變了某個常量的值,可以用clear命令來恢復(fù)。pi=1pi = 1clear pipians = 3.1416o 數(shù)字變量l 數(shù)字變量的運(yùn)算258*369ans = 95202x=258*369x = 952021233ans = 1860867sqrt(ans)ans = 1.3641e+003l 數(shù)字的輸入輸出格式 缺省為實(shí)數(shù)保留小數(shù)點(diǎn)后4位浮點(diǎn)數(shù)表示。 其輸入格式與C語言一致: 如:9 -73 0.1999 1.475e6 輸出格式由輸出格式由format命令命令控制,只是影響屏幕顯示效控制,只是影

4、響屏幕顯示效果,不影響內(nèi)部存儲和計算。果,不影響內(nèi)部存儲和計算。format long;pians = 3.14159265358979format long e;pians = 3.141592653589793e+000format long g;pians = 3.14159265358979format 通常顯示數(shù)值的小數(shù)有效數(shù)字是4,最多不會超過7format short 大于1000的數(shù)值,用5位有效數(shù)字的科學(xué)計數(shù)形式來顯示format long 15位數(shù)字表示format short e 5位科學(xué)計數(shù)表示format long e 15位科學(xué)計數(shù)表示format short g

5、從format short和format short e中選擇最佳的計數(shù)方式format long g 從format long和format long e中選擇最佳的計數(shù)方式format rat 用近似有理數(shù)表示format hex 用十六進(jìn)制表示format bank 使用金融數(shù)據(jù)o 字符串l 1、字符串的約定字符串用單引號輸入或賦值;字符串的每個字符都是都是字符數(shù)組字符數(shù)組的一個元素;字符串和字符數(shù)組基本上等價。s=symbolics =symbolicsize(s)ans = 1 8s(3)ans =ml 字符串的轉(zhuǎn)換 double 字符串轉(zhuǎn)換為數(shù)值代碼 num2str 數(shù)字轉(zhuǎn)換為字符

6、串 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=eval(t)c = 0.2000o 結(jié)構(gòu)型變量 由函數(shù)struct定義,以指針操作符“.”連接結(jié)構(gòu)型變量名與屬性名。 結(jié)構(gòu)型變量名結(jié)構(gòu)型變量名struct(元素名(元素名1,元素值,元素值1,元素名,元素名2,元素值,元素值2

7、,)c=struct(c1,1,c2,1 2 3 4,c3,abcd)c = c1: 1 c2: 1 2 3 4 c3: abcdc.c2ans = 1 2 3 4c.c3ans =abcdabcdo 單元型變量 單元型變量為任意類型的多維數(shù)組,其定義需用大括號,元素間用逗號隔開。a=1,2;3,4a = 1 2 3 4b=1:4,a,abcdb = 1x4 double 2x2 double abcdcellplot(b) 單元型變量元素的引用采用大括號為下標(biāo)標(biāo)識,用小括號只顯示該元素的壓縮形式。b2ans = 1 2 3 4b(2)ans = 2x2 doubleo 向量 向量元素用“”括

8、起來,元素間用空格、逗號或分號分隔; 注意:空格和逗號分隔成行向量,分號分割成列向量。注意:空格和逗號分隔成行向量,分號分割成列向量。l冒號表達(dá)式生成向量 基本格式:xx1:step:x2 xx1:x2a=1:2:12a = 1 3 5 7 9 11a=12:-2:1a = 12 10 8 6 4 2a=1:6a = 1 2 3 4 5 6l線性等分向量生成 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 10

9、0.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 x2a=logspace(0,5,6)a = 1 10 100 1000 10000 100000o 向量的基本運(yùn)算l 與數(shù)運(yùn)算a = 1.0000 20.8000 40.6000 60.4000 80.2000 100.0000a-1ans = 0 19.8000 39.6000 59.4000 79.2000 99.0000a*2ans = 2.0000 41.

10、6000 81.2000 120.8000 160.4000 200.0000l 點(diǎn)積計算 指兩個向量在其中一個向量方向上的投影的乘積。 dot(a,b) a,b必須同維。a=1 2 3;b=3,4,5;dot(a,b)ans = 26sum(a.*b)ans = 26l 叉積 表示過兩相交向量的交點(diǎn)的垂直于兩向量所在平面的向量。 cross(a,b) a,b必須為三維向量。l 混合積c=cross(a,b)c = -2 4 -2dot(a,cross(b,c)ans = 24o 矩陣大型矩陣通借助M文件來輸入。矩陣987654321A的輸入: A = 1,2,3; 4,5,6; 7,8,9A

11、 = 1 2 3 4 5 6 7 8 9a=1 2 34 5 67 8 9a = 1 2 3 4 5 6 7 8 9x=rand(1,5)%產(chǎn)生的均布隨機(jī)數(shù)組產(chǎn)生的均布隨機(jī)數(shù)組 x =0.9501 0.2311 0.6068 0.4860 0.8913 x(3)%尋訪數(shù)組尋訪數(shù)組x的第三個元素。的第三個元素。 ans =0.6068 x(1 2 5)%尋訪數(shù)組尋訪數(shù)組x的第一、二、五個元素組成的子數(shù)組。的第一、二、五個元素組成的子數(shù)組。 ans =0.9501 0.2311 0.8913 x(1:3)%尋訪前三個元素組成的子數(shù)組尋訪前三個元素組成的子數(shù)組 ans = 0.9501 0.2311

12、 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); ones(m)對角矩陣:對角元素向量 V=a1,a2,an A=diag(V)隨機(jī)矩陣:rand(m,n)產(chǎn)生一個mn的均勻分別的隨機(jī) 矩陣eye(2,3)ans= 1 0 0 0 1 0zeros(2,3)ans= 0 0 0 0 0 0ones(2

13、,3)ans= 1 1 1 1 1 1V=5 7 2; A=diag(V)A= 5 0 0 0 7 0 0 0 2eye(2)ans= 1 0 0 1zeros(2)ans= 0 0 0 0ones(2)ans= 1 1 1 1如果已知如果已知A為方陣,為方陣,則則V=diag(A)可以可以提取提取A的對角元素的對角元素構(gòu)成向量構(gòu)成向量V。其他特殊矩陣 compan 友矩陣函數(shù) magic 魔方矩陣 hankel Hankel矩陣 rosser 對稱特征值測試矩陣 hilb Hilbert矩陣 pascal Pascal矩陣 invhilb 反Hilbert矩陣 vander 范德蒙矩陣 o

14、矩陣的基本運(yùn)算l 加減運(yùn)算 要求兩矩陣必須同階要求兩矩陣必須同階。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階時,階時, a與與b才能相乘。才能相乘。e=b,5 5 5e = 1 1 1 5 2 2 2 5 3 3 3 5f=a*ef = 14 14 14 30 20 20 20 45 26 26 26 60l 除法左除“”: 相當(dāng)于Ax=B的解,x=A-1B。右除“/”:相當(dāng)于xA=B的解,x=BA-1 A-1B=(BA-1)。通常,右除稍快一些,而左除可

15、以避免奇異性。對于AxB,其中A為(nm)階矩陣: n=m且非奇異時,方程為恰定方程; nm 方程為超定方程; nA=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.0000 0.0000l 矩陣與常數(shù)的運(yùn)算 常數(shù)與此矩陣的各元素之間進(jìn)行運(yùn)算。常數(shù)與此矩陣的各元素之間進(jìn)行運(yùn)算。 注意:進(jìn)行數(shù)除時,常數(shù)通常只能做除數(shù)。注意:進(jìn)行數(shù)除時,常數(shù)

16、通常只能做除數(shù)。l 矩陣的逆運(yùn)算 函數(shù) invA=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 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 矩陣的行列式運(yùn)算 函數(shù) detA=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5;a1=det(A)a1 = -85a2=det(inv(A)a2 = -0.0118a1*a2ans

17、 = 1l 矩陣的冪運(yùn)算 與數(shù)字的冪運(yùn)算形式相同,用“”算符。l 矩陣的指數(shù)運(yùn)算 常用函數(shù) expm expm1 expm2 expm3l 矩陣的對數(shù)運(yùn)算 函數(shù) logml 矩陣的開方運(yùn)算 函數(shù) sqrtmb=magic(3)b = 8 1 6 3 5 7 4 9 2sqrtm(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

18、b0.5ans = 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.4155io 矩陣的基本函數(shù)運(yùn)算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.65

19、25 -0.4908 0.5774 -0.7513 0.3197y = 2.0000 0 0 0 2.3944 0 0 0 9.6056l 奇異值函數(shù) 函數(shù) svd svdsl 矩陣翻轉(zhuǎn) 函數(shù) fliplr flipud rot90a = 7 3 -2 3 4 -1 -2 -1 3fliplr(a)ans = -2 3 7 -1 4 3 3 -1 -2flipud(a)ans = -2 -1 3 3 4 -1 7 3 -2rot90(a)ans = -2 -1 3 3 4 -1 7 3 -2l 范數(shù)函數(shù) 函數(shù) norm(X,P) P1 1范數(shù) P2 2范數(shù) Pinf 無窮范數(shù) Pfro F范數(shù)

20、 norm(X)norm(X,2)l 秩函數(shù) 函數(shù) ranke = 1 1 1 5 2 2 2 2 3 3 3 5rank(e)ans = 2l跡函數(shù) 矩陣所有對角線上元素的和稱為矩陣的跡。 函數(shù) tracel正交空間函數(shù) 函數(shù) orth 用來求矩陣的一組正交基。l條件數(shù)函數(shù) 判斷矩陣的“病態(tài)”程度。 函數(shù) cond 計算矩陣的條件數(shù)的值 condest 計算矩陣的1范數(shù)條件數(shù)的估計值 rcond 計算矩陣的條件數(shù)的倒數(shù)值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 1b=a*

21、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 0pinv(a)*bans = 1.0000 1.0000 1.0000 1.0000l 通用函數(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)

22、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.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.3006isqrtm(a)ans = 3.7584 -

23、 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.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.3006isqrt(a)ans = 4.0000 1.4142 1.7321 3.

24、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(X,nobalance) 關(guān)閉平衡算法的求解方法(平衡算法對于某些問題可以得到更高的精度)。V,D=eig(A,B) 廣義特征值分解:AVBVDa=-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.

25、9740 0.0000 -0.1010 0.1789d = 1.0000 0 0 0 2.0000 0 0 0 3.0000b=2 10 2;10 5 -8;2 -8 11;v,d=eig(a,b)v = 0.8211 -0.3138 -0.0191 -0.3452 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) 其中XUSVa=1;1;U,S,V=svd(a)U = 0.7071 -0.7071 0.7071 0.7071S = 1.4142 0V

26、= 1 l LU分解 L,U=lu(A) 又稱三角分解,目的是分解成一個下三角陣L和一個上三角陣U的乘積,即ALUa=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.0000 0 0u = 4.0000 6.0000 7.0000 0 1.0000 -2.5000 0 0 2.5000注意:L實(shí)際上是一個“心理上”的下三角矩陣,它事實(shí)上是一個置換矩陣P的逆矩陣與一個真正下三角矩陣L1(其對角線元素為1)的乘積。l,u,p=lu(a)l = 1.0000 0 0 0.5000 1.0000 0 0.250

27、0 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 0inv(p)*l*uans = 1 2 3 2 4 1 4 6 7p為置換矩陣,此時滿足AP-1LUl Chol分解 如果A為n階對稱正定矩陣,則存在一個非奇異下三角實(shí)矩陣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

28、 正交分解 AQRa=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 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

29、=reshape(a,2,6)b = 1 3 5 7 9 11 2 4 6 8 10 12c=zeros(4,3);c(:)=a(:)c = 1 5 9 2 6 10 3 7 11 4 8 12p 矩陣抽取l 對角元素抽取 diag(X,k)抽取X的第k條對角線元素,k=0為主對角線,上對角線為正值,下對角線為負(fù)值。 diag(X) 抽取主對角線元素a=pascal(4)a = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20v=diag(a)v = 1 2 6 20v=diag(a,2)v = 1 4l 三角陣的抽取 tril(X)提取X的主下三角部分 tril(X,k)

30、 提取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 0au=triu(a,-1)au = 1 1 1 1 1 2 3 4 0 3 6 10 0 0 10 20o 稀疏矩陣 用元素的行列號和元素值來存儲一個元素。a=speye(100)a = (1,1) 1 (2,2) 1 (3,3) 1 (4,4) 1 (99,99) 1 (100,100) 1b=eye(100);whos a b Name Size Bytes Class a

31、 100 x100 1604 sparse array b 100 x100 80000 double arrayGrand total is 10100 elements using 81604 bytesl 常規(guī)矩陣轉(zhuǎn)換為稀疏矩陣 sparse(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) 6whos a b Name Size Bytes Class a 3x3 72 double array b 3x3 112 sparse arra

32、yGrand 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,j,s為子矩陣,nzmax最多的非零元素數(shù)l 稀疏矩陣轉(zhuǎn)換為常規(guī)矩陣 full()數(shù)組及其運(yùn)算 數(shù)組的建立、存儲完全同于矩陣,由于計算的不同,把相同型矩陣之間的運(yùn)算稱為數(shù)組運(yùn)算。p 基本數(shù)組運(yùn)算l 數(shù)組的四則運(yùn)算 普通運(yùn)算同矩陣的運(yùn)算,另有點(diǎn)運(yùn)算“.*”、”./”、”.”,即兩數(shù)組對應(yīng)元素之間的運(yùn)算。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.6667a1.b1ans = 1.0000 0.5000 0.3333 1.0000 0.6667 0.5000

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論