回顾一下数据拟合过程,我们有一组数据,并且知道一般表达式,以及表达式中参数的粗略值,也就是拟合参数的初始值,最后一般都能拟合出精确的参数值。
但是,如果表达式中参数个数较多,各个参数的粗略值估计不准,用一般的方法很容易找到一个局域最优解,而我们需要的是全局最优解。
接下来,我们通过一个简单的例子,来介绍利用 MATLAB 自带的遗传算法工具箱 (ga) 来进行数据拟合。
遗传算法数据拟合
创建一组数据,并加上随机噪声,其代码和图像如下。
x
![a35a3fb313373952ad23ec39cbaf59e2.png](https://i-blog.csdnimg.cn/blog_migrate/f6a05ccfb38d0608e65153612784ee47.jpeg)
数据点满足的一般表达式写成
为了拟合出参数值,写出最重要的适应度函数。
function
设置各个参数的大致范围
LB
用 ga 函数拟合