Matlab实现分段函数拟合(分段点未知)| 源码分享 | 视频教程 | 三种分段函数拟合方法

专栏导读

  • 作者简介:工学博士,高级工程师,专注于工业软件算法研究
  • 本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.复杂函数包含:分段函数、积分函数、常/偏微分函数、隐函数、方程组、级数函数、多参数函数;3.拟合工具是Matlab种的lsqcurvefit, nlinfit,神经网络,ga遗传算法,MultiStart全局优化算法等;4.拟合案例均源自科研实践中遇到的案例,文本教程+视频教程+案例源码,三向强化学习!提高大家解决实际数学建模的问题。
  • 视频课程地址https://www.bilibili.com/video/BV1bQ4y1U7mu/?spm_id_from=333.337.search-card.all.click
  • 欢迎订阅专栏,订阅用户可私聊进入Matlab编程交流群(知识交流、问题解答),并获赠丰厚的Matlab相关学习资料教材、源码、视频课
  • 专栏订阅地址:https://blog.csdn.net/u010542847/category_12576325.html

【总体简介】💻🔍

你将获得分段函数拟合matlab源码 (三种方法)

获取链接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实现分段函数的定义。三种方法原则上都没有错误,但是拟合的效果各有差别,最终我们选取拟合效果最好的第三种方法。

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

规范曲线如下图所示,做出的曲线符合下图的趋势,分段点出尽量保持平滑。

最终我们的拟合效果如下,可见整体分段点处还是比较平滑的

【代码截图】

​【视频课程】

本案例已收录至b站的《Matlab复杂函数非线性拟合》专题课程【Matlab复杂函数非线性拟合专题/lsqcurvefit/nlinfit/积分函数、微分函数、隐函数、方程组、最小二乘法/机器学习/神经网络/编程/人工智能】 Matlab复杂函数非线性拟合专题/lsqcurvefit/nlinfit/积分函数、微分函数、隐函数、方程组、最小二乘法/机器学习/神经网络/编程/人工智能_哔哩哔哩_bilibili

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值