MATLAB教程第5章 MATLAB数据分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f求极限,返回值为求得的右极限。
5.4 本章小结
本章介绍对一些基本的数据分析进行了详细的介绍,主要包 括多项式、插值和函数的极限。多项式的操作方法,主要 包括多项式的建立、多项式求值、多项式乘法和除法、多 项式求导、多项式展开和拟合等等。插值函数,主要包括 一维插值、二维插值、样条插值和高维插值等内容。利用 MATLAB进行数据分析非常的灵活,需要读者熟练掌握 。
y=limit(f):当x趋近于0时,该函数对函数f求极限。 y=limit(f, x, a)或y=limit(f, a):当x趋近于常数a时,对函数f
求极限。 y=limit(f, x, a, 'left'):当x从左侧趋近于常数a时,对函数f
求极限,返回值为求得的左极限。 y=limit(f, x, a, ‘right’):当x从右侧趋近于常数a时,对函数
5.2.3 样条插值
在MATLAB中,三次样条插值可以采用函数spline( ),该函 数的调用格式为:
yi=spline(x, y, xi):通过初始数据产生插值函数,然后对数 据xi进行插值,返回值yi=f(xi)。采用这种调用方式时, 其相当于yi=interp1(x, y, xi, 'spline')。
1.一维多项式插值 在MATLAB中,一维多项式插值采用函数interp1( )进行实
现。 2.一维快速傅里叶插值 在MATLAB中,一维快速傅里叶插值通过函数interpft( )来
实现,该函数利用傅里叶变换将输入数据变换到频域,然 后用更多点的傅里叶逆变换,变换回时域,其结果是对数 据进行增采样。
[r, p, k]=residue(b, a):求多项式之比b/a的分式展开,函 数的返回值r是余数,p是部分分式的极点,k是常数项。 如果多项式a没有重根,展开的形式如下:
b(x) a(x)
Leabharlann Baidu
r1 x p1
r2 x p2
L
rn x pn
ks
5.1.6 多项式拟合
在MATLAB中,函数polyfit( )采用最小二乘法对给定的数据 进行多项式拟合,得到该多项式的系数。该函数的调用方 式为:p = polyfit(x, y, n),采用n次多项式来拟合数据x 和y,得到以p为系数的多项式。该函数使得p(x)与y最小 均方误差最小。
pp=spline(x, y):该函数通过对初始数据x和y产生插值函数 ,并进行返回。然后利用函数ppval( )对数据xi进行插值 计算,其调用方式为yi=ppval(pp, xi),其中pp为插值函 数。
5.2.4 高维插值
在MATLAB中,采用函数interp3( )进行三维插值,该函数 的调用格式为:
5.1.7 曲线拟合图形用户接口
为了方便用户的使用,在MATLAB中提供了曲线拟合的图形 用户接口。它位于MATLAB图形窗口的Tools菜单下面的 Basic Fitting菜单。在使用该工具时,首先将需要拟合的 数据采用函数plot( )画图,其MATLAB代码如下:
>> clear all; x=[0.2 0.3 0.5 0.6 0.8 0.9 1.2 1.3 1.5 1.8]; y=[1 2 3 5 6 7 6 5 4 1]; figure; plot(x,y,'bo');
vi=interp3(x, y, z, v, xi, yi, zi):该函数通过初始数据产生插 值函数,然后对数据进行插值,返回值为。
vi=interp3(x, y, z, v, xi, yi, zi, method):该函数中method 为可以采用的插值方法,共有4种,分别是'nearest'、 'linear'、'spline'和'cubic',其中线性插值为默认的插值 方法。
此外,在MATLAB中进行高维插值的函数还有interpn( ), 可以进行n维插值,
5.3 函数的极限
极限理论是微积分学的理论基础。在MATLAB中,采用函数 limit( )计算数列或函数的极限,可以非常方便的进行极限 运算。下面介绍如何利用函数limit( )求极限。
5.3.1 极限的概念
5.1 多项式及其函数
MATLAB提供了一些处理多项式的专用函数,用户可以很方 便地进行多项式的建立、多项式求值、乘法和除法运算, 以及求多项式的导数和微分、多项式的根、多项式的展开 和拟合等。
5.1.1 多项式的建立
MATLAB语言中,对于多项式,用多项式的系数按照降幂次 序存放在向量中。顺序必须是从高到低进行排列。例如, 多项式可以用系数向量来表示。多项式就转换为多项式系 数向量问题,次多项式用一个维的行向量表示,在多项式 中缺少的幂次要用“0”来补齐。
5.2 插值
在数字信号处理和图像处理中,插值是极其常用的方法。 MATLAB提供了大量的插值函数。在MATLAB中,插值 函数保存在MATLAB工具箱的polyfun子目录下。下面对 一维插值、二维插值、样条插值和高维插值分别进行介绍 。
5.2.1 一维插值
一维插值是进行数据分析的重要方法,在MATLAB中,一维 插值有基于多项式的插值和基于快速傅里叶的插值两种类 型。一维插值就是对一维函数进行插值。
在MATLAB中,采用函数polyder( )进行多项式的求导,调用方 式为:
y=polyder(p):对以向量p为系数的多项式求导;
y=polyder(a, b):对以a和b为系数的多项式的乘积进行求导;
[q,d]=polyder(b, a):返回以b为系数的多项式除以以a为系数 的多项式的商的导数,并以q/d格式表示。
数列的极限定义为:设{yn}是数列,A是常数,若对于任 意给定的正数ε(无论它多么小),总存在正整数N,使 得当n>N时,都有 |yn-A|< ε
则称该数列以A为极限。有极限的数列称为收敛数列。
5.3.2 求极限的函数
函数的极限包括左极限和右极限。左极限和右极限统称为单 侧极限。极限存在且等于A的充分必要条件是左极限与右 极限都存在且相等。
2.多项式的积分
在MATLAB中,使用函数polyint( )对多项式进行积分运算,其 调用方式为:
polyint(p, k):返回以向量p为系数的多项式的积分,积分的常 数项为k;
polyint(p):返回以向量p为系数的多项式的积分,积分的常数 项为默认值0。
5.1.5 多项式展开
在MATLAB中,有理多项式用他们的分子多项式和分母多项 式进行表示,函数residue( )可以将多项式之比用部分分 式展开,也可以将一个部分分式用多项式之比进行表示。
5.2.2 二维插值
二维插值主要用于图像处理和数据的可视化,其基本思想与 一维插值相同,对函数进行插值。
zi=interp2(x, y, z, xi, yi):通过初始数据x、y和z产生插值 函数y = f(x, y),返回值zi是(xi, yi)在函数f(x, y)上的 值。
zi=interp2(x, y, z, xi, yi, method):其中method为可采用 的插值方法。二维插值采用的方法只有4种,分别是 'nearest'、'linear'、'spline'和'cubic',其中线性插值为 默认的插值方法。
5.1.3 多项式乘法和除法
在MATLAB中,使用函数conv( )对多项式进行乘法运算。其 调用格式为c=conv(a, b),a和b为多项式的系数向量,该函 数实现向量a和b的卷积,在代数上相当于多项式a乘以多项 式b,其中c为相乘所产生的多项式的系数向量。
5.1.4 多项式的导数和积分
1.多项式的导数
第5章 MATLAB数据分析
针对数据分析和处理,MATLAB提供了大量的函数,非常方 便和灵活。本章将详细的介绍利用MATLAB进行一些基 本的数据分析,主要包括多项式及其函数,插值,以及函 数的极限。MATLAB能够很好的解决多项式运算问题, 这些函数用于多项式的建立、多项式求值、多项式乘法和 除法、多项式求导、多项式展开和拟合等等。插值函数, 主要包括一维插值、二维插值、样条插值和高维插值等内 容。MATLAB提供了非常强大的函数,非常方便和灵活 的求得函数的极限。
5.1.2 多项式的求值与求根
1.多项式求值
在MATLAB中,提供了两个函数对多项式进行求值,函数 polyval( )和polyvalm( )。函数polyval( )以数组或矩阵 中的元素为计算单位,函数polyvalm( )以矩阵为计算单 位。
2.多项式求根
在MATLAB中,利用roots( )函数用来求多项式的根,其调 用格式为:x=roots(p),其中参数p为多项式系数,输出 参数x为多项式的根。对于n次多项式具有n个根,这些根 可能是实根,也可能是共轭复根。在MATLAB中,如果 已经知道多项式的根,可以利用函数poly( )求多项式的系 数,其调用格式为:y=poly(x),输入参数x为根,输出参 数y为得到的多项式系数向量。
5.4 本章小结
本章介绍对一些基本的数据分析进行了详细的介绍,主要包 括多项式、插值和函数的极限。多项式的操作方法,主要 包括多项式的建立、多项式求值、多项式乘法和除法、多 项式求导、多项式展开和拟合等等。插值函数,主要包括 一维插值、二维插值、样条插值和高维插值等内容。利用 MATLAB进行数据分析非常的灵活,需要读者熟练掌握 。
y=limit(f):当x趋近于0时,该函数对函数f求极限。 y=limit(f, x, a)或y=limit(f, a):当x趋近于常数a时,对函数f
求极限。 y=limit(f, x, a, 'left'):当x从左侧趋近于常数a时,对函数f
求极限,返回值为求得的左极限。 y=limit(f, x, a, ‘right’):当x从右侧趋近于常数a时,对函数
5.2.3 样条插值
在MATLAB中,三次样条插值可以采用函数spline( ),该函 数的调用格式为:
yi=spline(x, y, xi):通过初始数据产生插值函数,然后对数 据xi进行插值,返回值yi=f(xi)。采用这种调用方式时, 其相当于yi=interp1(x, y, xi, 'spline')。
1.一维多项式插值 在MATLAB中,一维多项式插值采用函数interp1( )进行实
现。 2.一维快速傅里叶插值 在MATLAB中,一维快速傅里叶插值通过函数interpft( )来
实现,该函数利用傅里叶变换将输入数据变换到频域,然 后用更多点的傅里叶逆变换,变换回时域,其结果是对数 据进行增采样。
[r, p, k]=residue(b, a):求多项式之比b/a的分式展开,函 数的返回值r是余数,p是部分分式的极点,k是常数项。 如果多项式a没有重根,展开的形式如下:
b(x) a(x)
Leabharlann Baidu
r1 x p1
r2 x p2
L
rn x pn
ks
5.1.6 多项式拟合
在MATLAB中,函数polyfit( )采用最小二乘法对给定的数据 进行多项式拟合,得到该多项式的系数。该函数的调用方 式为:p = polyfit(x, y, n),采用n次多项式来拟合数据x 和y,得到以p为系数的多项式。该函数使得p(x)与y最小 均方误差最小。
pp=spline(x, y):该函数通过对初始数据x和y产生插值函数 ,并进行返回。然后利用函数ppval( )对数据xi进行插值 计算,其调用方式为yi=ppval(pp, xi),其中pp为插值函 数。
5.2.4 高维插值
在MATLAB中,采用函数interp3( )进行三维插值,该函数 的调用格式为:
5.1.7 曲线拟合图形用户接口
为了方便用户的使用,在MATLAB中提供了曲线拟合的图形 用户接口。它位于MATLAB图形窗口的Tools菜单下面的 Basic Fitting菜单。在使用该工具时,首先将需要拟合的 数据采用函数plot( )画图,其MATLAB代码如下:
>> clear all; x=[0.2 0.3 0.5 0.6 0.8 0.9 1.2 1.3 1.5 1.8]; y=[1 2 3 5 6 7 6 5 4 1]; figure; plot(x,y,'bo');
vi=interp3(x, y, z, v, xi, yi, zi):该函数通过初始数据产生插 值函数,然后对数据进行插值,返回值为。
vi=interp3(x, y, z, v, xi, yi, zi, method):该函数中method 为可以采用的插值方法,共有4种,分别是'nearest'、 'linear'、'spline'和'cubic',其中线性插值为默认的插值 方法。
此外,在MATLAB中进行高维插值的函数还有interpn( ), 可以进行n维插值,
5.3 函数的极限
极限理论是微积分学的理论基础。在MATLAB中,采用函数 limit( )计算数列或函数的极限,可以非常方便的进行极限 运算。下面介绍如何利用函数limit( )求极限。
5.3.1 极限的概念
5.1 多项式及其函数
MATLAB提供了一些处理多项式的专用函数,用户可以很方 便地进行多项式的建立、多项式求值、乘法和除法运算, 以及求多项式的导数和微分、多项式的根、多项式的展开 和拟合等。
5.1.1 多项式的建立
MATLAB语言中,对于多项式,用多项式的系数按照降幂次 序存放在向量中。顺序必须是从高到低进行排列。例如, 多项式可以用系数向量来表示。多项式就转换为多项式系 数向量问题,次多项式用一个维的行向量表示,在多项式 中缺少的幂次要用“0”来补齐。
5.2 插值
在数字信号处理和图像处理中,插值是极其常用的方法。 MATLAB提供了大量的插值函数。在MATLAB中,插值 函数保存在MATLAB工具箱的polyfun子目录下。下面对 一维插值、二维插值、样条插值和高维插值分别进行介绍 。
5.2.1 一维插值
一维插值是进行数据分析的重要方法,在MATLAB中,一维 插值有基于多项式的插值和基于快速傅里叶的插值两种类 型。一维插值就是对一维函数进行插值。
在MATLAB中,采用函数polyder( )进行多项式的求导,调用方 式为:
y=polyder(p):对以向量p为系数的多项式求导;
y=polyder(a, b):对以a和b为系数的多项式的乘积进行求导;
[q,d]=polyder(b, a):返回以b为系数的多项式除以以a为系数 的多项式的商的导数,并以q/d格式表示。
数列的极限定义为:设{yn}是数列,A是常数,若对于任 意给定的正数ε(无论它多么小),总存在正整数N,使 得当n>N时,都有 |yn-A|< ε
则称该数列以A为极限。有极限的数列称为收敛数列。
5.3.2 求极限的函数
函数的极限包括左极限和右极限。左极限和右极限统称为单 侧极限。极限存在且等于A的充分必要条件是左极限与右 极限都存在且相等。
2.多项式的积分
在MATLAB中,使用函数polyint( )对多项式进行积分运算,其 调用方式为:
polyint(p, k):返回以向量p为系数的多项式的积分,积分的常 数项为k;
polyint(p):返回以向量p为系数的多项式的积分,积分的常数 项为默认值0。
5.1.5 多项式展开
在MATLAB中,有理多项式用他们的分子多项式和分母多项 式进行表示,函数residue( )可以将多项式之比用部分分 式展开,也可以将一个部分分式用多项式之比进行表示。
5.2.2 二维插值
二维插值主要用于图像处理和数据的可视化,其基本思想与 一维插值相同,对函数进行插值。
zi=interp2(x, y, z, xi, yi):通过初始数据x、y和z产生插值 函数y = f(x, y),返回值zi是(xi, yi)在函数f(x, y)上的 值。
zi=interp2(x, y, z, xi, yi, method):其中method为可采用 的插值方法。二维插值采用的方法只有4种,分别是 'nearest'、'linear'、'spline'和'cubic',其中线性插值为 默认的插值方法。
5.1.3 多项式乘法和除法
在MATLAB中,使用函数conv( )对多项式进行乘法运算。其 调用格式为c=conv(a, b),a和b为多项式的系数向量,该函 数实现向量a和b的卷积,在代数上相当于多项式a乘以多项 式b,其中c为相乘所产生的多项式的系数向量。
5.1.4 多项式的导数和积分
1.多项式的导数
第5章 MATLAB数据分析
针对数据分析和处理,MATLAB提供了大量的函数,非常方 便和灵活。本章将详细的介绍利用MATLAB进行一些基 本的数据分析,主要包括多项式及其函数,插值,以及函 数的极限。MATLAB能够很好的解决多项式运算问题, 这些函数用于多项式的建立、多项式求值、多项式乘法和 除法、多项式求导、多项式展开和拟合等等。插值函数, 主要包括一维插值、二维插值、样条插值和高维插值等内 容。MATLAB提供了非常强大的函数,非常方便和灵活 的求得函数的极限。
5.1.2 多项式的求值与求根
1.多项式求值
在MATLAB中,提供了两个函数对多项式进行求值,函数 polyval( )和polyvalm( )。函数polyval( )以数组或矩阵 中的元素为计算单位,函数polyvalm( )以矩阵为计算单 位。
2.多项式求根
在MATLAB中,利用roots( )函数用来求多项式的根,其调 用格式为:x=roots(p),其中参数p为多项式系数,输出 参数x为多项式的根。对于n次多项式具有n个根,这些根 可能是实根,也可能是共轭复根。在MATLAB中,如果 已经知道多项式的根,可以利用函数poly( )求多项式的系 数,其调用格式为:y=poly(x),输入参数x为根,输出参 数y为得到的多项式系数向量。