c语言二次函数拟合,二次函数拟合算法
二次函數(shù)擬合算法
原理:
在給定一組數(shù)據(jù)序列(x i,y i),i=0,1,2…m,用二次多項式擬合這組數(shù)據(jù)時,設
p(x)=a0+a1x+a2x2,則根據(jù)擬合函數(shù)與數(shù)據(jù)序列的均方誤差最小原則,可以得到二次多項式函數(shù)擬合的矩陣計算方程如下所示:
(
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對應的數(shù)字。
代碼中定義的三個矩陣XX,AA,YY則分別對應原理公式中等式左邊X系數(shù)矩陣,A系數(shù)矩陣
以及等式右邊包含Y系數(shù)的矩陣。
具體步驟:
1:先將矩陣中需要的所有量計算出來,并且存放在XX,AA,YY三個矩陣中。
2:為了求得系數(shù)矩陣AA,我們需要先把XX矩陣求逆,然后與YY矩陣相乘。函數(shù)MRinv
即為矩陣求逆的函數(shù),返回時存放其逆矩陣。
3:得到系數(shù)矩陣AA之后,即得到了擬合好的二次函數(shù),將此二次函數(shù)輸出在Excel表中。具體代碼實現(xiàn):
步驟1對應代碼:
總結
以上是生活随笔為你收集整理的c语言二次函数拟合,二次函数拟合算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言 链表 删除节点,C语言实现单链表
- 下一篇: c语言整数检验,C程序整数缺陷的检测与修