關於matlab下用最小二乘法擬合曲面的問題

時間 2021-08-30 10:41:25

1樓:匿名使用者

x=[1.52 3.03 3.27 4.2 0.93 -4.2 -3.27 -3.03 -1.52];

y=[0.8 2.1 4.6 7.1 8.4 7.1 4.6 2.1 0.8];

z=[2.16 2.4 2.69 3.82 3.02 2.68 2.5 2.48 2.31];

a=[x',y',ones(size(x'))];

a=a\z'

得到a =

0.0592

0.1269

2.1371

就是說a(1)=0.0592

a(2)=0.1269

a(3)=2.371

原理:我們可以把這題看成已知x,y,z,來求a(1),a(2),a(3)

由於表示式對於a(1),a(2),a(3)來說是線性的。

也就相當於求解三元一次方程組(只不過這裡的方程數比未知數個數多)。這個可以用矩陣來解決。

你先看一下上面構造出來的a,然後再看一下a乘以[a1;a2;a3]這個列向量。

可能你就知道上面是什麼意思了。

2樓:張慶

用命令rstool 自 己看幫助吧

3樓:曉傑_張

這個擬合出來的是平面吧,怎麼能是曲面擬合呢?

matlab曲面擬合最小二乘法

4樓:匿名使用者

matlab中用最小二乘擬合的常用函式有polyfit(多項式擬合)、nlinfit(非線性擬合)以及regress(多元線性迴歸)。由於是曲面擬合,自變數有2個,應變數一個,可以使用的有nlinfit和regress,線性時用regress,非線性時用nlinfit。

具體介紹一下regress

regress雖然名義上只能做線性迴歸但是可以把x^2等非線性量作為一個額外自變數做計算,因此在一些特殊情況下也可以做非線性擬合。

以matlab自帶的資料為樣本,示例**如下:(%後面的是註釋)

clc;clear;

load carsmall%此資料樣本matlab自帶

x=weight;y=horsepower;z=mpg;%取這3個變數作為擬合物件,x、y自變數,z應變數

plot3(x,y,z,'p');

hold on;

c=ones(length(x),1);

b=regress(z,[x,y,c]);%純線性擬合 模型z=b(1)*x+b(2)*y+b(3)

[x,y]=meshgrid(linspace(1500,5000,10),linspace(40,240,10));

c=ones(10);

mesh(x,y,b(1)*x+b(2)*y+b(3)*c);

得到下圖:

b=regress(z,[x.^2,y.^2,x.*y,x,y,c]);%新增非線性項進行擬合

figure

plot3(x,y,z,'p');

hold on;

mesh(x,y,b(1)*x.^2+b(2)*y.^2+b(3)*x.*y+b(4)*x+b(5)*y+b(6)*c);

grid on;

得到下圖:

5樓:濯自禕

x=[x1 x2 x3...],x2=[x1² x2² x3²...]

y=[y1 y2 y3...],y2=[y1² y2² y3²...]

z=[z1 z2 z3...],

n=length(x); x=[x2 y2 ones(n,1)]a=regress(z,x)

c=a(3),b=a(2),a=a(1)

matlab三維曲面進行平面擬合,利用最小二乘法

6樓:匿名使用者

可以直bai接使用matlab的曲面擬du合zhi工具箱,但是平面擬合的

dao效果一般

1、在命令窗內口輸入待擬合的數容據

>> x=[11.4,11.4,11.

4,11.4;13.1,13.

1,13.1,13.1;14.

8,14.8,14.8,14.

8;16.5,16.5,16.

5,16.5;18.2,18.

2,18.2,18.2];

y=[0.84,0.72,0.

61,0.45;0.68,0.

49,0.44,0.41;0.

57,0.43,0.40,0.

38;0.42,0.37,0.

33,0.17;0.39,0.

30,0.24,0.16];

z=[1.62,2.51,2.

63,2.64;1.93,2.

58,3.01,3.23;2.

45,2.83,3.27,3.

31;2.60,3.27,3.

33,3.45;2.93,3.

74,4.09,4.35];

2、輸入sftool命令開啟曲面擬合工具箱,然後依次選擇x,y,z資料

>> sftool

3、因為你要求平面擬合,所以選擇一次多項式型別

4、左側面板即為擬合結果

其中,r-square表示擬合度,越接近於1表示擬合效果越好,此時僅為0.8241,所以效果並不好。

7樓:ccc橙子陳

直接使用baimatlab的曲面擬du合zhi工具箱輸入sftool命令開啟曲面擬合工具箱,dao然後依次選回擇x,y,z資料

因為你要答求平面擬合,所以選擇一次多項式型別左側面板即為擬合結果

其中,r-square表示擬合度,越接近於1表示擬合效果越好,此時僅為0.8241,所以效果並不好。

請問一組三維資料點,用matlab最小二乘法擬合二次曲面,程式怎麼寫

8樓:匿名使用者

呵呵算你狠,我剛要在這發,你都已經發上來了

matlab用最小二乘法求一形如y t at b (a和b為待定係數)的多項式,使之與下列資料相擬合

宇逸 1.使用非線性最小二乘擬合函式lsqcurvefit擬合t 1 2 3 4 5 6 7 8 y 4.00 6.40 8.00 8.80 9.22 9.50 9.70 9.68 fun b,x x.b 1 x b 2 x0 0.1 0.1 b lsqcurvefit fun,x0,t,y 結果為...

eviews軟體怎麼用最小二乘法來消除異方差

如果是一般的迴歸,那麼加權最小二乘法取權僅僅是方程本身誤差項的絕對值的倒數!兩種方法 1.蠢且勤快的方法 在迴歸結果視窗中按estimate,改變你的迴歸項分別為 y 1 abs resid x1 1 abs resid x2 1 abs resid 當然要在做完你的ols後馬上做,否則你的resi...

EVIEWS做最小二乘法怎麼做 高人指點,急 急 急

我怎麼記得和樓上有點差別 難道不是直接 ls y c x y的位置放因變數,x位置放解釋變數,要是有截距項就寫著c,沒有就去了我說的是eview5 在命令視窗下輸入 ls y c 1 c 2 x按回車 本幻須穎初 ls命令也可以估計大部分非線性模型。請問eviews做出最小二乘法的結果,這個圖怎麼看...