软件环境:MATLAB2013a

一、多项式拟合

多项式拟合是利用多项式最佳地拟合观测数据,使得在观测数据点处的误差平方和最小。

在MATLAB中,利用函数ployfit和ployval进行多项式拟合。

函数ployfit根据观测数据及用户指定的多项式阶数得到光滑曲线的多项式表示,polyfit的一般调用格式为:P = polyfit(x,y,n)。其中x为自变量,y为因变量,n为多项式阶数。

polyval的输入可以是标量或矩阵,调用格式为

  • pv = polyval(p,a)
  • pv = polyval(p,A)

其中,p为多项式表示,a为标量,A为矩阵。当输入参数为M*N矩阵A时,函数返回值pv也是M*N矩阵,且pv(i,j) = polyval(p,A(i,j))。

1,多项式拟合示例:对ln(1+x)在[0,1]的采样数据作多项式拟合

(1)对ln(1+x)在[0,1]内采样得到观测数据x、y。

>> x = 0:0.1:1.0;
>> y = log(1+x);

(2)调用函数polyfit对观测数据x、y作三阶多项式拟合。

>> P = polyfit(x,y,3)

运行结果如下:

P对应的多项式为0.1079 - 0.3974x + 0.9825x+ 0.004x3.

(3)分别作拟合曲线和理论曲线

>> xi = 0:0.01:1.0;
>> yi = polyval(P,xi);   %多项式求值
>> plot(x,y,'ro');         %观测数据点
>> hold on;
>> plot(xi,yi,'k');         %作拟合曲线
>> plot(xi,log(1+xi),'g');    %理论曲线
>> xlabel('x');
>> ylabel('y');
>> legend('采样数据','拟合曲线','精确曲线');

效果如下:

二、指数函数拟合

1,指数函数拟合示例:对 1 - √x 在[0,1]的采样数据作指数函数拟合。

(1)对 1 - √x 在[0,1]内采样得到观测数据 x、y。

>> x = 0:0.01:0.99;
>> y = 1 - sqrt(x);

(2)调用函数polyfit对 x 、lny 作一阶多项式拟合。

>> P = polyfit(x,log(y),1)

运行结果如下:

(3)求得拟合曲线。

>> yi = exp(polyval(P,x));

(4)分别作观测数据点、拟合曲线和理论曲线。

>> yi = exp(polyval(P,x));
>> plot(x,y,'k.');
>> hold on;
>> plot(x,yi,'r');
>> xlabel('x');
>> ylabel('y');
>> legend('采样数据','拟合曲线');
>> hold off;

运行结果如下:

(5)分析拟合误差。

>> e = yi - y;
>> plot(x,e);
>> xlabel('x');
>> ylabel('误差');

运行结果如下:

三、交互式曲线拟合工具

MATLAB为用户提供了一个交互式曲线拟合工具 Basic Fitting interface。通过该工具,我们无须编写代码就可以完成一些常用的曲线拟合。

(1)载入census data数据。

>> load census

此时MATLAB基本工作空间生成两个double型列向量 cdate 和 pop,cdate 表示1790~1990内10年为间隔的年份,pop为对应年份美国的人口。

>> whos

运行结果如下:

(2)作census data点图。

>> plot(cdate,pop,'ko');

运行结果如下:

(3)在MATLAB的figure中选择Tool → Basic Fitting,即得到Basic Fitting interface 界面。

用户通过Plot fits面板选择不同的曲线拟合方式,为了便于比较,我们可以选择多种拟合方式,从而选择效果最好的一种拟合。

如果某次拟合的效果较差,MATLAB会给出警告,这时用户可以试着通过 Center and Scale X data 改善拟合效果。

如果Show equations复选框被选中,那么图形窗口会显示拟合方程;如果Plot residuals复选框被选中,那么拟合效果将显示误差余量。此外,还可以选择不同的显示类型,如Bar Plot(直方图)、Scatter Plot(散点图)、Line Plot(线图)。

如果Show norm of residuals复选框被选中,那么误差余量图将显示误差余量的范数。

单击,得到如下界面,通过该界面我们能看到拟合的数值结果:

再次单击,得到如下界面。通过该界面右侧的面板,我们可以得到任意点处拟合函数的值,如在编辑框中输入 2000:10:2080,并单击Evaluate按钮,计算结果将显示在列表框中。如果Plot evaluated result复选框被选中,那么计算结果将显示在拟合曲线中。

转载于:https://www.cnblogs.com/OctoptusLian/p/7528098.html

