MATLAB课程PPT第五章.ppt_第1页
MATLAB课程PPT第五章.ppt_第2页
MATLAB课程PPT第五章.ppt_第3页
MATLAB课程PPT第五章.ppt_第4页
MATLAB课程PPT第五章.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章 数据分析 5.1 线性方程组 5.1.1 线性方程求解 在矩阵的表示方法中,线性方程的求解可以表述为:给定两个 矩阵A和B,求 X 的唯一解使得: AX=B 或 XA=B X=AB: 表示求矩阵方程AX=B的解 X=B/A: 表示求矩阵方程XA=B的解 (B/A)=(AB) 矩阵A并不要求是方阵,若A是m*n的矩阵,则存在以 下三种情况: 1)m=n:适定方程组,寻求精确解; 2)mn:超定方程组,寻求最小二乘解; 3)mn:不定方程组,寻求基本解. 对于不同的情况,左除算子采用不同的算法求解。 5.1.1 线性方程求解 5.1.1 线性方程求解 1、适定方程组: 一般形式的线性方程组为: Ax=b 或 AX=B 求解命令是: x=Ab X=AB 2、超定方程组: 对于超定方程,在MATLAB中,利用左除命令寻求它的最小二乘解 ,其调用格式是: x=Ab A*x并不是精确的等于b,但它们的差值小于原始数据的测量误差 。 3、不定方程组: 解不唯一,MATLAB 将寻求一个基本解,其中至多只有m个非零元 素。 5.1.2 矩阵分解 MATLAB中几种常用的矩阵分解方法,相关的函数见下表: 命 令功 能 说说 明 cholcholesky分解对对称正定矩阵阵的分解,用于求解方程组组 lu矩阵阵LU分解将矩阵阵采用LU分解,直接求解线线性方程 组组 qr正交三角分 解 将矩阵阵分解为为正交矩阵阵或酉矩阵阵和上三 角矩阵阵 5.1.2 矩阵分解 Cholesky 分解的函数 chol 的调用格式为: R=chol(X): X是对称正定矩阵,R是上三角阵(对角线为正),使得 R *R=X,若X是非正定的,将给出错误信息。 R,p=chol(X):不会给出错误信息,若X是正定的,p等于0,R同上 ;若X不是正定的,则p为正整数,R是上三角矩阵,它的阶数为q=p -1, Cholesky 分解允许对线性方程组 A*x=b 进行如下替换: R*R*x=b 由于左除算子可以处理三角矩阵,因此可以得出: x=R(Rb) 一、Cholesky分解 5.1.2 矩阵分解 二、 LU分解 函数lu 的调用格式: L,U=lu(A): U是上三角矩阵,L是“心理上”的下三角阵,实际 上, 它是下三角阵和置换矩阵的乘积,结果使得:A=L*U L,U,P=lu(A):L是下三角矩阵,上三角矩阵U 和置换矩阵P,使 得: P*A=L*U LU 分解允许对线性方程 A*x=b 进行如下计算: x=U(Lb) LU分解或 Gaussian 消去法,可以将任何方阵表示为 一个下三角矩阵L和上三角矩阵U的乘积,即:A=LU 5.1.2 矩阵分解 三、正交分解 正交分解或QR分解,将方阵或矩形矩阵A分解为一个正交矩阵 Q和一个上三角矩阵R 的乘积,即: A=QR 或 AP=QR 函数qr的用法如下: Q,R=qr(X):上三角矩阵R和正交矩阵Q,使得:X=Q*R (R与X同维 ) Q,R,E=qr(X):置换矩阵E,使得: X*E=Q*R Q,R=qr(X,0)和Q,R,E=qr(X,0):其中,E是一个置换向量, 使得: Q*R=X(:,E)。 5.2 非线性数值计算 5.2.1 非线性函数最小值点 1、求单变量函数最小值点 求单变量函数最小值点的函数是:fminbnd,其调用格式是: x,fval,exitflag,output= fminbnd(fun,x1,x2,options,p1,p2,) fun 是被计算最小值点的单变量函数(目标函数)名称字符串 ;x1、x2是目标函数自变量的取值范围;p1、p2,是向目标函数 传递的附加参数;options是一个结构类型的变量,用于指定算法 的优化参数。该结构的内容用函数 optimset 进行定义,若没有优 化参数要设置,可以在options的位置用“ ”作为占位符。 5.2.1 非线性函数最小值点 1、求单变量函数最小值点 Display: 显示的层次,off 不显示输出内容,iter 显示每次 迭代的输出,final只显示最后一次的输出; MaxFunEvals: 所允许的函数的最大求值次数; MaxIter: 所允许的最大迭代数; TolX: 终止迭代的容差值 函数fminbnd使用了结构 options 的四个域,它们的含 义如下: x,fval,exitflag,output= fminbnd(fun,x1,x2,options,p1,p2, ) 输出参数:x是 fun 的最小值点;fval是目标函数在 x 处 的值; exitflag描述函数fminbnd退出的情况,大于0表示函数 收敛到了解x,等于0表示达到了所允许的函数最大求值次数。 output是一个结构变量,包含了计算的信息,它共有三个 域: 5.2.1 非线性函数最小值点 output.algorithm: 使用的算法; output.funcCount: 函数求值次数; output.iterations: 迭代次数。 x,fval,exitflag,output= fminbnd(fun,x1,x2,options,p1,p2, ) 例:求内联函数 f(x,a)=x4+2x2+2ax+5 的最小值。 5.2.1 非线性函数最小值点 函数fminsearch用于求多变量函数的最小值点,其调用格式是 : x,fval,exitflag,output= fminsearch(fun,x0,options,p1,p2,) 其中,x0 是最小值点的初始值,一般是猜测的;结构options 的域比函数 fminbnd 中增加一个 - TolFun,指终止计算的目标 函数容差值; 退出标志 exitflag 也比函数 fminbnd 中增加一种情况:小于 0,表示目标函数不收敛。 2、求多变量函数最小值点 例:求函数 f(x)=100(x2-x12)2+(a-x1)2 的最小值。 5.2.2 单变量函数零点 求单变量函数零点的函数是fzero,其调用格式是: x,fval,exitflag,output= fzero(fun,x0,options,p1,p2,) 其中,参数 x0 指定搜索的起始点,同时也预定搜索零点的大 致位置; 结构options中只有两个域:Display 和 TolX 输出参数 exitflag 大于0表示找到了函数的零点,小于0表示 没有找到零点或在搜索过程中遇到了无穷大的函数值。 例:求函数 f(x)=x4-ax-5a+7 的零点 5.2.3 常微分方程(组)数值解 刚性问题,对于一个常微分方程组,如果其 Jacobian 矩阵的 特征值相差十分悬殊,那么这个方程组就称为刚性方程组。 七种函数对应解法的特点: 1)ode45:四阶/五阶龙格库塔法,单步解法,对很多问题都是 首先试用的最好方法,但不能解决刚性问题; 2)ode23:二阶/三阶龙格库塔法,单步解法,在误差容许范围 较宽且存在轻微刚性时比ode45效果好; 3)ode113:可变阶次Adams-Bashforth-Moulton PECE算法,多步 解法,比ode45更适合于误差容许范围要求较严格的情况,不能解 决刚性问题. MATLAB提供了七种解法,分别由七个不同的函数来完成, 它们是: ode45 ode23 ode113 ode15s ode23s ode23t ode23tb 5.2.3 常微分方程(组)数值解 4)ode15s:可变阶次的数值微分公式算法,多步解法,若用 ode45效果很差或者失败,可以考虑试用ode15s,且可解决刚 性问题; 5)ode23s:基于修正的 Rosenbrock 公式,单步解法,比 ode15s更适用于误差容许范围较宽的情况,可以解决一些采用 ode15s效果不好的刚性问题; 6)ode23t:采用自由内插法实现的梯形规则,适用于系统存在 适度刚性并要求无数值衰减的情况; 7)ode23tb:龙格库塔公式的第一级采用梯形规则、第二级采 用Gear法。对于误差容限较宽的情况,比ode15s效果更好,可 解决刚性问题。 5.2.3 常微分方程(组)数值解 函数ode45的调用格式为: T,Y=ode45(F,tspan,y0,options,p1,p2,) 输入参数:F 是常微分方程组的文件名字符串;tspan是向 量,一般形如:t0 tfinal,指定求解的起始值和终止值,若需要 得到指定时刻的结果,也可以采用:t0,t1,tfinal;y0是初始 状态向量;options是一些可选的综合参数,由函数odeset进行设 置。 输出参数:T为时间列向量,Y是数值解矩阵,它的每一行对应 着列向量T中的一个时间值。 例1:解常微分方程组,已知常微分方程组及初始条件如下: y1=y2y3 y1(0)=0 y2=-y1y3 y2(0)=1 y3=-2y1y2 y3(0)=-1 5.2.3 常微分方程(组)数值解 例2:解常微分方程组,已知二阶微分方程及初始条件 : y=1000(1-y2)y-y y(0)=0,y(0)=1 解:令 y1=y,y2=y1,则该方程化为如下的一阶常微分方程 组: y1=y2 y2=1000(1-y12)y2-y1 5.2.4 函数的数值积分 求解函数的数值积分的函数为 quadl 和 quad ,其调用 格式为: quadl(fun,a,b,Tol,p1,p2,) 例1:在区间 0.01,1 上求 的数值积分,设置绝对 误差容限为 1e-8。 例2:在区间上求 的数值积分。 5.3 多项式 5.3.1 多项式表示法 MATLAB采用行向量表示多项式,将多项式的系数按降幂次序存 放在行向量中,多项式:p(x)=a0xn+a1xn-1+an-1x+an的系数行向量 为:p=a0 a1 an,注意顺序必须是从高次幂向低次幂。 为了将整个多项式输入MATLAB,可以采用类似于向量创建的方 法,直接输入多项式的系数行向量。 例如:多项式 x4+3x2-5x+1 可以采用系数向量1 0 3 5 1表示,注意多项式中缺少的幂次要用“0”补齐。 5.3.2 求多项式的根,由根创建多项式 函数roots用于求多项式的根,其调用形式为: R=roots(C) 函数poly由给定的根创建多项式,其调用格式为: C=poly(R) 按照输入参数R的不同形式,该函数的输出参数C有以下两 种情况: 1)R是向量,那么C将是多项式系数行向量,且根向量为R的 ; 2)R为N*N矩阵,那么返回值C将是矩阵R特征多项式的系数行 向量,它由N+1个元素组成。 例:求多项式 x4-x3+9x-2 的根 5.3.3 多项式乘和除 函数conv用于实现向量的卷积运算,函数deconv用于实现向 量的解卷运算。 函数conv的调用格式是: C=conv(a,b) 函数deconv的调用格式如下: q,r=deconv(c,a) 例:多项式乘除运算: 以多项式 a(x)=x3-2x2+1 和 b(x)=3x2-4x+5为例 5.3.4 多项式导数 函数 polyder 可计算多项式的导数,它即可以计算单个多 项式的导数,又可以计算两个多项式积和商的导数。 函数 polyder 的调用格式为: polyder(p): 计算系数向量为p的多项式的导数; polyder(a,b) 或 c=polyder(a,b):计算多项式a*b的导数; q,d=polyder(a,b):计算多项式的商a/b的导数,用q/d表示 。 例:多项式 a(x)=3x2+2x-7 和 b(x)=4x3-3x2+x-1 的导数 5.3.5 多项式的值 函数 polyval 用于计算给定的自变量值时,多项式的值 函数 polyval 的调用格式: y=polyval(p,x) 其中,p为多项式的系数向量,x是指定的自变量的值。 函数 polyvalm 计算矩阵多项式的值,即以矩阵整体作为多 项式的自变量进行计算。该函数用法为: y=polyvalm(p,x) 例:求多项式的值,p(x)=5x2+4x+3 5.3.6 多项式曲线拟合 函数 polyfit 用于对给定的数据进行多项式曲线拟 合,最后给出拟合多项式系数,此函数的调用格式为: p=polyfit(x,y,n) 其中,x和y是数据的横纵坐标向量,n是规定的拟 合多项式的阶数,p是返回多项式的系数向量。 5.3.7 部分分式展开 函数 residue 用于将两个多项式之比用部分分式展开,该函 数的调用格式是: r,p,k=residue(a,b):求多项式之比a/b的部分分式展开, r是留数、p是极点、k是直接项; 当没有重根时,存在: 当存在重根时,有: a,b=residue(r,p,k):从部分分式得出多项式系数向量。 5.3.7 部分分式展开 例:把 用部分分式展开 5.4 数据插值 5.4.1 一维插值 命令 interp1 可以进行一维插值,此命令的调用格式: yi=interp1(x,y,xi) yi=interp1(x,y,xi,method) 其中,x,y为原始的已知数据,x是横坐标向量,必须是单调的 ;y是纵坐标向量或矩阵;xi是指定插值点的横坐标,yi是在指定 的位置计算出的插值结果。参数 method 用来指定插值方法,具体 插值方法如下: nearest:最近邻域插值 linear:线性插值 spline:三次(立方)样条插值 cubic:三次内插(立方插值) 5.4.2 二维插值 命令 interp2 可以进行二维插值,其调用格式: zi=interp2(x,y,z,xi,yi) zi=interp2(x,y,z,xi,yi,method) 其中,x、y和z是原始已知数据,x和y是两个独立向量,且 必须都是单调的,z是矩阵,是由x和y确定的点上的值,z和x、 y之间的关系是: z(i,:)=f(x,y(i) 和 z(:,j)=f(x(j),y) 若省略x和y,相当于x=1:n,y=1:m (m、n分别是矩阵z的行 数和列数),xi和yi是要进行插值的点,zi是与插值点对应的插 值结果;method 指定插值方法: linear:双线性插值 nearest:最近邻域插值 spline:三次(立方)样条插值 cubic:双三次插值 5.4.3 样条插值 进行三次样条插值的指令是 spline,此函数的调用格式有 如下两种: yi=spline(x,y,xi) pp=spline(x,y) 函数 spline 获取原始数据点x和y以及要进行插值的点xi的 横坐标 ,寻找拟合x和y的三次样条内插多项式,然后计算这些多 项式,对每个xi值,寻找相应的yi; 第二种调用方式中,spline 返回一个称为三次样条的pp形式 或分段多项式形式的数组。这个数组包含了对于任意一组所期望 的内插值和计算三次样条所必须的全部信息。 得到pp形式后,可以用函数 ppval 计算该三次样条 ,函数的用法为: yi=ppval(pp,xi) 函数unmkpp可把pp形式分解成它的各个部分,此函数 的调用格式是: breaks,coefs,pieces,order,dim=unmkpp(pp) 已知pp形式的各个部分,可用函数mkpp重构完整的pp 形式: pp=mkpp(breaks,coefs,pieces,order,dim) 5.4.3 样条插值 5.5 基础运算 基础运算函数及其功能表 函 数功 能函 数功 能 max求最大元素min求最小元素 median找出中位元素mean求平均值值 std求标标准差sort把数组组的列元素 按递递增顺顺序排 列 sum求和 prod求积积 5.5 基础运算 基础运算函数及其功能表(续 ) 函 数功 能函 数功 能 cumsum计计算累加和cumprod计计算累积积积积 perms把向量按所有可能变换变换 组组合成矩阵阵 primes求出小于或等于 某值值的所有素数 sortrows 把数组组的元素以某列为为 基准,按递递增顺顺序排列 factor计计算素数因子 var求方差 5.5 基础运算 (1) max:最大值指令 ,调用格式: y=max(x): x是向量或矩阵; y,i=max(x):返回最大值和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论