完整課件-數(shù)學(xué)建模_第1頁(yè)
完整課件-數(shù)學(xué)建模_第2頁(yè)
完整課件-數(shù)學(xué)建模_第3頁(yè)
完整課件-數(shù)學(xué)建模_第4頁(yè)
完整課件-數(shù)學(xué)建模_第5頁(yè)
已閱讀5頁(yè),還剩142頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

MATLAB—入門1.雙擊圖標(biāo),進(jìn)入Matlab界面(command)2.單擊fileNewM—file進(jìn)入編輯界面(Untitled1),進(jìn)行編程之后,點(diǎn)擊保存時(shí)可以修改文件名.必須用英文開頭3.要顯示運(yùn)算的結(jié)果,有兩種方法:(1)進(jìn)入command界面,健入你定義的文件名,然后按回車鍵即可得到計(jì)算結(jié)果;(2)點(diǎn)擊編輯界面上方的箭頭于是運(yùn)行結(jié)果出現(xiàn)在command界面。一.矩陣與向量的基本運(yùn)算1.矩陣(向量、數(shù)組)的輸入方法矩陣的輸入利用[],采取分行輸入方法,例1.矩陣A=的Matlab輸入:A=[1,5,1,0,1;2,6,0,1,1;3,7,1,0,1;4,8,0,1,1];每個(gè)元素之間用逗號(hào)或空格,每行之間用分號(hào).注意:行尾分號(hào)的作用在于運(yùn)算結(jié)果不顯示.n維行(列)向量可以看成是一個(gè)行(列)矩陣,因此向量的輸入和矩陣一樣.2.矩陣的合成與分解求A的第一行與第一列解:A1=A(1,:)表示矩陣A的第一行;

A2=A(:,1)表示矩陣A的第一列;練習(xí):A(4,:),A(3,2),分別表示什么?例2.矩陣A=如果需要兩行(列)以上怎么表示呢?例3.求矩陣A的第1,3,4行元素組成的矩陣.解:首先健入a=[1,3,4];然后健入

B=A(a,:)即可其中a=[1,3,4]稱為索引向量.練習(xí):求矩陣A的第1,3,4列元素組成的矩陣?yán)?.求從矩陣A中去掉第1,2列后,剩余元素組成的矩陣.解:a=[1,3,4];

B=A(:,a);注意:3:5表示從3開始按步長(zhǎng)為1增加到5.B=101011101011可以寫為B=A(:,3:5);練習(xí):求從A中去掉2,5兩行后所得到的子矩陣解法一:a=[1,3,4];B=A(a,:)解法二:B=[A(1,:);A(3,:);A(4,:)]3.矩陣的加減法、乘法、轉(zhuǎn)置與求逆運(yùn)算等A+B,A-B,A*B,A.^2,A’,inv(A),det(A)分別表示:A,B的和,差,積,點(diǎn)乘方,轉(zhuǎn)置,求逆

以及A的行列式B=151013710148011例5.已知求:AB,B-1,B-AT,|A|解:A=[1,2,3;4,5,6;7,8,0];B=[1,2,1;1,1,2;2,1,1];a=A*B,b=inv(B),c=B-A',d=det(A)a=978211920152223b=-1/41/4-3/43/4-1/4-1/4-1/43/4-1/4c=0-2-6-1-4-6-1-51det(A)=274.向量的數(shù)量積,矢量積與范數(shù)的數(shù)量積例如:a=[1,2,3],b=[-1,5,6],c=[1,0,1]則

Matlab中數(shù)量積:dot(a,b);矢量積:cross(a,b)dot(a,b)=27,cross(a,c)=(2,2,-2)解:a,b,c的混合積為:dot(a,cross(b,c))練習(xí):計(jì)算a,b,c的混合積Matlab中向量

a的范數(shù)為:norm(a)例6a=[1,2,3],b=[-1,5,6],c=[1,0,1],求a,b的范數(shù)解:norm(a)=3.7417,norm(b)=7.8740練習(xí):對(duì)例6計(jì)算:a,b夾角的余弦dot(a/norm(a),b/norm(b))解法二:

dot(a,b)/norm(a)/norm(b)解法一:=0.9164思考:a,b,c三個(gè)向量那兩個(gè)更接近?

二.度量空間與距離1.度量空間定義:設(shè)X是任一集合,如果X中任意兩個(gè)元素x與y,都對(duì)應(yīng)一個(gè)實(shí)數(shù)d(x,y),且滿足:(1)非負(fù)性:d(x,y)≥0,當(dāng)且僅當(dāng)x=y時(shí),d(x,y)=0(2)對(duì)稱性:d(x,y)=d(y,x)(3)三角不等式:對(duì)任意的x,y,z∈X,有

d(x,y)≤

d(x,z)+d(z,y)則稱d(x,y)為x與y之間的距離,稱X是以d(x,y)為距離的度量空間或距離空間.2.常見的距離空間n維歐氏空間:設(shè)表示n維向量的全體所組成的集合,稱為n維歐氏空間(2)連續(xù)函數(shù)空間C[a,b]:令C[a,b]={x(t)|x(t)是[a,b]上的連續(xù)函數(shù)}則稱C[a,b]為連續(xù)函數(shù)空間,在C[a,b]上定義

d(x,y)=max|x(t)-y(t)|(3)平方可積函數(shù)空間:令則稱為平方可積函數(shù)空間,定義距離:(4)平方可和離散序列空間:令則稱平方可和離散序列空間,定義距離:

3.向量的距離與計(jì)算(1)歐氏距離:Matlab中命令:dist(A,B)計(jì)算A中每個(gè)行向量與B中每個(gè)列向量之間歐氏距離,A的行向量維數(shù)必須等于B的列向量維數(shù).例7.a=[1,2,3],b=[-1,5,6],c=[1,0,1]求a,b,c歐氏距離解:

