线性拟合的c语言程序,最小二乘法一阶线性拟合二阶曲线拟合的C语言程序实现.pdf...

一、最小二乘法原理与计算方法

(x) a a x a x2  a xn

对于m 组测量数据,选取 0 1 2 n 进行n 阶拟合,按

照残差平方和最小原则,对各个待定系数求偏导数,使之都等于0,通过数学运算可得到各个系数的

最小二乘的法方程为

运算式如下,求解这个线性方程组就可以得出各个系数的值。

 m m m n   m 

 1 xi xi    yi 

 

0

 i1 i1 i1    i1 

 m m 2 m n1    m 

xi xi xi  x y

  1  i i 

 

 i1 i1 i1    i1 

    

 m m m    m 

 n n1 2n    n 

 

n

xi xi xi   x y

i1 i1 i1  i1 i i 

   

当n=1 时,为1 阶拟合,又称直线拟合,即系数矩阵是一个2*2 的矩阵,通过线性方程的求解运

算,求得线性回归方程的系数表达式为:

当n=2 时,为2 阶曲线拟合,所得到的系数矩阵是一个3*3 的矩阵【用aij (i,j=1,2,……)的

形式表达】,通过线性方程的求解运算,求得线性回归方程的系数表达式为:

二、1 阶2 阶拟合功能子函数和计算表达式

通过分析以上系数计算式中各项计算式,写出全部需要用到的子函数:

通过对照系数表达式里各个项的计算表达,写入主函数进行拟合计算。设定输入的数据格式为(x[ i ],y[ i ] ),用

户输入数据的个数为c,计算表达式程序代码如下:

1 阶直线拟合:

2 阶曲线拟合:

三、主函数代码

四、用MATLAB 验证程序的运行结果

第一组:选择y=x+1 进行线性拟合检验,可见2 阶拟合对于线性关系,二次项系数为0

第二组:选择y=x^2+1 进行2 阶曲线拟合检验

第三组:进行常规数据组检验

数据输入部分的设计参考了[物理实验计算器. Zhouzb . zhouzb889@163.com]的部分代码,在此表示感谢。

智能仪器设计作业——最小二乘法——高世浩1223150078

你可能感兴趣的:(线性拟合的c语言程序)