




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 三維曲線(非線性)擬合步驟 1 設定目標函數. (M函數書寫)% 可以是任意的例如: function f=mydata(a,data) %y的值目標函數值 或者是第三維的,a=a(1) ,a(2) 列向量x=data(1,:); %data 是一2維數組,x=x1y=data(2,:); %data 是一2維數組,x=x2 f=a(1)*x+a(2)*x.*y; 0000000000000000000 %這里的a(1), a(2)為目標函數的系數值。 f的值相當于ydata的值 2 然后給出數據xdata和ydata的數據和擬合函數lsqcurvefit 例如:x1=1.0500 1.05
2、20 1.0530 1.0900 1.0990 1.1020 1.1240 1.1420. 1.1490 1.0500 1.0520 1.0530 1.0900 1.0990 1.1020 1.1240 1.1420 1.1490;x2=3.8500 1.6500 2.7500 5.5000 7.7000 3.3000 4.9500 8.2500 11.5500. 1.6500 2.7500 3.8500 7.7000 3.3000 5.5000 8.2500 11.5500 4.9500;ydata=56.2000 62.8000 62.2000 40.8000 61.4000 57.500
3、0 44.5000 54.8000. 53.9000 64.2000 62.9000 64.1000 63.0000 62.2000 64.2000 63.6000. 52.5000 62.0000;data=x1;x2; %類似于將x1 x2整合成一個2維數組。 a0= -0.0014,0.07;option=optimset(MaxFunEvals,5000);format long;a,resnorm=lsqcurvefit(mydata,a0,data,ydata,option);yy=mydata(a,data);result=ydata yy (yy-ydata)% a的值為擬合的
4、目標函數的參數值 利用lsqcurvefit進行擬合的 它完整的語法形式是:% x,resnorm,residual,exitflag,output,lambda,jacobian =lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) 二維曲線(非線性)擬合步驟1.function F = myfun(x,xdata)F = x(1)*xdata.2 + x(2)*sin(xdata) + x(3)*xdata.3; % 可以是任意的2.然后給出數據xdata和ydataxdata = 3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10
5、.0 5.4;ydata = 16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3;x0 = 10, 10, 10; %初始估計值x,resnorm = lsqcurvefit(myfun,x0,xdata,ydata) 搜狐博客 豆豆快樂吧 日志 2009-09-01 | Matlab畫三維圖的方法 Matlab畫三維圖的方法Tags: Matlab. 三維曲線的畫法三維空間曲線要用到plot3函數,這個和plot類似。plot3函數有三個參數,x,y和z軸,比如下面的例子: T = -2:0.01:2; plot3(cos(2*pi*T)
6、,sin(2*pi*T),T)如果安裝了Symbolic Math Toolbox的話也可以用下面ezlpot3函數的方法: ezplot3(cos(2*pi*T),sin(2*pi*T),T,-2 2)三維曲面的畫法有mesh何surf兩種命令來畫三維曲面,它們使用的場合不同。前者是當z軸是x和y的顯式函數時,后者是x,y,z中某個為其他2個的函數。mesh函數 X Y=meshgrid(-2:.1:2, -2:.1:2); Z = X.2 - Y.2; mesh(X, Y, Z)同理用Symbolic Math Toolbox可以直接執行 ezmesh(X.2 - Y.2, -2 2, -
7、2 2)surf函數在函數不能表示成z = f(x, y)時,需要用surf函數。比如x2+y2+z2=1.先需要用柱面坐標或者球坐標來表示。這里用柱面坐標表示為 r2+z2=1x = sqrt(1-z2)cos, x = sqrt(1-z2)sin;執行matlab指令: theta, Z = meshgrid(0:0.1:2)*pi, (-1:0.1:1); X =sqrt(1 - Z.2).*cos(theta); Y =sqrt(1 - Z.2).*sin(theta); surf(X, Y, Z); axis square同理用Symbolic Math Toolbox可以直接執行
8、ezsurf(sqrt(1-s2)*cos(t),sqrt(1-s2)*sin(t), s, -1, 1, 0, 2*pi); axis equa常用的一些插值命令命令1 interp1功能 一維數據插值(表格查找)。該命令對數據點之間計算內插值。它找出一元函數f(x)在中間點的數值。其中函數f(x)由所給數據決定。x:原始數據點Y:原始數據點xi:插值點Yi:插值點格式 yi = interp1(x,Y,xi) %返回插值向量yi,每一元素對應于參量xi,同時由向量x 與Y 的內插值決定。參量x 指定數據Y 的點。若Y 為一矩陣,則按Y 的每列計算。yi 是階數為length(xi)*siz
9、e(Y,2)的輸出矩陣。yi = interp1(Y,xi) %假定x=1:N,其中N 為向量Y 的長度,或者為矩陣Y 的行數。yi = interp1(x,Y,xi,method) %用指定的算法計算插值:nearest:最近鄰點插值,直接完成計算;linear:線性插值(缺省方式),直接完成計算;spline:三次樣條函數插值。對于該方法,命令interp1 調用函數spline、ppval、mkpp、umkpp。這些命令生成一系列用于分段多項式操作的函數。命令spline 用它們執行三次樣條函數插值;pchip:分段三次Hermite 插值。對于該方法,命令interp1 調用函數pch
10、ip,用于對向量x 與y 執行分段三次內插值。該方法保留單調性與數據的外形;cubic:與pchip操作相同;v5cubic:在MATLAB 5.0 中的三次插值。對于超出x 范圍的xi 的分量,使用方法nearest、linear、v5cubic的插值算法,相應地將返回NaN。對其他的方法,interp1 將對超出的分量執行外插值算法。yi = interp1(x,Y,xi,method,extrap) %對于超出x 范圍的xi 中的分量將執行特殊的外插值法extrap。yi = interp1(x,Y,xi,method,extrapval) %確定超出x 范圍的xi 中的分量的外插值ex
11、trapval,其值通常取NaN 或0。例1>>x = 0:10; y = x.*sin(x);>>xx = 0:.25:10; yy = interp1(x,y,xx);>>plot(x,y,kd,xx,yy)。例2>> year = 1900:10:2010;>> product = 75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505249.633 256.344 267.893 ;>>p1995 = interp1(year,pr
12、oduct,1995)>>x = 1900:1:2010;>>y = interp1(year,product,x,pchip);>>plot(year,product,o,x,y)插值結果為:p1995 =252.9885命令2 interp2功能 二維數據內插值(表格查找)格式 ZI = interp2(X,Y,Z,XI,YI) %返回矩陣ZI,其元素包含對應于參量XI 與YI(可以是向量、或同型矩陣) 的元素, 即Zi(i,j) Xi(i,j),yi(i,j)。用戶可以輸入行向量和列向量Xi 與Yi,此時,輸出向量Zi 與矩陣meshgrid(xi,y
13、i)是同型的。同時取決于由輸入矩陣X、Y 與Z 確定的二維函數Z=f(X,Y)。參量X 與Y 必須是單調的,且相同的劃分格式,就像由命令meshgrid 生成的一樣。若Xi與Yi 中有在X 與Y范圍之外的點,則相應地返回nan(Not a Number)。ZI = interp2(Z,XI,YI) %缺省地,X=1:n、Y=1:m,其中m,n=size(Z)。再按第一種情形進行計算。ZI = interp2(Z,n) %作n 次遞歸計算,在Z 的每兩個元素之間插入它們的二維插值,這樣,Z 的階數將不斷增加。interp2(Z)等價于interp2(z,1)。ZI = interp2(X,Y,Z
14、,XI,YI,method) %用指定的算法method 計算二維插值:linear:雙線性插值算法(缺省算法);nearest:最臨近插值;spline:三次樣條插值;cubic:雙三次插值。例3:>>X,Y = meshgrid(-3:.25:3);>>Z = peaks(X,Y);>>XI,YI = meshgrid(-3:.125:3);>>ZZ = interp2(X,Y,Z,XI,YI);>>surfl(X,Y,Z);hold on;>>surfl(XI,YI,ZZ+15)>>axis(-3 3 -
15、3 3 -5 20);shading flat>>hold off例4>>years = 1950:10:1990;>>service = 10:10:30;>>wage = 150.697 199.592 187.625179.323 195.072 250.287203.212 179.092 322.767226.505 153.706 426.730249.633 120.281 598.243;>>w = interp2(service,years,wage,15,1975)插值結果為:w =190.6288命令3 inte
16、rp3功能 三維數據插值(查表)格式 VI = interp3(X,Y,Z,V,XI,YI,ZI) %找出由參量X,Y,Z決定的三元函數V=V(X,Y,Z)在點(XI,YI,ZI)的值。參量XI,YI,ZI 是同型陣列或向量。若向量參量XI,YI,ZI 是不同長度,不同方向(行或列)的向量,這時輸出參量VI 與Y1,Y2,Y3 為同型矩陣。其中Y1,Y2,Y3 為用命令meshgrid(XI,YI,ZI)生成的同型陣列。若插值點(XI,YI,ZI)中有位于點(X,Y,Z)之外的點,則相應地返回特殊變量值NaN。VI = interp3(V,XI,YI,ZI) %缺省地, X=1:N ,Y=1:
17、M, Z=1:P ,其中,M,N,P=size(V),再按上面的情形計算。VI = interp3(V,n) %作n 次遞歸計算,在V 的每兩個元素之間插入它們的三維插值。這樣,V 的階數將不斷增加。interp3(V)等價于interp3(V,1)。VI = interp3(?,method) %用指定的算法method 作插值計算:linear:線性插值(缺省算法);cubic:三次插值;spline:三次樣條插值;nearest:最鄰近插值。說明 在所有的算法中,都要求X,Y,Z 是單調且有相同的格點形式。當X,Y,Z 是等距且單調時,用算法*linear,*cubic,*nearest
18、,可得到快速插值。例5>>x,y,z,v = flow(20);>>xx,yy,zz = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);>>vv = interp3(x,y,z,v,xx,yy,zz);>>slice(xx,yy,zz,vv,6 9.5,1 2,-2 .2); shading interp;colormap cool命令4 interpft功能 用快速Fourier 算法作一維插值格式 y = interpft(x,n) %返回包含周期函數x 在重采樣的n 個等距的點的插值y。若length(x)
19、=m,且x 有采樣間隔dx,則新的y 的采樣間隔dy=dx*m/n。注意的是必須nm。若x 為一矩陣,則按x 的列進行計算。返回的矩陣y 有與x 相同的列數,但有n 行。y = interpft(x,n,dim) %沿著指定的方向dim 進行計算命令5 griddata功能 數據格點格式 ZI = griddata(x,y,z,XI,YI) %用二元函數z=f(x,y)的曲面擬合有不規則的數據向量x,y,z。griddata 將返回曲面z 在點(XI,YI)處的插值。曲面總是經過這些數據點(x,y,z)的。輸入參量(XI,YI)通常是規則的格點(像用命令meshgrid 生成的一樣)。XI 可
20、以是一行向量,這時XI 指定一有常數列向量的矩陣。類似地,YI 可以是一列向量,它指定一有常數行向量的矩陣。XI,YI,ZI = griddata(x,y,z,xi,yi) %返回的矩陣ZI 含義同上,同時,返回的矩陣XI,YI 是由行向量xi 與列向量yi 用命令meshgrid 生成的。? = griddata(?,method) %用指定的算法method 計算:linear:基于三角形的線性插值(缺省算法);cubic: 基于三角形的三次插值;nearest:最鄰近插值法;v4:MATLAB 4 中的griddata 算法。命令6 spline功能 三次樣條數據插值格式 yy = sp
21、line(x,y,xx) %對于給定的離散的測量數據x,y(稱為斷點),要尋找一個三項多項式y = p(x) ,以逼近每對數據(x,y)點間的曲線。過兩點(xi, yi) 和(xi+1, yi+1) 只能確定一條直線,而通過一點的三次多項式曲線有無窮多條。為使通過中間斷點的三次多項式曲線具有唯一性,要增加兩個條件(因為三次多項式有4 個系數):1三次多項式在點(xi, yi) 處有: pi(xi) = pi(xi) ;2三次多項式在點(xi+1, yi+1) 處有: pi(xi+1) = pi(xi+1) ;3p(x)在點(xi, yi) 處的斜率是連續的(為了使三次多項式具有良好的解析性,加
22、上的條件);4p(x)在點(xi, yi) 處的曲率是連續的;對于第一個和最后一個多項式,人為地規定如下條件: p1(x) = p2(x) pn(x) = pn-1(x)上述兩個條件稱為非結點(not-a-knot)條件。綜合上述內容,可知對數據擬合的三次樣條函數p(x)是一個分段的三次多項式:? ? ? =n n n+12 2 31 1 2p (x) x x xp (x) x x xp (x) x x xp(x)L L L L,其中每段pi(x) 都是三次多項式。該命令用三次樣條插值計算出由向量x 與y 確定的一元函數y=f(x)在點xx 處的值。若參量y 是一矩陣,則以y 的每一列和x 配
23、對,再分別計算由它們確定的函數在點xx 處的值。則yy 是一階數為length(xx)*size(y,2)的矩陣。pp = spline(x,y) %返回由向量x 與y 確定的分段樣條多項式的系數矩陣pp,它可用于命令ppval、unmkpp 的計算。例6對離散地分布在y=exp(x)sin(x)函數曲線上的數據點進行樣條插值計算:>>x = 0 2 4 5 8 12 12.8 17.2 19.9 20; y = exp(x).*sin(x);>>xx = 0:.25:20;>>yy = spline(x,y,xx);>>plot(x,y,o,x
24、x,yy)命令7 interpn功能 n 維數據插值(查表)格式 VI = interpn(X1,X2,?,Xn,V,Y1,Y2,?,Yn) %返回由參量X1,X2,Xn,V 確定的n 元函數V=V(X1,X2,Xn)在點(Y1,Y2,Yn)處的插值。參量Y1,Y2,Yn 是同型的矩陣或向量。若Y1,Y2,Yn 是向量,則可以是不同長度,不同方向(行或列)的向量。它們將通過命令ndgrid生成同型的矩陣, 再作計算。若點(Y1,Y2,Yn) 中有位于點(X1,X2,Xn)之外的點,則相應地返回特殊變量NaN。VI = interpn(V,Y1,Y2,?,Yn) %缺省地,X1=1:size(V
25、,1),X2=1:size(V,2), ,Xn=1:size(V,n),再按上面的情形計算。VI = interpn(V,ntimes) %作ntimes 次遞歸計算,在V 的每兩個元素之間插入它們的n 維插值。這樣,V 的階數將不斷增加。interpn(V)等價于interpn(V, 1)。VI = interpn(?,method) %用指定的算法method 計算:linear:線性插值(缺省算法);cubic:三次插值;spline:三次樣條插值法;nearest:最鄰近插值算法。命令8 meshgrid功能 生成用于畫三維圖形的矩陣數據。格式 X,Y = meshgrid(x,y)
26、將由向量x,y(可以是不同方向的)指定的區域min(x),max(x) , min(y) , max(y) 用直線x=x(i),y=y(j) ( i=1,2,length(x) ,j=1,2,length(y))進行劃分。這樣,得到了length(x)*length(y)個點,這些點的橫坐標用矩陣X 表示,X 的每個行向量與向量x 相同;這些點的縱坐標用矩陣Y 表示,Y 的每個列向量與向量y 相同。其中X,Y可用于計算二元函數z=f(x,y)與三維圖形中xy 平面矩形定義域的劃分或曲面作圖。X,Y = meshgrid(x) %等價于X,Y=meshgrid(x,x)。X,Y,Z = meshgrid(x,y,z) %生成三維陣列X,Y,Z,用于計算三元函數v=f(x,y,z)或三維容積圖。例7X,Y = meshgrid
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南京市六校聯合體高三語文作文
- 環保工程生態環境規劃考核試卷
- 中醫兒童保健專科建設專家共識解讀 2
- AIGC應用基礎課件
- 江西應用工程職業學院《外國文學二》2023-2024學年第二學期期末試卷
- 吉林省長春市九臺市2025年初三2月初三網上質量檢測試題生物試題含解析
- 江蘇省姜堰區溱潼二中市級名校2025屆初三期末生物試題含解析
- 上海市五愛高級中學2025屆第二學期高三年級期末教學質量檢測試題(一模)化學試題含解析
- 四川體育職業學院《數字欄目包裝技巧》2023-2024學年第二學期期末試卷
- 天津體育職業學院《影視作品鑒賞》2023-2024學年第二學期期末試卷
- 2025銀行協議存款合同
- DB32/T 3278-2017 油菜耐鹽性鑒定及評價技術規程
- 《高級語言程序設計》課程思政教學案例設計-以循環結構程序設計為例
- 2024年中國酸奶乳品市場調查研究報告
- 滬科版八年級物理全冊《8 復習:大氣壓強、流體壓強》教案
- 中醫治療盆腔炎
- 2023年高考英語試卷(新課標Ⅰ卷)含答案解析
- DB32T 4878-2024居住區供配電設施建設標準
- 微專題含膜電池-2024高考化學一輪考點擊破
- BRC內部審核檢查表(BRC內審檢查表)
- 古建筑修繕施工質量控制方案
評論
0/150
提交評論