有一堆实验数据要拟合,MATLAB调用cftool工具箱,采用GUI模式显然会让人吐血,而用函数调用的方法就比较方便了。当然origin等软件可以批量弄,线性方程时matlab可以调用[p,e]=polyfit(x,y,n)完成。对于方程需要自定义时,个人认为Matlab的效率就更高了。
下面举个简化的拟合简单无温度系数形式的Arrhenius方程 K=A*exp(-E/RT) 例子:
1.原始数据:
T=[1000 1200 1400 1600 1800 2000];
K=[1.30E-04 1.60E-01 26 1.20E+03 2.30E+04 2.50E+05];
拟合方程形式 y=a*exp(b*x) 的Exponential形式
对T做一下基本转换:
Tr=-1./T;
2.先调用cftool,进行相关设置
a.
Data中设置x_data,y_data后Create data set
b. Fitting中设置New
Fit,Type of fit:
Exponential--->a*exp(b*x),后Apply
c. Curve Fitting
Tool中File-->Generate M-file
3.修改 第一行 function createFit(Tr,K)为function [cf_,gof] =
createFit(Tr,K)
找到 %
Fit this model using new data
cf_=
fit(Tr(ok_),K(ok_),f