版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一部分MATLAB實(shí)驗(yàn)指導(dǎo)一、基礎(chǔ)知識(shí) 1.1 常見(jiàn)數(shù)學(xué)函數(shù)函 數(shù) 名數(shù) 學(xué) 計(jì) 算 功 能函 數(shù) 名數(shù) 學(xué) 計(jì) 算 功 能abs(x)實(shí)數(shù)的絕對(duì)值或復(fù)數(shù)的幅值floor(x)對(duì)x朝-方向取整acos(x)反余弦arcsingcd(m,n)求正整數(shù)m和n的最大公約數(shù)acosh(x)反雙曲余弦arccoshimag(x)求復(fù)數(shù)x的虛部angle(x)在四象限內(nèi)求復(fù)數(shù) x 的相角lcm(m,n)求正整數(shù)m和n的最小公倍數(shù)asin(x)反正弦arcsinlog(x)自然對(duì)數(shù)(以為底數(shù))asinh(x)反雙曲正弦arcsinhlog10(x)常用對(duì)數(shù)(以10為底數(shù))atan(x)反正切arctanr
2、eal(x)求復(fù)數(shù)x的實(shí)部atan2(x,y)在四象限內(nèi)求反正切rem(m,n)求正整數(shù)m和n的m/n之余數(shù)atanh(x)反雙曲正切arctanhround(x)對(duì)x四舍五入到最接近的整數(shù)ceil(x)對(duì)x朝+方向取整sign(x)符號(hào)函數(shù):求出x的符號(hào)conj(x)求復(fù)數(shù)x的共軛復(fù)數(shù)sin(x)正弦sincos(x)余弦cossinh(x)反雙曲正弦sinhcosh(x)雙曲余弦coshsqrt(x)求實(shí)數(shù)x的平方根:exp(x)指數(shù)函數(shù) tan(x)正切tanfix(x)對(duì)x朝原點(diǎn)方向取整tanh(x)雙曲正切tanhabs(x)x的絕對(duì)值sum(x)對(duì)x求和max(x)x的最大值min
3、(x) x的最小值如:輸入 x=-4.85 -2.3 -0.2 1.3 4.56 6.75,則: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) = -5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 71.2 系統(tǒng)的在線幫助1 help 命令:1.當(dāng)不知系統(tǒng)有何幫助內(nèi)容時(shí),可直接輸入help以尋求幫助: >> help(回車)2.當(dāng)想了解某一主題的內(nèi)容時(shí),如輸入: >> help syntax(了解Matlab的語(yǔ)法規(guī)定)3.當(dāng)想了解某一具體的函數(shù)或命令的幫助信息時(shí),如輸入:>
4、> help sqrt (了解函數(shù)sqrt的相關(guān)信息)2 lookfor命令現(xiàn)需要完成某一具體操作,不知有何命令或函數(shù)可以完成,如輸入:>> lookfor line (查找與直線、線性問(wèn)題有關(guān)的函數(shù))1.3 常量與變量系統(tǒng)的變量命名規(guī)則:變量名區(qū)分字母大小寫;變量名必須以字母打頭,其后可以是任意字母,數(shù)字,或下劃線的組合。此外,系統(tǒng)內(nèi)部預(yù)先定義了幾個(gè)有特殊意義和用途的變量,見(jiàn)下表:特殊變量取 值ans用于結(jié)果的缺省變量名pi圓周率eps計(jì)算機(jī)的最小數(shù),當(dāng)和1相加就產(chǎn)生一個(gè)比1大的數(shù)flops浮點(diǎn)運(yùn)算數(shù)inf無(wú)窮大,如1/0NaN不定量,如0/0i,ji=j=nargin所用
5、函數(shù)的輸入變量數(shù)目nargout所用函數(shù)的輸出變量數(shù)目realmin最小可用正實(shí)數(shù)realmax最大可用正實(shí)數(shù)1 數(shù)值型向量(矩陣)的輸入1任何矩陣(向量),可以直接按行方式輸入每個(gè)元素:同一行中的元素用逗號(hào)(,)或者用空格符來(lái)分隔;行與行之間用分號(hào)(;)分隔。所有元素處于一方括號(hào)( )內(nèi);例1:>> Time = 11 12 1 2 3 4 5 6 7 8 9 10>> X_Data = 2.32 3.43;4.37 5.982系統(tǒng)中提供了多個(gè)命令用于輸入特殊的矩陣:函數(shù)功 能函數(shù)功 能compan伴隨陣toeplitzToeplitz矩陣diag對(duì)角陣vanderV
6、andermonde矩陣hadamardHadamard矩陣zeros元素全為0的矩陣hankelHankel矩陣ones元素全為1的矩陣invhilbHilbert矩陣的逆陣rand元素服從均勻分布的隨機(jī)矩陣kronKronercker張量積randn元素服從正態(tài)分布的隨機(jī)矩陣magic魔方矩陣eye對(duì)角線上元素為1的矩陣pascalPascal矩陣meshgrid由兩個(gè)向量生成的矩陣上面函數(shù)的具體用法,可以用幫助命令help得到。如help zeros,可查到zeros的具體用法。例:meshgrid(x,y)輸入 x=1 2 3 4; y=1 0 5; X,Y=meshgrid(x, y
7、),則X = Y = 1 2 3 4 1 1 1 1 1 2 3 4 0 0 0 0 1 2 3 4 5 5 5 5目的是將原始數(shù)據(jù)x,y轉(zhuǎn)化為矩陣數(shù)據(jù)X,Y。2 符號(hào)向量(矩陣)的輸入1用函數(shù) sym定義符號(hào)矩陣:函數(shù)sym實(shí)際是在定義一個(gè)符號(hào)表達(dá)式,這時(shí)的符號(hào)矩陣中的元素可以是任何的符號(hào)或者是表達(dá)式,而且長(zhǎng)度沒(méi)有限制。只需將方括號(hào)置于單引號(hào)中。例2:>> sym_matrix = sym('a b c;Jack Help_Me NO_WAY') sym_matrix = a, b, c Jack, Help_Me, NO_WAY2用函數(shù)syms定義符號(hào)矩陣先定義
8、矩陣中的每一個(gè)元素為一個(gè)符號(hào)變量,而后像普通矩陣一樣輸入符號(hào)矩陣。例3:>> syms a b c ;>> M1 = sym('Classical');>> M2 = sym(' Jazz');>> M3 = sym('Blues');>> A = a b c; M1, M2, M3;sym(2 3 5)A = a, b, c Classical, Jazz, Blues 2, 3, 51.4 數(shù)組(矩陣)的點(diǎn)運(yùn)算運(yùn)算符:+(加)、-(減)、./(右除)、.(左除)、.(乘方),例4:&
9、gt;> g = 1 2 3 4;h = 4 3 2 1;>> s1 = g + h, s2 = g.*h, s3 = g.h, s4 = g.2, s5 = 2.h1.5 矩陣的運(yùn)算運(yùn)算符:+(加)、-(減)、*(乘)、/(右除)、(左除)、(乘方)、(轉(zhuǎn)置)等;常用函數(shù):det(行列式)、inv(逆矩陣)、rank(秩)、eig(特征值、特征向量)、rref(化矩陣為行最簡(jiǎn)形)例5:>> A=2 0 1;1 3 2; B=1 7 1;4 2 3;2 0 1;>> M = A*B % 矩陣A與B按矩陣運(yùn)算相乘>> det_B = det(
10、B) % 矩陣A的行列式>> rank_A = rank(A) % 矩陣A的秩>> inv_B = inv(B) % 矩陣B的逆矩陣>> V,D = eig(B) % 矩陣B的特征值矩陣V與特征向量構(gòu)成的矩陣D>> X = A/B % A/B = A*B-1,即XB=A,求X>> Y = BA % BA = B-1*A,即BY=A,求Y例6:>>A = 1,2,3,4; 5 6 7 8; 9,10,11,12>>A(2,3) = 5>>B = A(2,1:3)>>A = A,B %增補(bǔ)一
11、列>>A(:,2) = %刪去第2列>>A = A; 1 2 3 4 %增補(bǔ)一行>>A(1,4,:) = %刪去1,4行>>B = reshape( A, 2, 6 ) %將A按列的順序重新組成2行6列的矩陣。注意,這里要求新矩陣和舊矩陣具有相同的元素個(gè)數(shù)。>>A=repmat(4,5 6) %產(chǎn)生一個(gè)5行4列的全是4的矩陣1.6 關(guān)系運(yùn)算符:1 關(guān)系操作符:關(guān)系操作符說(shuō)明<小于<=小于或等于>大于>=大于或等于= =等于=不等于2邏輯運(yùn)算符:邏輯操作符說(shuō)明與或非上機(jī)練習(xí)(一):1練習(xí)數(shù)據(jù)和符號(hào)的輸入方式,將前
12、面的命令在命令窗口中執(zhí)行通過(guò);2輸入A=7 1 5;2 5 6;3 1 5,B=1 1 1; 2 2 2; 3 3 3,在命令窗口中執(zhí)行下列表達(dá)式,掌握其含義:A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A2 A.2 B/A B./A3輸入C=1:2:20,則C(i)表示什么?其中i=1,2,3,10;4查找已創(chuàng)建變量的信息,刪除無(wú)用的變量;5欲通過(guò)系統(tǒng)做一平面圖,請(qǐng)查找相關(guān)的命令與函數(shù),獲取函數(shù)的幫助信息。6利用help 學(xué)習(xí)一下函數(shù)的功能:size() ones() rand() randn(
13、) pascal() dot() cross() max() min() sort() mean() det()inv() trace() norm() rank() floor() round() fix() ceil() mod() 7利用help學(xué)習(xí)一下命令的功能:clear clc clock now whos date tic toc save load二、編程2.1 無(wú)條件循環(huán)當(dāng)需要無(wú)條件重復(fù)執(zhí)行某些命令時(shí),可以使用for循環(huán):for 循環(huán)變量t=表達(dá)式1 : 達(dá)式2 : 表達(dá)式3 語(yǔ)句體end說(shuō)明:表達(dá)式1為循環(huán)初值,表達(dá)式2為步長(zhǎng),表達(dá)式3為循環(huán)終值;當(dāng)表達(dá)式2省略時(shí)則默認(rèn)步長(zhǎng)
14、為1;for語(yǔ)句允許嵌套。例6: 如:矩陣輸入程序生成3×4階的Hiltber矩陣。 m=input(矩陣行數(shù):m=); for i=1 : 3 n= input(矩陣列數(shù):n=); for j=1 : 4 for i=1:m H(i,j)=1/(i+j-1); for j=1:n end disp(輸入第,num2str(i),行,第, num2str(j),列元素) end A(i, j) = input ( ) end end 2.2 條件循環(huán)1) if-else-then語(yǔ)句if-else-then語(yǔ)句的常使用三種形式為:(1) if 邏輯表達(dá)式 (3) if 邏輯表達(dá)式1
15、語(yǔ)句體 語(yǔ)句體1end elseif 邏輯表達(dá)式2 語(yǔ)句體2(2) if 邏輯表達(dá)式1 elseif 邏輯表達(dá)式3 語(yǔ)句體1 else else 語(yǔ)句體2 語(yǔ)句體nend end 2) while循環(huán)語(yǔ)句while循環(huán)的一般使用形式為:while 表達(dá)式 語(yǔ)句體end例7:用二分法計(jì)算多項(xiàng)式方程= 0在0,3內(nèi)的一個(gè)根。 解:a = 0;fa = -inf;b = 3;fb = inf;while b-a > eps*b x =(a+b)/2; fx = x3-2*x-5; if sign(fx)= sign(fa) a =x;fa = fx; else b = x;fb = fx; e
16、ndendx運(yùn)行結(jié)果為:x = 2.094552.3 分支結(jié)構(gòu)若需要對(duì)不同的情形執(zhí)行不同的操作,可用switch 分支語(yǔ)句:switch 表達(dá)式(標(biāo)量或字符串) case 值1 語(yǔ)句體1 case 值2 語(yǔ)句體2 otherwise 語(yǔ)句體nend說(shuō)明:當(dāng)表達(dá)式不是“case”所列值時(shí),執(zhí)行otherwise語(yǔ)句體。2.4 建立M文件將多個(gè)可執(zhí)行的系統(tǒng)命令,用文本編輯器編輯后并存放在后綴為 .m 的文件中,若在MATLAB命令窗口中輸入該m-文件的文件名(不跟后綴.m!),即可依次執(zhí)行該文件中的多個(gè)命令。這個(gè)后綴為.m的文件,也稱為Matlab的腳本文件(Script File)。注意:文件存
17、放路徑必須在Matlab能搜索的范圍內(nèi)。2.5 建立函數(shù)文件對(duì)于一些特殊用戶函數(shù),系統(tǒng)提供了一個(gè)用于創(chuàng)建用戶函數(shù)的命令function,以備用戶隨時(shí)調(diào)用。1格式:function 輸出變量列表=fun_name(輸入變量列表) 用戶自定義的函數(shù)體2函數(shù)文件名為:fun_name,注意:保存時(shí)文件名與函數(shù)名最好相同;3存儲(chǔ)路徑:最好在系統(tǒng)的搜索路徑上。4. 調(diào)用方法:輸出參量=fun_name (輸入變量)例8:計(jì)算s = n!,在文本編輯器中輸入:function s=pp(n);s=1;for i=1:n s=s*i;ends;在MATLAB命令窗口中輸入:s=pp(5) 結(jié)果為s = 12
18、0上機(jī)練習(xí)(二):1編寫程序,計(jì)算1+3+5+7+(2n+1)的值(用input語(yǔ)句輸入n 值)。2編寫分段函數(shù) 的函數(shù)文件,存放于文件ff.m中,計(jì)算出,的值。三、微積分3.1 極限limit:limit(F, x, a) 計(jì)算limit(F, a) 符號(hào)表達(dá)式F中由命令findsym(F)返回獨(dú)立的變量v,計(jì)算limit(F) 符號(hào)確定同上,設(shè)為v,計(jì)算limit(F, x, a, 'right') 計(jì)算limit(F, x, a, 'left') 計(jì)算例9: 計(jì)算 , 解:>> syms n m x >> f = (6*n2-n+1
19、)/(n3-n2+2) >> h = (sqrt(1+x)-2)/(x-3) >> lim_f=limit(f, n, inf) >> lim_h=limit(h,x,3,'right')運(yùn)算結(jié)果是:lim_f = 0lim_h = 1/43.2 函數(shù)的導(dǎo)數(shù)diff:diff(f, v) 計(jì)算或diff(f, v, n) 計(jì)算或diff(f, n) 獨(dú)立變量確定同上,設(shè)為v,計(jì)算或例10: 已知,證明:。解:>> x = sym('x') >> y = sym('y') >>
20、 z = log(sqrt(x)+sqrt(y) >> result = x * diff(z, x) + y* diff(z, y) >> simple(result)計(jì)算的結(jié)果為: result= 1/2例11: 已知 ,求 解:設(shè)方程F(x, y , z) = 0確定了函數(shù)z = z(x, y),則,再用類似的計(jì)算方法,可以計(jì)算。 >> syms x y z >> F = atan(y+z)/x)-log(x+y+z) >> dFdx = diff(F, x) >> dFdz = diff(F, z) >>
21、; dZdx = -dFdx/dFdz % 計(jì)算 >> dZdxdy = diff(dZdx, y) >> dZdxdz = diff(dZdx, z) >> d2Zdxdy = -dZdxdy/dZdxdz % 計(jì)算3.3 單積分int、quad、quad8:1. int不定積分:F = int(f)F = int(f, var) f:被積函數(shù),var:對(duì)函數(shù)f中的變量var積分。F:函數(shù)f的原函數(shù)。F中沒(méi)有常數(shù)C。例12: 計(jì)算 , 解:>> syms x y z; >> f = exp(x*y+z); >> F1 =
22、 int(f) >> F2 = int(f, z)2. int定積分及廣義積分:F = int(f, a, b) F = int(f, var, a, b) f:被積函數(shù);a,b:積分上下限,可為無(wú)窮大(負(fù)無(wú)窮大:); F:函數(shù)的積分值,有時(shí)為無(wú)窮大。3quad、quad8定積分:y = quad(f, a, b, tol)y = quad8(f, a, b, tol) 參數(shù)說(shuō)明:f:被積函數(shù);a, b:積分上下限;tol:計(jì)算精度,quad()的默認(rèn)值為:tol=1e-3,quad8()的默認(rèn)值為:tol=1e-6。quad()函數(shù)采用的是Simpson 方法計(jì)算定積分的近似值。
23、quad8()函數(shù)采用的是Newton Cotes方法計(jì)算定積分的近似值,其精度比前者更高。例13: 計(jì)算 , 解:>> syms x >> f = 1/(x2+2*x+3); >> F1 = int(f,2,pi) >> F2 = int(f,-inf,inf) 運(yùn)算的結(jié)果是: F1 = 1/2*atan(1/2*2(1/2)*(pi+1)*2(1/2)-1/2*atan(3/2*2(1/2)*2(1/2) F2 = 1/2*2(1/2)*pi例14: 計(jì)算無(wú)初等原函數(shù)的定積分 解:先定義被積函數(shù)為函數(shù)文件,文件名為:f.mfunction y
24、 = f (x)y=1/sqrt(2*pi)*exp(-x.2/2);保存后,在命令窗口鍵入>> format long>> y = quad('f', -3, 3)則顯示結(jié)果為y = 0.997300050554703.4 泰勒展式taylor:taylor(f) f:待展開(kāi)的函數(shù)表達(dá)式,可以不用單引號(hào)生成;taylor(f, n) n:把函數(shù)展開(kāi)到n階;若不包含n,則缺省地展開(kāi)到階taylor(f, v) v:對(duì)函數(shù)f中的變量v展開(kāi)taylor(f, a) a:對(duì)函數(shù)f在x=a點(diǎn)展開(kāi)。例15: 計(jì)算(1)把y =展開(kāi)到6階; (2)把y = lnx在
25、x = 1點(diǎn)展開(kāi)到6階; (3)把y = 關(guān)于變量t展開(kāi)到3階。解: >> syms x t >> t1 = taylor(exp(-x) >> t2 = taylor(log(x),6,1) >> t3 = taylor(xt,3,t)運(yùn)算結(jié)果為:t1 = 1-x+1/2*x2-1/6*x3+1/24*x4-1/120*x5t2 = x-1-1/2*(x-1)2+1/3*(x-1)3-1/4*(x-1)4+1/5*(x-1)5t3 =1+log(x)*t+1/2*log(x)2*t23.5 近似梯度gradient: FX,FY = gradi
26、ent(F) FX,FY = gradient(F,H) FX,FY = gradient(F,HX,HY) FX,FY,FZ = gradient(F) FX,FY,FZ = gradient(F,HX,HY,HZ)參數(shù)說(shuō)明: F:待求梯度的數(shù)值矩陣。F可以為向量、二維矩陣、三維矩陣; FX,FY,FZ:矩陣F在x、y、z方向上的數(shù)值梯度; H:H為一標(biāo)量,作為各個(gè)方向上各點(diǎn)之間的步長(zhǎng); HX,HY,HZ:矩陣F在x、y、z方向上的具體步長(zhǎng)。HX,HY,HZ可為標(biāo)量或與矩陣F各個(gè)方向上同維的向量。例16: 計(jì)算函數(shù) 數(shù)值梯度,且以圖形顯示。解:>> x,y = meshgrid(
27、-2:.2:2, -2:.2:2); >> z = x .* exp(-x.2 - y.2); >> px,py = gradient(z,.2,.2); >> contour(z) >> hold on >> quiver(px, py)3.6 函數(shù)梯度和方向?qū)?shù)jacobian: jacobian(f, v)參數(shù)說(shuō)明: f:函數(shù)向量或標(biāo)量,當(dāng)f為標(biāo)量時(shí),jacobian(f, v) = gradient(f); v:自變量向量或者單個(gè)變量。例17: 求 在點(diǎn)M(1,1,1) 處的梯度;在點(diǎn)O(0, 0, 0)及A(1, 2, 3)
28、處的梯度。解:>> syms x y z >> u1 = x*y*z >> u2 = x2+2*y2+3*y2+x*y+3*x-2*y-6*z >> v = x, y, z >> J1 = jacobian(u1,v) >> J2 = jacobian(u2,v) >> J1_M = subs(subs(subs(J1,x,1),y,1),z,1) >> J2_O = subs(subs(subs(J2,x,0),y,0),z,0) >> J2_A = subs(subs(subs(J1
29、,x,1),y,2),z,3)計(jì)算的結(jié)果為: J1_M = 1 1 1 J2_O = 3 -2 -6 J2_A = 6 3 23.7 方程(組)的求解solve、linsolve:x = linsolve(A, B) 專門用于求解線性方程組ss = solve (s) 可適用于所有代數(shù)方程(組)ss = solve(s, v) 參數(shù)說(shuō)明:s:包含方程(一個(gè))等式的字符串(可以是函數(shù)名,或者是描述方程的字符串);v:方程s 中的一個(gè)變量;例18: 求解:(1),其中,;(2),其中為未知數(shù);解: >> A = 2,5;1,3; B = 4,-6;2,1; >> x = l
30、insolve(A,B) 或X=AB >> solve('p*sin(2*x+t)=q','t')例19: 求非線性方程組的解 解: >> x,y = solve('sin(x+y)-exp(x)*y = 0','x2-y = 2')計(jì)算結(jié)果為: x = -6.937117905 y = 34.22965330上機(jī)練習(xí)(三):1求極限: 2. 求導(dǎo)數(shù):,求3求不積分: 4. 求定積分:5解方程組: 6. 求的5階泰勒展開(kāi)式。四、微分方程4.1 常微分方程(組)的符號(hào)解dsolve:y1,y2, = dsol
31、ve('eqn1','qun2','var1','var2','inition','disp_var1','disp_var2')參數(shù)說(shuō)明:'eqn1','eqn2',:包含微分方程(組)在內(nèi)的字符串,可以是函數(shù)名或是微分方程(組)的表達(dá)式;每個(gè)'eqn_i'可以包含一個(gè)或多個(gè)微分方程。'var1','var2',:指定方程組中獨(dú)立的變量(若方程組中有多個(gè)符號(hào),要指定某個(gè)符號(hào)為未知變量符號(hào));'i
32、nition':微分方程的初始條件(組),或者是初始條件的表達(dá)式。如:'y(a) = b'表示,'D3y(c) = d' 表示例20: 求通解 (1)y''+3y'+2y = 0(2)解: >> equ_1 = 'D2y+3*Dy+2*y=0' >> equ_41 = 'Dx=y+x' >> equ_42 = 'Dy=y-x+1' >> y1 = dsolve(equ_1,'x') >> x,y = dsol
33、ve(equ_41, equ_42, 'x(0)=0, y(0)=0')計(jì)算結(jié)果為(略):4.2 常微分方程(組)的數(shù)值解odeXX:t, y=odeXX('F',tspan,y0,) 參數(shù)說(shuō)明:XX可為45或者為23,F(xiàn)是函數(shù)名。tspan為自變量t的積分范圍,y0為方程的初始狀態(tài)值。 例21: 把高階(3階)方程轉(zhuǎn)化為同解的一階導(dǎo)數(shù)方程組,寫成函數(shù)文件,并在時(shí)間段 0, 120 內(nèi)求解。解:設(shè) ,則原方程等價(jià)于方程組,令y(1)= ,y(2)=,y(3)=,1寫成函數(shù)文件為:function y = my_fun(t,y)y = y(2); y(3); -2
34、*y(3)-3*y(2)-4*y(1)2保存于文件:my_fun.m3調(diào)用函數(shù)odeXX求解。 >> y0 = 10;9;8; % 定解條件 >> t, y = ode23('my_fun',0,120,y0); >> plot(t,y(:,1) % y的第一列為方程的解 >> xlabel('time') >> ylabel('y = y(t)')五、數(shù)值分析5.1 級(jí)數(shù)求和symsum:S=symsum(s) s:數(shù)列的通項(xiàng)式;S=symsum(s, v) v:通式S中的變量,求和時(shí)
35、將對(duì)v從1求至v-1;S=symsum(s, v, a, b) a,b:對(duì)變量從a至b求和,b可以為無(wú)窮大;例22:求下列數(shù)列的和 解:>> syms n >> s1 = 1/(2*n-1)2; >> s2 = 1/(n*(n+1)*(n+2)2; >> S1 = symsum(s1) >> S2 = symsum(s2, n, 1, inf)5.2 擬合與插值polyfit、interp1:1 最小二乘法例23: 在某實(shí)驗(yàn)中測(cè)得輸入如下:x104180190177147134150191204121y1002002101851551
36、35170205235125由此推測(cè)出x和y的函數(shù)關(guān)系:y=f(x)。解:先把數(shù)據(jù)點(diǎn)描出來(lái),觀察x和y大概滿足的函數(shù)關(guān)系。為此先把數(shù)據(jù)x和y進(jìn)行適當(dāng)?shù)恼{(diào)整,使自變量x的值從小到大排列,y也做相應(yīng)的排列: >> x = 104 180 190 177 147 134 150 191 204 121; >> y = 100 200 210 185 155 135 170 205 235 125; >> x,i = sort(x) >> y = y(i) >> plot(x, y, 'r*') >> hold o
37、n(圖略)這些數(shù)據(jù)點(diǎn)大致分布于一直線上,由此推測(cè)x和y有線性函數(shù)關(guān)系:y = ax+b,由數(shù)學(xué)推斷過(guò)程得:, ,其中n為x和y的長(zhǎng)度。用Matlab計(jì)算a與b為: >> n = length(x); >> a_den = n*sum(x.*y) sum(x)*sum(y); >> b_den = sum (y).*sum(x.2) sum (x).*sum(x.*y); >> ab_num = n*sum(x.2)(sum(x)2; >> a = a_den/ab_num >> b = b_den/ab_num >&
38、gt; x = 100:0.5:220; >> y = a*x +b >> plot(x,y)(圖略)2. 一維擬合polyfit:在MATLAB中,一般選用多項(xiàng)式作為擬合函數(shù):p=polyfit(x, y, n) x, y:測(cè)量數(shù)據(jù)的橫縱坐標(biāo)向量,n為多項(xiàng)式的次數(shù),p:擬合多項(xiàng)式的系數(shù)向量(按降冪排列)。Y=polyval(p, x) p:多項(xiàng)式系數(shù)向量,x:自變量向量,Y:多項(xiàng)式在x處的值例24:在某次工程測(cè)量中得到如下數(shù)據(jù):X1520253035404550Y07442267034163549785502095022650230對(duì)以上數(shù)據(jù)用一次數(shù)合適的多項(xiàng)式進(jìn)行擬
39、合,并畫圖比較。解:先把數(shù)據(jù)點(diǎn)描出來(lái): >> x = 15:5:50; >> y = 0 7442 26703 41635 49785 50209 50226 50230 >> subplot(2,2,1), plot(x, y,'*')用2、3、5次多項(xiàng)式對(duì)數(shù)據(jù)進(jìn)行擬合,分別畫出圖形,與原數(shù)據(jù)點(diǎn)進(jìn)行比較: >> p2 = polyfit(x,y,2) >> p3 = polyfit(x,y,3) >> p5 = polyfit(x,y,5) >> xi = 15:0.1:50; >>
40、; y2i = polyval(p2,xi); >> y3i = polyval(p3,xi); >> y5i = polyval(p5,xi); >> subplot(2,2,2), plot(x, y,'*',xi,y2i,':') >> subplot(2,2,3), plot(x, y,'*',xi,y3i,'-') >> subplot(2,2,4), plot(x, y,'*',xi,y5i,'-')計(jì)算結(jié)果為: p2 = 1.
41、0e+004 *-0.0066 0.5845 -7.6669 p3 = 1.0e+004 *-0.0001 0.0035 0.2800 -4.8880 p5 = 1.0e+005 * -0.0000 0.0000 -0.0015 0.0526 -0.8082 4.5106從圖中可以看得出來(lái),5次多項(xiàng)式的擬合效果是最好的。3. 一維插值interp1:t = interp1(X, Y, X0, 'method')參數(shù)說(shuō)明:X:原始數(shù)據(jù)的橫坐標(biāo)向量,必須是單調(diào)增加的向量;Y:原始數(shù)據(jù)的縱坐標(biāo)向量;X0:待插值的點(diǎn)的橫坐標(biāo),可以是標(biāo)量或單調(diào)增加的向量;t:若X0為標(biāo)量,則該方式用的是
42、線性插值:認(rèn)為被插函數(shù)在點(diǎn)X0處的值落在過(guò)兩點(diǎn)與的直線上,其值為t;若X0為向量,則t也是同維向量;'method':指定插值的算法,取值如下:'nearest':最近插值。該方式不進(jìn)行插值。而是找出與點(diǎn)X0最接近的原始數(shù)據(jù)點(diǎn),再返回其值;'linear':線性插值。該方式認(rèn)為相鄰的點(diǎn)之間是線性關(guān)系;'cubic':三次插值。該方式認(rèn)為被插函數(shù)在點(diǎn)X0處的值落在過(guò)相臨兩點(diǎn)的三次曲線上;'spline':樣條插值。該方式認(rèn)為被插函數(shù)在點(diǎn)X0處的值落在過(guò)相臨兩點(diǎn)的三次樣條曲線上。例25:在例24中,由于需要,現(xiàn)估計(jì)x
43、= 22, 27, 36時(shí)y的值,比較幾種插值方式的差異。解: >> x = 15:5:50; >> y = 0 7442 26703 41635 49785 50209 50226 50230 >> X0 = 22 27 36; >> Y0_n = interp1(x,y,X0,'nearest'); >> Y0_c = interp1(x,y,X0,'cubic'); >> Y0_s = interp1(x,y,X0,'spline'); >> Y0_l =
44、interp1(x,y,X0,'linear'); >> p5 = polyfit(x,y,5); >> xi = 15:0.1:50; >> y5i = polyval(p5,xi); >> plot(x,y,'*',xi,y5i,':',X0,Y0_n,'s',X0,Y0_c,'p',X0,Y0_s,'h',X0,Y0_l,'d')上機(jī)練習(xí)(四):1對(duì)下列數(shù)據(jù)進(jìn)行1次或3次擬合:(1,4),(2,3),(3,0),(5,-2)2求微
45、分方程的符號(hào)解:。六、函數(shù)作圖6.1 二維圖形plot、fplot:plot(x, y) 平面曲線圖形,x為自變量,y為函數(shù)值fplot(FUN, LIMS) FUN為函數(shù)名或表達(dá)式,LIMS:變量范圍例26: 畫下列函數(shù)的圖形(1),;(2),;解:>> x=0:0.01:1;>> y = 1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6 ;>> plot(y, 0 1) >> fplot('tan(x), sin(x), cos(x)', 2*pi*-1 1 -1 1)6.2 極坐標(biāo)作圖函數(shù)pol
46、ar:polar(theta, rho) % 用角度theta(弧度表示)和極半徑rho作極坐標(biāo)圖例27: 畫極坐標(biāo)圖 ,解: >> theta = linspace(0,3*pi); 或theta = 0:pi/180:3*pi; >> rho = sin(3*theta).*cos(3*theta); >> polar(theta,rho,'k')6.3 三維圖形1 三維曲線plot3:plot3(x_1,y_1,z_1,S_1,x_2,y_2,z_2,S_2,)參數(shù)說(shuō)明:x_n, y_n, z_n:是數(shù)據(jù)點(diǎn)的x坐標(biāo),y坐標(biāo),z坐標(biāo)。其中
47、x_n,y_n,z_n為向量或矩陣;S_n:用來(lái)指定使用的顏色、標(biāo)記符號(hào)或線形。與plot的形式完全相同。例28: 畫參數(shù)函數(shù)圖 ,.解: >> t = 0:pi/50:10*pi; >> plot3(sin(t),cos(t),t); >> title('Helix Plot') >> xlabel('sint'),ylabel('cost'),zlabel('t') >> text(0,1,0,'Start Point')2 三維網(wǎng)格圖mesh:mes
48、h(x, y, z) x為某一區(qū)域內(nèi)所有取值點(diǎn)的橫坐標(biāo)矩陣;y為所有取值點(diǎn)的縱坐標(biāo)矩陣;z為函數(shù)在取值點(diǎn)的高度矩陣?yán)?9: 在Matlab內(nèi)部,預(yù)定義了一個(gè)曲面函數(shù):山峰函數(shù)peaks。我們利用它來(lái)作為三維曲面的演示函數(shù)。解:>> X,Y,Z=peaks(30) >> subplot(2,2,1), mesh(X,Y,Z) >> subplot(2,2,2), meshc(X,Y,Z), hidden on >> subplot(2,2,3), meshz(X,Y,Z), grid on例30:作的圖形。解:>> x=0:0.1:10
49、; y=x;>> X, Y=meshgrid(x, y);>> Z=sqrt(X.2+Y.2);>> mesh(Z)3 三維曲面圖命令surf:surf(x, y, z)surf(z) 參數(shù)說(shuō)明:x,y,z含義同網(wǎng)格圖命令mesh。曲面圖是在網(wǎng)格圖的基礎(chǔ)之上,在小網(wǎng)格之間用不同顏色填充,使圖形更加美觀。surf的調(diào)用格式與mesh的調(diào)用格式完全相同。4 球面sphere:x, y, z= sphere(N) %產(chǎn)生3個(gè)(N+1)*(N+1)矩陣, 然后再用surf可產(chǎn)生單位球面sphere(N) %只繪圖, 不返回任何值,N為正整數(shù)5 柱面cylinder:
50、x, y, z= cylinder(R, N) % R為母線,N等分刻度,用mesh(x,y,z)可產(chǎn)生柱面例31: x=0 : pi/20 : 3*pir=5+cos(x)a,b,c=cylinder(r, 30);mesh(a,b,c)6 等高線contour、contour3:contour(z, n) %z為函數(shù)值,n為等高線條數(shù),作平面等高線 contour3(z, n) %作三維等高線 z表示函數(shù)值,n表示等高線條數(shù)上機(jī)練習(xí)(五):1作出函數(shù)在的圖形;2畫出的示意圖。七、線性代數(shù)1 向量運(yùn)算dot、cross:dot(x, y) 向量x,y的點(diǎn)乘,即內(nèi)積 cross(x, y) 向
51、量x, y的叉乘,即外積2 矩陣的轉(zhuǎn)置()、transpose:A或transpose(A) 與線性代數(shù)中矩陣的轉(zhuǎn)置相同。3 矩陣的逆矩陣 (-1)、inv:例31: 求的逆矩陣解: A = 1 2 3; 2 2 1; 3 4 3 inv(A)或A(-1)4 方陣的行列式det:det(A) 計(jì)算方陣A行列式的值5 符號(hào)矩陣的運(yùn)算(1). 符號(hào)矩陣的四則運(yùn)算:符號(hào)矩陣的四則運(yùn)算符有:加()、減()、乘(×)、除(/、)等,或四則運(yùn)算的函數(shù)運(yùn)算:和(symadd)、差(symsub)、乘 (symmul)、除(symdiv)。例32: A = sym(1/x, 1/(x+1); 1/(x+2), 1/(x+3) B = sym(x, 1; x+2, 0)C = B-AD = AB(2)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級(jí)英語(yǔ)Whatisyourfavorite課件
- 駕考題庫(kù)-70歲以上老年人C2駕照年審三力測(cè)試題
- 《證券銷戶寶典》課件
- 單位管理制度集粹選集【職工管理篇】十篇
- 2024服務(wù)合同范文(32篇)
- 單位管理制度合并選集【人員管理】
- 單位管理制度范例選集人事管理十篇
- 七年級(jí)英語(yǔ)Nationalheroes課件
- 3ds Max動(dòng)畫制作實(shí)戰(zhàn)訓(xùn)練(第3版)教學(xué)教案
- 2024年醫(yī)院個(gè)人工作總結(jié)范文
- 2021-2022學(xué)年第二學(xué)期《大學(xué)生職業(yè)發(fā)展與就業(yè)指導(dǎo)2》學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 國(guó)家開(kāi)放大學(xué)電大本科《工程經(jīng)濟(jì)與管理》2023-2024期末試題及答案(試卷代號(hào):1141)
- 個(gè)人社保代繳協(xié)議合同模板
- C4支持學(xué)生創(chuàng)造性學(xué)習(xí)與表達(dá)作業(yè)1-設(shè)計(jì)方案
- 給水排水管道工程外觀質(zhì)量檢查記錄
- 2022年國(guó)家電力公司火力發(fā)電廠勞動(dòng)定員標(biāo)準(zhǔn)
- 危險(xiǎn)化學(xué)品水路運(yùn)輸安全管理規(guī)定
- 教育中的心理效應(yīng)
- 考古繪圖(課堂PPT)
- PE管熱熔對(duì)接施工方案完整
- 全國(guó)各地木材平衡含水率年平均值
評(píng)論
0/150
提交評(píng)論