dist(a,b')=4.6904,dist(a,c')=2.8284dist(c,b')=7.3485(2)絕對(duì)距離:Matlab中命令:mandist(A,B)計(jì)算A中每個(gè)行向量與B中每個(gè)列向量之間絕對(duì)距離,A的行向量維數(shù)必須等于B的列向量維數(shù).例8.求例6中向量之間的絕對(duì)值距離.mandist(a,b')=8;mandist(a,c')=4;mandist(c,b')=12解:dist(a,b')=4.6904,dist(a,c')=2.8284dist(c,b')=7.3485由此,你發(fā)現(xiàn)了什么?(3)閔可夫斯基距離:當(dāng)r=1,2時(shí)分別為絕對(duì)距離和歐氏距離(4)馬氏距離:其中V是一個(gè)實(shí)對(duì)稱正定矩陣,通常取樣本的協(xié)方差矩陣,當(dāng)V=E時(shí)即為歐氏距離.以上距離,在Matlab(6.)中有命令:pdist具體如下:設(shè)樣本X是m個(gè)n維行向量所組成的矩陣,則有:Pdist(X)—樣本X中各n維向量的歐氏距離Pdist(X,'cityblock')—各n維向量的絕對(duì)距離Pdist(X,'Minkowski',r)—閔可夫斯基距離Pdist(X,'mahal')—各n維向量的馬氏距離注意:而pdist(X)是個(gè)一行列矩陣。各列分別表示X中各行向量按如下順序的距離(1,2),(1,3),…(1,m),(2,3),(2,4),…(2,m),…(m-1,m)三.向量的均值、方差、協(xié)方差與相關(guān)矩陣mean(A)—A中各列向量的均值Var(A)—A中各列向量的方差Std(A)—A中各列向量的標(biāo)準(zhǔn)差Cov(A)—A中各列向量的協(xié)方差矩陣Corrcoef(A)—A中各列向量的相關(guān)矩陣如果計(jì)算A中各行向量的均值、方差、協(xié)方差矩陣,相關(guān)矩陣,只需先將A轉(zhuǎn)置即可.例9.現(xiàn)測(cè)得6只Apf和9只Af蠓蟲的觸長(zhǎng),翅長(zhǎng)數(shù)據(jù)如下:Apf:(1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96)Af:(1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08)計(jì)算兩類蠓蟲的各自之間的歐氏、絕對(duì)、馬氏距離解:Af=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];d1=(pdist(Apf))';d2=(pdist(Apf,'cityblock'))';d3=pdist(Apf,'mahal'))';d=[d1,d2,d3]Apf=[1.14,1.78;1.18,1.96;1.2,1.86;1.26,2.;1.28,2;1.30,1.96];表一.Apf蠓蟲之間的距離Apf蠓蟲歐氏距離絕對(duì)距離馬氏距離d120.18440.22002.5626d130.10000.14000.9883d140.25060.34002.4942d150.26080.36002.5318d160.24080.34002.5478d230.10200.12002.2507d240.08940.12001.5470d250.10770.14002.0430d260.12000.12003.0777d340.15230.20001.6534d350.16120.22001.5873d360.14140.20001.6025d450.02000.02000.5129d460.05660.08001.6616d560.04470.06001.1764Af蠓歐氏距絕對(duì)距馬氏距Af蠓歐氏距絕對(duì)距馬氏距d120.12170.14001.4423d370.20590.28001.3971d130.16120.22002.3963d380.24080.34001.6847d140.17200.24001.4225d390.47540.62003.4103d150.22800.32001.5517d450.08000.08000.7917d160.16120.18002.2078d460.12170.14001.3659d170.26000.34002.6110d470.10000.10001.2987d180.31620.40003.3635d480.16000.16002.0780d190.48170.68003.3694d490.31620.44002.1271d230.10200.12001.1705d560.20100.22002.1520d240.08250.10000.6601d570.12810.18001.8990d250.16120.18001.4345d580.17890.24002.6482d260.05660.08000.8277d590.25460.36001.8449d270.14420.20001.2266d670.14420.20000.9689d280.19700.26001.9404d680.18440.26001.4149d290.39450.54002.6612d690.41230.54002.9389d340.18000.18001.7814d780.06000.06000.7792d350.26000.26002.5731d790.27200.34002.0832d360.06320.08000.4756d890.26080.28002.4183如果我們要將這些距離按大小排序,如何快捷地實(shí)現(xiàn)?在Matlab中方法如下:F=sort(d);[F,i]=sort(d)其中sort(d)將d中距離按從小到大排列,而i中各列則指出了排序后各距離原來的序號(hào).i=131313151521414157672711691282109814121081012611131114535351449作業(yè):1.(1)輸入A,B,并計(jì)算各行列式的值,逆矩陣;(2)A的行向量的協(xié)方差矩陣,B的列向量的相關(guān)系數(shù)矩陣(3)計(jì)算A列向量間各種距離,夾角余弦,哪兩個(gè)向量更接近?(4)將矩陣A的各行向量標(biāo)準(zhǔn)化;并給出驗(yàn)證方法;(5)求去掉B的第一行與第三列后的矩陣C,求AC,C^2,A.^22.將下表給出的數(shù)據(jù)粘帖到matlab,然后進(jìn)行各指標(biāo)排序,從而得到各省、市、自治區(qū)的各指標(biāo)排名矩陣D,安徽省排名如何?地區(qū)企業(yè)單位數(shù)工業(yè)工業(yè)實(shí)收資本資產(chǎn)流動(dòng)資產(chǎn)流動(dòng)資產(chǎn)固定資產(chǎn)(個(gè))總產(chǎn)值增加值合計(jì)合計(jì)年平均余額原價(jià)合計(jì)全國(guó)3142327220.917128.1110256.7828354.4614029.7513750.9616700.30北京10231318.03295.54410.091166.26715.76720.43503.53天津13501365.99324.44553.061421.84746.63714.29759.44河北760424.94122.38223.92625.90249.95234.68411.51山西10174.7025.8171.94207.6749.9044.99141.82內(nèi)蒙古8965.9220.1229.83122.2580.9178.0244.65遼寧1070894.67238.90406.791097.95462.38447.83822.40吉林245412.72121.57118.49353.28169.53145.29225.09黑龍江147114.8236.6760.26219.85103.00102.17118.40上海36693904.801024.351655.584385.452332.522324.982331.17江蘇36013333.31835.681271.053311.921575.001557.562008.05浙江27151532.12364.72503.431424.40747.77723.92794.17安徽277246.8078.12149.86364.69141.13138.21251.70福建29231822.48490.68689.961940.28894.00854.221179.72江西177106.8729.4246.50139.4063.5864.8679.85山東20201457.01431.75493.521397.82657.56621.88805.65河南421262.1386.71117.83415.29199.36192.49303.22湖北392382.38135.04196.03529.20214.44191.99311.53湖南239147.1543.0572.96188.7779.8478.04137.53廣東90208490.962153.182658.907679.213940.623932.874614.89廣西238147.4344.9387.73248.7794.4291.86162.90海南9440.5410.2529.4760.1226.7528.0634.33重慶151179.8756.44119.17260.17110.92112.61208.34四川268188.8360.12109.31287.94127.31117.23156.47貴州7621.566.5923.0952.0527.5225.0120.75云南12069.5922.3455.06125.8253.7853.3582.71西藏50.040.020.330.500.200.180.28陜西130140.7347.3267.25208.45105.3595.82123.96甘肅3736.0210.2913.3955.5727.3927.3829.02青海95.391.132.718.754.232.654.84寧夏2419.366.4810.3027.5914.9015.2015.12新疆3213.744.068.9927.3113.1312.9117.22在Matlab中經(jīng)常遇到下列運(yùn)算:A=[1,2,3,4],若將A中每個(gè)元素都減去2,如何運(yùn)算?A-2可否?A=[1,2;3,4],若將A的每一行都減去向量(1,2)如何運(yùn)算?A-(1,2)可否?前者可以進(jìn)行,后者不行,如何實(shí)現(xiàn)?特殊矩陣:ones:生成元素全為1的矩陣zeros:生成元素全為0的矩陣eye:生成主對(duì)角元素為1,其余元素為0矩陣A=[1,2,3;4,5,6;7,8,0],如何實(shí)現(xiàn)各列元素分別減去該列的均值?解:A=[1,2,3;4,5,6;7,8,0];B=B=A-ones(3,1)*mean(A)第二節(jié)線性代數(shù)運(yùn)算一.矩陣的特征值與特征向量定義:設(shè)A為n階矩陣,是一個(gè)數(shù),若存在n階非零向量,使得則稱是A的一個(gè)特征值,稱為矩陣A對(duì)應(yīng)于特征值的特征向量.注意:一個(gè)特征值可以有無窮多個(gè)特征向量,但一個(gè)特征向量只對(duì)應(yīng)唯一的一個(gè)特征值,即特征值是由特征向量唯一確定的.在后續(xù)的課程中,我們將介紹特征值與特征向量在經(jīng)濟(jì)分析中的作用.例1.計(jì)算矩陣的特征值解:設(shè)為A的特征值,是對(duì)應(yīng)于的特征向量此線性齊次方程組有非零解的充要條件是系數(shù)行列式的值為零,由在MATLAB中計(jì)算矩陣X的特征值與特征向量的方法如下:[V,D]=EIG(X)producesadiagonalmatrixDofeigenvaluesandafullmatrixVwhosecolumnsarethecorrespondingeigenvectorssothatX*V=V*D.D是由矩陣X的特征值組成的對(duì)角矩陣,V的每一列是對(duì)應(yīng)于特征值的特征向量.例2求矩陣的特征值與特征向量解:A=[4,6,0;-3,-5,0;-3,-6,1];[V,D]=eig(A)V=00.5774-0.89440-0.57740.44721-0.57740D=1000-20001即對(duì)應(yīng)的兩個(gè)特征向量為:而對(duì)應(yīng)的一個(gè)特征向量為:對(duì)應(yīng)的全部特征向量為:而對(duì)應(yīng)的全部特征向量為:例3.求矩陣B,BB’

的特征值、特征向量解:B=[3,0,0;0,2,0;1,1,1],[D1,V1]=eig(B),[D,V]=eig(B*B’),

D=-0.2953-0.3048-0.9054-0.49540.8592-0.12770.81690.4109-0.4048V=0.70240004.956400010.3412例4.將矩陣A的行向量與列向量標(biāo)準(zhǔn)化解:A=[1,2,3;4,5,6;7,8,0];B=normr(A),C=normc(A)B=0.26730.53450.80180.45580.56980.68380.65850.75260C=0.12310.20740.44720.49240.51850.89440.86160.82960二.向量的標(biāo)準(zhǔn)化與矩陣的范數(shù)1.Matlab中將矩陣的行向量、列向量單位化的命令:normr(A),normc(A)2.矩陣的范數(shù)有以下幾種:(1)n=norm(A)矩陣A的普范數(shù)(2范數(shù)),

=A’A的最大特征值的算術(shù)根.(2)n=norm(A,1)矩陣A的列范數(shù)(1-范數(shù))等于A的最大列之和.(3)n=norm(A,inf)矩陣A的行范數(shù)(無窮大范數(shù))

等于A的最大行之和.(4)n=norm(A,'fro')矩陣A的Frobenius范數(shù).記為:

3.方陣的譜半徑:方陣A的特征值的絕對(duì)值之最大值稱為A的譜半徑記為:上述范數(shù)之間的關(guān)系:例5.求矩陣的譜半徑由例2知矩陣A的特征值分別為1,-2。例6.計(jì)算矩陣A的各種范數(shù)n1=norm(A,1),n2=norm(A),n3=norm(A,inf),n4=norm(A,'fro')解:A=[1,2,3,4;2,3,4,1;3,4,1,2;4,1,2,9];n1=16,n2=12.4884,n3=16,n4=13.8564三.求線性方程組AX=b的解1.若矩陣A可逆,則X=A\b例7.解線性方程組解:A=[2,3,5;3,6,8;6,5,4];b=[12;34;43];

det(A)=-29,矩陣A可逆,于是X=A\bans=0.275912.3793-5.1379檢驗(yàn):A*Xans=12.000034.000043.00002.求齊次線性方程組AX=0的非零解Matlab中Z=null(A,‘r’)就是求AX=0的基礎(chǔ)解系,其中Z的列向量即為所求基礎(chǔ)解系例8.求方程組的通解:formatrat %指定有理式格式輸出Z=null(A,‘r’) %求解空間的有理基

Z=25/3-2-4/31001解:A=[1,2,2,1;2,1,-2,-2;1,-1,-4,-3];故所求通解為:化成行簡(jiǎn)化階梯形求AX=b的解Matlab中的命令為:C=[A,b]%增廣矩陣C.D=rref(C)%將C化成行最簡(jiǎn)化階梯形則D的最后一列元素就是所求的解.例9.求線性方程組AX=b的解其中A=[2,3,5;3,6,8;6,5,4],b=[12;34;43].解:C=[A,b];D=rref(C);

D=1000.275901012.3793001-5.1379

四.特殊矩陣及其應(yīng)用E=eye(n):表示n維單位矩陣,E=eye(m,n):表示主對(duì)角元素為1,其余元素為零的矩陣.例如:eye(3)=2.A=ones(n,m):表示元素全為1的n×m矩陣3.A=zeros(n,m):產(chǎn)生n×m維零矩陣4.A=rand(n,m):產(chǎn)生n×m維隨機(jī)矩陣(元素在0~1之間)例10.下表是全國(guó)5個(gè)主要湖泊的實(shí)測(cè)數(shù)據(jù)指標(biāo)湖泊總磷(mg/L)耗氧量(mg/L)透明度(m)總氮(mg/L)杭州西湖13010.300.352.76武漢東湖10510.700.402.0青海湖201.44.50.22巢湖306.260.251.67滇池2010.130.500.23試用矩陣A表示上表所示的矩陣,2.計(jì)算每個(gè)指標(biāo)與該指標(biāo)平均值之差的絕對(duì)值.解:A=[130,10.3,0.35,2.76;105,10.7,0.4,2;20,1.4,4.5,0.22;30,6.26,0.25,1.67;20,10.13,0.5,0.23];mean(A)=[61.00007.75801.20001.3760]各指標(biāo)的平均值為:生成一個(gè)5-by-4的矩陣B,各行都是mean(A):B=ones(5,1)*mean(A),然后得到所求矩陣C為:C=abs(A-B)=69.00002.54200.85001.384044.00002.94200.80000.624041.00006.35803.30001.156031.00001.49800.95000.294041.00002.37200.70001.1460為什么?怎樣生成?生成一個(gè)5-by-4的矩陣B,各行都是mean(A)還有如下方法

:B=a(ones(5,1),:),其中a=mean(A)練習(xí):將各指標(biāo)與該指標(biāo)的最大值相減,然后再比上該指標(biāo)的極差.提示:max(A):表示矩陣A中各列向量的最大值;min(A):表示矩陣A中各列向量的最大值;range(A)=max(A)-min(A):表示各列極差.本次課學(xué)習(xí)的MATLAB命令一覽表命令功能[V,D]=EIG(X)求矩陣X的特征值與特征向量normr(A)將矩陣A的行向量單位化normc(A)將矩陣A的列向量單位化Z=null(A,‘r’)求AX=0的基礎(chǔ)解系(Z的列向量)rref(C)將C化成行最簡(jiǎn)化階梯形矩陣norm(A)矩陣A的普范數(shù)(2范數(shù))norm(A,1)矩陣A的列范數(shù)(1-范數(shù))norm(A,inf)矩陣A的行范數(shù)(無窮大范數(shù))norm(A,'fro')矩陣A的Frobenius范數(shù)ones(n,m)表示元素全為1的n×m矩陣zeros(n,m)產(chǎn)生n×m維零矩陣作業(yè):命令功能max(A)計(jì)算矩陣A的各列元素的最大值min(A)計(jì)算矩陣A的各列元素的最小值range(A)計(jì)算矩陣A的各列元素的極差sum(A)計(jì)算矩陣A的各列元素的和abs(A)將矩陣A中各元素取絕對(duì)值eye(n)產(chǎn)生n階單位矩陣1.求矩陣A的特征值、特征向量、各種范數(shù)、譜半徑2.A中各行向量夾角余弦、及各種距離,判別那兩個(gè)最接近3.將A的各元素減去各行的均值再比上各列的方差4.A中的9個(gè)元素為取自的一個(gè)樣本.若將A中各元素都減去EX,再比上得到的矩陣記為B,寫出3B/norm(A)的具體表達(dá)式并計(jì)算3B/norm(A)中各元素服從的分布.計(jì)算矩陣C的各行向量的相關(guān)系數(shù)矩陣R,再將R的列向量單位化,求CX=0的基礎(chǔ)解系5.第三節(jié)函數(shù)的微積分一.函數(shù)的表示方法在Matlab中有些初等函數(shù)用有關(guān)的數(shù)學(xué)符號(hào)表示:通常函數(shù)Matlab中的命令y=sinx、y=cosx、y=tanxy=sin(x)、y=cos(x)、y=tan(x)y=cotx、y=secx、y=cscxy=cot(x)、y=sec(x)、y=csc(x)y=lnx、、y=log(x)、y=exp(x),y=sqrt(x)y=arcsinx、y=arccosxy=asin(x)、y=acos(x)y=arctanx、y=arccotxy=atan(x)、y=acot(x)?;蚪^對(duì)值函數(shù)、輻角abs、angle、實(shí)部、虛部、共軛復(fù)數(shù)real、imag、conj圓周率,無窮大,不確定值pi、inf、nan1.sym定義函數(shù):進(jìn)行符號(hào)運(yùn)算的函數(shù)步驟如下:(1)建立函數(shù):y=sym('f(x)')(2)化簡(jiǎn)函數(shù):u=simplify(y),u1=simple(u)例1.已知求y+f解:y=sym('(sin(x)+cos(x))^2')f=sym('cos(2*x)');u=simplify(y+f);

結(jié)果為:2*cos(x)*(sin(x)+cos(x))u1=simple(u),結(jié)果為:sin(2*x)+cos(2*x)+12.inline定義的函數(shù):用于曲線擬合、數(shù)值計(jì)算注意:這種函數(shù)有時(shí)必須在M文件內(nèi)定義才有效!例2.建立函數(shù):a,b,c為待定的參數(shù)方法1:y='a*(1-b*exp(-c*x))'方法2:fun=inline('b(1)*(1-b(2)*exp(-b(3)*x))','b','x');步驟:(1)建立M文件;(2)fun=inline(‘f(x)’,‘參變量’,‘x’)此處,將b看成參變量,b(1),b(2),b(3)為其分量.若計(jì)算函數(shù)在x=0:0.1:1上的函數(shù)值,由于此時(shí)x為矩陣,只需將函數(shù)表達(dá)式中的某些量表示成向量有些*改成.*即可.二.計(jì)算函數(shù)的導(dǎo)數(shù)1.一元函數(shù)的導(dǎo)數(shù):計(jì)算y=f(x)導(dǎo)數(shù)的命令為:diff(y)例3.計(jì)算下列函數(shù)的導(dǎo)數(shù)y=sym((1+x)*log(1+x+sqrt(2*x+x^2))-sqrt(2*x+x^2));dy=diff(y);b=simplify(dy);y=sym(asin(x)/sqrt(1-x^2)+0.5*log((1-x)/(1+x)));dy=diff(y);b=simple(dy);解:symsx結(jié)果為:例4.計(jì)算下列函數(shù)的二階導(dǎo)數(shù)解:1)y=sym(3*x^3*asin(x)+(x^2+2)*sqrt(1-x^2));dy=diff(y);u=simple(dy)u1=diff(u)2)y=sym(x/2*sqrt(a^2+x^2)+(a^2/2)*log(x+sqrt(a^2+x^2)));dy=diff(y);u=simplify(dy),u1=diff(u);u2=simplify(u1)高階導(dǎo)數(shù)可直接計(jì)算:diff(S,‘v’,n)求S對(duì)v的n階導(dǎo)數(shù),2.偏導(dǎo)數(shù)的計(jì)算計(jì)算z=f(x,y)的偏導(dǎo)數(shù)的方法為:首先定義自變量:symsxy;然后建立函數(shù):z=sym(f(x,y))用diff求導(dǎo):dzdx=diff(z,'x'),dzdy=diff(z,'y')例5.求的一階偏導(dǎo)數(shù)

