版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一部分MATLAB實驗指導一、基礎知識 1.1 常見數(shù)學函數(shù)函 數(shù) 名數(shù) 學 計 算 功 能函 數(shù) 名數(shù) 學 計 算 功 能abs(x)實數(shù)的絕對值或復數(shù)的幅值floor(x)對x朝-方向取整acos(x)反余弦arcsingcd(m,n)求正整數(shù)m和n的最大公約數(shù)acosh(x)反雙曲余弦arccoshimag(x)求復數(shù)x的虛部angle(x)在四象限內求復數(shù) x 的相角lcm(m,n)求正整數(shù)m和n的最小公倍數(shù)asin(x)反正弦arcsinlog(x)自然對數(shù)(以為底數(shù))asinh(x)反雙曲正弦arcsinhlog10(x)常用對數(shù)(以10為底數(shù))atan(x)反正切arctanr
2、eal(x)求復數(shù)x的實部atan2(x,y)在四象限內求反正切rem(m,n)求正整數(shù)m和n的m/n之余數(shù)atanh(x)反雙曲正切arctanhround(x)對x四舍五入到最接近的整數(shù)ceil(x)對x朝+方向取整sign(x)符號函數(shù):求出x的符號conj(x)求復數(shù)x的共軛復數(shù)sin(x)正弦sincos(x)余弦cossinh(x)反雙曲正弦sinhcosh(x)雙曲余弦coshsqrt(x)求實數(shù)x的平方根:exp(x)指數(shù)函數(shù) tan(x)正切tanfix(x)對x朝原點方向取整tanh(x)雙曲正切tanhabs(x)x的絕對值sum(x)對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.當不知系統(tǒng)有何幫助內容時,可直接輸入help以尋求幫助: >> help(回車)2.當想了解某一主題的內容時,如輸入: >> help syntax(了解Matlab的語法規(guī)定)3.當想了解某一具體的函數(shù)或命令的幫助信息時,如輸入:>
4、> help sqrt (了解函數(shù)sqrt的相關信息)2 lookfor命令現(xiàn)需要完成某一具體操作,不知有何命令或函數(shù)可以完成,如輸入:>> lookfor line (查找與直線、線性問題有關的函數(shù))1.3 常量與變量系統(tǒng)的變量命名規(guī)則:變量名區(qū)分字母大小寫;變量名必須以字母打頭,其后可以是任意字母,數(shù)字,或下劃線的組合。此外,系統(tǒng)內部預先定義了幾個有特殊意義和用途的變量,見下表:特殊變量取 值ans用于結果的缺省變量名pi圓周率eps計算機的最小數(shù),當和1相加就產(chǎn)生一個比1大的數(shù)flops浮點運算數(shù)inf無窮大,如1/0NaN不定量,如0/0i,ji=j=nargin所用
5、函數(shù)的輸入變量數(shù)目nargout所用函數(shù)的輸出變量數(shù)目realmin最小可用正實數(shù)realmax最大可用正實數(shù)1 數(shù)值型向量(矩陣)的輸入1任何矩陣(向量),可以直接按行方式輸入每個元素:同一行中的元素用逗號(,)或者用空格符來分隔;行與行之間用分號(;)分隔。所有元素處于一方括號( )內;例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)中提供了多個命令用于輸入特殊的矩陣:函數(shù)功 能函數(shù)功 能compan伴隨陣toeplitzToeplitz矩陣diag對角陣vanderV
6、andermonde矩陣hadamardHadamard矩陣zeros元素全為0的矩陣hankelHankel矩陣ones元素全為1的矩陣invhilbHilbert矩陣的逆陣rand元素服從均勻分布的隨機矩陣kronKronercker張量積randn元素服從正態(tài)分布的隨機矩陣magic魔方矩陣eye對角線上元素為1的矩陣pascalPascal矩陣meshgrid由兩個向量生成的矩陣上面函數(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轉化為矩陣數(shù)據(jù)X,Y。2 符號向量(矩陣)的輸入1用函數(shù) sym定義符號矩陣:函數(shù)sym實際是在定義一個符號表達式,這時的符號矩陣中的元素可以是任何的符號或者是表達式,而且長度沒有限制。只需將方括號置于單引號中。例2:>> sym_matrix = sym('a b c;Jack Help_Me NO_WAY') sym_matrix = a, b, c Jack, Help_Me, NO_WAY2用函數(shù)syms定義符號矩陣先定義
8、矩陣中的每一個元素為一個符號變量,而后像普通矩陣一樣輸入符號矩陣。例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ù)組(矩陣)的點運算運算符:+(加)、-(減)、./(右除)、.(左除)、.(乘方),例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 矩陣的運算運算符:+(加)、-(減)、*(乘)、/(右除)、(左除)、(乘方)、(轉置)等;常用函數(shù):det(行列式)、inv(逆矩陣)、rank(秩)、eig(特征值、特征向量)、rref(化矩陣為行最簡形)例5:>> A=2 0 1;1 3 2; B=1 7 1;4 2 3;2 0 1;>> M = A*B % 矩陣A與B按矩陣運算相乘>> det_B = det(
10、B) % 矩陣A的行列式>> rank_A = rank(A) % 矩陣A的秩>> inv_B = inv(B) % 矩陣B的逆矩陣>> V,D = eig(B) % 矩陣B的特征值矩陣V與特征向量構成的矩陣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 %增補一
11、列>>A(:,2) = %刪去第2列>>A = A; 1 2 3 4 %增補一行>>A(1,4,:) = %刪去1,4行>>B = reshape( A, 2, 6 ) %將A按列的順序重新組成2行6列的矩陣。注意,這里要求新矩陣和舊矩陣具有相同的元素個數(shù)。>>A=repmat(4,5 6) %產(chǎn)生一個5行4列的全是4的矩陣1.6 關系運算符:1 關系操作符:關系操作符說明<小于<=小于或等于>大于>=大于或等于= =等于=不等于2邏輯運算符:邏輯操作符說明與或非上機練習(一):1練習數(shù)據(jù)和符號的輸入方式,將前
12、面的命令在命令窗口中執(zhí)行通過;2輸入A=7 1 5;2 5 6;3 1 5,B=1 1 1; 2 2 2; 3 3 3,在命令窗口中執(zhí)行下列表達式,掌握其含義: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)建變量的信息,刪除無用的變量;5欲通過系統(tǒng)做一平面圖,請查找相關的命令與函數(shù),獲取函數(shù)的幫助信息。6利用help 學習一下函數(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學習一下命令的功能:clear clc clock now whos date tic toc save load二、編程2.1 無條件循環(huán)當需要無條件重復執(zhí)行某些命令時,可以使用for循環(huán):for 循環(huán)變量t=表達式1 : 達式2 : 表達式3 語句體end說明:表達式1為循環(huán)初值,表達式2為步長,表達式3為循環(huán)終值;當表達式2省略時則默認步長
14、為1;for語句允許嵌套。例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語句if-else-then語句的常使用三種形式為:(1) if 邏輯表達式 (3) if 邏輯表達式1
15、語句體 語句體1end elseif 邏輯表達式2 語句體2(2) if 邏輯表達式1 elseif 邏輯表達式3 語句體1 else else 語句體2 語句體nend end 2) while循環(huán)語句while循環(huán)的一般使用形式為:while 表達式 語句體end例7:用二分法計算多項式方程= 0在0,3內的一個根。 解: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運行結果為:x = 2.094552.3 分支結構若需要對不同的情形執(zhí)行不同的操作,可用switch 分支語句:switch 表達式(標量或字符串) case 值1 語句體1 case 值2 語句體2 otherwise 語句體nend說明:當表達式不是“case”所列值時,執(zhí)行otherwise語句體。2.4 建立M文件將多個可執(zhí)行的系統(tǒng)命令,用文本編輯器編輯后并存放在后綴為 .m 的文件中,若在MATLAB命令窗口中輸入該m-文件的文件名(不跟后綴.m!),即可依次執(zhí)行該文件中的多個命令。這個后綴為.m的文件,也稱為Matlab的腳本文件(Script File)。注意:文件存
17、放路徑必須在Matlab能搜索的范圍內。2.5 建立函數(shù)文件對于一些特殊用戶函數(shù),系統(tǒng)提供了一個用于創(chuàng)建用戶函數(shù)的命令function,以備用戶隨時調用。1格式:function 輸出變量列表=fun_name(輸入變量列表) 用戶自定義的函數(shù)體2函數(shù)文件名為:fun_name,注意:保存時文件名與函數(shù)名最好相同;3存儲路徑:最好在系統(tǒng)的搜索路徑上。4. 調用方法:輸出參量=fun_name (輸入變量)例8:計算s = n!,在文本編輯器中輸入:function s=pp(n);s=1;for i=1:n s=s*i;ends;在MATLAB命令窗口中輸入:s=pp(5) 結果為s = 12
18、0上機練習(二):1編寫程序,計算1+3+5+7+(2n+1)的值(用input語句輸入n 值)。2編寫分段函數(shù) 的函數(shù)文件,存放于文件ff.m中,計算出,的值。三、微積分3.1 極限limit:limit(F, x, a) 計算limit(F, a) 符號表達式F中由命令findsym(F)返回獨立的變量v,計算limit(F) 符號確定同上,設為v,計算limit(F, x, a, 'right') 計算limit(F, x, a, 'left') 計算例9: 計算 , 解:>> 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')運算結果是:lim_f = 0lim_h = 1/43.2 函數(shù)的導數(shù)diff:diff(f, v) 計算或diff(f, v, n) 計算或diff(f, n) 獨立變量確定同上,設為v,計算或例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)計算的結果為: result= 1/2例11: 已知 ,求 解:設方程F(x, y , z) = 0確定了函數(shù)z = z(x, y),則,再用類似的計算方法,可以計算。 >> 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 % 計算 >> dZdxdy = diff(dZdx, y) >> dZdxdz = diff(dZdx, z) >> d2Zdxdy = -dZdxdy/dZdxdz % 計算3.3 單積分int、quad、quad8:1. int不定積分:F = int(f)F = int(f, var) f:被積函數(shù),var:對函數(shù)f中的變量var積分。F:函數(shù)f的原函數(shù)。F中沒有常數(shù)C。例12: 計算 , 解:>> 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:積分上下限,可為無窮大(負無窮大:); F:函數(shù)的積分值,有時為無窮大。3quad、quad8定積分:y = quad(f, a, b, tol)y = quad8(f, a, b, tol) 參數(shù)說明:f:被積函數(shù);a, b:積分上下限;tol:計算精度,quad()的默認值為:tol=1e-3,quad8()的默認值為:tol=1e-6。quad()函數(shù)采用的是Simpson 方法計算定積分的近似值。
23、quad8()函數(shù)采用的是Newton Cotes方法計算定積分的近似值,其精度比前者更高。例13: 計算 , 解:>> syms x >> f = 1/(x2+2*x+3); >> F1 = int(f,2,pi) >> F2 = int(f,-inf,inf) 運算的結果是: 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: 計算無初等原函數(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)則顯示結果為y = 0.997300050554703.4 泰勒展式taylor:taylor(f) f:待展開的函數(shù)表達式,可以不用單引號生成;taylor(f, n) n:把函數(shù)展開到n階;若不包含n,則缺省地展開到階taylor(f, v) v:對函數(shù)f中的變量v展開taylor(f, a) a:對函數(shù)f在x=a點展開。例15: 計算(1)把y =展開到6階; (2)把y = lnx在
25、x = 1點展開到6階; (3)把y = 關于變量t展開到3階。解: >> syms x t >> t1 = taylor(exp(-x) >> t2 = taylor(log(x),6,1) >> t3 = taylor(xt,3,t)運算結果為: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ù)說明: F:待求梯度的數(shù)值矩陣。F可以為向量、二維矩陣、三維矩陣; FX,FY,FZ:矩陣F在x、y、z方向上的數(shù)值梯度; H:H為一標量,作為各個方向上各點之間的步長; HX,HY,HZ:矩陣F在x、y、z方向上的具體步長。HX,HY,HZ可為標量或與矩陣F各個方向上同維的向量。例16: 計算函數(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ù)梯度和方向導數(shù)jacobian: jacobian(f, v)參數(shù)說明: f:函數(shù)向量或標量,當f為標量時,jacobian(f, v) = gradient(f); v:自變量向量或者單個變量。例17: 求 在點M(1,1,1) 處的梯度;在點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)計算的結果為: 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ù)說明:s:包含方程(一個)等式的字符串(可以是函數(shù)名,或者是描述方程的字符串);v:方程s 中的一個變量;例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')計算結果為: x = -6.937117905 y = 34.22965330上機練習(三):1求極限: 2. 求導數(shù):,求3求不積分: 4. 求定積分:5解方程組: 6. 求的5階泰勒展開式。四、微分方程4.1 常微分方程(組)的符號解dsolve:y1,y2, = dsol
31、ve('eqn1','qun2','var1','var2','inition','disp_var1','disp_var2')參數(shù)說明:'eqn1','eqn2',:包含微分方程(組)在內的字符串,可以是函數(shù)名或是微分方程(組)的表達式;每個'eqn_i'可以包含一個或多個微分方程。'var1','var2',:指定方程組中獨立的變量(若方程組中有多個符號,要指定某個符號為未知變量符號);'i
32、nition':微分方程的初始條件(組),或者是初始條件的表達式。如:'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')計算結果為(略):4.2 常微分方程(組)的數(shù)值解odeXX:t, y=odeXX('F',tspan,y0,) 參數(shù)說明:XX可為45或者為23,F(xiàn)是函數(shù)名。tspan為自變量t的積分范圍,y0為方程的初始狀態(tài)值。 例21: 把高階(3階)方程轉化為同解的一階導數(shù)方程組,寫成函數(shù)文件,并在時間段 0, 120 內求解。解:設 ,則原方程等價于方程組,令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調用函數(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 級數(shù)求和symsum:S=symsum(s) s:數(shù)列的通項式;S=symsum(s, v) v:通式S中的變量,求和時
35、將對v從1求至v-1;S=symsum(s, v, a, b) a,b:對變量從a至b求和,b可以為無窮大;例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: 在某實驗中測得輸入如下:x104180190177147134150191204121y1002002101851551
36、35170205235125由此推測出x和y的函數(shù)關系:y=f(x)。解:先把數(shù)據(jù)點描出來,觀察x和y大概滿足的函數(shù)關系。為此先把數(shù)據(jù)x和y進行適當?shù)恼{整,使自變量x的值從小到大排列,y也做相應的排列: >> 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ù)點大致分布于一直線上,由此推測x和y有線性函數(shù)關系:y = ax+b,由數(shù)學推斷過程得:, ,其中n為x和y的長度。用Matlab計算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中,一般選用多項式作為擬合函數(shù):p=polyfit(x, y, n) x, y:測量數(shù)據(jù)的橫縱坐標向量,n為多項式的次數(shù),p:擬合多項式的系數(shù)向量(按降冪排列)。Y=polyval(p, x) p:多項式系數(shù)向量,x:自變量向量,Y:多項式在x處的值例24:在某次工程測量中得到如下數(shù)據(jù):X1520253035404550Y07442267034163549785502095022650230對以上數(shù)據(jù)用一次數(shù)合適的多項式進行擬
39、合,并畫圖比較。解:先把數(shù)據(jù)點描出來: >> x = 15:5:50; >> y = 0 7442 26703 41635 49785 50209 50226 50230 >> subplot(2,2,1), plot(x, y,'*')用2、3、5次多項式對數(shù)據(jù)進行擬合,分別畫出圖形,與原數(shù)據(jù)點進行比較: >> 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,'-')計算結果為: 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從圖中可以看得出來,5次多項式的擬合效果是最好的。3. 一維插值interp1:t = interp1(X, Y, X0, 'method')參數(shù)說明:X:原始數(shù)據(jù)的橫坐標向量,必須是單調增加的向量;Y:原始數(shù)據(jù)的縱坐標向量;X0:待插值的點的橫坐標,可以是標量或單調增加的向量;t:若X0為標量,則該方式用的是
42、線性插值:認為被插函數(shù)在點X0處的值落在過兩點與的直線上,其值為t;若X0為向量,則t也是同維向量;'method':指定插值的算法,取值如下:'nearest':最近插值。該方式不進行插值。而是找出與點X0最接近的原始數(shù)據(jù)點,再返回其值;'linear':線性插值。該方式認為相鄰的點之間是線性關系;'cubic':三次插值。該方式認為被插函數(shù)在點X0處的值落在過相臨兩點的三次曲線上;'spline':樣條插值。該方式認為被插函數(shù)在點X0處的值落在過相臨兩點的三次樣條曲線上。例25:在例24中,由于需要,現(xiàn)估計x
43、= 22, 27, 36時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')上機練習(四):1對下列數(shù)據(jù)進行1次或3次擬合:(1,4),(2,3),(3,0),(5,-2)2求微
45、分方程的符號解:。六、函數(shù)作圖6.1 二維圖形plot、fplot:plot(x, y) 平面曲線圖形,x為自變量,y為函數(shù)值fplot(FUN, LIMS) FUN為函數(shù)名或表達式,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 極坐標作圖函數(shù)pol
46、ar:polar(theta, rho) % 用角度theta(弧度表示)和極半徑rho作極坐標圖例27: 畫極坐標圖 ,解: >> 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ù)說明:x_n, y_n, z_n:是數(shù)據(jù)點的x坐標,y坐標,z坐標。其中
47、x_n,y_n,z_n為向量或矩陣;S_n:用來指定使用的顏色、標記符號或線形。與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ū)域內所有取值點的橫坐標矩陣;y為所有取值點的縱坐標矩陣;z為函數(shù)在取值點的高度矩陣例29: 在Matlab內部,預定義了一個曲面函數(shù):山峰函數(shù)peaks。我們利用它來作為三維曲面的演示函數(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ù)說明:x,y,z含義同網(wǎng)格圖命令mesh。曲面圖是在網(wǎng)格圖的基礎之上,在小網(wǎng)格之間用不同顏色填充,使圖形更加美觀。surf的調用格式與mesh的調用格式完全相同。4 球面sphere:x, y, z= sphere(N) %產(chǎn)生3個(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ù)上機練習(五):1作出函數(shù)在的圖形;2畫出的示意圖。七、線性代數(shù)1 向量運算dot、cross:dot(x, y) 向量x,y的點乘,即內積 cross(x, y) 向
51、量x, y的叉乘,即外積2 矩陣的轉置()、transpose:A或transpose(A) 與線性代數(shù)中矩陣的轉置相同。3 矩陣的逆矩陣 (-1)、inv:例31: 求的逆矩陣解: A = 1 2 3; 2 2 1; 3 4 3 inv(A)或A(-1)4 方陣的行列式det:det(A) 計算方陣A行列式的值5 符號矩陣的運算(1). 符號矩陣的四則運算:符號矩陣的四則運算符有:加()、減()、乘(×)、除(/、)等,或四則運算的函數(shù)運算:和(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 女裝加工合同范例
- 建筑業(yè)集體勞動合同范例
- 小區(qū)保安聘用合同范例
- 專利獨享合同范例
- 家具美容合作合同范例
- 店鋪搬遷合同范例
- 業(yè)務承包轉讓合同范例
- 幾人合作創(chuàng)業(yè)合同范例
- 大牌香水租賃合同范例
- 家具賠付合同范例
- 2024年合肥興泰金融控股(集團)有限公司招聘筆試沖刺題(帶答案解析)
- 大學生職業(yè)生涯展示
- 《金屬非金屬地下礦山監(jiān)測監(jiān)控系統(tǒng)建設規(guī)范》
- “國家中小學智慧教育平臺”應用工作實施方案
- 《中國慢性阻塞性肺疾病基層診療與管理指南(2024年)》解讀
- 安全操作規(guī)程、作業(yè)指導書
- MOOC 軟件安全之惡意代碼機理與防護-武漢大學 中國大學慕課答案
- 檔案工作協(xié)調機制
- 肝硬化門靜脈高壓食管胃靜脈曲張出血的防治指南( 2022)
- 2023年1月自考00804金融法二試題及答案
- 贏利-未來10年的經(jīng)營能力-讀后感
評論
0/150
提交評論