1.在工程中经常会遇到这种问题,通过AD采集获得一组电压(电流)数据x0, x1, x2, …, xn,这些电压数据所对应的物理数据为y0, y1, y2, …, yn,即有如下对应关系
(x0,y0)
(x1,y1)
(x2,y2)
(xn,yn)
如何通过对这组已知数据的拟合,以得到其它点电压(电流)所对应的物理数据。
比如如何拟合下面这组数据
电压(mv) | 流量(ml/min) |
78.60 | 0.00 |
131.50 | 10.00 |
153.40 | 25.10 |
228.20 | 50.10 |
378.30 | 100.20 |
525.60 | 150.30 |
671.50 | 200.40 |
814.70 | 250.50 |
1567.20 | 501.00 |
2.概念
我们先说明几个相关概念
- 残差:拟合值与物理值差的平方和
- 导数:在无限趋近0,即x+无限趋近于x时,如下极限存在,即为该点的导数,亦是该点斜率
- 偏导数
设有函数关系y = f(x0, x1, x2, …, xn),将除了xi(i ∈(1, n))以外变量视为常数,对xi进行求导,即为xi的偏导数,记为
- 极大值、极小值
对如上曲线研究可知,极大值、极小值只有可能出现在导数为0的位置,一般而言,极值点(极大值或极小值)只有可能出现在导数为0的位置、或边界点
即
如果是多元函数关系y = f(x0,x1, x2, …, xn),极值点为全部偏导数为0的点(x0,x1, x2, …, xn),即
(i ∈(0, n))
3.线性拟合
回到刚才的例子,我们通过对那些点的观察可知,他们非常接近于一条直线,因此我们用y = k * x + b进行拟合,本文所题的问题即化为求k、b的问题
我们用“残差”来说明拟合的效果,残差越小说明拟合越好为了使残差最小,即求得参差的极小值
我们将yi用y = k * x + b(x为电压或电流值),yyi为对应物理值(如流量),带入残差表达式
为求s最小值,根据极大值极小值原理,s最小只有s的所有偏导数同时为0,
即
(1)
(2)
(1) 式化简得
(3)
(2) 式化简得
(4)
联立(3)和(4),即可求得k,b值。
对于本文所举的例子,可求得k = 0.3388 b = -28.2
4.二阶拟合
如果发现所采集的数据符合y = a * x2 + b * x + c,我们同样可导出a,b,c的表达式,它所对应的残差表达式为
对a,b,c分别求偏导数
(1)
(2)
(3)
对(1)、(2)、(3)化简得
(4)
(5)
(6)
联立(4)、(5)、(6)即可求得a、b、c的值