非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x。今进行曲线拟合,求x使得输出的如下最小二乘表达式成立:
min Σ(F(x,xdatai)-ydatai)^2函数  lsqcurvefit
格式  x = lsqcurvefit(fun,x0,xdata,ydata)
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)
x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)
[x,resnorm] = lsqcurvefit(…)
[x,resnorm,residual] = lsqcurvefit(…)
[x,resnorm,residual,exitflag] = lsqcurvefit(…)
[x,resnorm,residual,exitflag,output] = lsqcurvefit(…)
[x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…)
[x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…)
参数说明:
x0为初始解向量;xdata,ydata为满足关系ydata=F(x, xdata)的数据;
lb、ub为解向量的下界和上界lb≤x≤ub,若没有指定界,则lb=[ ],ub=[ ];
options为指定的优化参数;
fun为待拟合函数,计算x处拟合函数值,其定义为     function F = myfun(x,xdata)
resnorm=sum ((fun(x,xdata)-ydata).^2),即在x处残差的平方和;
residual=fun(x,xdata)-ydata,即在x处的残差;
exitflag为终止迭代的条件;
output为输出的优化信息;
lambda为解x处的Lagrange乘子;
jacobian为解x处拟合函数fun的jacobian矩阵。例 求解如下最小二乘非线性拟合问题
已知输入向量xdata和输出向量ydata,且长度都是n,待拟合函数的表达式为
ydata(i)=x(1)-xdata(i)^2+x(2)-sin(xdata(i))+x(3)-xdata^3即目标函数为min Σ(F(x,xdata(i))-ydata(i))^2
其中:F(x,xdata) = x(1)*xdata^2 + x(2)*sin(xdata) + x(3)*xdata^3
初始解向量为x0=[0.3, 0.4, 0.1],即表达式的 个参数[x(1),x(2),x(3)]。
解:先建立拟合函数文件,并保存为myfun.m
function F = myfun(x,xdata)
F = x(1)*xdata.^2 + x(2)*sin(xdata) + x(3)*xdata.^3;
然后给出数据xdata和ydata
>>xdata = [3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4];
>>ydata = [16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3];
>>x0 = [10, 10, 10];    %初始估计值
>>[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata)
结果为:
Optimization terminated successfully:
Relative function value changing by less than OPTIONS.TolFun
x = 0.2269    0.3385    0.3021
=>即解出的系数最优估计值
resnorm =      6.2950
=>在x解值处的目标最小二乘表达式值。即所谓残差。

matlab中的lsqcurvefit使用相关推荐

  1. Matlab中的lsqcurvefit函数的使用

    Matlab中的lsqcurvefit函数的使用 lsqcurvefit函数 调用示例 lsqcurvefit函数 非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数 ...

  2. MATLAB中的lsqcurvefit函数

    对于一个某些参数未知的曲线,在手上拥有其部分数据时,可用lsqcurvefit函数获得其参数. 如: x = 0 : 1 : 21; y = [3.9 5.3 7.2 9.6 12.9 17.1 23 ...

  3. matlab中的lsqcurvefit 拟合

    非线性曲线拟合是已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),但不知道系数向量x.今进行曲线拟合,求x使得输出的如下最小二乘表达式成立: ...

  4. MatLab中的多项式拟合(lsqcurvefit函数的非线性曲线拟合)

    MatLab中的多项式拟合(lsqcurvefit函数的非线性曲线拟合) lsqcurvefit函数 函数原型 x=lsqcurvefit(fun, x0, xdata, ydata) == 其中的参 ...

  5. matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记

    关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...

  6. MATLAB中曲线拟合方法总结(包括对数正态分布函数)

    鉴于最近遇到非线性函数拟合问题,本人对网上有关matlab多种类型的线性.非线性曲线拟合的方法进行了总结,希望对各位朋友有所帮助. 1. Matlab有一个功能强大的曲线拟合工具箱 cftool ,使 ...

  7. matlab中离开网格的流量,数学建模【数据处理方法(一维、二维插值方法;数据拟合方法;插值and拟合的MATLAB实现)】...

    [学习网址:MOOC---郑州轻工业大学---数学建模与实验]数学建模专栏 笔记01[第1.2章][概述.软件介绍] 笔记02[第3章][数据处理方法] 笔记03[第4章][规划模型] 笔记04[第5 ...

  8. 二次函数 用matlab,这个二次函数如何在MATLAB中拟合出来?

    这个二次函数如何在MATLAB中拟合出来? 关注:278  答案:2  手机版 解决时间 2021-01-15 20:02 提问者夕阳再美ソ也会落幕 2021-01-15 17:12 (q+1/1.1 ...

  9. matlab如何进行一元线性回归,Matlab中进行一元线性回归分析的方法

    Matlab中实际上有多个函数可以实现回归分析的功能,如regress,polyfit,lsqcurvefit等.这里简单总结一下polyfit函数的用法: Matlab中实际上有多个函数可以实现回归 ...

最新文章

  1. 线程池底层工作原理?
  2. centos7 安装mysql php,Centos7安装mysql与php的方法
  3. 5、线程终止方式:pthread_cleanup_push/pthread_cleanup_pop()
  4. java、php、.net关于web开发的区别
  5. 打包签名时出现Conversion to Dalvik format failed with error 1
  6. C++/C学习笔记(九)
  7. mysql为什么总是错的_这个mysql如何总是错的
  8. SCI论文编辑教你如何准备SCI论文和写作
  9. linux系统下卸载rpm方式安装的mysql5.7.*
  10. java毕业设计校园博客系统mybatis+源码+调试部署+系统+数据库+lw
  11. numpy安装与调试
  12. 11210怎么等于24_巧算24点
  13. 74CMS_v4.2.1-v4.2.129后台Getshell
  14. MAC之U盘(制作U盘启动必须是在mac系统中)
  15. 题解 洛谷P2142 高精度减法
  16. latch mysql_关于MySQL latch争用深入分析与判断
  17. Android 百度地图反向Geo “PERMISSION UNFINISHED“
  18. 从工厂运作的实质看生产
  19. 堆排序和快排与归并排序
  20. 这届95后,国庆节不想出游了?

热门文章

  1. Nearest Common Ancestors(LCA板子)
  2. 华为鸿蒙系统腾讯,腾讯内容开放平台
  3. jdbc驱动类加载直接指定线程上下文加载器加载
  4. svn 切换账号信息
  5. electron 打开调试_构建基于 iOS 模拟器的前端调试方案
  6. 计算机没有设置光盘,U盘重装系统如何在没有光驱的电脑中操作?
  7. 送女朋友的java小程序_用C编写一个送给女朋友的情人节小程序 可爱!
  8. matlab 带通滤波器_这就够了?一阶高通数字滤波器
  9. spring-cloud-starter-openfeign使用详解
  10. 微信android 流畅,【黑科技】微信只需这样操作,立刻提升流畅度和使用效率