如何用Matlab实现三维曲线的拟合,并求出曲线的函数表达式(方程)?
使用griddata函数,可进行三维拟合,并求出任意点处的值,之前用过求电流温度和电阻率的函数拟合如下rq=griddata(i,t,r,iq,tq) 。
具体过程如下:
D=[[1,6,9.2];[4,12,1.5];[7,4,2.3];[10,10,2.5];[13,2,11];[16,8,9];[0,0,386.1]]
D =
1.0000 6.0000 9.2000
4.0000 12.0000 1.5000
7.0000 4.0000 2.3000
10.0000 10.0000 2.5000
13.0000 2.0000 11.0000
16.0000 8.0000 9.0000
0 0 386.1000
x=D(:,1);y=D(:,2);
z=D(:,3);
T=[x y x.*y x.*x y.*y ones(7,1)]\z
T =-30.7039
-87.5047
2.9042
0.6209
4.4429
386.1000
所以所求函数为 T(1)*x+T(2)*y+T(3).*x.*y+T(4)*x.^2+T(5)*y.^2+T(6)
即z=-30.7039x--87.5047y+2.9042xy+0.6209x^2+ 4.4429y^2+386.1000