最小二乘拟合

  • 线性最小二乘拟合
    • 非线性最小二乘法

线性最小二乘拟合

1、polyfit
例:a= polyfit(x0,y0,m)
其中,输入参数x0,y0为要拟合的数据,m为拟合多项式的次数(一般不超过3次),输出参数a为拟合多项式的次数(从0次开始)

%例:
clc;clear
x=[19,25,31,38,44];
y=[19.0,32.3,49.0,73.3,97.8];
ab=polyfit(x,y,2)
x0=19:0.1:44;
y0=ab(3)+ab(2)*x0+ab(1)*x0.^2;
plot(x,y,'o',x0,y0,'r')

2、polyval
例:y=polyval(a,x)
其中,输入参数a为拟合多项式的次数,输入参数x为所要求y值的x值,输出参数y为所要求的值。
例:某乡镇企业1990-1996年的生产利润如下
年份 1990 1991 1992 1993 1994 1995 1996
利润(万元) 70 122 144 152 174 196 202
试预测1997和1998年的利润。

%代码如下
x0=[1990 1991 1992 1993 1994 1995 1996];
y0=[70 122 144 152 174 196 202];
a=polyfit(x0,y0,1)
y97=polyval(a,1997)
y98=polyval(a,1998)

非线性最小二乘法

1、lsqcurvefit
已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),求系数向量x(当然对于不同的函数用法可以求得别的东西)

%格式
x = lsqcurvefit ('fun',x0,xdata,ydata);
x =lsqcurvefit ('fun',x0,xdata,ydata,options);
x = lsqcurvefit ('fun',x0,xdata,ydata,options,'grad');
[x, options] = lsqcurvefit ('fun',x0,xdata,ydata,…);
[x, options,funval] = lsqcurvefit ('fun',x0,xdata,ydata,…);
[x, options,funval, Jacob] = lsqcurvefit ('fun',x0,xdata,ydata,…);

参数说明:
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矩阵。
2、lsqnonlin
已知输入向量xdata和输出向量ydata,并且知道输入与输出的函数关系为ydata=F(x, xdata),求系数向量x(当然对于不同的函数用法可以求得别的东西) (差不多,感觉一般会用lsqcurvefit)

%格式x=lsqnonlin('fun',x0);x= lsqnonlin ('fun',x0,options);x= lsqnonlin ('fun',x0,options,'grad');[x,options]= lsqnonlin ('fun',x0,…);[x,options,funval]= lsqnonlin ('fun',x0,…);

%用lsqcurvefit函数
%先编写函数文件fun.m
function f=fun(x,tdata,cdata)
f=x(1)+x(2)*exp(-0.02*x(3)*tdata)-cdata
%其中x(1)=a,x(2)=b,x(3)=k;
%输入命令
tdata=[100:100:1000]
cdata=1e-3*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];
x0=[0.2,0.05,0.05];
x=lsqcurvefit('fun',x0,tdata,cdata)
f=fun(x,tdata,cdata)
end
%用lsqnonlin
%编写函数文件fun.m
function f=fun(x)
tdata=100:100:1000;
cdata=1e-3*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59];
f=x(1)+x(2)*exp(-0.02*x(3)*tdata)-cdata
%输入命令:
x0=[0.2,0.05,0.05];
x=lsqnonlin('fun',x0)
f=fun(x)
end

