wolong555 2023-04-28 10:10 采纳率: 33.3%
浏览 11

如何将信赖域算法和常规最小二乘法结合起来代替cftool中的拟合

在使用matlab做非线性拟合时,需要用到cftool工具箱进行非线性拟合,在工具箱中用的算法是信赖域算法和常规最小二乘法,现在我想在代码中使用信赖域算法和常规最小二乘法直接实现非线性拟合而不调用cftool。
目前只能实现常规的最小二乘法或者是信赖域算法,请教各位,如何将这两者结合起来或者是如何在程序中取代cftool中的非线性拟合?

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-28 12:20
    关注
    • 这篇博客: 数学建模4 拟合算法中的 3、通过cftool matlab自带的拟合工具箱来进行数据拟合 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 在窗口中输入cftool,打开拟合工具箱。
      评价拟合模型的好坏:
      主要
      1.看指数平方和:SSE的值越小越好。
      2.拟合的简洁性原则。就是尽量保证拟合的函数简洁更好。

      具体过程如图:
      在这里插入图片描述
      界面说明
      在这里插入图片描述
      例题2:已知30个数据点,横坐标x由(0,10)之间的随机数,纵坐标服从,在这里插入图片描述
      代码

      clear;clc 
      x = rand(30,1) * 10;
      y = 3 * exp(0.5*x) -5 + normrnd(0,1,30,1);
      cftool
      

      在这里插入图片描述
      图上所示:设置x data(横坐标数据源)为x ,Y data(纵坐标数据源)为Y,设置拟合函数为指数形式,且为1次函数。此时误差平方和SSE:243.7 对应的函数形式为f(x)=2.434exp(0.521X)
      通过调节函数形式得到不同的函数
      当设置函数为指数,一元二次函数形式
      在这里插入图片描述
      SSE为:27.28,相比一元一次函数,一元二次函数的误差更小,且原函数也为指数函数。则选择此函数形式

      f(x)=3.232exp(0.4933x)-4.851*exp(0.0628x)

      总结:
      函数选择原则:
      当散点图走势是直线,优先选线性拟合,评价指标为SSE和R平方,SSE越小越好,R平方越大越好。
      其他的函数选择条件是SSE越小越好,且不是线性拟合时不能用R平方来评价。
      其他:函数形式应当越简单越好。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月28日

悬赏问题

  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 MATLAB四叉树处理长方形tif文件
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 使用Java milo连接Kepserver服务端报错?
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了