解:symsxy;z=sym(exp(x/y));dzdx=diff(z,'x'),dzdy=diff(z,'y')三.求函數(shù)的極大值與極小值在Matlab中有求函數(shù)極小值的命令:計(jì)算F在a,b之間取極小值時(shí)的x與y(即fval).命令:[x,fval]

=fminbnd(F,a,b)解:f=inline('2*x.^3-6*x.^2-18*x+7')例6.求在區(qū)間(-2,4)內(nèi)極小值

[x,fval]=fminbnd(f,-2,4)故函數(shù)在x=3時(shí),有極小值-47輸出結(jié)果為:x=3.0000fval=-47.0000注意:如果計(jì)算極大值,可將f(x)前面添負(fù)號(hào),則-f(x)的極小值點(diǎn),即f(x)的極大值點(diǎn).極大值為-fval例7.求在區(qū)間(-2,4)內(nèi)極大值解:f='-2*x.^3+6*x.^2+18*x-7';[x,fval]=fminbnd(f,-2,4)x=-1.0000fval=-17.0000故f(x)在x=-1時(shí)有極大值17注意:計(jì)算函數(shù)極值時(shí),不能用sym(f(x))表示法但是可以用:y=‘f(x)’注意符號(hào)?。。∷?計(jì)算函數(shù)的極限格式:limit(F,x,a) 計(jì)算當(dāng)x→a時(shí),F(x)的極限值,limit(F,x,a,‘right’)計(jì)算當(dāng)x→a+時(shí),F的右極限,limit(F,x,a,‘left’)計(jì)算當(dāng)x→a-時(shí),F的左極限,特別地,當(dāng)a=0時(shí)有:解:symsx%定義變量limit((1-cos(x))*x^(-2))注意:求極限與求導(dǎo)數(shù)時(shí),函數(shù)的表示有所不同:求極限先要定義自變量,然后直接將函數(shù)放入limit的括號(hào)內(nèi),不用引號(hào).ans=1/2省略了自變量的變化過程解:symsx,L1=limit(x*sin(1/x)+sin(x)/x)L2=limit(x*sin(1/x)+sin(x)/x,inf))(sintansinlim.100030xxxx-?.求例解:symsx,L=limit((sin(x)-tan(x))/sin(x^3))例11.=————解:symsx,a=limit((1+log(1+x))^(2/x))L1=1,L2=1L=-1/2a=五.不定積分、定積分與廣義積分的計(jì)算Matlab中計(jì)算[a,b]定積分格式:int(s,v,a,b)其中,s—積分表達(dá)式;v—積分變量;a—積分下限,b—積分上限如果求不定積分,無窮積分請(qǐng)大家猜想格式如何?例12.計(jì)算解:s='x*exp(-x)'g=int(s,x)ans=-x*exp(-x)-exp(-x)注意:計(jì)算結(jié)果只給出一個(gè)原函數(shù),沒有任意常數(shù)C例13.計(jì)算解:symsx;g=int((1+sin(x))*exp(x)/(1+cos(x)),x)例14.計(jì)算解:g=int(sin(x)*exp(-x),x,0,inf)

結(jié)果為:1/2例15.計(jì)算解:symsxy圍成的第一卦限部分體積vdy=int(4-(x)^2,y,0,4-2*x);v=int(vdy,x,0,2)

六.函數(shù)的級(jí)數(shù)展開式格式:taylor(F,a)功能:F在x=a處的泰勒級(jí)數(shù)前5項(xiàng)格式:taylor(F,v)功能:F對(duì)變量v的泰勒展式前5項(xiàng)格式:taylor(F,v,n)功能:求F的n階泰勒展式,且(n缺省時(shí)默認(rèn)為5)例16.求的麥克勞林級(jí)數(shù)解:symsx,y=x*exp(-x),taylor(y,9)ans=x-x^2+1/2*x^3+1/6*x^4+1/24*x^5+1/120*x^6+1/720*x^7+1/5040*x^8simplify(y),simple(y)化簡(jiǎn)函數(shù)y=f(x)diff(y),diff(z,’x’)計(jì)算y=f(x)導(dǎo)數(shù),偏導(dǎo)數(shù)diff(y,n)計(jì)算y=f(x)n階導(dǎo)數(shù)[x,fval]

=fminbnd(F,a,b)曲線F在a,b內(nèi)極小值點(diǎn)(x,y)limit(F,x,a) 計(jì)算x→a時(shí),F(x)的極限值int(s,'v','a','b')計(jì)算[a,b]定積分格式taylor(F,v,n)求F的n階泰勒展式命令功能y=sym(f(x))或y='f(x)'建立函數(shù)f(x)進(jìn)行符號(hào)運(yùn)算Fun=inline(‘f(x)’)建立函數(shù)f(x)用于曲線擬合第四講Matlab編程一.If條件語(yǔ)句格式:(1)if表達(dá)式(logicalexpression)執(zhí)行語(yǔ)句(statement)

end注意,在if和logicalexpression(邏輯表達(dá)式)之間要有一個(gè)空格。statement(程序語(yǔ)句)可以是一個(gè)命令,也可以是由逗號(hào),分號(hào)隔開的若干命令或者是‘

returns’。只有當(dāng)邏輯表達(dá)式為true(真)時(shí),才能執(zhí)行這些命令。邏輯表達(dá)式可以是一個(gè)標(biāo)量、一個(gè)向量或者一個(gè)矩陣。如果邏輯表達(dá)式的所有元素為非零值,它才為真.if語(yǔ)句也可以寫成一行。當(dāng)然,通常前一種形式使得MATLAB程序更加結(jié)構(gòu)化和易讀。例1.矩陣計(jì)算第一列的和,若等于6,則從矩陣A中刪除該列解:A=[1,3,0;2,6,2;3,6,4];ifsum(A(:,1))==6,A=A(:,2:3)endA=306264例2.對(duì)例1中的矩陣計(jì)算第二行的長(zhǎng)度,若小于20,則從矩陣A中刪除該行.解:ifnorm(A(2,:))<=20,A=[A(1,:);A(3,:)]endA=130364if語(yǔ)句可以與elseif或else組合起來用于更復(fù)雜的上下文語(yǔ)句中。可能有如下的結(jié)構(gòu)存在:(2)if表達(dá)式執(zhí)行語(yǔ)句1else執(zhí)行語(yǔ)句2end

例3.對(duì)例1中的矩陣計(jì)算第二行的長(zhǎng)度,若大于20,則從矩陣A中刪除該行,否則該行全為1解:A=[1,3,0;2,6,2;3,6,4];

ifnorm(A(2,:))>=20,A=[A(1,:);A(3,:)]

elseA=[A(1,:);ones(1,3);A(3,:)]

end(3)if表達(dá)式1

執(zhí)行語(yǔ)句1elseif表達(dá)式2

執(zhí)行語(yǔ)句2else執(zhí)行語(yǔ)句3end

二.for循環(huán)語(yǔ)句格式:fori=表達(dá)式可執(zhí)行語(yǔ)句1

…可執(zhí)行語(yǔ)句nend例4.對(duì)例1中的矩陣計(jì)算各行的長(zhǎng)度.解:A=[1,3,0;2,6,2;3,6,4];

fori=1:3,d=norm(A(i,:))end結(jié)果為:d=3.1623d=6.6332d=7.8102能否輸出一個(gè)矩陣?若為矩陣只需將d=norm(A(i,:))改成d(i)=norm(A(i,:))例5.計(jì)算例1矩陣各列的長(zhǎng)度,所得結(jié)果左乘矩陣A.解:fori=1:3,d(i)=norm(A(:,i));endB=d*A,B=35.158192.057835.8885d能否右乘矩陣A,為什么?例6.計(jì)算例1矩陣各列的長(zhǎng)度,然后構(gòu)造一個(gè)矩陣D,使得D各行元素都是A對(duì)應(yīng)列的長(zhǎng)度,再右乘矩陣A.解:fori=1:3,d(i)=norm(A(:,i));endD=d’*ones(1,3),C=A*D,D=3.74173.74173.74179.00009.00009.00004.47214.47214.4721格式while表達(dá)式可執(zhí)行語(yǔ)句1……可執(zhí)行語(yǔ)句nend三.while循環(huán)注意:1.表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算組成的表達(dá)式,表達(dá)式的值非0,繼續(xù)循環(huán),表達(dá)式的值為0,中止循環(huán);2.while語(yǔ)句以end作為結(jié)束標(biāo)志.例7用while-end循環(huán)求1—100之間的和.

sum=0;i=1;whilei<=100sum=sum+i;i=i+1;Endsum我們學(xué)過dist(A,B)計(jì)算A中每個(gè)行向量與B中每個(gè)列向量之間歐氏距離,A的行向量維數(shù)必須等于B的列向量維數(shù).下面我們通過編程計(jì)算并與dist(A,B)進(jìn)行比較.例8:A=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.00;1.28,2.00;1.30,1.96];B=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];計(jì)算A的每個(gè)行向量與B的每個(gè)行向量之間距離.解法一:dist(A,B’),結(jié)果是6by9的矩陣第i行元素是A中第i行分別與B中各行的距離.(i=1,2,…,6)解法二.B1=B';fori=1:6,d1(i)=dist(A(i,:),B1(:,1));d5(i)=dist(A(i,:),B1(:,5));d2(i)=dist(A(i,:),B1(:,2));d6(i)=dist(A(i,:),B1(:,6));d3(i)=dist(A(i,:),B1(:,3));d7(i)=dist(A(i,:),B1(:,7));d4(i)=dist(A(i,:),B1(:,4));d8(i)=dist(A(i,:),B1(:,8));d9(i)=dist(A(i,:),B1(:,9));endd=[d1;d2;d3;d4;d5;d6;d7;d8;d9]從上面的例子可知:直接利用dist(A,B1)進(jìn)行計(jì)算簡(jiǎn)單,但是當(dāng)難以簡(jiǎn)單計(jì)算時(shí),應(yīng)該知道如何利用編程實(shí)現(xiàn)復(fù)雜計(jì)算.例9.將例8中A的各行向量與B的每個(gè)行向量單位化解法一:直接調(diào)用命令:da=normr(A);db=normr(B)解法2:A=[1.14,1.78;1.18,1.96;1.20,1.86;1.26,2.00;1.28,2.00;1.30,1.96];B=[1.24,1.72;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];fori=1:6,na(i,:)=norm(A(i,:));end—%求A中各行范數(shù)fork=1:9,nb(k,:)=norm(B(k,:));end—%求B中各行范數(shù)a=A./ones(1,2)*na;—將矩陣A各行向量單位化b=B./ones(1,2)*nb;—將矩陣B各行向量單位化顯然,解法一比解法二簡(jiǎn)單,然而解法一的命令就是通過解法二所建立的.解:兩個(gè)向量的夾角余弦的計(jì)算公式為因此,我們計(jì)算兩個(gè)向量的夾角余弦,只需先將向量標(biāo)準(zhǔn)化,然后計(jì)算單位向量的數(shù)量積即可.例10.建立兩個(gè)向量夾角余弦的計(jì)算方法就是向量的單位化向量基本的關(guān)系運(yùn)算符邏輯運(yùn)算>(大于)與(&)<(小于)或(|)>=(大于等于)非(~)<=(小于等于)異或(xor)==(等于)~=(不等于)四.基本關(guān)系運(yùn)算符與邏輯運(yùn)算在Matlab中有六種關(guān)系運(yùn)算符及四種邏輯運(yùn)算(下表)例11.考察矩陣A是否為正定矩陣(1)實(shí)對(duì)稱矩陣A為正定的充要條件是:A的特征值>0.A=[2,1,-2;1,4,-1;-2,-1,5];[u,v]=eig(A)v=0.92640003.39310006.6805(2)n階實(shí)對(duì)稱矩陣A為正定矩陣的充要條件是:A=[2,1,-2;1,4,-1;-2,-1,5];rref(A)ans=100010001解:我們用三種方法解題:(3)n階實(shí)對(duì)稱矩陣A為正定矩陣的充要條件是:A的順序主子式大于零A=[2,1,-2;1,4,-1;-2,-1,5];[m,n]=size(A);fori=1:3,B=A(1:i,1:i);h(i)=det(B);endhh=2721由于矩陣A的三個(gè)順序主子式的值分別為:2721故矩陣A為正定矩陣.今后,在判別某矩陣是否為正定矩陣,可根據(jù)情況選擇方法.第五講函數(shù)作圖一.平面曲線的作圖1.基本命令格式1:plot(X,Y).說明:以X,Y的對(duì)應(yīng)元素為坐標(biāo)繪二維圖,例1.作y=sinx在上的圖形解:x=-2*pi:0.1:2*pi;y=sin(x);plot(x,y)注意,X,Y的維數(shù)要匹配.2.格式2:若y是時(shí)間序列則作y的圖形簡(jiǎn)化為:plot(y)a1=[339,482,588,693,774,877,988,1114,1199,1347,1440,1553,1636;1741,1803,1897,1960,2049,2136,2177,2227,2265,2304,2347,2370,2388;2405,2420,2434,2437,2444,2444,2456,2465,2490,2499,2504,2512,2514;2517,2520,2521,2522,2522,2522,2522,2522,2522,2523,2522,2522,2522;2523,2523,2522,2522,2522,2521,2521,2521,2521,2521,2521,2521,2521];例2.北京市從4月20日到6月23日累計(jì)非典患病人數(shù)如下,試作出散點(diǎn)圖.解:首先將矩陣a1變成序列:b=a1';a=b(:);

