數(shù)學建模中的數(shù)據(jù)處理方法.ppt
《數(shù)學建模中的數(shù)據(jù)處理方法.ppt》由會員分享,可在線閱讀,更多相關《數(shù)學建模中的數(shù)據(jù)處理方法.ppt(80頁珍藏版)》請在裝配圖網(wǎng)上搜索。
數(shù)學建模中的數(shù)據(jù)處理方法,范筑軍,主要內(nèi)容,曲線插值與擬合 數(shù)值微分與積分 微分方程數(shù)值解 優(yōu)化問題 回歸分析 判別分析,曲線插值與擬合,一維插值 二維插值 曲線擬合,一維插值,對表格給出的函數(shù),求出沒有給出的函數(shù)值。 在實際工作中,經(jīng)常會遇到插值問題。 下表是待加工零件下輪廓線的一組數(shù)據(jù),現(xiàn)需要得到x坐標每改變0.1時所對應的y的坐標.,一維插值,下面是關于插值的兩條命令(專門用來解決這類問題): y=interp1(x0,y0,x,’method’) 分段線性插值 y=spline(x0,y0,x) 三次樣條插值 x0,y0是已知的節(jié)點坐標,是同維向量。 y對應于x處的插值。y與x是同維向量。 method可選’nearest’(最近鄰插值),’linear’(線性插值),’spline’(三次樣條插值),’cubic’(三次多項式插值),一維插值,解決上述問題,我們可分兩步: 用原始數(shù)據(jù)繪圖作為選用插值方法的參考. 確定插值方法進行插值計算,一維插值(px_lc11.m),對于上述問題,可鍵入以下的命令: x0=[0,3,5,7,9,11,12,13,14,15]; y0=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6] plot(x0,y0) %完成第一步工作 x=0:0.1:15; y=interp1(x0,y0,x); %用分段線性插值完成第二步工作 plot(x,y) y=spline(x0,y0,x); plot(x,y) %用三次樣條插值完成第二步工作,練習,對y=1/(1+x2),-5≤x≤5,用n(=11)個節(jié)點(等分)作上述兩種插值,用m(=21)個插值點(等分)作圖,比較結果。(see:px_ex_lc1.m) 在某處測得海洋不同深度處水溫如下表:求深度為500、1000、1500米處的水溫。 (see:px_ex_lc2.m),二維插值,MATLAB中二維插值的命令是: z=interp2(x0,y0,z0,x,y,meth),二維插值,在一個長為5個單位,寬為3個單位的金屬薄片上測得15個點的溫度值,試求出此薄片的溫度分布,并繪出等溫線圖。(數(shù)據(jù)如下表),二維插值(px_lc21.m),temps=[82,81,80,82,84;79,63,61,65,87;84,84,82,85,86]; mesh(temps) %根據(jù)原始數(shù)據(jù)繪出溫度分布圖,可看到此圖的粗造度。,二維插值,%下面開始進行二維函數(shù)的三階插值。 width=1:5; depth=1:3; di=1:0.2:3; wi=1:0.2:5; [WI,DI]=meshgrid(wi,di);%增加了節(jié)點數(shù)目 ZI=interp2(width,depth,temps,WI,DI,cubic); % 對數(shù)據(jù)(width,depth,temps)進 % 行三階插值擬合。 surfc(WI,DI,ZI) contour(WI,DI,ZI),二維插值,曲線擬合,假設一函數(shù)g(x)是以表格形式給出的,現(xiàn)要求一函數(shù)f(x),使f(x)在某一準則下與表格函數(shù)(數(shù)據(jù))最為接近。 由于與插值的提法不同,所以在數(shù)學上理論根據(jù)不同,解決問題的方法也不同。 此處,我們總假設f(x)是多項式。,曲線擬合,問題:彈簧在力F的作用下伸長x厘米。F和x在一定的范圍內(nèi)服從虎克定律。試根據(jù)下列數(shù)據(jù)確定彈性系數(shù)k,并給出不服從虎克定律時的近似公式。,曲線擬合,解題思路:可以用一階多項式擬合求出k,以及近似公式。 在MATLAB中,用以下命令擬合多項式。 polyfit(x0,y0,n) 一般,也需先觀察原始數(shù)據(jù)的圖像,然后再確定擬和成什么曲線。,曲線擬合(px_lc31.m),對于上述問題,可鍵入以下的命令: x=[1,2,4,7,9,12,13,15,17]; F=[1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1]; plot(x,F,.) 從圖像上我們發(fā)現(xiàn):前5個數(shù)據(jù)應與直線擬合,后5個數(shù)據(jù)應與二次曲線擬合。于是鍵入 : a=polyfit(x(1:5),F(1:5),1); a=polyfit(x(5:9),F(5:9),2),曲線擬合,注意:有時,面對一個實際問題,究竟是用插值還是用擬合不好確定,還需大家在實際中仔細區(qū)分。同時,大家(包括學過計算方法的同學)注意去掌握相應的理論知識。,數(shù)值微分與積分,數(shù)值積分 數(shù)值微分,數(shù)值積分,先看一個例子: 現(xiàn)要根據(jù)瑞士地圖計算其國土面積。于是對地圖作如下的測量:以西東方向為橫軸,以南北方向為縱軸。(選適當?shù)狞c為原點)將國土最西到最東邊界在x軸上的區(qū)間劃取足夠多的分點xi,在每個分點處可測出南北邊界點的對應坐標y1 ,y2。用這樣的方法得到下表 根據(jù)地圖比例知18mm相當于40km,試由上表計算瑞士國土的近似面積。(精確值為41288km2)。,數(shù)值積分,數(shù)值積分,解題思路:數(shù)據(jù)實際上表示了兩條曲線,實際上我們要求由兩曲線所圍成的圖形的面積。 解此問題的方法是數(shù)值積分的方法。具體解時我們遇到兩個問題: 1。數(shù)據(jù)如何輸入; 2。沒有現(xiàn)成的命令可用。,數(shù)值積分(px_wj11.m),對于第一個問題,我們可把數(shù)據(jù)拷貝成M文件(或純文本文件)。 然后,利用數(shù)據(jù)繪制平面圖形。鍵入 load mianji.txt A=mianji; plot(A(:,1),A(:,2),r,A(:,1),A(:,3),g),數(shù)值積分,數(shù)值積分,接下來可以計算面積。鍵入: a1=trapz(A(:,1)*40/18,A(:,2)*40/18); a2=trapz(A(:,1)*40/18,A(:,3)*40/18); d=a2-a1 d = 4.2414e+004,數(shù)值積分,至此,問題可以說得到了解決。 之所以說還有問題,是我們覺得誤差較大。但計算方法的理論給了我們更精確計算方法。只是MATLAB沒有相應的命令。 想得到更理想的結果,我們可以自己設計解決問題的方法。(可以編寫辛普森數(shù)值計算公式的程序,或用擬合的方法求出被積函數(shù),再利用MATLAB的命令quad,quad8),數(shù)值微分,已知20世紀美國人口統(tǒng)計數(shù)據(jù)如下,根據(jù)數(shù)據(jù)計算人口增長率。(其實還可以對于后十年人口進行預測),數(shù)值微分,解題思路:設人口是時間的函數(shù)x(t).于是人口的增長率就是x(t)對t的導數(shù).如果計算出人口的相關變化率 。那么人口增長滿足 ,它在初始條件x(0)=x0下的解為 .(用以檢查計算結果的正確性),,數(shù)值微分,解:此問題的特點是以離散變量給出函數(shù)x(t),所以就要用差分來表示函數(shù)x(t)的導數(shù).,常用后一個公式。(因為,它實際上是用二次插值函數(shù)來代替曲線x(t))即常用三點公式來代替函數(shù)在各分點的導數(shù)值:,數(shù)值微分,MATLAB用命令diff按兩點公式計算差分;此題自編程序用三點公式計算相關變化率.編程如下(diff3.m): for i=1:length(x) if i==1 r(1)=(-3*x(1)+4*x(1+1)-x(1+2))/(20*x(1)); elseif i~=length(x) r(i)=(x(i+1)-x(i-1))/(20*x(i)); else r(length(x))=(x(length(x)-2)-4*x(length(x)-1)+3*x(length(x)))/(20*x(length(x))); end end r=r;,數(shù)值微分,保存為diff3.m文件聽候調(diào)用.再在命令窗內(nèi)鍵入 X=[1900,1910,1920,1930,1940,1950,1960,1970,1980,1990]; x=[76.0, 92.0, 106.5, 123.2, 131.7, 150.7, 179.3, 204.0, 226.5, 251.4]; diff3; 由于r以離散數(shù)據(jù)給出,所以要用數(shù)值積分計算.鍵入 x(1,1)*exp(trapz(X(1,1:9),r(1:9))) 數(shù)值積分命令:trapz(x),trapz(x,y),quad(‘fun’,a,b)等.,微分方程數(shù)值解(單擺問題),單擺問題的數(shù)學模型是 在初始角度不大時,問題可以得到很好地解決,但如果初始角較大,此方程無法求出解析解.現(xiàn)問題是當初始角為100和300時,求出其解,畫出解的圖形進行比較。,微分方程數(shù)值解(單擺問題),解:若θ0較小,則原方程可用 來近似.其解析解為θ(t)= θ0cosωt, . 若不用線性方程來近似,那么有兩個模型:,微分方程數(shù)值解(單擺問題),取g=9.8,l=25, 100=0.1745, 300=0.5236.用MATLAB求這兩個模型的數(shù)值解,先要作如下的處理:令x1=θ,x2=θ’,則模型變?yōu)?微分方程數(shù)值解(單擺問題),再編函數(shù)文件(danbai.m) function xdot=danbai(t,x) xdot=zeros(2,1); xdot(1)=x(2);xdot(2)=-9.8/25*sin(x(1));,微分方程數(shù)值解(單擺問題),在命令窗口鍵入() [t,x]=ode45(‘danbai’,[0:0.1:20],[0.1745,0]); [t,y]=ode45(‘danbai’,[0:0.1:20],[0.5236,0]); plot(t,x(:,1),’r’,t,y(:,1),’k’);,優(yōu)化問題,線性規(guī)劃有約束極小問題 非線性規(guī)劃有約束極小問題 非線性無約束極小問題 非線性最小二乘問題 二次規(guī)劃,線性規(guī)劃有約束極小問題,模型 用命令 [x, fval]= linprog(f,A,b,A1,b1,lb,ub),線性規(guī)劃有約束極小問題,Find x that minimizes f(x)=-5x1-4x2-6x3 subject to x1-x2+x3≦20 3x1+2x2+4x3≦42 3x1+2x2≦30 0≦x1, 0≦x2,0≦x3,線性規(guī)劃有約束極小問題,線性規(guī)劃有約束極小問題,解問題 把問題極小化并將約束標準化,線性規(guī)劃有約束極小問題,鍵入c=[-2,-3,5];a=[-2,5,-1]; b=-10;a1=[1,1,1];b1=7;LB=[0,0,0]; [x,y]=linprog(c,a,b,a1,b1,LB) 得當X=(6.4286,0.5714,0.0000)時, z=-14.5714最大.,線性規(guī)劃有約束極小問題,解問題,線性規(guī)劃有約束極小問題,解:鍵入 c=[-2,-1,1];a=[1,4,-1;2,-2,1]; b=[4;12];a1=[1,1,2];b1=6; lb=[0;0;-inf];ub=[inf;inf;5]; [x,z]=linprog(c,a,b,a1,b1,lb,ub) 得當X=(4.6667,0.0000,0.6667)時, z=-8.6667最小.,非線性規(guī)劃有約束極小問題,模型: MATLAB求解此問題的命令是: [x,fval,exitflag,output,lambda,grad,hessian]=fmincon(‘fun’,x0,A,b,A1,b1,LB,UB,’nonlcon’,options,p1,p2,…) fun是目標函數(shù)的m_文件名.nonlcon是約束函數(shù)C(x)和C1(x)的m_文件名.文件輸出為[C,C1].,非線性規(guī)劃有約束極小問題,求解最優(yōu)化問題,非線性規(guī)劃有約束極小問題,第1步: 建立目標函數(shù)和非線性約束的m_文件. function y=e1511(x)% 目標函數(shù)的m_文件 y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); function [c1,c2]=e1511b(x)% 非線性約束的m_文件 c1=[1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10]; c2=0;,非線性規(guī)劃有約束極小問題,第2步: 運行程序.鍵入 x0=[-1,1];a1=[1,1];b1=0; [x,f,exitflab,output]=fmincon(‘e1511’,x0,[],[],a1,b1,[],[],’e1511b’) 得結果. 輸出結果的意義:經(jīng)過4次迭代(iterations:4)收斂到了(exitfag=1)最優(yōu)解 x(1)=-1.2247,x(2)=1.2247, 目標函數(shù)最優(yōu)值為1.8951.,非線性無約束極小問題,用命令x=fmin(f,x0)。 或用命令x=fminu(f ,x0),或用命令x=fmins(f ,x0)。,非線性最小二乘問題,用命令x=leastsq(f ,x0),或用命令x=curvefit(f ,x0)。,二次規(guī)劃,用命令x=qp(H,c,A,b)。 關于這些命令的詳細使用規(guī)則和例子,用借助help進行查閱。,回歸分析,前面我們曾學過擬合。但從統(tǒng)計的觀點看,對擬合問題還需作回歸分析。例如:有描述問題甲和問題乙的兩組數(shù)據(jù)(x,y)和(x,z)。設x=[1,2,3,4];y=[1.0,1.3,1.5,2.02.3];z=[0.6,1.95,0.9,2.85,1.8]。如果在平面上畫出散點圖,那么問題甲的四個點基本在一條直線上而問題乙的四個點卻很散亂。如果都用命令polyfit(x,y,1),polyfit(x,z,1)來擬合,將得到同一條直線。,回歸分析,自然對問題甲的信任程度會高于對問題乙的信任程度。所以有必要對所得結果作科學的評價分析?;貧w分析就是解決這種問題的科學方法。 下面結合三個具體的例子介紹MATLAB實現(xiàn)回歸分析的命令。,回歸分析,合金強度y與其中含碳量x有密切關系,如下表 根據(jù)此表建立y(x)。并對結果作可信度進行檢驗、判斷x對y影響是否顯著、檢查數(shù)據(jù)中有無異常點、由x的取值對y作出預測。,回歸分析,解: 在x-y平面上畫散點圖,直觀地知道y與x大致為線性關系。 用命令polyfit(x,y,1)可得y=140.6194x+27.0269。 作回歸分析用命令 [b,bint,r,rint,ststs]=regress(y,x,alpha) 可用help查閱此命令的具體用法 殘差及置信區(qū)間可以用rcoplot(r,rint)畫圖,回歸分析,設回歸模型為 y=β0+β1x, 在MATLAB命令窗口中鍵入下列命令進行回歸分析(px_reg11.m) x=0.1:0.01:0.18;x=[x,0.2,0.21,0.23]; y=[42,41.5,45,45.5,45,47.5,49,55,50,55,55.5,60.5]; X=[ones(12,1),x]; [b,bint,r,rint,stats]=regress(y,X,0.05); b,bint,stats,rcoplot(r,rint),回歸分析,得結果和圖 b = 27.0269 140.6194 bint = 22.3226 31.7313 111.7842 169.4546 stats = 0.9219 118.0670 0.0000 3.1095,回歸分析,結果含義為 β0=27.0269 β1=140.6194 β0的置信區(qū)間是 [22.3226,31.7313] β1的置信區(qū)間是 [111.7842,169.4546],回歸分析,R2=0.9219 F=118.0670, p10-4. R是衡量y與x的相關程度的指標,稱為相關系數(shù)。R越大,x與y關系越密切。通常R大于0.9才認為相關關系成立。 F是一統(tǒng)計指標 p是與F對應的概率,當 p0.05時,回歸模型成立。 此例中 p=0 10-40.05,所以,所得回歸模型成立。,回歸分析,觀察所得殘差分布圖,看到第8個數(shù)據(jù)的殘差置信區(qū)間不含零點,此點視為異常點,剔除后重新計算。,回歸分析,此時鍵入:(px_reg12.m) X(8,:)=[]; y(8)=[]; [b,bint,r,rint,stats]=regress(y,X); b,bint,stats,rcoplot(r,rint),回歸分析,b = 27.0992 137.8085 bint = 23.8563 30.3421 117.8534 157.7636 stats = 0.9644 244.0571 0.0000 1.4332 可以看到:置信區(qū)間縮??;R2、F變大,所以應采用修改后的結果。,回歸分析,將17至19歲的運動員每兩歲一組分為7組,每組兩人測量其旋轉定向能力,以考察年齡(x)對這種運動能力(y)的影響?,F(xiàn)得到一組數(shù)據(jù)如下表 試建立關系y(x),并作必要的統(tǒng)計分析。,回歸分析,在x-y平面上畫散點圖,直觀地知道y與x大致為二次函數(shù)關系。 設模型為y=a1x2+a2x+a3 此問題可以利用命令polyfit(x,y,2)來解,也可以像上題一樣求解。下面介紹用命令polytool來解。,回歸分析,首先在命令窗口鍵入(px_reg21.m) x=17:2:29;x=[x,x]; y=[20.48,25.13,26.15 30,26.1,20.3,19.35,24.35,28.11,26.3,31.4,26.92,25.7,21.3]; polytool(x,y,2) 得到一個交互式窗口,回歸分析,回歸分析,窗口中綠線為擬合曲線、紅線為y的置信區(qū)間、可通過移動鼠標的十字線或通過在窗口下方輸入來設定x值,窗口左邊則輸出與x對應的y值及y的置信區(qū)間。通過左下方的Export下拉菜單可輸出回歸系數(shù)等。更詳細的解釋可通過help查閱。,回歸分析,某廠生產(chǎn)的某產(chǎn)品的銷售量與競爭對手的價格x1和本廠的價格x2有關。下表是該產(chǎn)品在10個城市的銷售記錄。 試建立關系y(x1,x2),對結果進行檢驗。若某城市本廠產(chǎn)品售價160(元),對手售價170(元),預測此產(chǎn)品在該城市的銷售量。,回歸分析,這是一個多元回歸問題。若設回歸模型是線性的,即設y=β0+β1x1+β2x2 那么依然用regress(y,x,alpha)求回歸系數(shù)。,回歸分析,鍵入(px_reg31.m) x1=[120,140,190,130,155,175,125,145,180,150]; x2=[100,110,90,150,210,150,250,270,300,250]; y=[102,100,120,77,46,93,26,69,65,85]; x=[ones(10,1),x1,x2]; [b,bint,r,rint,stats]=regress(y,x); b,bint,stats,,回歸分析,b = 66.5176 0.4139 -0.2698 bint = -32.5060 165.5411 -0.2018 1.0296 -0.4611 -0.0785 stats = 0.6527 6.5786 0.0247 351.0445,回歸分析,p=0.0247,若顯著水平取0,01,則模型不能用;R2=0.6527較小;β0,β1的置信區(qū)間包含零點。因此結果不理想。于是設模型為二次函數(shù)。此題設模型為純二次函數(shù): y=β0+β1x1+β2x2+β11x12+β22x22,回歸分析,MATLAB提供的多元二項式回歸命令為rstool(x,y,model,alpha).其中alpha為顯著水平、model在下列模型中選一個: Linear(線性) Purequadratic(純二次) Interaction(交叉) Quadratic(完全二次),回歸分析,對此例,在命令窗中鍵入 x(:,1)=[]; rstool(x,y,purequadratic) 得到一個對話窗:,回歸分析,回歸分析,其意義與前面的對話窗意義類似。若要回答“本廠售價160,對手售價170,預測該市銷售量”的問題,只需在下方窗口中分別肩入160和170,就可在左方窗口中讀到答案及其置信區(qū)間。,回歸分析,下拉菜單Export向工作窗輸出數(shù)據(jù)具體操作為: 彈出菜單,選all,點擊確定。此時可到工作窗中讀取數(shù)據(jù)??勺x數(shù)據(jù)包括:beta(回歸系數(shù)) rmse(剩余標準差) residuals (殘差)本題只要鍵入beta,rmse,residuals,回歸分析,判別分析,判別分析是判別樣品所屬類型的一種統(tǒng)計方法,其應用之廣泛可與回歸分析媲美。 判別分析與聚類分析不同。 判別分析的分類 距離判別法 Fisher 判別法 判別分析,MATLAB中還包括神經(jīng)網(wǎng)絡工具箱,小波分析工具箱,在網(wǎng)上還可以下載遺傳算法工具箱,有興趣的同學可以借這次機會,結合學習MATLAB,好好學習一下相關理論知識。 最后,祝大家學習,競賽都取得成功。謝謝大家。,- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 數(shù)學 建模 中的 數(shù)據(jù)處理 方法
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-2850516.html