拟合的一些小事
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是代表有多少个系数。
平时一维拟合用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是代表有多少个系数。
相关文章推荐
- GET和POST的一些小事
- 机器学习过度拟合问题一些原因
- 编程规范的一些小事
- 取一些点,通过相应算法形成拟合曲线,求出拟合曲线长度
- 关于android打开闪光灯的一些小事
- 硬件设计的一些小事
- 一些小事
- 关于EditText的一些小事
- 机器学习过度拟合问题一些原因
- 关于matlab中数据拟合的一些函数polyfit()
- 关于keystone的一些小事
- python垃圾回收和对象的一些小事
- 一些琐碎的小事
- 一些小事,或许女生越早知道越容易幸福!转
- 正在找工作,回顾十几年工作中的一些小事
- Win7 与 Ubuntu 14.04 双系统硬盘安装 及 安装完毕优化的几件小事 及一些小的错误提
- 一些小事
- 一些琐碎的小事