然后對(duì)a作圖:plot(a,'*')注意:這是矩陣格式3:plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2,…)將按順序分別畫出由3個(gè)參數(shù)定義Xi,Yi,LineSpeci的線條,

bblue.point-solidggreenocircle:dottedrredxx-mark-.dashdotccyan+plus--dashedmmagenta*staryyellowssquarekblackddiamondvtriangle(down)^triangle(up)<triangle(left)>triangle(right)ppentagramhhexagram上圖中,我們用了星號(hào)*,通常不同的曲線出現(xiàn)在同一坐標(biāo)系時(shí),就需要用不同的顏色或不同類型的線條.其中,參數(shù)LineSpeci指明了線條的類型,標(biāo)記符號(hào),和畫線用的顏色.(如下所示)4.在屏幕上生成多個(gè)圖形窗有時(shí),我們需要同時(shí)在屏幕上觀察多個(gè)函數(shù)的圖像.這就要求我們將屏幕分成若干個(gè)視窗,該命令為:Subplot(N1,N2,N)或Subplot(N1N2N)其中N1—把屏幕分成N1行;N2—把屏幕分成N2列;

N—在N1N2幅圖形中選定第N幅.例3.將屏幕分成四個(gè)視窗,展現(xiàn)正弦,余弦,指數(shù),對(duì)數(shù).解:x=0.1:0.01:pi;y1=sin(x);y2=cos(x);y3=log(x);y4=exp(x);Subplot(221),plot(x,y1),subplot(222),plot(x,y2),Subplot(223),plot(x,y3),subplot(224),plot(x,y4),5.在同一個(gè)窗口放置多幅圖形如果需要在同一個(gè)窗口放置多幅圖形,只需命令:holdon例4.將正弦和余弦的圖形放在同一個(gè)窗口解:x=-2*pi:0.01:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'-b'),holdon,plot(x,y2,'or')二.空間曲面圖形1.z=f(x,y)三維圖形在xoy平面產(chǎn)生一系列x,y值,并使之交叉成平面網(wǎng)格;x,y值可由一維向量或數(shù)組產(chǎn)生,產(chǎn)生平面網(wǎng)格的指令為:[x,y]=meshgrid(x,y)(2)輸入二元函數(shù):z=f(x,y)例5.作圖形解[X,Y]=meshgrid(-2:.2:2,-2:.2:2);

