matlab曲线拟合与矩阵计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0.0073
0.0193x 5 0.0110x 4 0.043x 3 0.0073x 2 0.2449x 0.2961
s=
R: [6x6 double] df: 0 normr: 2.3684e-016 mu = 0.1669 0.1499
自由度为 0 标准偏差为 2.3684e-016
Matlab应用重点(1) 曲线拟合
曲线拟合定义
在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点。针对这些分 散的数据点,运用某种你和方法生成一条连续 的曲线,这个过程称为曲线拟合。 曲线拟合可分为: (1)参数拟合 ---- 最小二乘法 (2)非参数拟合 ---- 插值法
(ⅲ)Loess局部加权散点图平滑数据,采 用线性最小二乘法和二阶多项式拟合得到的 数据进行交换; (ⅳ)Savitzky-Golay 采用未加权的线性 最小二乘法过滤数据,利用指定阶数的多项 式得到的数据进行替换; (ⅴ)Span用于进行平滑计算的数据点的 数目; (ⅵ)Degree 用于Savitzky-Golay方法 拟合多项式的阶数。
>> y=polyval(a,T) %计算多项式在某一点 处的值 y= 1.0e+003 * 0.7718 0.8132 0.8754 0.9502 1.0274 >> plot(T,R,'k+',T,y,'r*') >> hold on >> plot(T,y,'b') >> polyval(a,60) ans = 906.0212
一、数据预处理
在曲线拟合之前必须对数据进行预处理,去 除界外值、不定值和重复值,以减少人为误 差,提高拟合的精度。 数据预处理包括: (1)数据输入与查看 (2)数据的预处理 传输数据通过数据GUI来实现,查看数据点 通过曲线拟合工具的散点图来实现。
1.输入和查看数据集
wenku.baidu.com
X 例:根据表中数据进行4阶多项式拟合 1 3 4 5 6 7 8 9 10 F(x) 10 5 4 2 1 1 2 3 4
>> >> >> >> >>
x=[1 3 4 5 6 7 8 9 10]; y=[10 5 4 2 1 1 2 3 4]; [p,s]=polyfit(x,y,4); y1=polyval(p,x); plot(x,y,'go',x,y1,'b--')
.Smoothed data sets 对于所有平滑数据 集进行列表。可以增加平滑数据集,通过单 击Create smoothed data set按钮,可以 创建经过平滑的数据集。 .View按钮 打开查看数据集的GUI,以散点 图方式和工作表方式查看数据,可以选择排 除异常值的方法。 .Rename用于重命名。 .Delete可删去数据组。 .Save to workspace保存数据集。
1.多项式拟合函数
(1)Polyfit函数 P=polyfit(x,y,n) 用最小二乘法对数据进行拟合,返回n次多 项式的系数,并用降序排列的向量表示,长 度为n+1. n n 1
p( x ) p1 x p2 x
pn x pn 1
[p,s]=polyfit(x,y,n) 返回多项式系数向量p和矩阵s。s与 polyval函数一起用时,可以得到预测值的 误差估计。如数据y的误差服从方差为常数 的 独立正态分布,polyval函数将生成一个误 差范围,其中包含至少50%的预测值.
.y=polyval(p,x,[],mu)
用x=(x-u1)/u2代替x,其中mu是一个
二维向量[u1,u2], u1=mean(x),u2=std(x),通过这 样处理数据,使数据合理化。

[y,delta]=polyval(p,x,s) [y,delta]=polyval(p,x,s,mu) 产生置信区间y±delta。如果误差结果服从 标准正态分布,则实测数据落在y±delta区 间内的概率至少为50%。
Check to exclude point 挑选个别的点进 行排除,可以通过在数据表中打勾来选择要 排除的数据。 Exclude Sections 选定区域排除数据: Exclude X选择预测数据X要排除的数据 范围; Exclude Y选择响应数据Y要排除的数据范 围。
(3)其他数据预处理方法
(2)输入数据集
在输入数据之前,数据变量必须存在于 matlab的工作区间。可以通过load命令输 入变量。单击曲线拟合工具界面中的Data 按钮,打开Data对话框,在对话框中进行 设 置,可以输入数据。
Data对话框
包括两个选项卡:Data Sets 和 Smooth. Data Sets选项卡: .Import workspace vectors 把向量输 入工作区,要注意的是变量必须具有相同的 维数,无穷大的值和不定值被忽略。 X data 用于选择观测数据 Y data 用于选择X的响应数据 Weight 用于选择权重,与响应数据相联系 的向量,如果没选择,默认值为1.
(1)平滑数据
打开拟合工具箱,单击Data按钮,打开 Data对话框,选择Smooth选项卡
Smooth选项卡各选项的功能:
.Original data set 用于挑选需要拟合的数 据集; .Smoothed data set平滑数据的名称; .Method用于选择平滑数据的方法,每一个 相应数据用通过特殊的曲线平滑方法所计算 的结果来取代。平滑数据的方法包括: (ⅰ)Moving average 用移动平均值进 行替换; (ⅱ)Lowess局部加权散点图平滑数据, 采用线性最小二乘法和一阶多项式拟合得到 的数据进行替换;
无穷大、不定值在曲线拟合中可以忽略,如 果想把他们从数据集中删除,可以用isinf和 isnan置换无穷大值和缺失值。
二、曲线拟合
Matlab提供两种曲线拟合方法: (1)以函数的形式,使用命令对数据进行 拟合。这种方法比较繁琐,需要对拟合函数 有比较好的了解。 (2)用图形窗口进行操作,具有简便、快 速,可操作性强的优点。
.Preview 对所选向量进行图形化预览 .Data set name 设置数据集的名称。工具 箱可以随即产生唯一的文件名,但用户可以 重命名。 .Data sets 选项以列表的形式显示所有拟 合的数据集。当选择一个数据集时,可以对 它做如下操作: .View 查看数据集,以图标形式和列表形 式,可以选择方法排除异常值; .Rename 重命名 .Delete 删除数据组
排除法是对数据中的异常值进行排除。 (2)排除法和区间排除法 区间排除法是采用一定的区间去排除那些用 于系统误差导致偏离正常值的异常值。 在曲线拟合工具中单击Exclude按钮,可以 打开Exclude对话框

