Matlab曲面擬合和插值

2021-08-01 14:13:48 字數 2594 閱讀 8731

插值和擬合都是資料優化的一種方法,當實驗資料不夠多時經常需要用到這種方法來畫圖。

在matlab中都有特定的函式來完成這些功能。

這兩種方法的確別在於:

當測量值是準確的,沒有誤差時,一般用插值;

當測量值與真實值有誤差時,一般用資料擬合。

插值:

對於一維曲線的插值,一般用到的函式yi=interp1(x,y,xi,method) ,其中method包括nearst,linear,spline,cubic。

對於二維曲面的插值,一般用到的函式zi=interp2(x,y,z,xi,yi,method),其中method也和上面一樣,常用的是cubic。

擬合:

對於一維曲線的擬合,一般用到的函式p=polyfit(x,y,n)和yi=polyval(p,xi),這個是最常用的最小二乘法的擬合方法。

對於二維曲面的擬合,有很多方法可以實現,但是我這裡自己用的是spline toolbox裡面的函式功能。具體使用方法可以看後面的例子。

對於一維曲線的插值和擬合相對比較簡單,這裡就不多說了,對於二維曲面的插值和擬合還是比較有意思的。

總結歸納一下給出例項和講解。

%第一給例子

clc;clear;clf;

%原始資料的定義

x=[1:1:12];

y=[1:1:5];

%z是乙個5乘12的矩陣。

z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;

0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;

0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;

0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;

0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];

%直接用原始資料畫圖如下:

%surf三維表面圖

surf(x,y,z);

title('original data plot');

xlabel('x'), ylabel('y'), zlabel('z'),

%對x,y,z軸範圍的控制

%第二給例子

clc;clear;clf;

%原始資料的定義

x=[1:1:12];

y=[1:1:5];

%z是乙個5乘12的矩陣。

z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;

0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;

0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;

0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;

0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];

%先考慮插值,需要用到的函式interp2

x1=1:0.2:12;

y1=1:0.2:5;

[x2,y2]=meshgrid(x1,y1);

t11=interp2(x,y,z,x2,y2,'cubic');

surf(x1,y1,t11);

title('after fit data plot');

xlabel('x'), ylabel('y'), zlabel('z'),

%對x,y,z軸範圍的控制

%第三個例子

Matlab曲面擬合和插值

插值和擬合都是資料優化的一種方法,當實驗資料不夠多時經常需要用到這種方法來畫圖。在matlab中都有特定的函式來完成這些功能。這兩種方法的確別在於 當測量值是準確的,沒有誤差時,一般用插值 當測量值與真實值有誤差時,一般用資料擬合。插值 對於一維曲線的插值,一般用到的函式yi interp1 x,y...

matlab插值與擬合

插值 兩個變數間的關係可以通過函式來表示,若x為自變數,y為因變數,則函式關係可描述為y f x 在大多數問題中,函式關係式y f x 未知,人們通常採用逼近的方法處理 取得一組資料點 xi,yi 然後構造乙個簡單的函式p x 作為函式y f x 的近似表示式,即y f x p x 若滿足p xi ...

Matlab系列 插值 擬合

還是跟之前一樣,有部分命令寫法可能混雜偽 但不妨礙理解 大家可能都學過 計算方法 數值分析 裡面很多的計算都可以很方便地用matlab實現,重點講講插值interpolation和擬合fitting p polyfit x,y,2 多項式擬合,最後乙個引數是多項式polynomial次數,p是項係數...