注意:此時(shí)函數(shù)輸入自變量加點(diǎn)!圖形例6.作z=sin(xy)圖形解[x,y]=meshgrid(-2:.1:2,-2:.1:2);Z=sin(x.*y);surf(Z)z=sin(xy)圖形(3)輸入作圖命令:mesh(z)或surf(z)Z=X.*exp(-X.^2-Y.^2);mesh(Z)注意:在Matlab中,可以對(duì)所作的圖形進(jìn)行旋轉(zhuǎn),從不同的角度觀看.下面的四圖就是z=sin(xy)曲面圖.3.等高線圖在勘探、測(cè)量等工作中,經(jīng)常要作出等高線圖.格式一:[c,h]=contour(x,y,z,n).說明:(x,y)是平面z=0上點(diǎn)的坐標(biāo)矩陣,二維函數(shù)z為相應(yīng)點(diǎn)的高度值矩陣,等高曲線是一個(gè)平面的曲線,n是等高線條數(shù).例8.作的等高線[x,y]=meshgrid(-2:0.2:2);z=x.*y.*exp(-x.^2-y.^2);[c,h]=contour(x,y,z,8);格式二:[C,h]=contour(x,y,z);

clabel(C,h)colormapcool

說明:在從命令contour生成的二維等高線結(jié)構(gòu)C的位置上添加標(biāo)簽h.即注明高度例9.在例8的基礎(chǔ)上添加高度標(biāo)簽[x,y]=meshgrid(-2:0.2:2);z=x.*y.*exp(-x.^2-y.^2);[c,h]=contour(x,y,z,8);clabel(c,h)colormapcool例9.根據(jù)下面的數(shù)據(jù),畫出該山區(qū)的立體圖與等高線圖.需要在一山區(qū)修建公路,測(cè)得一地點(diǎn)的高程,數(shù)據(jù)見表1(平面區(qū)域,,表中數(shù)據(jù)為坐標(biāo)點(diǎn)的高程,單位:m)。數(shù)據(jù)顯示:在處有一東西走向的山峰;從坐標(biāo)(2000,2400)到(4800,0)有一西北——東南走向的山谷,在附近有一山口湖,其最高水位略高于1350m,雨季在山谷中形成一溪流。經(jīng)調(diào)查知,雨量最大時(shí)溪流水面寬度W與(溪流最深處的)坐標(biāo)的關(guān)系可近似表示為:4800135013701390140014109609408808006905704302902101504400137013901410143014401140111010509508206905403803002104000138014101430145014701320128012001080940780620460370350360014201430145014801500155015101430130012009808507505505003200143014501460150015501600155016001600160015501500150015501550280095011901370150012001100155016001550138010709001050115012002400910109012701500120010013501450120011501010880100010501100200088010601230139015001500140090011001060950870900930950160083098011801320145014201400130070090085084038078075012007408801080113012501280123010409005007007807506505508006507608809701020105010208308007003005005504803504005106207308008508708507807206505002003003503200370470550600670690670620580450400300100150250YX0400800120016002000240028003200360040004400480052005600北注意X,Y的取值與表1的位置不同z=[1350 1370 1390

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論