软件环境: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.1:1.0;
>> y = log(+x);

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

>> P = polyfit(x,y,)

运行结果如下:

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

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

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

效果如下:

二、指数函数拟合

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

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

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

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

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

运行结果如下:

(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复选框被选中,那么计算结果将显示在拟合曲线中。

利用MATLAB进行曲线拟合的更多相关文章

  1. [转] 利用Matlab提取图片中曲线数据

    原文地址 网易博客 前一段时间看到一篇文章"利用Matlab提取图图片中的数据",觉得思路挺好,遂下载下来研究了一番,发现作者所编写的程序没有考虑原始图片非水 平放置的情况,而实际 ...

  2. 利用Matlab生成一个网格化的三维球面(生成直角坐标)

    利用Matlab生成一个网格化的三维球面,分别对径向方向.经度方向和纬度方向进行网格化,代码如下: %生成一个笛卡尔坐标系下球面网格的x,y,z坐标 %r为球面距离 %nJingdu,nWeidu分别 ...

  3. 【转】利用matlab生成随机数函数

    原文地址:利用matlab生成随机数函数 rand(n):生成0到1之间的n阶随机数方阵  rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数) betarnd:贝塔分布的随机数生成 ...

  4. 模式识别:利用MATLAB生成模式类

    近期開始了模式识别的学习,在此之前须要对模式和模式类的概念有一个了解,这里使用MATLAB实现一些模式类的生成.在此之前,引用百科上对于模式识别和模式类的定义.也算加深以下了解: 模式识别(Patte ...

  5. 【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)

    此篇是利用matlab对caffemodel的卷积核进行可视化.只介绍了卷积核的可视化,不涉及特征图的可视化. 是参考此博客: http://blog.csdn.net/zb1165048017/ar ...

  6. 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数

      clear all;close all;clc; I = imread('rice.png'); I = im2bw(I); J = bwperim(I); % 提取二值图像图像边缘 figure ...

  7. 利用Matlab快速绘制栅格地图

    代码演示 % 基于栅格地图的机器人路径规划算法 % 第1节:利用Matlab快速绘制栅格地图 clc clear close all %% 构建颜色MAP图 cmap = [1 1 1; ... % ...

  8. Matlab的曲线拟合工具箱CFtool使用简介

    http://phylab.fudan.edu.cn/doku.php?id=howtos:matlab:mt1-5 一. 单一变量的曲线逼近Matlab有一个功能强大的曲线拟合工具箱 cftool ...

  9. 利用matlab摄像机标定

    (1)输入图像 "Image names"键 Matlab的图形窗口显示出20幅靶标图像 (2) 提取角点 "Extract grid corners"键. 输 ...

随机推荐

  1. tengine 增加ngx_http_cache_purge_module 模块

    wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz tar zxvf ngx_cache_purge-2.1.tar.gz -- ...

  2. Booleans

    两个取值false和true.但要注意Lua中所有的值都可以作为条件.在控制结构的条件中除了false和nil为假,其他值都为真.所以Lua认为0和空串都是真.

  3. 沐雪多用户微信公众平台开发源码,商城小程序源码(2018年最新的asp.net C# 微信源码,小程序源码)

    现售价5400元,就可以搭建自己的微信平台啦 购买地址:https://item.taobao.com/item.htm?id=539102325336 该系统是由[上海沐雪网络]独家授权销售,其他地 ...

  4. Lua应用——tables应用,查找是否为保留字

    Lua中的table功能确实强大.因为table是Lua中的唯一数据结构.今天有点晕,少说两句多拷贝代码吧. 实例: 假定你想列出在一段源代码中出现的所有标示符,某种程度上,你需要过滤掉那些语言本身的 ...

  5. 【转】(六)unity4.6Ugui中文教程文档-------概要-UGUI Animation Integration

    原创至上,移步请戳:(六)unity4.6Ugui中文教程文档-------概要-UGUI Animation Integration 5.Animation Integration(动画集成) 动画 ...

  6. 【驱动】LCD驱动(FrameBuffer)分析

    背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示文字或图像 ...

  7. windows安装php和mysql

    windows安装php和mysql 测试环境:windows2008-64位主机 1.下载护卫神php一件安装包 https://www.huweishen.com/soft/php/#phpdow ...

  8. ubuntu wireshark找不到网卡及开启IP转发

    wireshark找不到网卡问题? 解决办法1:sudo wireshark 解决办法2: 1)添加用户组,我以wireshark为例 sudo groupadd wireshark 2)将dumpc ...

  9. 确保安全的HTTPS(使用混合加密的HTTPS,前端面试常问)第二篇

    苹果已经确定,在iOS9中通信机制采用HTTPS了. 第一篇:http://www.cnblogs.com/ziyi--caolu/p/4742577.html 上一篇详细介绍了为什么要对HTTP进行 ...

  10. 5. 集成学习(Ensemble Learning)GBDT

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...