【总体简介】💻🔍
你将获得: 全局最优拟合(ga遗传算法+multistart)matlab源码 + 视频介绍
本案例的意义在于可以解决拟合过程中遇到的一个非常棘手的问题:做多参数拟合、级数函数等复杂函数拟合过程中经常遇到拟合效果欠佳,随初始值选取不同拟合结果差距较大的问题。归根结底的原因是我们找到的是局部最优解,而不是全局最优解。因为拟合的本质是优化问题,你就是要寻找一个最优的函数使得拟合得到的函数值与实验得到的值的差距最小,这里衡量差距的指标常用的就是“最小二乘指标”,也就是我们熟知的最小二乘法,matlab中集成了这个方法拟合工具有好多,我们用的最多的工具lsqcurvefit和nlinfit都是最小二乘法拟合非常典型的工具,但是这两个工具经常拟合得到的局部最优解,这就导致了拟合的效果较差,而且拟合结果随初值的选取不同变化较大。
那如何克服lsq和nlinit的这个缺点找到一个全局最优的解呢,就要用到全局最优算法来进行拟合,我们今天讲的案例药代动力学里的一个浓度随时间的变化关系模型,如下图1所示,是一个六个待拟合参数的函数,拟合参数有些多函数形式复杂,非线性较强,在进行拟合时很可能会有多个极值点,导致出现局部最优的情况。图2中显示的就是我们最常用的拟合工具lsq得到的拟合结果,很显然拟合效果较差。但是运用全局优化算法进行拟合得到的结果非常好,如图3所示。我们这次课程要讲实现全局最优拟合的工具是multistart和ga遗传算法。
GlobalSearch 全局搜索和MultiStart多起点方法产生若干起始点,然后它们用局部求解器去找到起始点吸引盆处的最优点。ga 遗传算法用一组起始点(称为种群),通过迭代从种群中产生更好的点,只要初始种群覆盖几个盆,GA就能检查几个盆。
图1
图2
图3
【案例视频介绍】
本案例已收录至b站的《Matlab复杂函数非线性拟合》专题课程【Matlab复杂函数非线性拟合专题/lsqcurvefit/nlinfit/积分函数、微分函数、隐函数、方程组、最小二乘法/机器学习/神经网络/编程/人工智能】 https://www.bilibili.com/video/BV1bQ4y1U7mu/?share_source=copy_web&vd_source=51de8a77fc94b609b98ffbb2255400bc