多点曲线拟合算法(Matlab拟合工具实现)
2015-11-09 15:33阅读:
基于NTC电阻的数据拟合的实际例子
1,对于NTC的规格书中的 R---T数据表,现在EXCEL中整理出来

这里从R---T表整理过来的数据,具有详细的中文说明,接下来要导入到Matlab中取使用时,需要另外重新整理一个没有中文名字,没有其他数据,仅有两栏
A作为输入电阻中心值,B作为输出温度的EXCEL表。
新整理的EXCEL表取名为 “6”

放在计算机跟目录下,“F:\
”方便Matlab使用时,好调用。
6.xlsxs里面的内容已整理成如下格式:
没有其他数据。
2,打开Matlab,将上面execl中的原始数据导入 Matlab中
输入导入数据指令:
[NUM,TXT,RAW]=xlsread('f:\6');
%读excel的数据,
在计算机的F盘,文件名为“6”。
x=NUM(:,1);
%给excel的第一列取名字为x
y=NUM(:,2);
%给excel的第二列取名字为y
然后,回车ENTER,

右边的Workspace会出现 NUM
,即Execl的两列数据
x,y即
excel中的A列和B列
双击,能够打开
3,MATLAB
打开曲线拟合工具
在下面继续输入指令:
>>cftool
%
开MATLAB曲线拟合工具箱
会自动弹出如下界面:
4,选择拟合数据

5,选择拟合曲线类型
Custom Equations:用户自定义的函数类型
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +
c*exp(d*x)
Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +
b1*sin(x*w)
Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)
Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic
spline、shape-preserving
Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th
degree ~
Power:幂逼近,有2种类型,a*x^b 、a*x^b + c
Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th
degree ~;此外,分子还包括constant型
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +
c1)
Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)

6,拟合结果

Goodness of
fit :
适合度
SSE : 和方差,误差平方和, 越小越好
RMSE ( root mean square error ):均方根误差
越小越好
R square :确定系数,0~1之间,越接近1,表明方程的变量对y的解释能力越强。
最终matlab拟合出来的函数为
f(x) = a*x^b+c
为
y=269.9*x^(-0.136)+(-172.2)
;
查 R--T分度表得知

将 X=104.79,
带入公式:
y=269.9*x^(-0.136)+(-172.2)
;
计算得出:
y=-28.8362
;
基本上吻合 分度表上的 -29℃ 。
将 X=85.650,
带入公式:
y=269.9*x^(-0.136)+(-172.2)
;
计算得出:
y=-24.849
;
基本上吻合 分度表上的 -25℃ 。
最终完成,曲线的拟合。得出最终函数
y=269.9*x^(-0.136)+(-172.2)
; //x:阻值 y:温度
亦可参考:http://www.cnblogs.com/yxnchinahlj/archive/2011/08/19/2146006.html
http://jingyan.baidu.com/article/9c69d48f409c6013c9024e8c
.html
http://www.docin.com/p-264856087.html