MATLAB最小二乘拟合相关推荐

  1. matlab 中最小二乘拟合,matlab 最小二乘拟合

    matlab 最小二乘拟合 2018-1-25来自ip:12.12.148.103的网友咨询 浏览量:157 问题补充: matlab 最小二乘拟合 这是m文件 function y=nihe4(p, ...

  2. Matlab 最小二乘法 拟合平面

    一.原理推导 最小二乘法 拟合平面是我们最常用的拟合平面的方法,但是有特殊的情况是用这种方法是不能拟合的,后续会加上这种拟合方法(RANSAC). matlab 最小二乘拟合平面(方法一) - 灰信网 ...

  3. 列表函数的最小二乘拟合(matlab)

    最小二乘法拟合概述 算法原理 设是定义在点集上的列表函数,构造广义多项式 使得最小,其中为待定参数, 是已知的一组基函数,通过求解正规方程组来确定c的方法称为最小二乘拟合. 伪代码 1)给定待拟合量x ...

  4. 最小二乘拟合 matlab 初值的选取,最小二乘拟合法

    相位噪声函数的非线性最小二乘曲线拟合 摘要:相位噪声是对频率源频率稳定性的表示,对其幂律谱函数进行拟合,在仿真中非常重要,首先介绍线性最小二乘曲线拟合及非线性最小二乘曲线拟合的原理,然后结 合非线性最 ...

  5. 最小二乘拟合n阶多项式【Matlab】

    最小二乘拟合问题的求解 附录4  最小二乘拟合n阶多项式程序Ⅰ 附录5  最小二乘拟合n阶多项式程序Ⅱ 附录5所示程序运行得到的拟合曲线等结果,与运行附录4所示程序结果相同,也相互验证了附录4.5所示 ...

  6. 使用matlab对sinc函数进行最小二乘拟合仿真

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 该函数用于得到sinc函数偏移特定位置时的函数值,用于仿真 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...

  7. 最小二乘拟合,L1、L2正则化约束--转

    原文地址:http://blog.csdn.net/u013164528/article/details/45042895 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找 ...

  8. 双曲线matlab函数拟合,matlab怎么拟合双曲线

    储存着各离散点的横坐标和纵坐标,则在 MATLAB 中直接键入命令 cftool(X,Y) 就会弹出 Curve Fitting Tool 的 GUI 界面,点击界面上的 fitting 即可开始曲线 ...

  9. 数值分析:数据的最小二乘拟合

     1 实验目的 在已知某天在不同时间的前温度高低,借用最小二乘法确定这一天的气温变化规律.通过MATLAB编程,选取适当函数进行求解绘图. 2 实验内容 假定某天的气温变化记录如下表所示: 时间(t) ...

最新文章

  1. 从一个实际的例子来了解线程套间模型(.NET and COM interop)
  2. 利用curl并发来提高页面访问速度
  3. jbod ugood 磁盘驱动状态_组成原理—磁盘/IO/中断
  4. mahout基于Hadoop的CF代码分析(转)
  5. 《C++ Primer》14.3节练习
  6. 2020法研杯比赛阅读理解任务冠军参赛总结
  7. modbus发送接收_自己编写MODBUS协议代码所踩过的坑
  8. 浅谈数据中心白盒交换机开发
  9. 文件(视频)上传到阿里云 java实现
  10. axio基础配置方法
  11. wingdings字体符号在哪_wingding、Wingdings2、wingdings3字体特殊符号与键盘字母相对应位置...
  12. 牛顿冷却定律,衰减因子alpha
  13. b站爬虫,用于查询主播舰队用户等级构成
  14. Msc.Marc安装和使用过程中遇到证书错误——处理办法
  15. 大数据领域的性能测试Benchmark介绍
  16. jQuery Mobel 学习相关资料整理(一)
  17. VSCode撸猫插件vscode-cats它来了,一起来云撸猫吧
  18. Teddy van Jerry 的导航页
  19. AI算命:千亿市场的好生意?
  20. 第2章 逻辑架构设计

热门文章

  1. 人脸检测:在公共交通场所监控中起什么样的作用?
  2. 计算机房考研英语考试时间按,考研英语一考试时长是多久
  3. 面对面翻译小程序是微信团队针对面对面沟通的场景开发的流式语音翻译小程序,通过微信同声传译插件提供了语音识别,文本翻译等功能。
  4. i.MX283开发板SPI驱动——RC522
  5. 微信朋友圈推广广告怎么投放
  6. 运用if语句,制作年龄阶段判断
  7. 【Unity3d】(二) Unity3D--光的反射与折射实现
  8. Xmind序列号/版本: XMind 8 Update 9 (R3.7.9.201912052356)
  9. 简历投递误区你中招没?
  10. 画论26 赵希鹄《洞天清录·古画辨》