【MATLAB】matlab曲线拟合与矩阵计算技巧

目录

1.曲线拟合定义

2.数据预处理

3.数据拟合

4.数据拟合matlab编程例子

5.数据拟合函数表

6.matlab中常用插值方法

7.矩阵的特征值分解


1.曲线拟合定义

        在实际工程应用和科学实践中,经常需要寻求两个(或多个)变量间的关系,而实际去只能
通过观测得到一些离散的数据点。针对这些分散的数据点,运用某种你和方法生成一条连续
的曲线,这个过程称为曲线拟合。曲线拟合可分为:
    (1)参数拟合    ---- 最小二乘法
    (2)非参数拟合 ---- 插值法

2.数据预处理

        在曲线拟合之前必须对数据进行预处理,去除界外值、不定值和重复值,以减少人为误差,提高拟合的精度。数据预处理包括:
(1)数据输入与查看
(2)数据的预处理

3.数据拟合

1.[p,s]=polyfit(x,y,n)
        返回多项式系数向量p和矩阵s。s与polyval函数一起用时,可以得到预测值的误差估计。如数据y的误差服从方差为常数的独立正态分布,polyval函数将生成一个误差范围,其中包含至少50%的预测值.

2.[p,s,mu]=polyfit(x,y,n)
返回多项式的系数,mu是一个二维向量[u1,u2],u1=mean(x),u2=std(x),对数据进行预处理
x=(x-u1)/u2

3.利用该函数进行多项式曲线拟合评价

y=polyval(p,x)
        返回n阶多项式在x处的值,x可以是一个矩阵或者是一个向量,向量p是n+1个以降序排列的多项式的系数。

4.y=polyval(p,x,[],mu),用x=(x-u1)/u2代替x,其中mu是一个二维向量[u1,u2],u1=mean(x),u2=std(x),通过这样处理数据,使数据合理化。

5.[y,delta]=polyval(p,x,s)
[y,delta]=polyval(p,x,s,mu)产生置信区间y±delta。如果误差结果服从标准正态分布,则实测数据落在y±delta区间内的概率至少为50%。


       polyfit函数的数学基础是最小二乘法曲线拟合原理,所得到的函数值在基点处的值与原来点的坐标偏差最小,常用于数据拟合。
        用法: polyfit(x,y,n ) 用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为 行向量、矩阵,y为源数据点对应的纵坐标,可为 行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况。
matlab polyfit 做出来的值从左到右表示从高次到低次的多项式系数。
MATLAB软件提供了基本的曲线拟合函数的命令.
        多项式函数拟合:a=polyfit(xdata,ydata,n)
        其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式 y=a1xn+...+anx+a n+1的系数。
多项式在x处的值y可用y=polyval(a,x,m) 计算.

4.数据拟合matlab编程例子

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--')

运行结果如下:

ans =  -0.0049945 t^4 + 0.11461 t^3 - 0.61143 t^2 - 1.1005 t + 11.5499 

5.数据拟合函数表

cfit

产生拟合的目标

fit

用库模型、自定义模型、平滑样条或内插方法来拟合数据

fitoptions

产生或修改拟合选项

fittype

产生目标的拟合形式

cflibhelp

显示一些信息,包括库模型、三次样条和内插方法等。

disp

显示曲线拟合工具的信息

get

返回拟合曲线的属性

set

对于拟合曲线显示属性值

excludedata

指定不参与拟合的数据

smooth

平滑响应数据

confint

计算拟合系数估计值的置信区间边界

differentiate

对于拟合结果求微分

integrate

对于拟合结果求积分

predint

对于新的观察量计算预测区间的边界

datastates

返回数据的描述统计量

feval

估计一个拟合结果结果或拟合类型

plot

画出数据点、拟合线、预测区间、异常值点和残差

6.matlab中常用插值方法

内插法:在已知数据点之间估计数值的过程,包括
Linear 线性内插,在每一队数据之间用不同的线性多项式拟合;
Nearest neighbor 最近邻内插,内插点在最相邻的数据点之间;
Cubic spline 三次样条内插,在每一队数据之间用不同的三次多项式拟合;
Shape-preserving 分段三次艾尔米特内插.


       平滑样条内插法:是对杂乱无章的数据进行平滑处理,可以用平滑数据的方法来拟合,平滑的方法在数据的预处理中已经介绍。
 

7.矩阵的特征值分解

        关于矩阵行列式的概念,请参考任何一本线性代数方面的书籍。如阶矩阵的行列式不等于0,即时,称矩阵非奇异,否则奇异。如果限定线性方程组的系数矩阵为方阵,当非奇异,则线性方程有惟一解。对N 阶方阵,MATLAB调用函数可得到矩阵行列式。

举例说明:

       在线性代数中,很多情况下需要求矩阵的特征值。MATLAB中求矩阵特征值的函数是eig和eigs。其中函数eigs主要应用于稀疏矩阵。 

        实际工程中的数据处理任务面临大容量数据的挑战,当涉及大型矩阵的数值计算时,一个重要的问题是存储和执行效率的问题。稀疏矩阵的概念,正是为了解决这一问题而提出的。从数学性质上看,稀疏矩阵与一般的矩阵没有差别,但在数据存储和执行算法上有着很大的不同。
        稀疏矩阵是指非零元素占全部元素的百分比很小(例如5%以下)的矩阵。有的矩阵非零元素占全部元素的百分比较大(例如近50%),但它们的分布很有规律,利用这一特点可以避免存放零元素或避免对这些零元素进行运算,这种矩阵仍可称为稀疏矩阵。

在MATLAB中,矩阵的Schur分解由Schur函数来实现,其调用格式为
    [b,c]=schur(A)
其中c矩阵为Schur矩阵。 
符号矩阵运算的函数:
symadd(a,d) —— 符号矩阵的加
symsub(a,b) —— 符号矩阵的减
symmul(a,b) —— 符号矩阵的乘
symdiv(a,b) ——  符号矩阵的除
sympow(a,b) —— 符号矩阵的幂运算
symop(a,b) —— 符号矩阵的综合运算
symsize —— 求符号矩阵维数
charploy —— 特征多项式
determ —— 符号矩阵行列式的值
eigensys —— 特征值和特征向量
inverse —— 逆矩阵
transpose —— 矩阵的转置
jordan ——  约当标准型
simple —— 符号矩阵简化

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simuworld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值