MATLAB 软件提供了基本的曲线拟合函数的命令。 曲线拟合就是计算出两组数据之间的一种函数关系,由此可描绘其变化曲线及估计非采集数据对应的变量信息。 1.线性拟合函数:regress() 调用格式: b = regress(y ,X) [b,bint,r,rint,stats] = regress(y ,X) [b,bint,r,rint,stats] = regress(y ,X,alpha) 说明:b=[ε; β],regress(y,X)返回X 与y 的最小二乘拟合的参数值β、ε,y=ε+βX。β 是p´1的参数向量;ε 是服从标准正态分布的随机干扰的n´1 的向量;y 为 n´1 的向量;X 为 n´p 矩阵。 bint 返回β 的95%的置信区间。 r 中为形状残差,rint 中返回每一个残差的95%置信区间。Stats 向量包含 R2 统计量、回归的F 值和 p 值。 例: x=[ones(10,1) (1:10)']; y=x*[10;1]+normrnd(0,0.1,10,1); [b,bint]=regress(y,x,0.05) 结果得回归方程为:y=9.9213+1.0143x 2.多项式曲线拟合函数:poly fit() 调用格式: p = poly fit(x ,y ,n) [p,s] = poly fit(x ,y ,n) 说明:n:多项式的最高阶数; x,y:将要拟合的数据,用数组的方式输入; p:为输出参数,即拟合多项式的系数; 多项式在 x 处的值y 可用下面程序计算: y=polyval(p,x) 例: x=1:20; y=x+3*sin(x); p=polyfit(x,y,6) xi=linspace(1,20,100); z=polyval(p,xi); % 多项式求值函数 plot(x,y,'o',xi,z,'k:',x,y,'b') legend('原始数据','6 阶曲线') 3.一般的曲线拟合:curvefit() 调用格式: p=curvefit(‘Fun’,p0,x,y) 说明:Fun: 表示函数Fun(p,data)的M 函数文件; x,y:将要拟合的数据,用数组的方式输入; p0: 表示函数待拟合参数的初值; 4.自定义函数拟合:nlinfit() 调用格式:[beta,r,J]=nlinfit(x,y,’fun’,beta0) 说明: beta:返回函数'fun'中的待定常数; r: 表示残差; J: 表示雅可比矩阵。 x,y: 要拟合的数据; fun: 自定义函数; beta0: 待定常数初值; 例:化工生产中获得的氯气的级分 y 随生产时间 x 下降,假定在 x≥8 时,y 与 x 之间有非线性模型: 现收集了 44 组数据,利用该数据通过拟合确定非线性模型中的待定常数。 x y x y x y 8 0.49 16 0.43 28 0.41 8 0.49 18 0.46 28 0.40 10 0.48 18 0.45 30 0.40 10 0.47 20 0.42 30 0.40 10 0.48 20 0.42 30 0.38 10 0.47 20 0.43 32 0.4...