資源描述:
《matlab 數(shù)值分析 應用》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、數(shù)學建模------MATLAB的使用簡介一、曲線插值與擬合二、數(shù)值微分與積分三、微分方程數(shù)值解四、優(yōu)化問題五、回歸分析1.一維插值對表格給出的函數(shù),求出沒有給出的函數(shù)值。在實際工作中,經(jīng)常會遇到插值問題。例1:表1是待加工零件下輪廓線的一組數(shù)據(jù),現(xiàn)需要得到x坐標每改變0.1時所對應的y的坐標.x035791112131415y01.21.72.02.12.01.81.21.01.6下面是關于插值的兩條命令(專門用來解決這類問題):y=interp1(x0,y0,x)分段線性插值y=spline(x0,y0,x
2、)三次樣條插值其中x0,y0是已知的節(jié)點坐標,是同維向量。y對應于x處的插值。y與x是同維向量。解決上述問題,我們可分兩步:23一用原始數(shù)據(jù)繪圖作為選用插值方法的參考.二確定插值方法進行插值計算對于上述問題,可鍵入以下的命令: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
3、,y)y=spline(x0,y0,x');plot(x,y)%用三次樣條插值完成第二步工作練習:對y=1/(1+x2),-5≤x≤5,用n(=11)個節(jié)點(等分)作上述兩種插值,用m(=21)個插值點(等分)作圖,比較結果。解:鍵入并運行如下命令n=11;m=21;x=-5:10/(m-1):5;y=1./(1+x.^2);xo=-5:10/(n-1):5;yo=1./(1+xo.^2);y1=interp1(xo,yo,x);y2=spline(xo,yo,x);plot(x,y,'r',x,y1,'b',
4、x,y2,'k')練習:在某處測得海洋不同深度處水溫如下:深度44671495014221634水溫7.044.283.402.542.13求深度為500、1000、1500米處的水溫。解:輸入程序:D=[446,714,950,1422,1634];T=[7.04,4.28,3.40,2.54,2.13];Di=[500,1000,1500];23Ti=interp1(D,T,Di)MATLAB的命令interp1(X,Y,Xi,’method’)用于一元插值.其中Method可選’nearest’(最近鄰插
5、值),’linear’(線性插值),’spline’(三次樣條插值),’cubic’(三次多項式插值)二維插值MATLAB中二維插值的命令是:z=interp2(x0,y0,z0,x,y,'meth')例2:在一個長為5個單位,寬為3個單位的金屬薄片上測得15個點的溫度值,試求出此薄片的溫度分布,并繪出等溫線圖。(數(shù)據(jù)如下表)yx12345182818082842796361658738484828586程序:temps=[82,81,80,82,84;79,63,61,65,87;84,84,82,85,86
6、];mesh(temps)%根據(jù)原始數(shù)據(jù)繪出溫度分布圖,可看到此圖的粗造度。23%下面開始進行二維函數(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)3.曲線擬合假設一函數(shù)g(x)是以表
7、格形式給出的,現(xiàn)要求一函數(shù)f(x),使f(x)在某一準則下與表格函數(shù)(數(shù)據(jù))最為接近。23由于與插值的提法不同,所以在數(shù)學上理論根據(jù)不同,解決問題的方法也不同。此處,我們總假設f(x)是多項式。例3:彈簧在力F的作用下伸長x厘米。F和x在一定的范圍內(nèi)服從虎克定律。試根據(jù)下列數(shù)據(jù)確定彈性系數(shù)k,并給出不服從虎克定律時的近似公式。x1247912131517F1.53.96.611.715.618.819.620.621.1解題思路:可以用一階多項式擬合求出k,以及近似公式。在MATLAB中,用以下命令擬合多項式。
8、polyfit(x0,y0,n)一般,也需先觀察原始數(shù)據(jù)的圖像,然后再確定擬和成什么曲線。對于上述問題,可鍵入以下的命令: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=polyf