拟合案例2:matlab实现分段函数拟合(分段点未知)及源码

案例介绍:

本案是针对一个分段函数中的参数进行拟合,使用的拟合工具是matlab中的lsqcurvefit或nlinfit。函数形式和待拟合参数如下所示。该案例的特殊之处在于分段点也是待拟合参数,因此如何自定义拟合函数,实现分段点的拟合是本案例最大的难点。本案例提供了三种分段函数的拟合方法:1.是用if……else条件语句定义的分段函数;2.另一种是通过(x0>a1)*f1+(x0<=a1)*f2这种形式定义的分段函数;3.第三种是通过sub1=find(x0<=a1);X1=x0(sub1);y(sub1)=f1;sub2=find(x0>a1);X2=x0(sub2);y(sub2)=f2实现分段函数的定义。三种方法原则上都没有错误,但是拟合的效果各有差别,最终我们选取拟合效果最好的第三种方法。

拟合案例2:matlab实现分段函数拟合(分段点未知)及源码_第1张图片

要求:各参数在规范中取值如下表,拟合出的参数值尽量和规范的参数值不要相差太多。

曲线类型

失稳方向

α1

α2

α3

λn,0

备注

规范曲线

你可能感兴趣的:(复杂函数拟合,matlab,算法,数据结构)