您的位置:首页 > 其它

拟合的一些小事

2014-08-20 17:36 204 查看
积累一点是一点

平时一维拟合用polyfit,polyval是异常顺手,到了二维怎么办?

当然,Matlab是强大无敌的,除了慢点OMG。

二维拟合如下:

fo = fitoptions('method','NonlinearLeastSquares');

% fit type

%三次拟合

ft = fittype('a33*x^3*y^3+a32*x^3*y^2+a31*x^3*y+a30*x^3 + a23*x^2*y^3+a22*x^2*y^2 + a21*x^2*y + a20*x^2 + a13*x*y^3+a12*x*y^2 + a11*x*y + a10*x + a03*y^3 + a02*y^2 + a01*y',...

'dependent',{'z'},...

'independent',{'x','y'},...

'coefficients',{'a33','a32','a31','a30','a23','a22','a21','a20','a13','a12','a11','a10','a03','a02','a01'});

[curve, goodness] = fit([X, Y], Z, ft, fo);

二维带回系数计算如下:

Z = feval(ft,coeff(1),..,coeff(N),X,Y);

N是代表有多少个系数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: