matlab做数据拟合
数据拟合的目的是使用一个较为简单的函数去逼近一个复杂的、未知的函数,在MATLAB中数据拟合的原理是最小拟合的最小二乘原理,其中polyfit与polyval是最基本的拟合方法,除此之外,MATLAB还提供了更为直接简单的数据拟合工具,cftool,下面举一个例子,介绍这两种数据拟合的方法。
(1)先从excel中导入数组;
其中 x数据去第一列; y取第二列; clear all;clc; [filename,pathname]=uigetfile('*.xls','选择数据文件'); [num txt]=xlsread([pathname,filename]); x=num(:,1); y=num(:,3);
(2)输入cftool命令
cftool是matlab一个强大的曲线拟合工具箱。能实现多种线性、非线性的曲线拟合。此命令可以打开matlab中最常用的函数拟合工具箱。不过cftool只能进行单个变量的拟合,混合型曲线拟合效果不太好。。
在打开的对话框中选取 x y 作拟合,可以选择多个拟合的形式,如 多项式拟合,指数,等
拟合后的结果
General model of sin1: ....... (函数形式) Coefficients (with 95%conffidence range) (95%致信区间内的拟合常数)
a1=... ( ......) (等号后面是平均值,括号里是范围) .... Godness of fit: (统计结果) SSE: ... (方差) R-squared: ... (决定系数,不知道做什么的) Adjusted R-squared: ... (校正后的决定系数,如何校正的不得而知) RMSE: ... (标准差)
说明
用户自定义的函数类型
指数逼近,有2种类型;傅立叶逼近,有7种类型;高斯逼近,有8种类型,基础型是 a1exp(-((x-b1)/c1)^2);插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving;多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~ 幂逼近,有2种类型,ax^b 、ax^b + c;有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型;平滑逼近 正弦曲线逼近,有8种类型,基础型是 a1sin(b1x + c1); Weibull:只有一种,ab*x^(b-1)exp(-ax^b)
- 点赞
- 收藏
- 关注作者
评论(0)