Matlab学以致用 - 曲线拟合
曲线拟合
使用Matlab自带的polyfit函数,可以很方便地根据现有样本数据进行多项式曲线拟合,为了有直观感受,先上例程,如下所示:
x = -:0.1:; % 样本数据x坐标
y = *x.^ + *x + + randn(size(x)); % 样本数据y坐标,添加随机噪声 p = polyfit(x, y, ); % 使用自带函数进行数据拟合,拟合的多项式维数n=
yy = polyval(p, x); % 生成拟合数据 figure, plot(x, y, '.'); % 显示原始数据
xlabel('x'), ylabel('y'); % 坐标轴
hold on, plot(x, yy, 'r', 'LineWidth', ); % 显示拟合数据
legend('raw data', 'fitting line'); % 图例
运行结果:

函数说明:
p = polyfit(x,y,n) returns the coefficients for a polynomial p(x) of degree n that is a best fit (in a least-squares sense) for the data in y. The coefficients in p are in descending powers, and the length of p is n+1

即,polyfit(x,y,n) 返回对应于样本数据y的n维多项式p(x)的系数(基于最小二乘法)。该系数按照降幂顺序排列,个数为 n+1
直线拟合
基本原理:给定一组数据[x1,x2,…,xn]和[y1,y2,…yn],已知x和y成基本线性关系,即存在一条最佳拟合直线 y = kx + b,对此,同样可以基于最小二乘法来求出系数k和b。此时,调用polyfit(x,y,n)时,应取n=1,即把直线拟合看作是一阶多项式的拟合,在此不再赘述。
另外,还可以使用基于矩阵除法的直线拟合方法,基本原理如下:
例程:
% 基于矩阵除法的直线拟合
x = [0.5 1.5 2.5 ];
y = [1.75 2.45 3.81 4.8 8.6]; n = length(x);
x = reshape(x,n,); % 生成列向量
y = reshape(y,n,);
A = [x,ones(n,)]; % 连接矩接A yy = A \ y; % 左除,相当于inv(A)*y k = yy(); % 得到k
b = yy(); % 得到b yy = polyval([k, b], x); % 生成拟合数据
figure,
plot(x, y, '*');
hold on, plot(x, yy, 'r'); % 显示拟合曲线
运行结果:

reference
Matlab学以致用 - 曲线拟合的更多相关文章
- Matlab的曲线拟合工具箱CFtool使用简介
http://phylab.fudan.edu.cn/doku.php?id=howtos:matlab:mt1-5 一. 单一变量的曲线逼近Matlab有一个功能强大的曲线拟合工具箱 cftool ...
- Matlab学以致用--模拟os任务装载情况
2012-06-08 21:26:42 用matlab来建模,仿真不同时刻os task在队列中的装载情况.输入参数如下 作为初学者,M文件写的有点长.能实现功能就算学以致用了. clear;clc ...
- 利用MATLAB进行曲线拟合
软件环境:MATLAB2013a 一.多项式拟合 多项式拟合是利用多项式最佳地拟合观测数据,使得在观测数据点处的误差平方和最小. 在MATLAB中,利用函数ployfit和ployval进行多项式拟合 ...
- matlab做曲线拟合
python 做曲线拟合 https://blog.csdn.net/qq_16583687/article/details/72723708 matlab做拟合函数,可以在命令行输入:数据x,数据y ...
- [matlab工具箱] 曲线拟合Curve Fitting
——转载网络 我的matlab版本是 2016a 首先,工具箱如何打开呢? 在 apps 这个菜单项中,可以找到很多很多的应用,点击就可以打开具体的工具窗口 本文介绍的工具有以下这些: curve F ...
- MATLAB利用散点进行函数曲线拟合
原文:MATLAB利用散点进行函数曲线拟合 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/laobai1015/article/details/77 ...
- 基于MATLAB的多项式数据拟合方法研究-毕业论文
摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...
- Matlab之数据处理
写在前面的,软件不太强大,每次保存都需要生成rec和dark的文件,在处理是只需要一个就行了,所有网上查看了下运用批处理的命令去掉多余的文件: 解决办法:windows命令模式下CMD进入文件的目录, ...
- Matlab: 白噪声与曲线拟合
在信号处理中常常需要用到曲线拟合,这里介绍一下利用最小二乘拟合一般曲线的方法,并对滤掉信号中白噪声的方法作些介绍. 为了测试拟合算法的好坏,先模拟出一个信号作为检验算法的例子: 用白噪声产生模拟信号: ...
随机推荐
- 【转】每天一个linux命令(57):ss命令
原文网址:http://www.cnblogs.com/peida/archive/2013/03/11/2953420.html ss是Socket Statistics的缩写.顾名思义,ss命令可 ...
- vuex基本熟悉与使用
vuex的入门与使用讲解 官网:https://vuex.vuejs.org/zh/guide/state.html 定义:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式 ...
- golang fmt用法举例
下标与参数的对应 例子如下: package main import ( "fmt" ) func main() { num := 10 fmt.Printf("num: ...
- ML(5):KNN算法
K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,可以简单的理解为由那离自己最近的K个点来投票决定待分类数据归为哪一类.这个算法是机器学习里面一个比较经典的算法, ...
- Android Drawable Mipmap Vector使用及Vector兼容
原文地址:http://blog.csdn.net/eclipsexys/article/details/51838119 http://blog.csdn.net/qq_15545283/artic ...
- A request has been denied as a potential CSRF attack错误解决方法
2018-05-30 13:40:50 [http-nio-8081-exec-3] [ERROR] com.opensymphony.xwork2.interceptor.ParametersInt ...
- php让页面记住表单提交后的信息方法
<body> <?php $name = $_POST['name']; echo $name; $gender = $_POST['gender']; echo $gender; ...
- img atl和a title
今天发现一个有趣的现象. <a href="#" title="a"><img src="xxx.jpg" alt=& ...
- 含有不等式约束的优化问题——KKT条件
优化问题: 其中, 定义:对于一个不等式约束,如果,那么称不等式约束是处起作用的约束. 定义:设满足,设为起作用不等式约束的下标集: 如果向量:是线性无关的,则称是一个正则点. 下面给出某个点是局部极 ...
- javascript面向对象的程序设计之Object.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptor()用于获取给定属性的描述信息,这个描述信息是一个对象. 如果是访问器属性,则这个对象的属性有configurable,enumerabl ...