最小二乘拟合

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

线性最小二乘拟合

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. UC伯克利教授Stuart Russell人工智能基础概念与34个误区
  2. PMWiki安装教程
  3. php cookie expires,php cookie类(设置、获取、删除cookie值)
  4. flink on yarn shell的session cluster模式实验记录
  5. 文献记录(part58)--不平衡数据处理的新方法一基于样本相似度的少数合成法
  6. MySQL和SQL Server数据库基本语句总结(二)
  7. TCP/IP协议网络模型
  8. 基于HTML5的网络拓扑图 - 设备状态面板
  9. Java的主流加密方式——简介
  10. HTML5七夕情人节表白网页制作【满天星空3D相册】HTML+CSS+JavaScript 3D动态相册网页代码
  11. 支付宝宣布:狗年还玩五福!全网第一份集福攻略在这里
  12. 浙大博士 130 页论文,教你用人工智能挑西瓜
  13. 一些高薪职位的能力需求。
  14. 怎么把PPT幻灯片里背景图片拿出来
  15. 数据结构和算法经典书籍
  16. 照片尺寸怎么修改,3大工具推荐
  17. 财报发布后分红1.32亿美元 陌陌为何稳居陌生人社交上位圈?
  18. 如何在论文中画出漂亮的插图
  19. access_token is invalid or not latest rid?
  20. 一年级课程表(3月7日-3月11日)

热门文章

  1. [Python] ConnectionResetError: [Errno 104] Connection reset by peer
  2. LED圣诞灯饰出口欧洲CE认证检测项目标准
  3. hp rx6600两台oracle双机互备服务器其中一台经常自动关机的故障诊断
  4. poj—2488骑士的旅程(深搜)
  5. 511遇见易语言API模块GetWindowTextA取窗口取标题
  6. 关于Unity场景跳转后光线变暗问题
  7. ros入门(七)--ros接入sick激光雷达
  8. 记一次swagger域名无法访问报错解决
  9. 吃一堑长一智!java基础自学多长时间
  10. 创龙TI AM570x浮点DSP C66x + ARM Cortex-A15工业开发板规格书