利用MATLAB进行曲线拟合相关推荐

  1. matlab负荷分配程序,利用MATLAB工具箱进行机组负荷优化分配

    火电厂利用负荷优化分配算法,在全厂机组组合方式一定的情况下,根据各运行机组的煤耗特性,合理分配机组所带负荷,可以使全厂总的煤耗量最小[1],从国内外调度经验可知,热效率可提高1%~2.5%.优化算法代 ...

  2. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

  3. matlab 进行非线性回归,5.利用Matlab编程进行非线性回归分析.doc

    5.利用Matlab编程进行非线性回归分析.doc §5. 利用Matlab编程计算非线性回归模型 --以Logistic曲线为例 1.原始数据 下表给出了某地区1971-2000年的人口数据(表1) ...

  4. matlab:曲线拟合

    matlab:曲线拟合 曲线拟合具体步骤如下 导入数据 选择拟合函数 拟合曲线 绘制曲线 分析结果 Matlab曲线拟合是指利用Matlab软件进行数据拟合,即根据给定的数据点,通过选择合适的拟合函数 ...

  5. Matlab的曲线拟合工具箱CFtool的使用

    今天帮同学做了一个非线性函数的曲线拟合,以前没做过,所以是摸着石头过河.费了一下午时间,终于把曲线拟合出来了,顺道也学习了使用Matlab进行曲线拟合的方法,把学习所得记录下来,和大家共享. 一.   ...

  6. MATLAB的曲线拟合

    MATLAB软件提供了基本的曲线拟合函数的命令. 曲线拟合就是计算出两组数据之间的一种函数关系,由此可描绘其变化曲线及估计非采集数据对应的变量信息. 1.线性拟合函数:regress() 调用格式:  ...

  7. 利用Matlab读取Excel数据并进行拟合

    我们在实际的项目开发中,难免会遇到数据的拟合和矫正,本文分享一种读取excel数据并进行拟合的方法,方便大家利用Matlab辅助进行工程开发. 首先将需要拟合的数据录入Excel表格,如下图 输入导入 ...

  8. matlab系统的根轨迹,实验五 利用MATLAB绘制系统根轨迹

    <实验五 利用MATLAB绘制系统根轨迹>由会员分享,可在线阅读,更多相关<实验五 利用MATLAB绘制系统根轨迹(6页珍藏版)>请在人人文库网上搜索. 1.实验五 利用MAT ...

  9. matlab对图像进行增强,利用matlab对图像进行增强处理.doc

    利用matlab对图像进行增强处理.doc 郑州轻工业学院课程设计任务书题目利用MATLAB对图像进行增强处理专业.班级电子信息工程07级学号姓名主要内容.基本要求.主要参考资料等:主要内容:在图像形 ...

最新文章

  1. iOS10 UI设计基础教程
  2. modulenotfounderror: no module 或modulenotfounderror: no module named 'matplotlib._path' 原因详解及解决办法
  3. 平面设计现在行业发展如何?
  4. 今天参加面试 上机题,整理一下
  5. asp.net ajax聊天室,ASP.NET MVC4异步聊天室的示例代码
  6. 递归回溯解决八皇后问题
  7. A problem while linking c++ to python
  8. 【转】RabbitMQ六种队列模式-2.工作队列模式
  9. Compile a native C Android application
  10. maven创建一个web项目(springmvc项目)
  11. 费纸箱手工制作机器人_环保手工:怎么把纸箱废物利用制作立体小猫(步骤图解)...
  12. CrazyWing:Python自动化运维开发实战 七、Python数据类型之数字
  13. java重置radiobutton的选项_动态添加试题选项按钮 radioButton(一)
  14. 三国志·魏书·满宠传
  15. Jetson部署实践
  16. Linux目录文件操作命令篇--(工作常用命令的深度使用,小白必收藏)
  17. 痘痘长在不同位置代表什么?
  18. 全国计算机应用水平考试图像处理,全国计算机应用水平考试图像处理考试大纲(2019年版).PDF...
  19. 初步使用bootstrap框架
  20. Node-RED教程(一):Node-RED的介绍与安装

热门文章

  1. 软件库Library之静态库\动态库和静态加载\动态加载
  2. 开发实战|知晓云 Flutter SDK 已发布,助力 200 万开发者极速上云
  3. 浅谈如何在众多offer中选择最适合自己的那一个
  4. html div横向排列
  5. Ansys workbench结构线性静力学分析-应力分析
  6. React 实现计时器
  7. Educoder JavaScript学习手册四:JS对象
  8. ubuntu配置ohmyzsh
  9. 210811_152958-Gooey实战 | 几行代码转换Python程序为图形界面应用!
  10. Android HDMI-CEC 控制服务