曲线拟合 Fitting

在科研工作中经常需要拟合曲线,来得到相关参数。常见的曲线有:指数曲线,exponantial laws, y = c e^{\lambda x}, 级数曲线,power laws, y = x^{N}, 对数曲线,logarithmic laws, y = \ln x, 等等。

我们不能用眼睛从图像中判断这些曲线。我们唯一能判断的是直线,y = a x + b.

我们需要把这些不同的曲线转化为直线再做拟合。以下以指数曲线为例说明:

对指数曲线,y = c e^{\lambda x}, 已知N组数据 (x_i , y_i), i = 1, \cdots, N, 求参数 c 和\lambda

首先把曲线转化为线性关系,即

\ln y = \ln c + \lambda x \tag1

新的数据为 (\tilde{x}_i = x_i , \tilde{y}_i = \ln y_i), i = 1 \cdots N.

用直线\tilde{y} = a \tilde{x} + b 做拟合,在新的关系里有:a = \lambda, b = \ln c.

设误差函数 Q,

Q = \sum_i^{N} ( \tilde{y}_i - ( a \tilde{x}_i + b) ) \tag2

目的要找出 a, b 的值使得 Q 最小,则有,

\frac{\partial Q}{\partial a} = 0 , \qquad \frac{\partial Q}{\partial b} = 0 \tag3

\bar{x} = \frac{\sum_i^N \tilde{x}_i}{N}, \   \bar{y} = \frac{\sum_i^N \tilde{y}_i}{N} ,

得到 b = \bar{y} - a \bar{x}a = \frac{\sum_i^N (\tilde{x}_i (\tilde{y}_i - \bar{y}) )}{\sum_i^N (\tilde{x}_i (\tilde{x}_i - \bar{x} ))},

解出 a, b 后便可得到

c = e^{b}, a = \lambda, 代入曲线y = c e^{\lambda x},可作图。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。