Exclusion rule name指定分离规则的名称 Existing exclusion rules列表产生的文件 名,当你选择一个文件名时,可以进行如下操 作: Copy 复制分离规则的文件; Rename重命名;delete 删去一个文件; View以图形的形式展示分离规则的文件。 Select data set 挑选需要操作的数据集; Exclude graphically允许你以图形的形式去除 异常值,排除个别的点用“×”标记。
例:输入数据,采用matlab自带的文件 census
census 有两个变量:cdate和pop。 cdate是一个年向量,包括1790-1990年, pop是对应年份的美国人口。 >> whos -file census Name Size Bytes Class Attributes cdate 21x1 168 double pop 21x1 168 double >> load census >> cftool(cdate,pop)
(1)打开曲线拟合工具界面 通过cftool命令打开曲线拟合工具界面
5个命令按钮
Data按钮:可输出、查看和平滑数据; Fitting按钮:可拟合数据、比较拟合曲线和 数据集; Exclude按钮:可以从拟合曲线中排除特殊 的数据点; Ploting按钮:在选定区间后,单击按钮, 可以显示拟合曲线和数据集; Analysis按钮:可以做内插法、外推法、微 分或积分拟合。
10 9 8 7 6 5 4 3 2
>> poly2str(p,'t') ans = -0.0049945 t^4 + 0.11461 t^3 - 0.61143 t^2 - 1.1005 t + 11.5499
1 1 2 3 4 5 6 7 8 9 10
例:电阻和温度的关系数据如下
求60度时的电阻. 温度 20.5 32.7 51.0 73.0 95.7 电阻 765 826 873 942 1032 >> T=[20.5 32.7 51 73 95.7]; >> R=[765 826 873 942 1032]; >> a=polyfit(T,R,1); >> y=poly2str(a,'t') y= 3.3987 t + 702.0968
其他的预处理方法不便通过曲线拟合工具箱 来完成,主要包括两部分: 响应数据的转换和去除无穷大、缺失值和异 常值。 响应数据的转换一般包括对数转换、指数转 换,用这些转换可以使非线性的模型线性 化,便于曲线拟合。变量的转换一般在命令 行里实现,然后把转换后的数据输入曲线拟 合工具箱,进行拟合。
[p,s,mu]=polyfit(x,y,n) 返回多项式的系数,mu是一个二维向量 [u1,u2],u1=mean(x),u2=std(x),对数据 进行预处理 x=(x-u1)/u2
(2)Polyval函数
利用该函数进行多项式曲线拟合评价
y=polyval(p,x) 返回n阶多项式在x处的值,x可以是一个矩 阵或者是一个向量,向量p是n+1个以降序 排列的多项式的系数。
例 >> x=[0 0.0385 0.0963 0.1925 0.2888 0.385]; >> y=[0.042 0.104 0.186 0.338 0.479 0.612]; >> [p,s,mu]=polyfit(x,y,5)
输出结果为: p= Columns 1 through 5 0.0193 -0.0110 -0.0430 0.2449 Column 6 0.2961 说明拟合的多项式为:
散点图
单击Data按钮
在X data和Y data两个下拉式列表框中选 择变量名,将在Data对话框中显示散点图的 预览效果:
当选择Data sets列表框中的数据集时,单 击View按钮,打开View Data Set对话框
工作表方式
2.数据的预处理
在曲线拟合工具箱中,数据的预处理主要包 括平滑法、排除法和区间排除法等。
1050
1000
950
900
850
800
750 20
30
40
50
60
70
80
90
100
例:已知年龄和运动能力的一组数据,试确定 二者的关系(根据图形指定次数)
年龄 17 19 21 23 25 27 29 第一人20.48 25.13 26.15 30.0 26.1 20.3 19.35 第二人24.35 28.11 26.3 31.4 26.92 25.7 21.3
相关文档
最新文档