c语言二次函数拟合,二次函数拟合算法

二次函数拟合算法

原理:

在给定一组数据序列(x i,y i),i=0,1,2…m,用二次多项式拟合这组数据时,设

p(x)=a0+a1x+a2x2,则根据拟合函数与数据序列的均方误差最小原则,可以得到二次多项式函数拟合的矩阵计算方程如下所示:

(

m x i

m

i=1

x i2

m

i=1

x i

m

i=1

x i2

m

i=1

x i3

m

i=1

x i2

m

i=1

x i3

m

i=1

x i4

m

i=1

)(

a0

a1

a2

)= (

y i

m

i=1

x i y i

m

i=1

x i2y i

m

i=1

)

在我们的计算库伦效应实例中,Y即为每个Cycle对应的DischargeC/ChargeC的比值,X即

为每个Cycle对应的数字。

代码中定义的三个矩阵XX,AA,YY则分别对应原理公式中等式左边X系数矩阵,A系数矩阵

以及等式右边包含Y系数的矩阵。

具体步骤:

1:先将矩阵中需要的所有量计算出来,并且存放在XX,AA,YY三个矩阵中。

2:为了求得系数矩阵AA,我们需要先把XX矩阵求逆,然后与YY矩阵相乘。函数MRinv

即为矩阵求逆的函数,返回时存放其逆矩阵。

3:得到系数矩阵AA之后,即得到了拟合好的二次函数,将此二次函数输出在Excel表中。具体代码实现:

步骤1对应代码:

    原文作者:weixin_39754267
    原文地址: https://blog.csdn.net/weixin_39754267/article/details/117152952
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